sct-pipeline / gm-challenge

Spinal cord gray matter imaging challenge
MIT License
8 stars 3 forks source link

Spinal Cord Gray Matter Imaging Challenge

Spinal cord gray matter imaging challenge for the 5th Spinal Cord Workshop (June 22nd 2018, Paris). The objective for this challenge is to propose a protocol that will generate the best image quality. For more details, please see: https://goo.gl/2owcL7.

Dependencies

Getting started

Download the dataset of the challenge:

git clone https://github.com/sct-pipeline/gm-challenge-data.git

Download this repository and go in it:

git clone https://github.com/sct-pipeline/gm-challenge.git
cd gm-challenge

Create virtual environment, activate it and install package:

virtualenv venv  # You only need to run this once
source venv/bin/activate  # You need to run this everytime you with to process the data
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .

Run (you need to have SCT installed):

sct_run_batch -script process_data.sh -jobs -1 -path-data <PATH_DATA> -path-output <PATH_OUT>

with:

At the end of the processing, you can review:

Description of the analysis

Two NIfTI files are required: an initial scan and a re-scan without repositioning. The analysis script process_data.sh includes the following steps:

Analysis on the spine-generic dataset

A similar analysis can also be run on the spine-generic dataset. However, given that only one scan was available, SNR_diff could not be calculated. The command is similar to the one earlier, except the should now point to the spine-generic multi-subject dataset:

sct_run_batch -script <PATH_REPOSITORY>/process_data.sh -path-data <PATH_DATA> -path-out <PATH_OUTPUT>

After running this script, figures can be generated as follows:

generate_figure_spinegeneric -ip <PATH_DATA>/participants.tsv -ir cd <PATH_OUT>/results/results.csv -o fig

Simulations

Generate synthetic phantom of WM and GM that can be used to validate the proposed evaluation metrics. The phantoms are generated with random (Gaussian) noise, so running the script multiple times will not produce the same output. This script is meant to be run twice in order to assess the metrics with the following functions. Example:

simu_create_phantom -o simu_phantom1
simu_create_phantom -o simu_phantom2

Once both sets of phantom data are generated, process these. The next script will look for CSV files, which are generated by simu_create_phantom.py, and which contain file names of the NIfTI phantom data:

simu_process_data -i simu_phantom1/ simu_phantom2/

Finally, make figures to assess metrics sensitivity to image quality across two smoothing values:

simu_make_figures -i simu_results/results_all.csv -s 0
simu_make_figures -i simu_results/results_all.csv -s 1

Configuration of Niftyweb server

Contributors

Stephanie Alley, Ferran Prados, Julien Cohen-Adad

License

See: LICENSE