Skip to content

Quantitative imaging and radiomics — reference

Reference · Dense lookup material — the feature-family table, standardisation citations, tools, and failure modes. Teaching versions live in the lessons.

Three terms

  • Quantitative imaging — objective, reproducible measurements (volumes, diameters, attenuation). Broadest, most defensible.
  • Radiomics — large battery of (mostly texture/shape) features, then modelling.
  • Imaging biomarker — a feature validated against a biological/clinical reference. Most radiomic features are not biomarkers.

The pipeline (chain of choices)

acquisition/reconstruction → segmentation → preprocessing → resampling
→ discretisation → extraction → robustness → model

Pin and report every arrow. TRACE-CT commits configs/pyradiomics_params.yaml (binWidth 25, original, 3D, label 1) + HU clip [-1000, +400] + 1 mm B-spline image / NN mask.

Feature classes (PyRadiomics, eight counting shape-2D/3D)

first-order · shape (3D) · shape (2D) · GLCM · GLRLM · GLSZM · GLDM · NGTDM. Shape from the mask (grey-value independent); the rest from the discretised image.

Texture families

Family Counts Intuition
GLCM grey-level pairs at an offset/direction joint-intensity structure; Joint Entropy ≈ disorder
GLRLM runs of equal grey level along a direction coarse vs fine striation
GLSZM 3D zones of connected equal grey level homogeneous regions; size-zone heterogeneity
GLDM dependence on neighbours within a distance neighbourhood dependence
NGTDM voxel grey level vs local average coarseness/busyness/contrast/complexity/strength

Filtered features

LoG (band-pass at a sigma) and wavelet (frequency bands HHH/LLL/…), recomputed on the filtered image. Shape is excluded (it is a mask property). Wavelet is the least reproducible (IBSI 2 addresses this). Square/sqrt/log/gradient/exponential are occasionally used. 2D vs 3D computation is feature-determining — report which.

Discretisation

X_b = floor(HU / binWidth) - floor(min(HU_ROI) / binWidth) + 1 (PyRadiomics fixed-bin-width: floor division, bins equally spaced from 0, shifted so ROI min = 1; differs from IBSI FBS, which uses ceiling and spaces from the minimum). PyRadiomics default binWidth = 25. Smaller → more levels → higher entropy/finer contrast; larger → coarser → lower. Pin and report; never tune to a metric.

Dependence map (what changes a feature)

(image, mask, geometry, preprocessing): interpolation/resampling, discretisation, segmentation, voxel size, reconstruction/scanner/protocol.

Robustness

  • Repeatability (same scanner/session) vs reproducibility (across scanners/sites). RIDER same-day repeats measure repeatability.
  • ICC / CCC for agreement; keep ≥ ~0.85 as a convention (report the distribution). Filter inside CV.
  • Perturbation — nudge mask/params; unstable features are not biomarkers.

Harmonisation — ComBat limits

Assumes batch effects independent of outcome; fit on training only (else leakage); harmonises distributions, not physics; variants differ. Must be inside CV along with scaling/feature-selection/robustness-filter.

Standardisation stack

  • IBSI 1 — Zwanenburg et al., Radiology 2020;295(2):328-338, PMID 32154773, doi:10.1148/radiol.2020191145. 169 standardized features + reference processing workflow.
  • IBSI 2 — Whybra et al., Radiology 2024, doi:10.1148/radiol.231319. Standardised filters (LoG, wavelet, Riesz).
  • QIBA (RSNA, est. 2007; rsna.org/QIBA) — measurement-value framework: a Profile makes a performance Claim (bias + repeatability) for a biomarker under a protocol.
  • CLEAR — Kocak et al., Insights Imaging 2023;14:75, PMID 37142815. Radiomics reporting (58 items, ESR/EuSoMII-endorsed; CLEAR-E3 + METRICS).

Relationship: QIBA (measurement value) → IBSI 1/2 (computation) → CLEAR (reporting).

Tools

  • PyRadiomics — the implementation (image type, binWidth, resampling, feature classes, filter params via YAML). IBSI-style, with documented deviations — read the feature notes when strict cross-software reproducibility matters.
  • SlicerRadiomics — PyRadiomics as a 3D Slicer extension (build intuition interactively).
  • IBSI — the standardisation layer (not software).
  • TRACE-CT uses a committed PyRadiomics YAML.

What usually goes wrong

  • Calling features biomarkers; unreported binWidth/spacing/interpolation; pooling reconstructions; linear-interpolated masks (Ch. 2); feature selection before splitting; trusting p >> n because CV looks good; confusing stable with predictive; applying ComBat globally (leakage) or when batch correlates with outcome.

TRACE-CT connection (read-only)

  • Extraction: scripts/rider_radiomics_extraction.py (CT → SEG decode → 1 mm B-spline → NN mask → HU clip → PyRadiomics original_glcm_JointEntropy).
  • Params: configs/pyradiomics_params.yaml.
  • Determinism: check_determinism=True (feature agrees to 1e-6); compare_radiomics_runs.py.
  • Reconstruction as a variable: classify_source_role() tags lung_1_25mm vs standard_5_0mm.
  • Test–retest: RIDER same-day repeats paired in preflight → CCC stability.

Go deeper

  • IBSI 1 (PMID 32154773), IBSI 2 (doi:10.1148/radiol.231319), QIBA (rsna.org/QIBA), CLEAR (PMID 37142815).
  • PyRadiomics docs (image types, feature classes, the parameter file, IBSI compliance).
  • Lambin et al. (radiomics origin) + a modern reproducibility critique, read together.

What to retain (chapter summary)

  1. Pipeline = chain of choices; pin and report each (binWidth, spacing, interpolation, kernel, 2D/3D).
  2. Feature classes: first-order, shape, GLCM/GLRLM/GLSZM/GLDM/NGTDM, + filtered (LoG/wavelet). Names ≠ biomarkers; the battery is correlated and unstable.
  3. Discretisation is the texture feature; wavelet is least reproducible (IBSI 2).
  4. Repeatability (same scan) vs reproducibility (across scanners); ICC/CCC; robustness-filter inside CV.
  5. ComBat harmonises distributions, not physics — mind its assumptions and leakage.
  6. Standardisation stack: QIBA (value) → IBSI 1/2 (computation) → CLEAR (reporting).