Package: pyradiomics
pyradiomics v3.1.0Build StatusLinux / MacOSWindowsRadiomics feature extraction in PythonThis is an open-source python package for the extraction of Radiomics features from medical imaging.With this package we aim to establish a reference standard for Radiomic Analysis, and provide a tested and maintained
open-source platform for easy and reproducible Radiomic Feature extraction. By doing so, we hope to increase awareness
of radiomic capabilities and expand the community.The platform supports both the feature extraction in 2D and 3D and can be used to calculate single values per feature
for a region of interest ("segment-based") or to generate feature maps ("voxel-based").Not intended for clinical use.If you publish any work which uses this package, please cite the following publication:van Griethuysen, J. J. M., Fedorov, A., Parmar, C., Hosny, A., Aucoin, N., Narayan, V., Beets-Tan, R. G. H.,
Fillion-Robin, J. C., Pieper, S.,  Aerts, H. J. W. L. (2017). Computational Radiomics System to Decode the Radiographic
Phenotype. Cancer Research, 77(21), e104–e107.https://doi.org/10.1158/0008-5472.CAN-17-0339Join the Community!Please join theRadiomics community section of the 3D Slicer Discourse.Feature ClassesCurrently supports the following feature classes:First Order StatisticsShape-based (2D and 3D)Gray Level Co-occurrence Matrix (GLCM)Gray Level Run Length Matrix (GLRLM)Gray Level Size Zone Matrix (GLSZM)Gray Level Dependece Matrix (GLDM)Neighboring Gray Tone Difference Matrix (NGTDM)Filter ClassesAside 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)SquareSquare RootLogarithmExponentialGradient (Magnitude)Local Binary Pattern (LBP) 2D / 3DSupporting reproducible extractionAside 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.DocumentationFor more information, see the sphinx generated documentation availablehere.Alternatively, you can generate the documentation by checking out the master branch and running from the root directory:python setup.py build_sphinxThe documentation can then be viewed in a browser by openingPACKAGE_ROOT\build\sphinx\html\index.html.Furthermore, an instruction video is availablehere.InstallationPyRadiomics is OS independent and compatible with Python >= 3.5. Pre-built binaries are available on
PyPi and Conda. To install PyRadiomics, ensure you have python
installed and run:`python -m pip install pyradiomics`Detailed installation instructions, as well as instructions for building PyRadiomics from source, are available in thedocumentation.DockerPyRadiomics also supportsDockers.  Currently, 2 dockers are available:The first one is aJupyter notebookwith PyRadiomics pre-installed with example Notebooks.To get the Docker:docker pull radiomics/pyradiomics:latestTheradiomics/notebookDocker has an exposed volume (/data) that can be mapped to the host system directory.  For example, to mount the current directory:docker run --rm -it --publish 8888:8888 -v `pwd`:/data radiomics/notebookor for a less secure notebook, skip the randomly generated tokendocker run --rm -it --publish 8888:8888 -v `pwd`:/data radiomics/notebook start-notebook.sh --NotebookApp.token=''and open the local webpage athttp://localhost:8888/with the current directory athttp://localhost:8888/tree/data.The second is a docker which exposes the PyRadiomics CLI interface. To get the CLI-Docker:docker pull radiomics/pyradiomics:CLIYou can then use the PyRadiomics CLI as follows:docker run radiomics/pyradiomics:CLI --helpFor more information on using docker, seehereUsagePyRadiomics can be easily used in a Python script through thefeatureextractormodule. Furthermore, PyRadiomics provides a commandline script,pyradiomics, for both single image extraction and
batchprocessing. Finally, a convenient front-end interface is provided as the 'Radiomics'
extension for 3D Slicer, availablehere.3rd-party packages used in pyradiomics:SimpleITK (Image loading and preprocessing)numpy (Feature calculation)PyWavelets (Wavelet filter)pykwalify (Enabling yaml parameters file checking)six (Python 3 Compatibility)scipy (Only for LBP filter, install separately to enable this filter)scikit-image (Only for LBP filter, install separately to enable this filter)trimesh (Only for LBP filter, install separately to enable this filter)See also therequirements file.3D SlicerPyRadiomics is also available as anextensionto3D Slicer.
Download and install the 3D slicernightly build, the extension is then available in the
extension manager under "SlicerRadiomics".LicenseThis package is covered by the open source3-clause BSD License.DevelopersJoost van Griethuysen1,3,4Andriy Fedorov2Nicole Aucoin2Jean-Christophe Fillion-Robin5Ahmed Hosny1Steve Pieper6Hugo Aerts (PI)1,21Department 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,6IsomicsContactWe are happy to help you with any questions. Please contact us on theRadiomics community section of the 3D Slicer Discourse.We welcome contributions to PyRadiomics. Please read thecontributing guidelineson how to
contribute to PyRadiomics.This work was supported in part by the US National Cancer Institute grants:
U24CA194354 - QUANTITATIVE RADIOMICS SYSTEM DECODING THE TUMOR PHENOTYPE and U01CA190234 - TUMOR GENOTYPE AND RADIOMIC PHENOTYPE IN LUNG CANCER