RIDER as a robustness experiment
Tonight · ~40 min · hands-on · energy: active · setup: Python (
pyradiomics,SimpleITK) + RIDER CT/SEG, optional 3D Slicer/SlicerRadiomics
Everything so far has been concepts. RIDER turns them into an experiment you can run tonight: one feature, two perturbations, and a prediction you check against the result. The goal is understanding, not a score — so you must not tune anything to win.
Why RIDER is the right dataset
RIDER Lung CT v3 is a public TCIA test–retest dataset: lung cancer patients scanned, then scanned again on the same scanner the same day, with matched tumour segmentations. That makes it a ready-made repeatability experiment — the two scans of one patient should give nearly identical features if the feature is repeatable. It is also exactly the data TRACE-CT downloads, preflights, and extracts from, so the geometry work from Chapter 2 is already done for you.
The one-parameter sensitivity experiment
TRACE-CT already extracts original_glcm_JointEntropy with a fixed pipeline
(binWidth 25, 1 mm isotropic B-spline, NN mask, HU clip [-1000, 400]). Use a
validated RIDER case and stress that one feature:
- Visualise first. In Slicer/SlicerRadiomics (or the Visual-QC pass), load CT + tumour mask; confirm the mask sits on the tumour before trusting any number.
- Get the reference. Inspect TRACE-CT’s reference extraction; note the
reference
JointEntropyand its exact pipeline pins. - Predict, then perturb
binWidth. In writing, predict the effect ofbinWidth 25 → 5and→ 50. From lesson 4: smaller → more grey levels → finer, more populated GLCM → typically higher Joint Entropy; larger → coarser → lower. Then run it, holding everything else fixed. - Compare to your prediction; explain any mismatch mechanistically. A small ROI
may saturate discretisation (few HU values, so
binWidthmatters less than expected); say so. - Optionally vary the geometry. Resample
1 mm → 2 mm, or switch B-spline → linear, and watch the feature move — a felt demo of the dependence map (lesson 5).
The test–retest variant (repeatability)
If you have a paired RIDER case (the same patient’s two same-day scans), extract
JointEntropy on both with the same pipeline and compare. A repeatable feature
gives nearly the same value on the two scans; a non-repeatable one does not. Across
several patients you can rank features by their test–retest agreement (ICC/CCC) —
exactly the robustness filter of lesson 6, on real
data. RIDER’s repeats are already paired by TRACE-CT’s preflight, so the pairing
work is done.
The one rule that protects the experiment
Purpose: understanding, not a score. Do not tune
binWidth(or spacing, or interpolation) to maximise a downstream metric. That is feature-fishing — it invalidates any validation and turns a learning exercise into an irreproducible result. You pin a pipeline, you report it, you observe what changes.
Bridge
When your prediction matches the run, you have connected the binWidth lesson to a number you produced yourself — the grey-level alphabet really did rebuild the matrix. When it does not match, the mismatch is the lesson: a small ROI, a near-uniform region, or an interaction with the HU clip all change the predicted direction. Either way you have stopped treating the feature as a black box.
Files to read alongside (TRACE-CT, read-only)
scripts/rider_radiomics_extraction.py— the full chain (CT load → SEG decode → 1 mm B-spline → NN mask → HU clip → PyRadiomicsoriginal_glcm_JointEntropy).configs/pyradiomics_params.yaml— the pinned pipeline (binWidth 25,original, 3D, label 1).scripts/rider_preflight.pyclassify_source_role()— tagslung_1_25mmvsstandard_5_0mm, the reconstruction-sensitivity experiment made real.compare_radiomics_runs.py— independent determinism check (feature agrees to1e-6across runs).
See the TRACE-CT learning map for paths.
What to retain
- RIDER is a ready-made test–retest experiment: same patient, same-day repeat, so feature differences are acquisition noise, not biology.
- The exercise: pin a pipeline, predict the effect of a perturbation (
binWidth, spacing, interpolator), run it, explain the match or mismatch mechanistically. - Test–retest across RIDER pairs ranks features by repeatability — the robustness filter on real data.
- Never tune pipeline parameters to a metric; the purpose is understanding, not a score. Pin, report, observe.
Next: the path from a trusted feature to a clinical claim — harmonisation, ComBat, and the model handoff.