Cerebellum CNN

From IACL
Revision as of 23:04, 7 February 2019 by Aaron (talk | contribs) (Removed link pending publication.)
Jump to navigation Jump to search

<meta name="title" content="Cerebellum Parcellation with Convolutional Neural Networks"/>

Cerebellum Parcellation with Convolutional Neural Networks

This work originally appeared at Proceedings of SPIE Medical Imaging (SPIE-MI 2019), San Diego, CA, February 16 - 21, 2019. It can be downloaded as a Singularity image once the work has appeared in press at SPIE-MI 2019.


What the Singularity image can do

The Singularity performs the following steps:

  • ROBEX is used to estimate a brain mask. This mask is then smoothed to generate a brain weight image.
  • N4 from ANTs is used to perform the bias field correction. The bias field is estimated using the weight image calculated above.
  • The images are rigidly registered to the ICBM2009c nonlinear symmetric template using the ANTs package. The first MPRAGE image from the longitudinal series of a subject is registered to this template and other images with different contrasts/from the following sessions are registered to the first MPRAGE image.
  • The cerebellum of an MNI-registered MPRAGE image is parcellated using the method described in "Shuo Han, et al., Cerebellum parcellation with convolutional neural networks, SPIE 2019 Medical Imaging Image Processing".
  • Removing the neck should improve the results, such as using `robustfov` from fsl, but it is not done in this singularity image.
  • (OPTIONAL) Generate a HTML report file. To generate the report, the images are converted to .png files which could occupy a large hard disk space.



Installation


File structure (important)

  • The images should be organized in the BIDS format. For this singularity to run, the file structure is (be sure to create a subfolder `data/` under the processing folder):
<data_dir>/
   data/
      sub-<subject-label>/
         ses-<session-label>/
            anat/
               sub-<sub-label>_ses-<ses-label>_acq-mprage_[run-<run-label>]_T1w.nii.gz 

Note the "acq" label is required and run label is optional.

The processing will create subfolders "n4", "mni", "parc", and "post" under the folder "<data_dir>". The final parcellation results are in "<data_dir>/post".

"*n4.nii.gz" is the bias field corrected image
"*n4_mni.nii.gz" is the image in the MNI space
"*n4_mni_seg.nii.gz" is the parcellation from the deep networks
"*n4_mni_seg_post.nii.gz" is the final post-processed result.

ICV is calculated from the ROBEX mask. A ".tsv" file of the ICV is stored in "<data_dir>/n4" as "*_T1w_mask_icv.tsv".

The volumes of the cerebellar regions are calculated from the "*post.nii.gz" and stored in "<data_dir>/post" as "*post_volumes.tsv".

An optional report is stored as "<data_dir>/report.html".

Using a bash/python/perl etc. script to organize your data using soft (symbolic) link is recommended.


Example Usage

  • Assuming the singularity image is ~/parc.simg
singularity run ~/parc.simg -d ~/processing
  • Generate a report html
singularity run ~/parc.simg -d ~/processing -r
  • Run multiple 16 jobs in parallel
singularity run ~/parc.simg -d ~/processing -r -j 16
  • Print help
singularity run ~/parc.simg -h


Cerebellum labels

   "12":  "Corpus_Medullare",
   "33":  "Left_Lobules_I-III",
   "36":  "Right_Lobules_I-III",
   "43":  "Left_Lobule_IV",
   "46":  "Right_Lobule_IV",
   "53":  "Left_Lobule_V",
   "56":  "Right_Lobule_V",
   "63":  "Left_Lobule_VI",
   "60":  "Vermis_VI",
   "66":  "Right_Lobule_VI",
   "73":  "Left_Lobule_VIIAf",
   "76":  "Right_Lobule_VIIAf",
   "74":  "Left_Lobule_VIIAt",
   "70":  "Vermis_VII",
   "77":  "Right_Lobule_VIIAt",
   "75":  "Left_Lobule_VIIB",
   "78":  "Right_Lobule_VIIB",
   "83":  "Left_Lobule_VIIIA",
   "80":  "Vermis_VIII",
   "86":  "Right_Lobule_VIIIA",
   "84":  "Left_Lobule_VIIIB",
   "87":  "Right_Lobule_VIIIB",
   "93":  "Left_Lobule_IX",
   "90":  "Vermis_IX",
   "96":  "Right_Lobule_IX",
   "103": "Left_Lobule_X",
   "100": "Vermis_X",
   "106": "Right_Lobule_X"