Skip to content

Releases: SharoonSharif/PathQFormer

v0.3.0 - audit-framed revision, seed-averaged statistics, archives

Choose a tag to compare

@SharoonSharif SharoonSharif released this 06 Oct 00:37

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 of table_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.sh extracts 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 lists outputs_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

Choose a tag to compare

@SharoonSharif SharoonSharif released this 23 Sep 19:28

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)

Choose a tag to compare

@SharoonSharif SharoonSharif released this 22 Sep 14:57

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

Choose a tag to compare

@SharoonSharif SharoonSharif released this 22 Sep 13:39

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).