Traditional Radiomics

Config: feature_types includes traditional

Output: raw_image_radiomics.csv

Definition

PyRadiomics features extracted from each preprocessed image modality within a tumor ROI. The ROI is a binary mask derived from the habitat label map (voxels with label \(\ge 1\) → foreground); anatomical masks/ files are not used. Habitat labels are otherwise ignored—features reflect intratumoral signal and texture on the raw (multi-delay) images.

Implementation

  • Parameter file: params_file_of_non_habitat (optional; bundled roi preset → habit/resources/radiomics/parameter.yaml when omitted)

  • Code: habit/compat/engines/habitat_extraction/habitat_features/builtin_plugins.py (TraditionalRadiomicsPlugin) → habitat_radiomics.py

Output columns

Column pattern

Description

{pyradiomics_feature}_of_{modality}

One column per PyRadiomics feature × image modality under the subject folder

(excluded)

Columns whose names contain diagnostic are dropped before export

Feature definitions

HABIT extracts first-order, GLCM, GLRLM, GLSZM, GLDM (IBSI NGLDM), NGTDM, and 3-D shape features using the PyRadiomics 3.1 formulas, which follow the Image Biomarker Standardisation Initiative (IBSI; Zwanenburg et al., Radiology 2020). Texture aggregation is IBSI 3-D averaged (mean over the 13 unique 3-D angles), not 3-D merged. The same definitions are used by habit radiomics, traditional / each_habitat / whole_habitat feature types, supervoxel_radiomics, voxel_radiomics, and the native C path.

PyRadiomics alignment

ROI-level radiomics, voxel-level radiomics, and 3-D shape all match PyRadiomics 3.1 FeatureExtractor.execute() on the same image, mask, label, and settings (binWidth, voxelArrayShift, distances, …).

ROI-level (habit radiomics / traditional, each_habitat, whole_habitat, supervoxel_radiomics with default union_bin=false): first-order, GLCM, GLRLM, GLSZM, GLDM, NGTDM. traditional / whole_habitat call execute() directly. each_habitat and default supervoxel_radiomics use the native C path with per-label bins; vs execute() they agree to about 1e-10 relative (Energy / TotalEnergy at floating-point ULP).

Shape (ROI only): original_shape_* from PyRadiomics execute() / computeShape. Shape is a whole-ROI mesh quantity; there is no per-voxel shape map.

Voxel-level (voxel_radiomics): first-order and texture via execute(..., voxelBased=True). The CPU path is that extractor (pre-crop does not change values). Torch / CUDA uses the same formulas; texture vs CPU sits at about \(10^{-15}\), first-order percentiles at about \(10^{-8}\) (quantile algorithm). Set torch_dtype: float64 for the closest CPU match.

Gates: tests/kernels/test_supervoxel_native_parity.py, tests/kernels/test_ibsi_digital_phantom.py, tests/kernels/test_*_gpu_parity.py.

These are not PyRadiomics and must not be compared to execute(): graph, msi, ith_score, volume, local_entropy, and supervoxel mean / std / percentile.

supervoxel_radiomics with union_bin=true is a different discretization (one shared gray scale on the union mask). JointAverage / Autocorrelation / HighGrayLevel* will not match per-ROI execute(); that is intended, not a formula bug.

Two conventions must be read with the IBSI manual, not against it:

  • Kurtosis is Pearson kurtosis. IBSI reports excess kurtosis (Fisher, normal distribution = 0). HABIT / PyRadiomics = IBSI + 3.

  • HABIT does not extract IBSI families it does not implement: GLDZM, local-intensity peak, intensity-volume histogram, Moran’s I, or Geary’s C. Deprecated PyRadiomics shape names (Compactness 1/2, Spherical disproportion) are not computed.

IBSI-1 Phase 1 digital phantom

The table uses the official IBSI digital phantom (5×4×4 voxels, 2 mm isotropic, 74-voxel ROI; intensities include 1, 3, 4, 6, 9) from theibsi/data_sets (CC-BY-4.0) and the published dig. phantom / 3-D averaged (or 3-D for GLSZM / NGTDM / NGLDM) reference values in the IBSI reference manual (Image features). Settings match Phase 1: no interpolation, binWidth=1, symmetricalGLCM=True, distances=[1], NGLDM coarseness \(\alpha=0\), voxelArrayShift=0.

HABIT is the native C + CPU-formula value when that family is in the fast path; shape is the PyRadiomics execute value used by traditional_radiomics. HABIT and PyRadiomics columns match. Remaining gaps versus the published IBSI figures are the Kurtosis convention (above) or the few significant digits in the IBSI manual (for example 556 vs 556.333). A regression test loads the same NIfTI pair: tests/kernels/test_ibsi_digital_phantom.py.

IBSI-1 Phase 1 digital phantom (3-D averaged texture)

Family

Feature

IBSI ID

IBSI

HABIT

PyRadiomics

Note

shape

MeshVolume

RNU0

556

556.3333333

556.3333333

shape via PyRadiomics; IBSI rounded

shape

VoxelVolume

YEKZ

592

592

592

shape via PyRadiomics (traditional path)

shape

SurfaceArea

C0JK

388

388.0706299

388.0706299

shape via PyRadiomics; IBSI rounded

shape

SurfaceVolumeRatio

2PR5

0.698

0.697550563

0.697550563

shape via PyRadiomics (traditional path)

shape

Sphericity

QCFX

0.843

0.8429401437

0.8429401437

shape via PyRadiomics (traditional path)

shape

Maximum3DDiameter

L0JK

13.1

13.11487705

13.11487705

shape via PyRadiomics (traditional path)

firstorder

Mean

Q4LE

2.15

2.148648649

2.148648649

firstorder

Variance

ECT3

3.05

3.045471147

3.045471147

firstorder

Skewness

KE2A

1.08

1.083820723

1.083820723

firstorder

Kurtosis

IPH6

-0.355

2.645379519

2.645379519

Pearson kurtosis; IBSI is excess (HABIT = IBSI + 3)

firstorder

Median

Y12H

1

1

1

firstorder

Minimum

1GSF

1

1

1

firstorder

10Percentile

QG58

1

1

1

firstorder

90Percentile

8DWT

4

4

4

firstorder

Maximum

84IY

6

6

6

firstorder

InterquartileRange

SALO

3

3

3

firstorder

Range

2OJQ

5

5

5

firstorder

MeanAbsoluteDeviation

4FUA

1.55

1.552227904

1.552227904

firstorder

RobustMeanAbsoluteDeviation

1128

1.11

1.113833816

1.113833816

firstorder

Energy

N8CA

567

567

567

firstorder

RootMeanSquared

5ZWQ

2.77

2.768061084

2.768061084

firstorder

Entropy

TLU2

1.27

1.265611556

1.265611556

firstorder

Uniformity

BJ5W

0.512

0.5124178232

0.5124178232

glcm

MaximumProbability

GYBY

0.503

0.5028111708

0.5028111708

glcm

JointAverage

60VM

2.14

2.142995006

2.142995006

glcm

SumSquares

UR99

3.1

3.099320789

3.099320789

glcm

JointEntropy

TU9B

2.4

2.399711278

2.399711278

glcm

DifferenceAverage

TF7R

1.43

1.430981176

1.430981176

glcm

DifferenceVariance

D3YU

3.06

3.056282622

3.056282622

glcm

DifferenceEntropy

NTRS

1.56

1.562733277

1.562733277

glcm

SumAverage

ZGXS

4.29

4.285990012

4.285990012

glcm

SumEntropy

P6QZ

1.92

1.922606453

1.922606453

glcm

JointEnergy

8ZQL

0.303

0.3029752503

0.3029752503

glcm

Contrast

ACUI

5.32

5.324479994

5.324479994

glcm

Id

IB1Z

0.677

0.6766151333

0.6766151333

glcm

Idn

NDRX

0.851

0.8506785598

0.8506785598

glcm

Idm

WF0Z

0.618

0.6177393638

0.6177393638

glcm

Idmn

1QCO

0.898

0.8984432172

0.8984432172

glcm

InverseVariance

E8JP

0.0604

0.06041630527

0.06041630527

glcm

Correlation

NI2N

0.157

0.1573500301

0.1573500301

glcm

Autocorrelation

QWB0

5.06

5.05543601

5.05543601

glcm

ClusterTendency

DG8W

7.07

7.072803163

7.072803163

glcm

ClusterShade

7NFM

16.6

16.64409305

16.64409305

glcm

ClusterProminence

AE86

145

144.7033814

144.7033814

IBSI rounded

glcm

Imc1

R8DG

-0.157

-0.1568482348

-0.1568482348

glcm

Imc2

JN9H

0.52

0.5195878631

0.5195878631

glrlm

ShortRunEmphasis

22OV

0.705

0.7052347296

0.7052347296

glrlm

LongRunEmphasis

W4KF

3.06

3.061120906

3.061120906

glrlm

LowGrayLevelRunEmphasis

V3SW

0.603

0.6029798426

0.6029798426

glrlm

HighGrayLevelRunEmphasis

G3QZ

9.7

9.69762412

9.69762412

glrlm

ShortRunLowGrayLevelEmphasis

HTZT

0.352

0.351580276

0.351580276

glrlm

ShortRunHighGrayLevelEmphasis

GD3A

8.54

8.539655587

8.539655587

glrlm

LongRunLowGrayLevelEmphasis

IVPO

2.39

2.39096762

2.39096762

glrlm

LongRunHighGrayLevelEmphasis

3KUM

17.6

17.56618866

17.56618866

glrlm

GrayLevelNonUniformity

R5YN

21.8

21.77620074

21.77620074

glrlm

GrayLevelNonUniformityNormalized

OVBL

0.43

0.4301751561

0.4301751561

glrlm

RunLengthNonUniformity

W92Y

26.9

26.8533514

26.8533514

glrlm

RunLengthNonUniformityNormalized

IC23

0.513

0.5127708186

0.5127708186

glrlm

RunPercentage

9ZK5

0.68

0.6798336798

0.6798336798

glrlm

GrayLevelVariance

8CE5

3.46

3.464978728

3.464978728

glrlm

RunVariance

SXLW

0.574

0.573542283

0.573542283

glrlm

RunEntropy

HJ9O

2.43

2.432074134

2.432074134

glszm

LargeAreaEmphasis

48P8

550

550

550

glszm

LowGrayLevelZoneEmphasis

XMSY

0.253

0.2527777778

0.2527777778

glszm

HighGrayLevelZoneEmphasis

5GN9

15.6

15.6

15.6

glszm

SmallAreaLowGrayLevelEmphasis

5RAI

0.0256

0.02560437642

0.02560437642

glszm

SmallAreaHighGrayLevelEmphasis

HW1V

2.76

2.763345306

2.763345306

glszm

LargeAreaLowGrayLevelEmphasis

YH51

503

502.7944444

502.7944444

IBSI rounded

glszm

LargeAreaHighGrayLevelEmphasis

J17V

1490

1494.6

1494.6

IBSI rounded

glszm

GrayLevelNonUniformity

JNSA

1.4

1.4

1.4

glszm

GrayLevelNonUniformityNormalized

Y1RO

0.28

0.28

0.28

glszm

SizeZoneNonUniformity

4JP3

1

1

1

glszm

SizeZoneNonUniformityNormalized

VB3A

0.2

0.2

0.2

glszm

ZonePercentage

P30P

0.0676

0.06756756757

0.06756756757

glszm

GrayLevelVariance

BYLV

2.64

2.64

2.64

glszm

ZoneVariance

3NSA

331

330.96

330.96

glszm

ZoneEntropy

GU8N

2.32

2.321928095

2.321928095

ngtdm

Coarseness

QCDE

0.0296

0.0296042257

0.0296042257

ngtdm

Contrast

65HE

0.584

0.5837109156

0.5837109156

ngtdm

Busyness

NQ30

6.54

6.543568457

6.543568457

ngtdm

Complexity

HDEZ

13.5

13.5397636

13.5397636

ngtdm

Strength

1X9X

0.763

0.7634954331

0.7634954331

gldm

SmallDependenceEmphasis

SODN

0.045

0.04499635706

0.04499635706

gldm

LargeDependenceEmphasis

IMOQ

109

109

109

gldm

LowGrayLevelEmphasis

TL9H

0.693

0.6933183183

0.6933183183

gldm

HighGrayLevelEmphasis

OAE7

7.66

7.662162162

7.662162162

gldm

SmallDependenceLowGrayLevelEmphasis

EQ3F

0.00963

0.009630607594

0.009630607594

gldm

SmallDependenceHighGrayLevelEmphasis

JA6D

0.736

0.7361715884

0.7361715884

gldm

LargeDependenceLowGrayLevelEmphasis

NBZI

102

102.4508258

102.4508258

IBSI rounded

gldm

LargeDependenceHighGrayLevelEmphasis

9QMG

235

234.9864865

234.9864865

gldm

GrayLevelNonUniformity

FP8K

37.9

37.91891892

37.91891892

gldm

DependenceNonUniformity

Z87G

4.86

4.864864865

4.864864865

gldm

DependenceNonUniformityNormalized

OKJI

0.0657

0.06574141709

0.06574141709

gldm

DependenceEntropy

FCBV

4.4

4.40373838

4.40373838

glszm

SmallAreaEmphasis

P001

0.255

0.2551820408

0.2551820408

See PyRadiomics Feature Reference for per-feature formulas.