Global radiomics feature calculation parameters - cerr/CERR GitHub Wiki

Parameters used for radiomics calculation are supplied via a user-defined JSON settings file. Users can create copies of template JSON files and modify settings as needed.
The following sections describe the various elements of the settings file in detail.

Structure names

Names of structures used in feature extraction are specified via the structures field. Users can standardize structure names by using the CERR+ tool.

Example
Defining two input structures, roi1 and roi2

"structures": ["roi1","roi2"]

Image types

Radiomic features can be calculated using the original scanned image or derived images. Supported image types include Original as well as:

The pages linked above provide descriptions of individual filter settings and sample configurations.

Example 1. Feature extraction from Original and Wavelet image types

"imageType": {
  		  "Original": {},
		  "Wavelets": {
				"Wavelets": "Haar",
				"Index": "",
				"Direction": "HLH"
			      }

              }  

Example 2 It is possible to specify multiple settings for the same filter type as a list of parameter dictionaries. For example, to extract radiomics from different directional filtered wavelet images, e.g.:

"imageType": {
  		  "Original": {},
		  "Wavelets": [{
				"Wavelets": "Haar",
				"Index": "",
				"Direction": "HLH"
			      },
                              {
				"Wavelets": "Haar",
				"Index": "",
				"Direction": "HHH"
			      }]

	    }

Settings for radiomic feature extraction

Pre-processing settings including padding, resampling and perturbation are specified within the settings dictionary. The perturbation dictionary specifies the sequence of perturbation chains (Zwanenburg et al) to be applied before feature extraction. This dictionary can be left empty in case no perturbation is to be applied. Note that this dictionary should be left empty for radiomics extraction for outcomes modeling.

This section additionally supports settings specific to different radiomics feature classes, i.e, firstOrder, texture, shape, peakValley, and ivh. Supported configurations are described below.

"settings": {	

    "padding": { # If left empty, the ROI is padded through expansion by [5,5,5] voxels
                "method": "expand",   # Padding method. Supported options include "expand","padzeros", 
                                      # "circular","replicate","symmetric", and "none".
                "size": [5,5,5]       # Amount of padding [no. rows, no. cols, no. slices] 
              }, 	  
 
    "resample": { # Leave empty if no resampling is applied
		 "resolutionXCm": 0.1, # resampling resolution in L-R
		 "resolutionYCm": 0.1, # resampling resolution in A-P
		 "resolutionZCm": 0.1, # resampling resolution in S-I
		 "interpMethod": "linear" # Interpolation method. Supported options 
                                        # include "linear", "cubic", "neareast", "spline", "makima" and "sinc".
                                        # **NOTE**: Masks are resampled using the "linear" method 
                                        # and binarized using threshold=0.5.
	         },
   
   "perturbation": { # Leave empty if no perturbation is required
 	            "sequence": "RV", # any combination of RVCT
	            "angle2DStdDeg": 7, # std dev to sample angle from normal distribution.
		    "volScaleStdFraction": 0.01, # std dev to sample volume scale from normal distribution.
		    "superPixVol": 0.005 # volume of super pixel in cc
		   },

    "firstOrder" :{ 
		   "binWidthEntropy": 25, #Used to discretize image for entropy calculation.
		   "offsetForEnergy": 0 # Typically, set to 1000 for CT scans and 0 for other modalities with
                                        # (+)ve image intensities.
                  },
    "texture" :{ 
                 "numGrLevels": [], # number of gray levels to use. Leave empty to use a fixed binwidth.
	         "binwidth": 25, # binwidth to discretize an image.
                 "minSegThreshold": -500, # minimum segmentation threshold. Segmentation mask is
                                          # adjusted to exclude voxels below this value.
                 "maxSegThreshold": 1000, # maximum segmentation threshold. Segmentation mask is   
                                          # adjusted to exclude voxels above this value.  
		 "minClipIntensity": -500, # minimum clipping intensity. Values less than this are clipped  
                                           # to this value. Note: Clipping is also used to ensure identical bins (same start & end  
                                           # intensities across a cohort). Leave empty to use min intensity from the dataset.  
		 "maxClipIntensity": 1000, # maximum clipping intensity. Values greater than this are clipped  
                                           # to this value.  Note: Clipping is also used to ensure identical bins (same start & end  
                                           # intensities across a cohort). Leave empty to use max intensity from the dataset.  
                 "directionality": "2D", # "2D" (4 directional offsets are used - 0,45,90,135)   
                                         #or "3D" (13 directional offsets are used)  
		 "avgType": "feature", # "feature" (average of features from different offsets)
                                       #  or "textureMatrix" (feature resulting from texture matrix 
                                       # averaged across different offsets)
		 "voxelOffset": 1, # voxel neighbor distance for Haralick texture calculation.
		 "patchRadiusVox": [3, 3, 3], # patch radius for NGTDM and NGLDM features. 
                                              # Resulting patches are of size 2*patchRadiusVox + 1
		 "imgDiffThresh": 10 # difference threshold for NGTDM and NGLDM features.
                },

    "shape" :{ 
	      "rcs": [] # [numRows, numCols, numSlics] to resample scan for shape calculation.. 
                        # This should be chosen to create a fine enough mesh without too much
                        # computational overload. Leave empty to use the resolution same as that of the image.
             },

    "peakValley" :{ 
		   "peakRadius": [2, 2, 0], # neighborhood patch radius for averaging intensities.
		   "units": "vox"  # Supported options: "vox" (voxels), "cm" (physical units).	
                  },

    "ivh" :{ 
	    "binwidth": 0.1,
	    "xForIxCc": [200,300,400], # Vector of absolute intensities (e.g. -50:20:100 for    CT, 0:2:28; % PET SUV).
            "xForIxPct": [20, 30, 40], # Vector of percentage volumes
            "xForVxAbs": [0, 10, 30], # Vector of absolute volumes [cc]
	    "xForVxPct": [10, 30, 30] # Vector of percent intensity cutoff			    
           }		   	

       }

Features

Classes of of features to be extracted are specified via the featureClass dictionary. The dictionary for each feature class contains the featureList field which enumerates the required features. featureList can be set to all to extract all available features for a given class.

"featureClass":{
			

        "shape": {
	           "featureList": ["compactness","sphericity"]
                 },

        "firstOrder": {
			"featureList": ["totalEnergy"]
	              },

	"glcm": {
	         "featureList": ["all"]
                },

	"glrlm": {
		   "featureList": ["RLN"]                                 
	         },

	"glszm": {
			          
                 },

	"gldm": {
			    
                },

	"gtdm": {			    	
                                  
	         }

               }

Sample settings

Image modality Filter types Sample settings
CT Original paramsForCtRadiomics.json
CT Original, Wavelets, Mean, LoG, Laws Energy, Gabor paramsForCtRadiomicsWithFilters.json
MR Original, Wavelets, Mean, LoG, Laws Energy, Gabor paramsForMRradiomicsWithFilters.json

Citing CERR Radiomics

  • Apte AP, Iyer A, Crispin-Ortuzar M, Pandya R, V.van Dijk L, Spezi E, Thor M, Um H, Veeraraghavan H, Oh JH, Shukla-Dave A, Deasy JO (2018). Technical Note: Extension of CERR for computational radiomics: a comprehensive MATLAB platform for reproducible radiomics research, Med. Phys., 45 (8), pp. 3713–3720, August 2018. PMID: 29896896
  • Iyer, A., E. LoCastro, H. Veeraraghavan, J. Deasy, and A. Apte (2022). IBSI-Compatible Convolutional Image Texture Filters in CERR, Med. Phys. 49 (6), pp. E686.