Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
2e70b30
Preregister post-arXiv journal comparisons before new outcome analysis
HyTruongSon Nov 1, 2026
4906163
Add checksum-verified journal data readers, anchor baselines and pati…
HyTruongSon Nov 1, 2026
ad54e3b
Diagnose original coordinate ties and isolate secondary rank sensitiv…
HyTruongSon Nov 1, 2026
06f942e
Implement preregistered matched baselines and identical-target placem…
HyTruongSon Nov 1, 2026
7e3cc16
Freeze learned-model architecture controls and exploratory residual-a…
HyTruongSon Nov 1, 2026
f7ba9eb
Add explicit frozen HEST feature caching and new controlled CPU neura…
HyTruongSon Nov 1, 2026
5e1ff9b
Add all-seed learned evaluation, sparse-anchor hybrids and identity c…
HyTruongSon Nov 1, 2026
d3961b8
Record real Wu matched-information findings, original patient uncerta…
HyTruongSon Nov 1, 2026
03ba48a
Document executed post-v1 comparisons, data access limits and reprodu…
HyTruongSon Nov 1, 2026
47d15d3
Keep new fitting independent of evaluation cache and label original h…
HyTruongSon Nov 1, 2026
a2e2dab
Lock neural evaluation and verify completed artifacts before resuming
HyTruongSon Nov 1, 2026
205d6e1
Record all 30 neural fits and verify fixed regions and correlation su…
HyTruongSon Nov 1, 2026
792d845
Verify every available original Wu reference and document exact GEO a…
HyTruongSon Nov 1, 2026
fcaf76b
Keep real-map scales legible and mark clipped anchor colors
HyTruongSon Nov 1, 2026
ee7c355
Validate and recover complete feature caches after interrupted metada…
HyTruongSon Nov 1, 2026
26832c4
Report all controlled neural comparisons and document verified cache …
HyTruongSon Nov 1, 2026
ea60f60
Rebuild journal PDFs offline in existing publication CI and record fe…
HyTruongSon Nov 1, 2026
9a7fad9
Diagnose float32 control precision and checkpoint all neural evaluati…
HyTruongSon Nov 1, 2026
68e3f1d
Separate inherited v1 notes and prevent stale PDFs in the journal pac…
HyTruongSon Nov 1, 2026
6a107ed
Record completed neural evaluations and qualify topology findings and…
HyTruongSon Nov 1, 2026
34f00c7
Publish separate journal manuscript with executed results, source tab…
HyTruongSon Nov 1, 2026
7f99d94
Disambiguate inherited original method records from new journal fit m…
HyTruongSon Nov 1, 2026
2e03fae
Specify outcome-blind post-v1 Graph Transformer and EGNN extension be…
HyTruongSon Nov 1, 2026
0389001
Validate bounded models, equivariance and real-data resource prefligh…
HyTruongSon Nov 1, 2026
d4c8531
Add explicit extension commands and verified low-resolution Wu image …
HyTruongSon Nov 1, 2026
558413f
Add same-mask all-model evaluation with fixed external calibration an…
HyTruongSon Nov 1, 2026
3bb84e3
Verify transported inputs and record renewed raw-data blockers before…
HyTruongSon Nov 1, 2026
a74bd72
Add geometric and distant-feature diagnostics with bounded attention …
HyTruongSon Nov 1, 2026
83d7d80
Retrieve only checksum-verified GEO archive members under a strict se…
HyTruongSon Nov 1, 2026
2fab332
Activate checksum-verified Bassiouni recovery with unchanged model an…
HyTruongSon Nov 1, 2026
431d79c
Add recovered-cohort evaluation and patient-paired extension summaries
HyTruongSon Nov 1, 2026
c1b6b3c
Expose resumable per-patient evaluation and complete reference gene/s…
HyTruongSon Nov 1, 2026
3e4b7aa
Verify bounded acquisition refusal and immutable completed extension …
HyTruongSon Nov 1, 2026
ba6f7a1
Declare direct architecture-control contrasts and standardized CPU re…
HyTruongSon Nov 1, 2026
baffd49
Complete portable journal extension renderer and preserve clean-check…
HyTruongSon Nov 1, 2026
51a01fc
Keep versioned journal sources in the journal tree and prepare bounde…
HyTruongSon Nov 1, 2026
98b2e6c
Report complete patient-paired negative neural findings and retain ge…
HyTruongSon Nov 1, 2026
b9f61b7
Document exact cohort recovery, negative controlled findings, and aut…
HyTruongSon Nov 1, 2026
ecfb982
Finalize offline source rebuilds, immutable training replay, and arti…
HyTruongSon Nov 1, 2026
9682526
Complete exact Bassiouni baselines, all48 fit provenance, and geometr…
HyTruongSon Nov 1, 2026
f02ccf5
Publish complete paired patient panels and support exports with hashe…
HyTruongSon Nov 1, 2026
f813d3b
Add separately versioned complete Scientific Reports extension with a…
HyTruongSon Nov 1, 2026
d1a0d1b
Validate clean source packaging without data, checkpoints, or BibTeX …
HyTruongSon Nov 1, 2026
4c6b775
Finalize geometry-centered Scientific Reports manuscript and editoria…
HyTruongSon Nov 1, 2026
6058140
Verify clean submission sources and exclude a transient evaluation lock
HyTruongSon Nov 1, 2026
3d4f945
Record fresh-checkout verification and final editorial validation
HyTruongSon Nov 1, 2026
ab08111
Polish abstract voice and method names and rebuild submission artifacts
HyTruongSon Nov 1, 2026
60842a6
Freeze matched ResNet18 and Phikon graph-context follow-up protocol b…
HyTruongSon Nov 1, 2026
550dbcc
Add pinned Phikon acquisition and resumable matched-patch feature ext…
HyTruongSon Nov 1, 2026
6492df5
Audit reusable fits and version source-only encoder execution resourc…
HyTruongSon Nov 1, 2026
c745feb
Implement paired patient analysis and adjust encoder-only ceiling usi…
HyTruongSon Nov 1, 2026
00adb66
Score completed patient inputs resumably and retain new gene exports …
HyTruongSon Nov 1, 2026
8758af1
Integrate approved opening, archive schematic, and implement comparis…
HyTruongSon Nov 1, 2026
19cb300
Freeze equal two-rate validation refinement before any Phikon evaluat…
HyTruongSon Nov 1, 2026
22df50e
Implement equal two-rate source-validation selection with all candida…
HyTruongSon Nov 1, 2026
76b43ef
Freeze validation-only selected rates and all72 candidate states befo…
HyTruongSon Nov 1, 2026
599aebf
Document matched selection and preserve author-local candidate states
HyTruongSon Nov 1, 2026
6726397
Audit execution environment and document matched comparison reproduction
HyTruongSon Nov 1, 2026
6a3cf7f
Preserve and audit every candidate learning history
HyTruongSon Nov 1, 2026
cf467a4
Track current display numbering and retain every empirical display
HyTruongSon Nov 1, 2026
e3d5658
Report individual Wu effects and explicit patient uncertainty
HyTruongSon Nov 1, 2026
dbef605
Prepare standalone comparison renderers and strengthen provenance checks
HyTruongSon Nov 1, 2026
a20125c
Complete matched-backbone study and finalize the Scientific Reports m…
HyTruongSon Nov 1, 2026
8119562
Normalize display ledger and synchronize review-bundle manifests
HyTruongSon Nov 1, 2026
5696498
Record standalone-document consistency and final visual coverage
HyTruongSon Nov 1, 2026
897fde3
Polish Phikon prose and correct historical figure-caption scope
HyTruongSon Nov 1, 2026
fd4dc6a
Apply author-approved AI disclosure at the end of Methods
HyTruongSon Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Hash-covered scientific evidence must retain its supplied bytes on every platform.
checkpoints/legacy/** -text
manuscript/revised/** -text

# Preserve new journal evidence hashes across checkout platforms.
experiments/journal_revision/** -text
manuscript/journal_revision/** -text
25 changes: 25 additions & 0 deletions .github/workflows/publication.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ on:
paths:
- 'manuscript/**'
- 'src/graphpathology/*publication*'
- 'src/graphpathology/extension*.py'
- 'src/graphpathology/editorial.py'
- 'src/graphpathology/backbone*.py'
- 'configs/journal_revision/backbone_graph_comparison/**'
- 'experiments/journal_revision/backbone_graph_comparison/**'
- 'experiments/editorial/**'
- 'experiments/journal_revision/transformer_egnn/**'
- 'configs/journal_revision/transformer_egnn/**'
- 'docs/REPRODUCTION_TARGETS.csv'
- 'configs/validation-environment.txt'
- '.github/workflows/publication.yml'
Expand All @@ -26,9 +34,19 @@ jobs:
run: sudo apt-get update && sudo apt-get install -y texlive-latex-extra texlive-fonts-recommended lmodern poppler-utils
- run: python -m pip install -r configs/validation-environment.txt
- run: python -m pip install -e '.[test]'
- name: Verify committed extension evidence before document builds
run: python -m graphpathology.extension verify --committed-only
- name: Verify editorial scientific-source preservation
run: python -m graphpathology.editorial check --committed-only --output outputs/editorial-integrity.json
- name: Verify matched-backbone candidates, selection and paired evidence
run: python -m graphpathology.backbone_selected_verify --committed-only --output outputs/backbone-comparison-integrity.json
- run: python -m graphpathology publication --output outputs/publication
- run: python -m graphpathology build-documents --publication outputs/publication --output outputs/paper
- run: python -m graphpathology arxiv --output outputs/arxiv
- name: Build separate journal revision from committed exports (no training or research downloads)
run: python -m graphpathology.journal paper --build-output outputs/journal
- name: Build current Scientific Reports manuscript from maintained sources
run: python -m graphpathology.extension paper --build-output outputs/journal-extension
- uses: actions/upload-artifact@v4
if: always()
with:
Expand All @@ -40,3 +58,10 @@ jobs:
outputs/paper/*.pdf
outputs/arxiv/ARXIV_REPORT.json
outputs/arxiv/*.zip
outputs/journal/*.pdf
outputs/journal-extension/*.pdf
outputs/journal-extension/EXTENSION_BUILD_REPORT.json
outputs/extension-validation-committed.json
outputs/editorial-integrity.json
outputs/backbone-comparison-integrity.json
manuscript/journal_revision/JOURNAL_BUILD_REPORT.json
26 changes: 26 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,29 @@ outputs/
work/
checkpoints/models/*
!checkpoints/models/README.md

# New journal-v2 trained binaries/caches are separate from released evidence.
checkpoints/journal_revision/
experiments/journal_revision/results/**/.evaluation.lock

# Full extension per-gene exports are preserved in a hashed, release-ready author bundle.
# Keep panels, support bins, completion records and manifests reviewable in Git.
/experiments/journal_revision/transformer_egnn/evaluation/**/GENES.csv.gz
/experiments/journal_revision/transformer_egnn/evaluation/**/MOLECULAR_GENES.csv.gz
/experiments/journal_revision/transformer_egnn/bassiouni_anchors/**/GENE_METRICS.csv.gz

# TeX intermediates in the new journal version; keep final named PDFs and .bbl sources.
/manuscript/journal_revision/transformer_egnn/main.pdf
/manuscript/journal_revision/transformer_egnn/article_only.pdf
/manuscript/journal_revision/transformer_egnn/supplementary.pdf
/manuscript/journal_revision/transformer_egnn/*.aux
/manuscript/journal_revision/transformer_egnn/*.log
/manuscript/journal_revision/transformer_egnn/*.out
/manuscript/journal_revision/transformer_egnn/*.fls
/manuscript/journal_revision/transformer_egnn/*.blg
/manuscript/journal_revision/transformer_egnn/*.pass*.txt

# New matched-backbone gene exports are retained in the author-review bundle.
/experiments/journal_revision/backbone_graph_comparison/evaluation/**/GENES.csv.gz

/experiments/journal_revision/backbone_graph_comparison/primary_evaluation/**/GENES.csv.gz
22 changes: 17 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,22 @@
**GraphPathology enables geometry-aware reconstruction of spatial transcriptomics from sparse molecular measurements**
Truong-Son Hy, University of Alabama at Birmingham.

[Combined paper + SI](manuscript/GraphPathology_Combined_Manuscript.pdf) · [Article only](manuscript/GraphPathology_Article_Only.pdf) · [Supplement](manuscript/GraphPathology_Supplementary.pdf)
[arXiv v1 combined paper + SI](manuscript/GraphPathology_Combined_Manuscript.pdf) · [Article only](manuscript/GraphPathology_Article_Only.pdf) · [Supplement](manuscript/GraphPathology_Supplementary.pdf)

GraphPathology separates contextual image representations, reconstruction from observed same-section molecular anchors, and image–molecular fusion. Graph neural predictors are development comparisons; the external headline results come from molecular interpolation. The tested fixed image contribution did not reproducibly improve external interpolation. V1/V2 differ in weighting and scoring support as well as geometry. External images are downsampled. A potential fivefold reduction concerns selective acquisition and proportional variable location costs, not proven total assay savings or learned long-range correlations.
GraphPathology separates contextual image representations, reconstruction from observed same-section molecular anchors, and image–molecular fusion. Image and graph predictors are evaluated separately from molecular reconstruction; the original external headline results come from molecular interpolation. The tested fixed image contribution did not reproducibly improve external interpolation. V1/V2 differ in weighting and scoring support as well as geometry. External images are downsampled. A potential fivefold reduction concerns selective acquisition and proportional variable location costs, not proven total assay savings or learned long-range correlations.

| Cohort | Role | Panel |
|---|---|---|
| HEST NCBI783 / NCBI785 | Fitting | 50 ordered genes |
| HEST TENX95 / TENX99 | Validation / primary development evaluation | 50 |
| HER2ST A1–H1 | Transportability, then calibration development on the same patients | 40-gene intersection |
| Wu 1142243F, CID4465, CID4535 | Calibration | 50 |
| Wu 1160920F, CID4290, CID44971 | Fresh evaluation | 50 |
| Bassiouni, first section for each of 22 patients | Fresh replication, no refitting | 50 |
| Wu 1160920F, CID4290, CID44971 | Held-out at v1; now inspected | 50 |
| Bassiouni, first section for each of 22 patients | Held-out at v1, no refitting; now inspected | 50 |

## Post-v1 Scientific Reports journal revision

[Journal experiments and reproduction](docs/JOURNAL_REVISION.md) · [Separate journal sources/PDFs](manuscript/journal_revision/README.md) · [Versioned exploratory protocol](experiments/journal_revision/PROTOCOL_V1.md). New real-data matched-information and identical-target analyses, patient uncertainty and controlled neural training are separate from the arXiv v1 package. The later exact GEO range recovery completed the 22-patient Bassiouni matched spatial comparisons; the earlier source-transfer failure is retained in the historical reports. See the journal status for precise completed/blocked/skipped work. Previously inspected cohorts are not a new blind validation.

## Install and CPU quick start

Expand Down Expand Up @@ -52,7 +56,7 @@ python -m graphpathology doctor --require-models
python -m graphpathology infer --config configs/replay.example.json --dry-run
```

The original fitted states are still missing, including all three selected primary heads. These commands report the required paths and checksums and never fall back to new/random weights. The maintained inference route starts from aligned embeddings and normalized targets; it is not a complete raw-cohort research orchestrator. Full raw-data ingestion, extraction, training and evaluation remain separately scoped future work, with the dependency order and prerequisites documented in [REPRODUCING.md](docs/REPRODUCING.md) and [DATA_AND_MODELS.md](docs/DATA_AND_MODELS.md). New training cannot substitute for replay of the original fits.
The original fitted states are still missing, including all three selected primary heads. These commands report the required paths and checksums and never fall back to new/random weights. The maintained inference route starts from aligned embeddings and normalized targets; it is not a complete raw-cohort research orchestrator. The separate explicit [journal research workflow](docs/JOURNAL_REVISION.md) now supports public-data acquisition, frozen feature extraction, controlled new training and evaluation. New journal fits have independent identities and cannot substitute for replay of original fits. The original bounded inference route retains its existing contract.

## Organization and provenance

Expand All @@ -72,3 +76,11 @@ This checks archived bytes and declared registry prefixes without running histor
## Citation and terms

Use the manuscript title and author above; [CITATION.cff](CITATION.cff) supplies citation metadata. No journal acceptance or DOI is asserted. HEST, HER2ST, Wu, Bassiouni and upstream model weights retain their own terms. The original repository had no root software LICENSE; this revision does not invent a license grant or redistribute raw tissue data or upstream weights.

### Post-v1 bounded Transformer / EGNN extension

The separate [extension documentation](docs/GRAPH_TRANSFORMER_EGNN.md) and [scientific report](experiments/journal_revision/transformer_egnn/SCIENTIFIC_REPORT.md) describe 48 new controlled fits and 78-model evaluation in 26 previously inspected patients. Exact GEO range recovery completed the 22-patient matched spatial baseline study. The primary neural models did not improve same-information IDW; all negative findings, controls and patient effects are retained. The versioned journal manuscript is under [manuscript/journal_revision/transformer_egnn](manuscript/journal_revision/transformer_egnn/). Earlier arXiv, journal and A–E evidence remains unchanged. Full gene exports/checkpoints have hashed author-local bundles and a release-ready manifest; raw datasets/model binaries are excluded from Git. Draft PR #3 requires author review before merge.

### Current matched-backbone Scientific Reports revision

The maintained [journal manuscript](manuscript/journal_revision/transformer_egnn/) centers the controlled 22-patient measurement-placement result, with an expanded Introduction and a separate Related Work section. The [matched-backbone follow-up](docs/MATCHED_BACKBONE_COMPARISON.md) separates graph-versus-local prediction within ResNet18 and Phikon from the value beyond identical molecular support. All previous empirical findings remain; the conceptual information-boundary schematic is archived outside the active paper. New fits and validation-guided selection are separate from original states and earlier optimization regimes. See the [exploratory protocol](experiments/journal_revision/backbone_graph_comparison/PROTOCOL.md) and study manifests for actual execution and availability. Author-local weights and numerical bundles are not public deposits. The author approved the final AI disclosure and authorized merging [PR #3](https://github.com/HySonLab/GraphPathology/pull/3); the PR records its current status.
135 changes: 135 additions & 0 deletions configs/journal_revision/backbone_graph_comparison/protocol.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
{
"created_utc": "2026-11-01T16:24:58.305126+00:00",
"classification": "exploratory_follow_up",
"base_commit": "ab0811134bb1d62719206ab11a43bd7c4dd5d813",
"backbones": [
"resnet18",
"phikon"
],
"configurations": [
{
"model": "local",
"control": "local"
},
{
"model": "MEAN",
"control": "spatial"
},
{
"model": "GCN",
"control": "spatial"
},
{
"model": "SAGE",
"control": "spatial"
},
{
"model": "GCN",
"control": "shuffled"
},
{
"model": "SAGE",
"control": "shuffled"
}
],
"seeds": [
0,
1,
2
],
"training": {
"learning_rate": 0.001,
"weight_decay": 0.0001,
"batch_size": 512,
"max_epochs": 80,
"patience": 10,
"min_delta": 0.0001
},
"hidden": {
"resnet18": {
"local": 128,
"MEAN": 128,
"GCN": 128,
"SAGE": 67
},
"phikon": {
"local": 128,
"MEAN": 128,
"GCN": 128,
"SAGE": 66
}
},
"dropout": 0.1,
"source_fit": [
"NCBI783",
"NCBI785"
],
"validation": "TENX95",
"development": "TENX99",
"external": [
"1160920F",
"CID4290",
"CID44971",
"BASS_P01",
"BASS_P02",
"BASS_P03",
"BASS_P04",
"BASS_P05",
"BASS_P06",
"BASS_P07",
"BASS_P08",
"BASS_P09",
"BASS_P11",
"BASS_P12",
"BASS_P13",
"BASS_P14",
"BASS_P15",
"BASS_P17",
"BASS_P18",
"BASS_P19",
"BASS_P20",
"BASS_P21",
"BASS_P22",
"BASS_P23",
"BASS_P24"
],
"encoder_revision": "057cc0295895c2df3dd7681a89680da6015cbefe",
"encoder_sha256": "d01642bfeb683c6b039622eca273e0a8e4208065a4595b63edba178c1c4cfa68",
"encoder_threads": 1,
"head_threads": 4,
"encoder_batch_size": 8,
"encoder_max_wall_hours": 6.5,
"head_max_wall_hours": 1,
"evaluation_max_wall_hours": 1,
"max_rss_gib": 10,
"primary_budget": 0.2,
"budgets": [
0.1,
0.2,
0.4
],
"mask_seeds": [
0,
1,
2
],
"bootstrap_resamples": 10000,
"bootstrap_seed": 20261101,
"serialization_rtol": 0,
"serialization_atol": 0,
"leakage_rtol": 0,
"leakage_atol": 0,
"minimum_shuffled_changed_edge_fraction": 0.5,
"encoder_workers": 4,
"training_refinement": {
"version": 2,
"learning_rates": [
0.001,
0.0001
],
"selection": "Mean best qualifying TENX95 MSE across all three seeds, separately per backbone/model/control; exact tie chooses smaller learning rate.",
"external_scoring": "Only validation-selected learning rate; all three seeds. Existing complete ResNet1e-3 exports remain a separately labelled sensitivity.",
"other_settings_unchanged": true,
"refinement_reason": "17 of18 first Phikon fits selected epoch1; validation deterioration with declining fitting loss. No Phikon development/external predictions or outcomes have been inspected."
}
}
Loading
Loading