Fix downstream reference registry contracts - #481
Merged
Conversation
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.
Summary
source_cohortvalues with the physical U.Cologne source used by reference filtersExpressionSourcedataclassRoot causes
The public registry previously regenerated
is_classification_targetentirely from reference availability, which allowed new comparison data to override reviewed policy. Three source-scope codes advertisedmember_unionwithout rows in the canonical aggregate table. SCLC subtype rows used a derivation label where public loaders require a physical cohort identity. The PEComa registry citation pointed to an unrelated lymphoma publication.The first revision also inserted
source_pmidinto the middle ofExpressionSourceand allowed incomplete source-scope unions to return their available members. The final revision appends the dataclass field and treats these closed diagnostic unions as all-or-nothing.Parallel first-use bundle access could also start two downloads into the same cache. One worker could remove a shard directory while another was reading it. Bundle writes now use a cross-process lock, and a waiting
ensure_local()rechecks and reuses the completed cache.Classification policy migration
The owner registry now explicitly marks
CRC_MSI,RCC,THYM_EPITHELIAL,NEN,NET,NEC, andNEC_LUNGas reviewed classification targets. This makes the previous public behavior explicit data policy rather than recreating it implicitly from reference availability. A reviewed flag is still only necessary, not sufficient: the code must also have a complete direct or member-union reference.CMN remains explicitly non-classifying despite its validation-only microarray proxy. BTC retains its reviewed eligibility flag but is effectively non-classifying with
reference_source="none"until both declared members, CHOL and GBC, are reference-backed.Consumer impact
Pirlygenes can use the public classification flag directly without a CMN workaround, and SCLC registry source identifiers round-trip through availability filters. Trufflepig can safely consume complete SGC and NSCLC member unions. BTC remains auditable as
CHOL ∪ GBC, but its availability and expression accessors return no BTC reference while GBC is missing; no BTC pooled pan-cancer column is emitted.Validation
./test.sh: 1,048 passed, 0 skipped, 86% coverageCloses #468.
Closes #472.
Closes #479.
Closes #480.