Repository navigation
Releases: SharoonSharif/PathQFormer
Release list
v0.3.0 - audit-framed revision, seed-averaged statistics, archives
PathQ-Former v0.3.0 (2026-10-05)
Documentation and analysis release; no new training results.
- Repository public; manuscript revised around the input-use (missing-modality) audit (
paper/tmlr_v2/, official template source + figures). - Primary statistics are now the seed-averaged 25-fold paired tests with 95 % bootstrap CIs and Holm correction (
scripts/primary_tests.py->results/final/table_primary_tests.txt,table_secondary_metrics.txt). PathQ-Former vs SurvPath: +0.036 [-0.004, +0.071] (t p 0.074, Wilcoxon p 0.030) with aux heads; +0.037 [+0.009, +0.065] (p 0.020 / 0.020) without. No per-cohort DSS difference survives Holm (BRCA +0.086: raw t p 0.017, Holm 0.084). The earlier 75-(fold, seed)-pair p-values are no longer quoted as primary. - Audit tables over three seeds: SurvPath's ranking is invariant to its RNA input (+0.001 permuted, +0.001 mean-imputed) but loses 0.068 with the slide permuted and sits at 0.47-0.52 with it removed; PathQ-Former keeps 0.54-0.62 with either input removed and changes by at most 0.025 at 50 % missingness (within one seed sd); parity with the RNA-only MLP (+0.012 / +0.014) and a late-fusion ensemble (+0.011 / +0.009).
- New analyses: post-hoc replay of checkpoint-selection rules on the stored per-epoch histories (
scripts/posthoc_selection.py, Tables A-D oftable_selection_rules.txt), final-configuration ablations table (table_final_config_ablations.txt), paper figure scripts (scripts/paper_figures.py,scripts/paper_figures_km.py), double-blind supplement builder (scripts/make_anonymous_supplement.py). - Archives: the 13 BLCA laptop-CPU runs added as
pod_results/laptop_runs.tgz;scripts/reproduce_tables.shextracts the five archives (204 GPU cohort-level runs on five cohorts + 13 BLCA laptop runs) and regenerates every table. Line-continuation bug in the fusion-vs-ensemble / grid commands fixed. - SurvPath trained with the recipe (
src/models/survpath_recipe.py,configs/protocol_fixed/survpath_recipe_e20.yaml/survpath_recipe_noaux_e20.yaml,scripts/pod/batch10.sh): implemented and unit-tested (8 CPU tests); batch 10 was started and stopped after the first fold of BLCA, so no result is archived or reported. - Documentation corrected against
results/final/: 10-epoch selection-replay p-values now seed-averaged (Table B), COADREAD fold-level variance and fold-0 ranges updated to the 20-epoch three-seed runs, run inventory now listsoutputs_grid(204 GPU runs in total), checkpoint count tied to the 2026-09-19 pull. - Tests: 46 (35 fast, 11 slow). CITATION.cff /
.zenodo.json: version 0.3.0, abstract rewritten to the audit framing; cite the concept DOI 10.5281/zenodo.22900123 (v0.2.1 version DOI 10.5281/zenodo.22900124). Checkpoints: huggingface.co/sharoonsharif1/PathQFormer-checkpoints.
v0.2.2 - reviewer-requested analyses
Adds to v0.2.1 (same protocol, same 180-run campaign) the analyses reviewers ask for, all archived under pod_results/pull_0923 and tabled in results/final/:
- Seed-averaged paired tests over 25 (cohort, fold) units: PathQ-Former +0.037 vs SurvPath (t p 0.020, Wilcoxon p 0.020); aux variant +0.036 (t p 0.074, Wilcoxon p 0.030).
- RNA / WSI permutation test, three seeds, five cohorts (scripts/eval_missing_impute.py --permute): permuting RNA costs PathQ-Former + aux 0.023 C-index and SurvPath 0.001; permuting WSI costs both ~0.067.
- Mean-imputation missing-modality columns for all three seeds; learned null codes match or beat imputation.
- Single-modality PathQ-Former for a second seed (BRCA seed 2 pending) and per-seed late fusion: joint fusion +0.011 over the ensemble (n.s.), ensemble +0.027 over SurvPath (n.s.).
- Risk-score correlations (scripts/risk_correlation.py) and a three-seed missing-modality table (scripts/missing_modality_table.py).
- Hyper-parameter grid configs for SurvPath (lr x alpha) and PathQ-Former (lr) in configs/grid/ with scripts/pod/batch9.sh; 1/35 cells run so far.
REPORT.md, EXPERIMENT_LOG.md and paper/draft.md are updated accordingly.
v0.2.1 - archived release (Zenodo DOI)
Same code and results as v0.2.0 plus:
- paper/draft.md (workshop-format paper draft) and paper/figures/ (KM, training, missing-modality and pathway-attention figures for five cohorts; pooled epoch curves)
- trained checkpoints published on the HuggingFace Hub: https://huggingface.co/sharoonsharif1/PathQFormer-checkpoints (275 fold checkpoints)
- scripts/upload_checkpoints_hf.py, scripts/epoch_curves.py --plot
- .zenodo.json metadata; this release is the one archived on Zenodo
Headline: PathQ-Former +0.037 C-index over the official SurvPath pooled over 75 paired folds on five TCGA cohorts (paired t p = 0.002), 0.54-0.67 with either modality missing. See REPORT.md for the caveats.
v0.2.0 - final campaign, report and archived results
First public release.
- Code, configs and tests for PathQ-Former and the baselines (official SurvPath, ABMIL, SNN, MLP) under one protocol.
- REPORT.md: full experimental report. EXPERIMENT_LOG.md: chronological record including the protocol audit.
- pod_results/*.tgz: per-run results (metrics, predictions, configs) of all 180 GPU runs; results/final/: the regenerated tables.
- scripts/reproduce_tables.sh rebuilds every table from the archives; scripts/make_dummy_embeddings.py lets the test suite run without TCGA data.
Headline: PathQ-Former +0.037 C-index over the official SurvPath pooled over 75 paired folds on five TCGA cohorts (paired t p = 0.002), 0.54-0.67 with either modality missing. See REPORT.md for the caveats (within noise of an RNA-only MLP; fusion ~ ensemble).