Skip to content

Global radiomics feature calculation parameters

Aditya P. Apte edited this page Jul 8, 2018 · 28 revisions

The parameters supplied to the global radiomics feature calculation are supplied via the paramS Matlab data structure. paramS has 5 fields containing the parameters required for calculating the first order, higher order, shape, peak/valley and IVH based features.

First, initialize Matlab data structures for each type of global radiomics feature

firstOrderParamsS = struct;  
higherOrderParamS = struct;
shapeParamS = struct;
peakValleyParamS = struct;
ivhParamS = struct;
whichFeatS = struct;

The next task is to populate the data structures defined above with parameter fields and values.

  • First order feature parameters:

The only parameter required is the offset to calculate the rms, energy and total energy features. The image intensities are offset by this value before computing the RMS, Energy and TotalEnergy features. Typically, set to 1000 for CT scans and 0 for other modalities with (+)ve image intensities.

paramS.firstOrderParamS.offsetForEnergy = 1000; % 0 for PET SUVs.
paramS.firstOrderParamS.binWidthEntropy = 5; % binwidth to calculate entropy. Typically, the same value is used for discretizing image for higher order (texture) calculation.
  • Higher order feature parameters:
higherOrderParamS.minIntensity = []; % minimum clipping intensity. Values less than this are clipped to this value.
higherOrderParamS.maxIntensity = []; % maximum clipping intensity. Values greater than this are clipped to this value.
higherOrderParamS.minIntensityCutoff = -50; % voxels with intensity lower than this value are ignored. 
higherOrderParamS.maxIntensityCutoff = 200; % voxels with intensity greater than this value are ignored. 
higherOrderParamS.numGrLevels = []; % number of gray levels to use. Leave empty to use a fixed binwidth.
higherOrderParamS.binwidth = 5; % binwidth to discretize an image.
higherOrderParamS.neighborVoxelOffset = 5; % voxel neighbor distance for Haralick texture calculation.
higherOrderParamS.patchRadius2dV = [2 2 0]; % patch radius for NGTDM and NGLDM features.
higherOrderParamS.imgDiffThresh = 0; % difference threshold for NGTDM and NGLDM features.
higherOrderParamS.patchRadius3dV = [1 1 1]; % patch radius for NGTDM and NGLDM features.
paramS.higherOrderParamS = higherOrderParamS;
  • Shape feature parameters:
shapeParamS.rcsV = []; % [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.
paramS.shapeParamS = shapeParamS;
  • Peak/valley feature parameters:
peakValleyParamS.peakRadius = [2 2 0]; % neighborhood patch radius for averaging intensities.
paramS.peakValleyParamS = peakValleyParamS;
  • IVH feature parameters:
ivhParamS.xAbsForVxV = -140:10:100; % CT, 0:2:28; % PET. Vector of absolute intensities.
ivhParamS.xForIxV = 10:10:90; % Vector of percentage volumes
ivhParamS.xAbsForIxV = 10:20:200; % Vector of absolute volumes [cc]
ivhParamS.xForVxV = 10:10:90; % Vector of percent intensity cutoff
paramS.ivhParamS = ivhParamS;
  • Types of features to calculate: These are samlpe flags for feature calculation using the 2d neighborhood.
whichFeatS.shape = 1;
whichFeatS.harFeat2Ddir = 1;
whichFeatS.harFeat2Dcomb = 0;
whichFeatS.harFeat3Ddir = 0;
whichFeatS.harFeat3Dcomb = 0;
whichFeatS.rlmFeat2Ddir = 1;
whichFeatS.rlmFeat2Dcomb = 0;
whichFeatS.rlmFeat3Ddir = 0;
whichFeatS.rlmFeat3Dcomb = 0;
whichFeatS.ngtdmFeatures2d = 1;
whichFeatS.ngtdmFeatures3d = 0;
whichFeatS.ngldmFeatures2d = 1;
whichFeatS.ngldmFeatures3d = 0;
whichFeatS.szmFeature2d = 1;
whichFeatS.szmFeature3d = 0;
whichFeatS.firstOrder = 1;
whichFeatS.ivh = 0;
whichFeatS.peakValley = 1;
paramS.whichFeatS = whichFeatS;
  • The toQuantizeFlag flag specifies whether to quantize the input scan
paramS.toQuantizeFlag = 1; % 1: yes quantize, 0: don't quantize, the input scan is already quantized.
Clone this wiki locally