/spinalcordtoolbox

Comprehensive and open-source library of analysis tools for MRI of the spinal cord.

Primary LanguagePythonMIT LicenseMIT

Build Status GitHub Release Github Download Count Project Stats User mailing list Developer mailing list Coverage Status

SCT is a comprehensive, free and open-source software dedicated to the processing and analysis of spinal cord MRI data.

Introduction

SCT overview

For the past 25 years, the field of neuroimaging has witnessed the development of several software packages for processing multi-parametric magnetic resonance imaging (mpMRI) to study the brain. These software packages are now routinely used by researchers and clinicians, and have contributed to important breakthroughs for the understanding of brain anatomy and function. However, no software package exists to process mpMRI data of the spinal cord. Despite the numerous clinical needs for such advanced mpMRI protocols (multiple sclerosis, spinal cord injury, cervical spondylotic myelopathy, etc.), researchers have been developing specific tools that, while necessary, do not provide an integrative framework that is compatible with most usages and that is capable of reaching the community at large. This hinders cross-validation and the possibility to perform multi-center studies.

Spinal Cord Toolbox (SCT) is a comprehensive, free and open-source software dedicated to the processing and analysis of spinal cord MRI data. SCT builds on previously-validated methods and includes state-of-the-art MRI templates and atlases of the spinal cord, algorithms to segment and register new data to the templates, and motion correction methods for diffusion and functional time series. SCT is tailored towards standardization and automation of the processing pipeline, versatility, modularity, and it follows guidelines of software development and distribution. Preliminary applications of SCT cover a variety of studies, from cross-sectional area measures in large databases of patients, to the precise quantification of mpMRI metrics in specific spinal pathways. We anticipate that SCT will bring together the spinal cord neuroimaging community by establishing standard templates and analysis procedures.

Installation

Install from package (release)

The simplest way to install SCT is to do it via a stable release. First, download the latest release. Major changes to each release are listed here.

Dependencies:

  • OS requirements: OS X (10.12 and above) or Debian/Ubuntu/Fedora/RedHat/CentOS platforms. If you are using Windows, please see Installation with Docker.
  • You need to have gcc installed. On OS X, we recommend installing Homebrew and then run brew install gcc. On Linux, we recommend installing it via your package manager. For example on Debian/Ubuntu: apt install gcc, and on CentOS/RedHat: yum -y install gcc.

Once you have downloaded SCT, unpack it (note: Safari will automatically unzip it). Then, open a new Terminal, go into the created folder and launch the installer:

./install_sct

Install from Github (development)

Download source code from Github (N.B. you need to have git installed):

git clone --branch=master https://github.com/neuropoly/spinalcordtoolbox.git sct

Then install SCT:

cd sct
./install_sct

At anytime, you can update your local SCT installation to the latest version on Github:

git pull

Installation with Docker

In order to install the SCT in Windows or other unsupported OS, we provide a solution via Docker. This solution will allow you to use all the resources of SCT including the programs with graphical interface. In addition to the SCT, the Docker image contains the FSLeyes program for the visualization of the NIFTI volumes that you process.

Tutorial how to install SCT via Docker

Installation in Virtual Machine (VM)

If for some reasons installation with Docker does not work for you, you can always install and run SCT within a VM. We recommend you install the neurodebian VM, which contains useful neuroimaging software such as FSLeyes.

Important: After importing the NeuroDebian ova file into VirtualBox, make sure to select the following options:

  • System
    • Base Memory: 2GB or more
  • Display
    • Video Memory: 128GB or more
    • Graphics Controller: VBoxVGA
    • No acceleration enabled

Then, you need to install driver updates for the video card. Start the VM, open a Terminal and run:

cd /home/brain
wget https://download.virtualbox.org/virtualbox/6.0.4/VBoxGuestAdditions_6.0.4.iso
mkdir disk_VM
sudo mount VBoxGuestAdditions_6.0.4.iso disk_VM/
sudo disk_VM/VBoxLinuxAdditions.run
sudo reboot

After the VM has restarted, you can install SCT!

Getting started

The best way to learn about the main functionalities of SCT is to run a typical processing pipeline, in the form of a batch script. We provide an example dataset (includes T1w, T2w, T2*w, DTI and fMRI) with a collection of commands to process those files and output quantitative parameters.

  • Open a Terminal
  • Run: $SCT_DIR/batch_processing.sh
  • While the processing is being done, we encourage you to look at the batch script and try to understand the mean of each command line. If you have any question, please do not hesitate to post on the forum.

If you would like to get more examples about what SCT can do, please visit this address. Each repository is a pipeline dedicated to a specific research project.

Courses

We organize free SCT courses, each year after the ISMRM conference. If you'd like to be added to the mailing list, please send an email to spinalcordtoolbox@gmail.com. The past courses handouts are listed below:

Video tutorials

Please visit our video tutorials here.

References

Spinal Cord Toolbox

Template and Atlas

Segmentation

Registration

Applications

Citing spinalcordtoolbox

When citing SCT please use this BibTeX entry:

@article{DeLeener201724,
title = "SCT: Spinal Cord Toolbox, an open-source software for processing spinal cord \{MRI\} data ",
journal = "NeuroImage ",
volume = "145, Part A",
number = "",
pages = "24 - 43",
year = "2017",
note = "",
issn = "1053-8119",
doi = "https://doi.org/10.1016/j.neuroimage.2016.10.009",
url = "http://www.sciencedirect.com/science/article/pii/S1053811916305560",
author = "Benjamin De Leener and Simon Lévy and Sara M. Dupont and Vladimir S. Fonov and Nikola Stikov and D. Louis Collins and Virginie Callot and Julien Cohen-Adad",
keywords = "Spinal cord",
keywords = "MRI",
keywords = "Software",
keywords = "Template",
keywords = "Atlas",
keywords = "Open-source ",
}

Contributors

This project exists thanks to all the people who contribute. If you would like to contribute as well, please follow the contribution guidelines.

License

The MIT License (MIT)

Copyright (c) 2014 École Polytechnique, Université de Montréal

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.