Repository navigation
Conversation
…ONC-DL-3, ONC-DL-4)
The Tabular download now has the portal's rows (tabularDownload.ts getTabularDownloadData):
- CLINICAL rows named by display name (the mutation spectrum one row per substitution,
"Mutation spectrum (C>A)");
- then each gene's CNA, MUTATIONS, MRNA, PROTEIN and STRUCTURAL_VARIANT rows, every gene in every
group;
- then a group per heatmap profile kind, "HEATMAP MRNA_EXPRESSION Z-SCORE", rows named by gene
or entity.
A mutation cell is the one class drawn, in the portal's words ("Truncating mutation (putative
driver)", "(putative passenger)" with annotation on, no suffix off, Promoter never); a cell not
profiled is empty. The page builds the file in the browser from the columns as drawn (its sort,
Show unaltered), as PATIENT_DATA_oncoprint.tsv / SAMPLE_DATA_oncoprint.tsv; the server, CLI and
Python write the same file over the contract's columns, less the unaltered ones when the display
hides them. The order file reads "Patient order in the Oncoprint is:", OncoPrintPatients.txt.
The engine carries each clinical attribute's display name (clinical_attribute_meta, the first
study's) and each heatmap profile's alteration type and datatype (genetic_profile), through
federation shares too (optional fields, so an older peer still reads). The Python port gains the
same writer, and the mutation spectrum row it did not build before.
Ours alone, documented in PORTAL-PARITY: readable text where the portal writes its internal codes
(splice_rec, amp_rec, sv_rec); a merged row named as drawn; study-qualified ids across studies.
Open in Oncoprinter is marked for after the initial release.
Verified: a case table from the legacy source; tests written from it by a separate agent, seen
failing against the old writer; the display-name and profile-kind SQL run against the fixture
study (78/78); 13 planted bugs, all caught, and 4 in the Python writer by hand. On
brca_tcga_pan_can_atlas_2018 (ERBB2 amp, 123 patients) the page's file was compared cell by cell
with cbioportal.org's download: every shared cell agrees except the raw codes above and two
driver calls where the portal's live OncoKB differs from the pinned v7.5.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q3ezTZRWoR5xpTndPddHAe
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Item 2d of the OncoPrint parity work, without Open in Oncoprinter, which is now marked for after the initial release.
What changes
The Tabular download has the portal's rows (
tabularDownload.tsgetTabularDownloadData):CLINICALDiagnosis Age, notAGE); the mutation spectrum one per substitution,Mutation spectrum (C>A)CNA,MUTATIONS,MRNA,PROTEIN,STRUCTURAL_VARIANTHEATMAP <alteration type> <datatype>HEATMAP MRNA_EXPRESSION Z-SCORE,HEATMAP GENERIC_ASSAY LIMIT-VALUE, rows by gene or entityPATIENT_DATA_oncoprint.tsv/SAMPLE_DATA_oncoprint.tsv.Patient order in the Oncoprint is:and it is saved asOncoPrintPatients.txt/OncoPrintSamples.txt.The engine now carries:
clinical_attribute_meta(the first study's, when studies name it differently; AGE has 14 names in the warehouse);genetic_profile.Federation shares carry both as optional fields, so an older peer still reads. The Python port gets the same writer, and also the mutation-spectrum row, which its engine did not build before.
Deliberate divergences (PORTAL-PARITY)
splice_recbecomes "Splice Mutation (putative driver)";amp_recbecomes "Amplification (putative driver)";sv/sv_recbecome "Structural Variant" / "Structural Variant (putative driver)".RAS). The portal names it by its genes (KRAS / NRAS) whatever its label.<study>_<id>, so they stay unique.HEATMAP MUTATION_EXTENDED VAF; the portal has no VAF heatmap.DERIVED.How it was checked
tabularDownload.ts,ResultsViewOncoprint.tsxandDataUtils.ts.test/oncoprint-tabular-portal.test.tsandpython/tests/test_tabular_portal.py, which includes a byte-for-byte TypeScript/Python conformance test. They failed against the old writer.Not run:
scripts/gate.sh(CI runs the full gate).🤖 Generated with Claude Code
https://claude.ai/code/session_01Q3ezTZRWoR5xpTndPddHAe