File Exchange

image thumbnail

RADIOMICS

version 1.2.0.0 (583 KB) by Martin Vallières
MATLAB programming tools for radiomics analysis

16 Downloads

Updated 16 Feb 2017

GitHub view license on GitHub

-------------------------------------------------------------------------
|<https://github.com/mvallieres/radiomics/>|
--> A package providing MATLAB programming tools for radiomics analysis.
-------------------------------------------------------------------------
REFERENCE:
[1] Vallières, M. et al. (2015). A radiomics model from joint FDG-PET and
MRI texture features for the prediction of lung metastases in soft-tissue
sarcomas of the extremities. Physics in Medicine and Biology, 60(14),
5471-5496. doi:10.1088/0031-9155/60/14/5471
-------------------------------------------------------------------------
AUTHOR: Martin Vallières <mart.vallieres@gmail.com>
-------------------------------------------------------------------------
HISTORY:
- Version 1.0: May 2015
-------------------------------------------------------------------------
DISCLAIMER:
"I'm not a programmer, I'm just a scientist doing stuff!"
-------------------------------------------------------------------------

*** THANK YOU FOR YOUR INTEREST IN THIS PACKAGE ***
--> If you have any questions, comments or suggestions about this package,
please do not hesitate to contact me!

This package contains 5 folders:

1. 'TextureToolbox': MATLAB codes to perform texture analysis from an input
2D or 3D region of interest (ROI). This toolbox is self-contained and
can be used on its own outside of the radiomics package. In particular,
this texture analysis package implements wavelet band-pass filtering,
isotropic resampling, discretization length corrections and different
quantization tools. Please see ref. [1] for more details.

2. 'NonTextureFeatures': MATLAB codes to compute features other than textures
from an input 3D region of interest (ROI). Include features such as SUV
metrics, AUC-CSH, Percent Inactive, Size, Solidity, Volume and Eccentricity.
Please see ref. [1] for more details.

3. 'MultivariableModeling': MATLAB codes to perform multivariable analysis
operations such as logistic regression, bootstrapping, feature set
reduction, feature set selection, prediction performance estimation, etc.

4. 'Utilities': MATLAB codes used to perform different operations including
the computation of SUV maps, reading of directory containing DICOM imaging
data, conversion of RTstruct DICOM objects to 3D masks, etc.

5. 'STUDIES': MATLAB codes used for specific studies. To reproduce the
experiments of a given study, please see its corresponding folder.

- 'STSstudy': Ref. [1]. Imaging data and clinical information is
available on The Cancer Imaging Archive (TCIA) website
under the following DOI: <http://dx.doi.org/10.7937/K9/TCIA.2015.7GO2GSKS>.

***************************************************************************
ACKNOWLEDGEMENTS: other software code
- Wei's GLRLM toolbox: Xunkai Wei, Gray Level Run Length Matrix Toolbox
v1.0, Software,Beijing Aeronautical Technology Research Center, 2007.
<http://www.mathworks.com/matlabcentral/fileexchange/17482-gray-level-run-length-matrix-toolbox>
- Q. Li: <http://www.mathworks.com/matlabcentral/fileexchange/23377-ellipsoid-fitting>
- CERR development team: <http://www.cerr.info/>
- Dirk-Jan Kroon (imresize3D.m): <http://www.mathworks.com/matlabcentral/fileexchange/21451-multimodality-non-rigid-demon-algorithm-image-registration/content//functions/imresize3d.m>
- David Reshef and Yakir Reshef: MINE version 1.0.1d <http://www.exploredata.net/>
- DREES development team: <http://www.cerr.info/drees>
- Enric Junqué de Fortuny (fastAUC.cpp): <http://www.mathworks.com/matlabcentral/fileexchange/41258-faster-roc-auc>
- François Beauducel (roundsd.m): <http://www.mathworks.com/matlabcentral/fileexchange/26212-round-with-significant-digits>
- Jos van der Geest (herrorbar.m): <http://www.mathworks.com/matlabcentral/fileexchange/3963-herrorbar>
***************************************************************************

Cite As

Martin Vallières (2020). RADIOMICS (https://www.github.com/mvallieres/radiomics), GitHub. Retrieved .

Comments and Ratings (23)

Hi Bowen,

Please try matlabPATH = fullfile(matlabroot,'bin','matlab');

It should work.

Thanks,
Martin

Bowen Shi

Hello Martin, could you tell me how to set the right 'matlabPATH' in LGG study?
Thanks,
Bowen

Bowen Shi

Spencer

My apologies Martin, I forgot to mention that I am testing the code using only your data (LGG_study; macOS matlab2015a). I was hoping you may have run into the problem before but it seems like not, so perhaps the only way to solve would be extensive debugging.

Thanks,
Spencer

Hi Spencer,
Thanks for your interest in our code package.
However, I must say that it is difficult to answer your question without more context and the actual data that you used. It seems like the X array is not in proper format. Finding out why would require some debugging.
Best,
Martin

Spencer

Hi Martin,

I'm having some issues running the random forest code portion (specifically predictionEstimationRF_LGG.m), input array (X) is in table format but yielding this error:

{Error using ClassificationTree.prepareData (line 469)
X must be a floating-point matrix.

Error in TreeBagger/init (line 1190)
[bagger.X,y,bagger.W,bagger.DataSummary,classSummary] = ...

Error in TreeBagger (line 531)
bagger = init(bagger,X,Y,makeArgs{:});

Error in findBestCost (line 55)
rng(seed), RF =
TreeBagger(nTrees,X,Y,'OOBPrediction','on','Cost',[0,1/testCost(c);1,0],'CategoricalPredictors',cat);

Error in predictionEstimationRF_LGG (line 56)
cost = findBestCost(nTrees,X,Y,cat,testCost,seed);}

Any idea what could be causing this?
Thanks very much for sharing your code btw,
Spencer

Dan Smith

one issue is when I save the SUVmap as a mat file it only gives me a 1 kb file.

Dan Smith

I also had took the PET/ROI.dcms and used CERR to convert to a PTROI.mat file then save the PET and ROI as separate variables/mat files. My goal is to get the SUVs to display corerectly now that this is done

Dan Smith

Thanks I think this is what I was looking for. I converted it to a SUVmap.mat file. I still have two questions. What code can I use to now display an image in SUVmap to check the SUV against the dcm and after your code online, can you explain what function [totSec] etc and after is? Not sure if I need that. Thanks a lot!

Hi Ryan,

In DICOM format, PET images are not stored with SUV units, but most often in units of Bq/ml. When I save the imaging volume in the .mat file, I keep the original DICOM units. If you import the DICOM images into a DICOM viewer software, some of these may directly convert to SUV using the DICOM metadata information. In my code, I use the following function to a posteriori convert to SUV maps (using the original PET data and DICOM metadata): https://github.com/mvallieres/radiomics/blob/master/Utilities/computeSUVmap.m

I hope this helps.

Best,
Martin

Dan Smith

Hello, when i converta DICOM to a mat file I loose the SUV, how can i convert it back to the same as it was in the DICOM file.? I appreciate any help you can provide.

Dear Martin,
Thanks for sharing your code with description and procedure. I downloaded the dataset and moved to the workspace folder. I used ' pathtool ' to Set up the MATLAB path to contain all sub-folders of the folder 'Functions'
of this package (ref. [1] study), and all sub-folders of the folders 'MultivariableModeling', 'NontextureFeatures', 'TextureToolbox' and 'Utilities' of the <https://github.com/mvallieres/radiomics/> package.

The following are the errors,

Error using cd
Cannot CD to DICOM (Name is nonexistent or not a directory).

Error in readAllDICOM_STS (line 60)
cd .., system(['mv ',pathDICOM,' DICOM']); cd('DICOM'); pathDICOM=pwd;

Error in masterScript_STS (line 78)
readAllDICOM_STS([pathWORK,'/Soft-tissue-Sarcoma'],nPatient)

Do you have any suggestion to debug the error.
Thanks,
Swarna

Dear Martin,

Thank you for sharing your code. I am trying to run the master_scripts examples for LGG and STS but it seems to be a problem finding the paths to the files, I am just following the instructions and setting up the MATLAB path to contain all sub-folders.

The message is the following:
Error using cd
Cannot CD to /home/sarahi/Documents/MATLAB/Soft-tissue-Sarcoma (Name is nonexistent or not a
directory).

Do you have any idea of how to solve it or what am I doing wrong? I triyed in two different unix systems macintosh and ubuntu 16.04. using matlab 2015b and 2014a respectively.
Kind regards,
Sarahi.

Hi Marko,

Thanks for your interest in our radiomics package. The single folder containing all the DICOM files should be placed inside the "WORKSPACE" folder, just besides the "masterScript.m" file.

Regards,
Martin

yogi

I am a less experienced Matlab user and do not understand from the description where the analysed images should be placed? In the same folder as m.files?
Is it enough to run one of the m.files in any folder
cheers,
marko

Ralph

Dear MEHRDAD moghbel,

Thanks a lot for your good comments, I appreciate. Thanks also for the link to the vectorized version of the 3D GLCM, I will for sure look to incorporating it into our package.

Kind regards,
Martin

nice package, especially the 3D GLCM, you can use the code at:
https://www.mathworks.com/matlabcentral/fileexchange/22354-glcm-features4-m--vectorized-version-of-glcm-features1-m--with-code-changes-

to add more features to your GLCM stats, just input the 3D GLCM to their function.
very nice work

Dear Marco,

Thanks for your interest in our radiomics package.

I noticed that the header of the getGlobalTextures function was confusing, thanks for noting this. This is corrected now on GitHub. However, if you follow the instructions found here, it will work: https://github.com/mvallieres/radiomics/tree/master/TextureToolbox

Bottom line is that you should use a value of 100 as the second argument of the function getGlobalTextures. This argument is actually not exactly the same as the 'levels' argument of the other texture types, as it refers to the number of bins in the histogram prior to global texture calculations.

Thanks,
Martin Vallières

Hi, when selecting 'global textures' as textType, levels is set to 0 (line 185), so using the getGlobalTextures with levels=0, it returns variance, skewness and kurtosis equal to 0. Is there any way to fix this?

Updates

1.2.0.0

Updating 'Description'

MATLAB Release Compatibility
Created with R2013b
Compatible with any release
Platform Compatibility
Windows macOS Linux

MultivariableModeling

MultivariableModeling/Bootstrapping

MultivariableModeling/LogisticRegression

MultivariableModeling/MINE

MultivariableModeling/Utilities

MultivariableModeling/Utilities/batch

MultivariableModeling/Utilities/fastAUC

MultivariableModeling/Utilities/herrorbar

MultivariableModeling/Utilities/roundsd

NonTextureFeatures

STUDIES/HN_study/Functions/AertsSignature

STUDIES/HN_study/Functions/BATCH_COMPUTATIONS

STUDIES/HN_study/Functions/FEATURES_COMPUTATIONS

STUDIES/HN_study/Functions/FEATURES_COMPUTATIONS/Old

STUDIES/HN_study/Functions/FUSION_PET-CT

STUDIES/HN_study/Functions/FUSION_PET-CT/Old

STUDIES/HN_study/Functions/MULTIVARIABLE_MODELING

STUDIES/HN_study/Functions/PRE-PROCESSING

STUDIES/HN_study/Functions/PRE-PROCESSING/PVEcorrection

STUDIES/HN_study/Functions/PRE-PROCESSING/PVEcorrection/Utilities

STUDIES/HN_study/Functions/PRE-PROCESSING/PVEcorrection/Utilities/nonIsotropicGaussianPSF

STUDIES/HN_study/Functions/READ_DATA

STUDIES/HN_study/Functions/READ_DATA/Archives

STUDIES/HN_study/Functions/READ_DATA/DICOM_Import

STUDIES/HN_study/Functions/UTILITIES

STUDIES/HN_study/Functions/UTILITIES/hatchfill2_r7

STUDIES/HN_study/Functions/UTILITIES/kakearney-legendflex-pkg-98b988e

STUDIES/HN_study/Functions/UTILITIES/kakearney-legendflex-pkg-98b988e/legendflex

STUDIES/HN_study/Functions/UTILITIES/kakearney-legendflex-pkg-98b988e/setgetpos_V1.2

STUDIES/HN_study/Functions/UTILITIES/raacampbell-sigstar-9b21ae3

STUDIES/HN_study/WORKSPACE

STUDIES/LGG_study/Functions

STUDIES/LGG_study/WORKSPACE

STUDIES/STS_study/Functions

STUDIES/STS_study/WORKSPACE

TextureToolbox/Pre-processing

TextureToolbox/Pre-processing/Normalization

TextureToolbox/Pre-processing/Quantization

TextureToolbox/Pre-processing/Wavelet

TextureToolbox/Textures/GLCM

TextureToolbox/Textures/GLRLM

TextureToolbox/Textures/GLRLM/Wei_Toolbox

TextureToolbox/Textures/GLSZM

TextureToolbox/Textures/Global

TextureToolbox/Textures/NGTDM

TextureToolbox/Utilities

Utilities