This is an open-source python package for the extraction of Radiomics features from 2D and 3D images and binary masks.
Image loading and preprocessing (e.g. resampling and cropping) are first done using SimpleITK
.
Then, loaded data are converted into numpy arrays for further calculation using feature classes
outlined below.
Currently supports the following feature classes:
- First Order Statistics
- Shape-based
- Gray Level Cooccurence Matrix (GLCM)
- Gray Level Run Length Matrix (GLRLM)
- Gray Level Size Zone Matrix (GLSZM)
Aside from the feature classes, there are also some built-in optional filters:
- Laplacian of Gaussian (LoG, based on SimpleITK functionality)
- Wavelet (using the PyWavelets package)
- Square
- Square Root
- Logarithm
- Exponential
Aside from calculating features, the pyradiomics package includes provenance information in the output. This information contains information on used image and mask, as well as applied settings and filters, thereby enabling fully reproducible feature extraction.
For more information, see the sphinx generated documentation available here.
Alternatively, you can generate the documentation by checking out the master branch and running from the root directory:
python setup.py build_sphinx
The documentation can then be viewed in a browser by opening PACKAGE_ROOT\build\sphinx\html\index.html
.
Furthermore, an instruction video is available here.
PyRadiomics is OS independent and compatible with both Python 2.7 and Python >=3.4. To install this package on unix like systems run the following commands from the root directory:
sudo python -m pip install -r requirements.txt
sudo python setup.py install
Detailed installation instructions, as well as instructions for installing PyRadiomics on Windows are available in the documentation.
PyRadiomics can be easily used in a Python script through the featureextractor
module. Furthermore, PyRadiomics provides two commandline scripts, pyradiomics
and pyradiomicsbatch
, for single image extraction and batchprocessing, respectively.
Finally, a convenient front-end interface is provided as the 'Radiomics'
extension for 3D Slicer, available here.
If you publish any work which uses this package, please cite the following publication:
Joost J.M. van Griethuysen et al, “Computational Radiomics System to Decode the Radiographic Phenotype”; Submitted
- SimpleITK
- numpy
- PyWavelets (Wavelet filter)
- pykwalify (Enabling yaml parameters file checking)
- tqdm (Progressbar)
- sphinx (Generating documentation)
- sphinx_rtd_theme (Template for documentation)
- nose-parameterized (Testing)
See also the requirements file.
This package is covered by the 3D Slicer License.
This work was supported in part by the US National Cancer Institute grant 5U24CA194354, QUANTITATIVE RADIOMICS SYSTEM DECODING THE TUMOR PHENOTYPE.
- Joost van Griethuysen1,3,4
- Andriy Fedorov2
- Nicole Aucoin2
- Jean-Christophe Fillion-Robin5
- Ahmed Hosny1
- Steve Pieper6
- Hugo Aerts (PI)1,2
1Department of Radiation Oncology, Dana-Farber Cancer Institute, Brigham and Women's Hospital, Harvard Medical School, Boston, MA, 2Department of Radiology, Brigham and Women's Hospital, Harvard Medical School, Boston, MA, 3Department of Radiology, Netherlands Cancer Institute, Amsterdam, The Netherlands, 4GROW-School for Oncology and Developmental Biology, Maastricht University Medical Center, Maastricht, The Netherlands, 5Kitware, 6Isomics
We are happy to help you with any questions. Please contact us on the pyradiomics email list.
We welcome contributions to PyRadiomics. Please read the contributing guidelines on how to contribute to PyRadiomics.