This repository implements the overall survival prediction task of the paper Brain Tumor Segmentation and Tractographic Feature Extraction from Structural MR Images for Overall Survival Prediction which participates in BraTS2018 survival prediction challenge.
The BraTS 2018 dataset does not have any diffusion MR images. We utilize the average fiber tracts from HCP 1021 1mm template with predicted lesion maps to generate tractographic feature. Then, we are able to predict the patient's overall survival with this tractographic feature. Please refer to our paper if you would like to know more details.
Our proposed tractographic feature has achieved the classification accuracy of 69.69% with 1000-times repeated stratified 5-folds cross validation on BraTS2018 training dataset.
The system was initially developed for the overall survival prediction task for patients with brain tumor. It was employed for our research presented in [1], where the tractographic features are extracted from structural MR images. We are able to predict the patients overall survival by using these tractographic features with a support vector machine(SVM). If the use of the software or the idea of the paper positively influences your endeavours, please cite [1].
[1] Po-Yu Kao, Thuyen Ngo, Angela Zhang, Jefferson Chen, and B. S. Manjunath, "Brain Tumor Segmentation and Tractographic Feature Extraction from Structural MR Images for Overall Survival Prediction." arXiv preprint arXiv:1807.07716, 2018.
Python 3.6
FSL (https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FslInstallation)
DSI studio (http://dsi-studio.labsolver.org/dsi-studio-download)
-
MNI152 T1 1mm brain (/usr/share/fsl/data/standard/MNI152_T1_1mm_brain.nii.gz)
-
HCP1021 1mm template (https://pitt.app.box.com/v/HCP1021-1mm)
-
AAL Atlas (/PATH_TO_DSISTUDIO/dsi_studio_64/atlas/aal.nii.gz)
nipype, SimpleITK, sklearn, scipy, pandas, csv, natsort
pip install nipype,SimpleITK,sklearn,scipy,pandas,csv,natsort
First, you need to change the directories in paths.py
Then, you run the N4ITK bias correction on training, validation and testing dataset.
python N4ITKforBraTS2018.py --mode train
python N4ITKforBraTS2018.py --mode valid
python N4ITKforBraTS2018.py --mode test
You are able to find the corrected files in the same directory named USERID_modality_N4ITK_corredted.nii.gz
python registerBrain.py --mode train
python registerBrain.py --mode valid
python registerBrain.py --mode test
Map the ground truth lesion from subject space to MNI152 space (seg, whole tumor, tumor core, and enhancing tumor in MNI152 space)
python gt_lesions.py
For the parameter setting:
fa_threshold=0.159581, turning_angle=90, step_size=0.5, smoothing=0.5, min_length=3, max_length=500, tracking_method=0, initial direction=0, interpolation=0, voxelwise=0, default_otsu=0.6, tip_iteration=0, fiber_count=1000000, thread_count=8
Move HCP1021 1mm template (HCP1021.1mm.fib.gz) to the paths.dsi_studio_path
Change the parameter_id in gt_fiber.py to your own id
python gt_fiber.py
After you run the above command, you are able to get three folders named connectivity, connectogram and network_measures in the paths.dsi_studio_path. Within these three folders, you can find a folder named gt which contains all information.
Map the predicted lesion from subject space to MNI152 space (predicted_seg, predicted whole tumor, predicted tumor core, and predicted enhancing tumor in MNI152 space)
python predicted_lesions.py --mode train
python predicted_lesions.py --mode valid
python predicted_lesions.py --mode test
Please refer to params.txt for the parameter setting.
Move HCP1021 1mm template (HCP1021.1mm.fib.gz) to the paths.dsi_studio_path
Change the parameter_id in gt_fiber.py to your own id
python predicted_fiber.py --mode train
python predicted_fiber.py --mode valid
python predicted_fiber.py --mode test
After you run the above three commands, you are able to get three folders named connectivity, connectogram and network_measures in the paths.dsi_studio_path. Within these three folders, you can find three folder named training, validation, and testing which contains all information.
For the overall survival prediction task, we are able to classify the brain tumor patients into three groups including long-survivors (e.g., >15 months), short-survivors (e.g., <10 months), and mid-survivors (e.g. between 10 and 15 months)
python classify_using_tractographic_feature.py --mode gt
Result:
Best Scores of weighted tractographic features - Using SVM - Accuracy: 0.6965 (+/- 0.1228)
python classify_using_tractographic_feature.py --mode predicted
Result:
Best Scores of weighted tractographic features - Using SVM - Accuracy: 0.6315 (+/- 0.1323)