|
a/README.md |
|
b/README.md |
1 |
 |
1 |

|
2 |
# MRI Segmentation and Radiomics |
2 |
# MRI Segmentation and Radiomics
|
3 |
This repository contains example code from the paper in preparation on preclinical cancer imaging titled "MRI-based |
3 |
This repository contains example code from the paper in preparation on preclinical cancer imaging titled "MRI-based
|
4 |
Deep Learning Segmentation and Radiomics of Sarcoma Tumors in Mice." |
4 |
Deep Learning Segmentation and Radiomics of Sarcoma Tumors in Mice." |
5 |
|
5 |
|
6 |
This work is part of the [U24 co-clinical trial](https://sites.duke.edu/pcqiba/) of which [CIVM](http://www.civm.duhs.duke.edu/) at Duke University is a participant. This work has been funded by **NIH U24CA220245**. |
6 |
This work is part of the [U24 co-clinical trial](https://sites.duke.edu/pcqiba/) of which [CIVM](http://www.civm.duhs.duke.edu/) at Duke University is a participant. This work has been funded by **NIH U24CA220245**. |
7 |
|
7 |
|
8 |
|
8 |
|
9 |
This goal of this project is to create an pipeline with two facets: |
9 |
This goal of this project is to create an pipeline with two facets:
|
10 |
1. Automatic segmentation of soft tissue sarcoma using deep learning. |
10 |
1. Automatic segmentation of soft tissue sarcoma using deep learning.
|
11 |
2. Automate calculation and analysis of radiomic features within the tumor population. |
11 |
2. Automate calculation and analysis of radiomic features within the tumor population. |
12 |
|
12 |
|
13 |
## Data |
13 |
## Data
|
14 |
The data used in this study is composed of multi-contrast MR images of soft tissue sarcoma. Tumors were imaged using |
14 |
The data used in this study is composed of multi-contrast MR images of soft tissue sarcoma. Tumors were imaged using
|
15 |
T2-weighted and T1-weighted sequences. These were followed by a contrast-enhanced T1-weighted acquisition. |
15 |
T2-weighted and T1-weighted sequences. These were followed by a contrast-enhanced T1-weighted acquisition.
|
16 |
 |
16 |
 |
17 |
|
17 |
|
18 |
The full dataset will soon be available on the [CIVM VoxPort page](https://civmvoxport.vm.duke.edu/voxbase/studyhome.php?studyid=617) |
18 |
The full dataset will soon be available on the [CIVM VoxPort page](https://civmvoxport.vm.duke.edu/voxbase/studyhome.php?studyid=617) |
19 |
|
19 |
|
20 |
## Segmentation |
20 |
## Segmentation
|
21 |
Segmentation was performed via a U-net CNN. The network functions on patches taken from image volumes. The general |
21 |
Segmentation was performed via a U-net CNN. The network functions on patches taken from image volumes. The general
|
22 |
network structure is shown below. |
22 |
network structure is shown below.
|
23 |
 |
23 |
 |
24 |
|
24 |
|
25 |
Training and perfomance anlysis is done using the [Segmentation.py](Segmentation/Segmentation.py) script. The results |
25 |
Training and perfomance anlysis is done using the [Segmentation.py](Segmentation/Segmentation.py) script. The results
|
26 |
for a network trained on multi-contrast MR images with cross entropy loss is shown below. |
26 |
for a network trained on multi-contrast MR images with cross entropy loss is shown below.
|
27 |
|
27 |
|
28 |
 |
28 |
 |
29 |
|
29 |
|
30 |
#### Requirements |
30 |
#### Requirements
|
31 |
T2-weighted images are bias corrected using N4BiasFieldCorrection in [ANTs](http://stnava.github.io/ANTs/). |
31 |
T2-weighted images are bias corrected using N4BiasFieldCorrection in [ANTs](http://stnava.github.io/ANTs/). |
32 |
|
32 |
|
33 |
Network structures have been defined in [model_keras.py](Segmentation/model_keras.py). A variety of networks have |
33 |
Network structures have been defined in [model_keras.py](Segmentation/model_keras.py). A variety of networks have
|
34 |
been tested, including those with and without skip connections as well as testing out cross entropy and dice loss |
34 |
been tested, including those with and without skip connections as well as testing out cross entropy and dice loss
|
35 |
functions. |
35 |
functions. |
36 |
|
36 |
|
37 |
|
37 |
|
38 |
|
38 |
|
39 |
## Radiomics |
39 |
## Radiomics
|
40 |
Radiomic features were calculated within the segmentation using [PyRadiomics](https://pyradiomics.readthedocs.io/en/latest/). |
40 |
Radiomic features were calculated within the segmentation using [PyRadiomics](https://pyradiomics.readthedocs.io/en/latest/).
|
41 |
Radiomic |
41 |
Radiomic
|
42 |
calculation are performed using [radiomic_calculations_batch.py](Radiomics/radiomic_calculations_batch.py). |
42 |
calculation are performed using [radiomic_calculations_batch.py](Radiomics/radiomic_calculations_batch.py). |
43 |
|
43 |
|
44 |
The code used to process the radiomic features is found in [radiomic_classifications.py] |
44 |
The code used to process the radiomic features is found in [radiomic_classifications.py]
|
45 |
(Radiomics/radiomics_classifications.py). The features are plotted and classified using SVMs |
45 |
(Radiomics/radiomics_classifications.py). The features are plotted and classified using SVMs
|
46 |
and NNs to determine if primary local recurrence can be predicted in this population based only on radiomic features. |
46 |
and NNs to determine if primary local recurrence can be predicted in this population based only on radiomic features.
|
47 |
Machine learning classifier functions lie in [radiomic_functions.py](Radiomics/radiomic_functions.py). |
47 |
Machine learning classifier functions lie in [radiomic_functions.py](Radiomics/radiomic_functions.py).
|
48 |
|
48 |
|
49 |
Using this code, we achieved an AUC of 0.81 for predicting recurrence within these mice. |
49 |
Using this code, we achieved an AUC of 0.81 for predicting recurrence within these mice.
|
50 |
|
50 |
|
51 |
 |
51 |

|
52 |
|
52 |
|
53 |
#### Requirements |
53 |
#### Requirements
|
54 |
Due to the high dimensionality of the data (321 features per tumor) feature selection is required |
54 |
Due to the high dimensionality of the data (321 features per tumor) feature selection is required
|
55 |
. This are accomplished via [mRMR](http://home.penglab.com/proj/mRMR/), which must be added to the path before running. |
55 |
. This are accomplished via [mRMR](http://home.penglab.com/proj/mRMR/), which must be added to the path before running. |
56 |
|
56 |
|
57 |
## Crawler |
57 |
## Crawler
|
58 |
A crawler has been implemented to locate, pre-process, segmentent, and compute radiomic features for large |
58 |
A crawler has been implemented to locate, pre-process, segmentent, and compute radiomic features for large
|
59 |
collections of images. The code for this located in the "Crawler" folder and can be run through the [crawler.py](Crawler/crawler.py) |
59 |
collections of images. The code for this located in the "Crawler" folder and can be run through the [crawler.py](Crawler/crawler.py)
|
60 |
script once the base paths have been updated. |
60 |
script once the base paths have been updated.
|