Reproducing the published analyses ================================== Every figure and table in the manuscript comes from a shell script, and the scripts live in the **benchmark** repository rather than here. That split is deliberate and it is the one thing to understand before running any of them: **The command line designs and scores; the statistics live in the benchmark repository.** ``mhcmatch cassette select`` chooses a set and ``mhcmatch cassette score`` prices it, and both are driven from the shell exactly as a user would drive them. A hazard ratio, an AUROC and a paired interval are statistics *over* those scores, and they stay in ``bench/cassette/*.py``, because a library that shipped them would be shipping a cohort and an analysis alongside its model. The three chains ---------------- .. list-table:: :header-rows: 1 :widths: 30 70 * - script - what it rebuilds * - ``bench/run_epic.sh`` - the EPIC fit and every head-to-head against a published pipeline * - ``bench/run_cassette.sh`` - the observational cassette corpus: who is in it, their designs, and the TCGA arms --- the hot/cold contest against mutational burden and the per-tumour-type survival read * - ``bench/run_icb.sh`` - the checkpoint-blockade arm: one workbook flattened, every candidate scored, the clone partition, and the models against overall survival, progression-free survival and RECIST * - ``bench/figures/fig*.sh`` - one script per manuscript figure, each driving the installed command line and writing the plot data beside the figure Each takes ``--reuse`` to skip a stage whose output already exists, and each **gates on the library version before it runs anything**:: want=$(