Concept · 1 paper · updated 2026-11-08
Radiomics
Quantitative features computed from medical images, such as CT tumour outlines. The key question is feature robustness: which features stay stable under acquisition and segmentation changes. Choose between test-retest scans and single-scan image perturbation, and check results on your own cohort.
medical-imagingradiomicsfeature-robustnessevaluation
Markdown3 min read
AI-compiled overview, updated 2026-11-08, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
Overview
Radiomics turns a medical scan of a region, such as a tumour, into a long list of numbers describing its size, intensity and texture 1806.06719 §1. A model built on these numbers generalises poorly when some of them change with patient positioning, acquisition or segmentation 1806.06719 §1. The invariant the variants below try to check is therefore: a feature is only usable if its value agrees across realistic variations of the same patient's scan. Only one source card is used here, so this page covers only the robustness question for CT.
Variants
Test-retest robustness
Scan each patient twice, then compute each feature on both scans and measure agreement with ICC(1,1). A feature with ICC ≥ 0.90 counts as robust 1806.06719 §4.5. In the paper's cohorts, 73.5% of 4032 features were robust in NSCLC (31 patients) and 34.0% in HNSCC (19 patients) 1806.06719 §2.1. This is the reference the other variant is judged against. Card: Zwanenburg et al. (radiomic robustness).
Single-scan image perturbation chains
Take one scan and make many altered copies. Each copy goes through a chain of perturbations: rotation, Gaussian noise, translation, volume change and contour randomisation 1806.06719 §2. The paper tests 18 chains and scores each chain against the test-retest result, feature by feature 1806.06719 §2.3. The chain NTVC (noise, translation, volume change, contour randomisation) had 3.3% false-positive robust features in NSCLC and 10.0% in HNSCC 1806.06719 §2.3. Card: Zwanenburg et al. (radiomic robustness).
When to use which
| Situation | Use | Why |
|---|---|---|
| Test-retest scans of the same phenotype are available | Test-retest ICC | It is the reference the paper scores all chains against 1806.06719 §2.3. |
| Only one scan per patient, and you need a robustness estimate | Perturbation chains such as NTVC, checked against any test-retest data you can obtain | The paper reports that chains approximate test-retest results on its two cohorts 1806.06719 §2.3. The results are author-reported on 31 and 19 patients 1806.06719 §3. |
| Choosing among chains | Compare chains only within one cohort | Chains differ in size, from 27 to 40 images each, and the paper compares them within cohort 1806.06719 §2.2. |
| Considering noise alone as the perturbation | Do not rely on it to discriminate features | Noise alone left 96.6% (NSCLC) and 99.3% (HNSCC) of features robust 1806.06719 §2.2. |
| Other modality, or other voxel size or discretisation | Re-check robustness for your setting | The paper is CT-only 1806.06719 §3, and the authors note that robustness does not transfer across modalities or computational settings 1806.06719 §1. |
Implementation sketch
Language-agnostic outline of the robustness check. The paper's chains, settings and feature extraction are in its supplementary material; this sketch shows only the structure.
# Robustness check per feature [arxiv:1806.06719 §2] [§4.5]
# Input: test and retest scans with masks; list of perturbation chains
# Output: per chain, per feature: ICC(1,1) and robust flag
def check_robustness(test_scan, retest_scan, chains, icc_threshold=0.90):
# Reference: test-retest agreement on unperturbed scans [§2.1]
reference = icc_test_retest(test_scan, retest_scan)
results = {}
for chain in chains:
# Perturbed copies of the same scan, one set per chain [§2]
copies = perturb_all(test_scan, chain)
# Feature values for every copy [§4.4]
values = extract_features(copies)
# ICC of features across perturbations [§4.5]
icc = icc_1_1(values)
# Robust when ICC reaches the threshold [§4.5]
robust = icc >= icc_threshold
# Compare with the reference to count false positives [§2.3]
results[chain.name] = (icc, robust, reference, robust_vs(reference))
return resultsContradictions
- Which chain gives the fewest false positives. The card's summary says NTVC gave the fewest false-positive robust features 1806.06719 §2.3. The paper's table gives RC (contour randomisation only) 2.6% in NSCLC, below NTVC's 3.3% 1806.06719 §2.3. The paper's text notes that RC was lowest in NSCLC and that NTVC was low in both cohorts 1806.06719 §3. In HNSCC, NTVC is lowest at 10.0% 1806.06719 §2.3. Both statements stand; which chain is best depends on the cohort.
Caveats
- Test-retest is itself confounded in the HNSCC cohort: the two scans used different PET attenuation-correction protocols 1806.06719 §3. The paper suggests this may explain part of the higher false-negative rate in NSCLC 1806.06719 §3.
- The cohorts are small (31 and 19 patients), and the confidence intervals of the ICC are wide, for example 0.35 on average for HNSCC test-retest 1806.06719 §3.
- Robust fractions depend on the chosen anti-aliasing parameter. In HNSCC, the share of robust features moved from 34.0% at β = 0.93 to 43.0% at β = 0.90 1806.06719 supp. note 2. Report the choice explicitly.
- The paper does not state the ICC design, and no code is public 1806.06719 §4.5. Reimplementations may differ.
Papers
- Zwanenburg et al. (radiomic robustness): perturbation chains on one CT scan scored against test-retest ICC, on 31 NSCLC and 19 HNSCC patients.
Source and license
Compiled from the papers listed on this page, all published under CC BY, CC BY-SA or CC0, with citations. See each paper's page for its authors and license.