Skip to content

Commit

Permalink
re-start from old repository
Browse files Browse the repository at this point in the history
  • Loading branch information
Wookjin Choi authored and taznux committed Jul 27, 2016
1 parent 15263c8 commit 147826b
Show file tree
Hide file tree
Showing 13 changed files with 353 additions and 14 deletions.
14 changes: 2 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ DICOM
software
Documents
References
Ming
/Projects/BolusShaping/*.lst
LIB
BIN
DATA
Expand All @@ -13,10 +11,10 @@ test*
tmp*
CMakeFiles
CMakeCache.txt
.idea
.DS_Store
.Rproj.user
.RData
.idea
*~
*.nrrd
*.dcm
Expand All @@ -37,12 +35,4 @@ CMakeCache.txt
*.log
*.csv
~*
*.Rhistory
*.xlsx
*.RData
*.pdf
*.mexw64
*.mexa64
*.sqlite

*.gitconfig
.ruffus_history.sqlite*
Binary file added DICOM-RT2NRRDConverter.exe
Binary file not shown.
Binary file added DICOM2NRRDConverter.exe
Binary file not shown.
Binary file added DICOMTagReader.exe
Binary file not shown.
Binary file added FeatureExtraction.exe
Binary file not shown.
Binary file added NoduleSegmentation.exe
Binary file not shown.
116 changes: 116 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
Radiomics tools
===================

Image processing tools and ruffus based workflow for radiomics feature analysis

Install software
--------------------------
### Python 3.5 ###
- Required
- Script engine and useful modules

https://www.python.org/downloads/

> Required modules - pandas, ruffus
> Recommended module - scipy, numpy, ipython, matplotlib
>
> install_modules.sh or install_modules.cmd is available to install these modules.
### Slicer 4.5 ###
- Recommended
- Image viewer, contour editor, simple image processing tool

http://download.slicer.org/


### To build ###
- gcc or visual studio
- cmake
- ITK


Tools
-----
### 1. DICOMTools ###
1. DICOMTagReader - Display entire DICOM tags
> DICOMTagReader [DICOM directory]
2. DICOM2NRRDConverter - DICOM to nrrd (Slicer file format)
Simple recursive converting for single patient data
> DICOM2NRRDConverter [DICOM directory] [nrrd directory]
For large data
> python DICOM2NRRDConverter.py [DICOM directory] [nrrd directory]
3. DICOM-RT2NRRDConverter - DICOM-RT to nrrd


### 2. ContourTools ###
1. STAPLEComparison - variation comparison on multiple contours
1. ExtractBoundary
1. GTVs2ITV
1. HoleGenerator
1. ROIGenerator
1. ROI2BinImage
1. ROICropImage



### 3. GrowCutSegmentation ###
NoduleSegmentation - Segment small nodular objects for solid nodule and GGO
> NoduleSegmentation [InputImageFile] [SeedPoint_x] [SeedPoint_y [SeedPoint_z] [NoduleSize_long] [NoduleSize_short] [OutputImageFile]

### 4. Feature Extraction ###
FeatureExtraction - Extract image features from the nodule segmentation
> FeatureExtraction [InputImage] [LabelImage] [FeatureFile] [Label={1}]

### 5. Python Tools ###
1. metadata.py - for handling metadata in csv or xls
2. organize_features.py - for collecting feature data into a single csv file


### 6. MATLAB Tools ###
1. NRRD4Matlab - for handing nrrd format in MATLAB
2. PET2SUV - for converting raw PET image to standardized uptake value(SUV)


### 7. ETC ###
1. RegistrationSITK - simple registration code, required SimpleITK module for python
2. SlicerPythonExtensions - simple extensions for Slicer
1. InterpolateROIsEffect.py
2. LineProfile.py


### 6. LASSO-SVM ###
TBD - modeling code for radiomics features


Usage
-----
Radiomics feature extraction example for LUNGx dataset

1. Download DICOM images
https://wiki.cancerimagingarchive.net/display/Public/SPIE-AAPM+Lung+CT+Challenge

Download all DICOM​ images to './DATA'
You can use the included metadata files for LUNGx (TrainingSet.csv and TestSet.csv)

2. Environmental parameters
Set your parameters in run_CAD.py (recommend default setting).
> experiment_set = 'TrainingSet'
> \# experiment_set = 'TestSet'
> output_path = 'output'
> data_path = 'DATA'
> dicom_path = data_path + '/DOI'
> image_path = data_path + '/' + experiment_set
> nodule_info_path = './' + experiment_set + '.csv'
3. Run workflow
> $ python run.py or ./run.py
4. Analysis feature data
output files (intermediate images and feature data) will be generated in ./output
> TrainingSet feature_list_TrainingSet.csv
> TestSet feature_list_TestSet.csv
74 changes: 74 additions & 0 deletions TestSet.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
No.,PID,LD,PD,Z,X,Y,malignancy
1,LUNGx-CT001,20,5,142,135,303,
2,LUNGx-CT002,20,5,205,330,348,
3,LUNGx-CT002,20,5,150,364,212,
4,LUNGx-CT003,20,5,146,374,374,
5,LUNGx-CT004,20,5,41,197,290,
6,LUNGx-CT004,20,5,80,328,242,
7,LUNGx-CT005,20,5,42,333,356,
8,LUNGx-CT005,20,5,138,164,420,
9,LUNGx-CT006,20,5,50,381,284,
10,LUNGx-CT007,20,5,188,170,355,
11,LUNGx-CT008,20,5,139,172,208,
12,LUNGx-CT009,20,5,164,175,209,
13,LUNGx-CT010,20,5,139,164,163,
14,LUNGx-CT011,20,5,56,179,335,
15,LUNGx-CT012,20,5,88,131,360,
16,LUNGx-CT013,20,5,91,373,240,
17,LUNGx-CT014,20,5,204,163,212,
18,LUNGx-CT015,20,5,124,353,413,
19,LUNGx-CT016,20,5,62,344,358,
20,LUNGx-CT016,20,5,55,204,295,
21,LUNGx-CT017,20,5,178,354,355,
22,LUNGx-CT017,20,5,153,376,283,
23,LUNGx-CT018,20,5,137,116,242,
24,LUNGx-CT019,20,5,131,128,362,
25,LUNGx-CT020,20,5,179,379,285,
26,LUNGx-CT021,20,5,76,296,267,
27,LUNGx-CT022,20,5,68,159,355,
28,LUNGx-CT023,20,5,61,332,277,
29,LUNGx-CT024,20,5,197,107,284,
30,LUNGx-CT025,20,5,214,134,300,
31,LUNGx-CT026,20,5,138,427,316,
32,LUNGx-CT027,20,5,97,357,250,
33,LUNGx-CT028,20,5,135,117,312,
34,LUNGx-CT029,20,5,73,179,369,
35,LUNGx-CT029,20,5,79,353,277,
36,LUNGx-CT030,20,5,104,118,310,
37,LUNGx-CT031,20,5,70,130,230,
38,LUNGx-CT032,20,5,239,392,341,
39,LUNGx-CT033,20,5,113,188,312,
40,LUNGx-CT034,20,5,150,128,274,
41,LUNGx-CT035,20,5,268,154,355,
42,LUNGx-CT035,20,5,215,454,300,
43,LUNGx-CT036,20,5,220,150,392,
44,LUNGx-CT037,20,5,62,374,315,
45,LUNGx-CT038,20,5,197,184,249,
46,LUNGx-CT039,20,5,242,149,380,
47,LUNGx-CT040,20,5,189,336,353,
48,LUNGx-CT041,20,5,172,107,292,
49,LUNGx-CT042,20,5,178,326,391,
50,LUNGx-CT043,20,5,177,394,162,
51,LUNGx-CT043,20,5,230,440,289,
52,LUNGx-CT044,20,5,90,136,298,
53,LUNGx-CT045,20,5,148,314,216,
54,LUNGx-CT046,20,5,61,309,211,
55,LUNGx-CT047,20,5,53,199,306,
56,LUNGx-CT047,20,5,67,236,276,
57,LUNGx-CT048,20,5,115,368,312,
58,LUNGx-CT049,20,5,71,398,296,
59,LUNGx-CT050,20,5,41,385,316,
60,LUNGx-CT051,20,5,77,303,297,
61,LUNGx-CT052,20,5,124,135,202,
62,LUNGx-CT052,20,5,50,342,341,
63,LUNGx-CT053,20,5,213,195,303,
64,LUNGx-CT054,20,5,180,196,336,
65,LUNGx-CT054,20,5,149,174,208,
66,LUNGx-CT055,20,5,125,223,193,
67,LUNGx-CT056,20,5,56,209,308,
68,LUNGx-CT056,20,5,98,374,218,
69,LUNGx-CT057,20,5,169,396,353,
70,LUNGx-CT058,20,5,157,377,234,
71,LUNGx-CT059,20,5,235,75,288,
72,LUNGx-CT059,20,5,258,371,207,
73,LUNGx-CT060,20,5,133,192,298,
3 changes: 1 addition & 2 deletions Tools/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
all:
@make -C ITKUtils
@make -C ITKUtils
@make -C DICOMTools
@make -C ContourTools
@make -C FeatureExtraction
Expand All @@ -13,4 +13,3 @@ clean:
@make -C GrowCutSegmentation clean

@echo "Clean up all builds!!"

11 changes: 11 additions & 0 deletions TrainingSet.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
No.,PID,LD,PD,Z,X,Y,malignancy
1,CT-Training-LC001,20,5,135,120,325,1
2,CT-Training-LC002,20,5,70,139,359,1
3,CT-Training-LC003,20,5,70,375,323,1
4,CT-Training-LC008,20,5,65,95,328,1
5,CT-Training-LC009,20,5,63,145,299,1
6,CT-Training-BE001,20,5,169,405,296,0
7,CT-Training-BE002,20,5,117,184,268,0
8,CT-Training-BE006,20,5,241,449,266,0
9,CT-Training-BE007,20,5,194,385,206,0
10,CT-Training-BE010,20,5,69,120,336,0
4 changes: 4 additions & 0 deletions install_modules.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pip install pandas ruffus
pip install scipy numpy ipython matplotlib
REM pip install pyqt pyside
REM pip install SimpleITK
4 changes: 4 additions & 0 deletions install_modules.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pip install pandas ruffus
pip install scipy numpy ipython matplotlib
#pip install pyqt pyside
#pip install SimpleITK
Loading

0 comments on commit 147826b

Please sign in to comment.