Skip to content

Release v3.3.1: link spanning-deletion * records to their genes - #32

Open
ecrum19 wants to merge 3 commits into
mainfrom
release/v3.3.1
Open

ecrum19 wants to merge 3 commits into
mainfrom
release/v3.3.1

Conversation

@ecrum19

@ecrum19 ecrum19 commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Summary

The gene linkers (ensembl-genes-grch38, gene-demo) skipped every record whose ALT is *, though * (an allele spanning an upstream deletion) leaves the record's REF span as written. A skipped record has no gene link, so a vcfp:LinkedSelector never selects it, and a prohibition on a gene panel does not reach it.

How it was found

vcf-rdfizer-testing experiment 17, arm 4, compares the records each release view keeps with a bcftools baseline, record by record. That comparison is new; earlier arms compared carriers only. On NB72462M:

requester RDF view baseline cause
general research (biobank) 7,753 7,740 13 * records in cancer-predisposition genes released
disease-specific (cardio panel) 6,380 6,397 17 * records in cardiac genes withheld (fails closed)

The same 13, plus 11 from NG131FQA1I, were in arm 1's research views. Arms 2 and 3 are unaffected: the cohort files have no * records, and HG005's research views released nothing.

Changes

  • keys_for: in an interval join, * and . ALTs key by the REF span. Symbolic alleles and breakends are still skipped, because their extent is END or a mate. The SPDI join is unchanged, since * has no allele sequence.
  • Docs (limitations.md, policy-demonstrator.md, datalinking.md, linker READMEs) say what a rule over links does not reach: records a linker could not key, which the link report counts in skipped_records.
  • Release metadata bumped to 3.3.1 (scripts/release.py 3.3.1).

Tests

  • Two tests updated or added in test/test_linking_unit.py: *, G,* and . key by REF span; <DEL>, breakends and mixed *,<DEL> are still skipped; an end-to-end link run puts a * record in a gene. Both fail without the fix.
  • Full unit suite: Ran 1211 tests … OK (skipped=24).

After merge

Tag v3.3.1 from main, then python3 scripts/release.py 3.3.1 --fetch-conda-sha256 (see scripts/RELEASING.md).

🤖 Generated with Claude Code

ecrum19 and others added 2 commits October 6, 2026 16:38
The interval join skipped every record with a `*` ALT, though `*` (an allele
spanning an upstream deletion) leaves the record's REF span as written. A
skipped record has no gene link, so a vcfp:LinkedSelector never selects it, and
a prohibition on a gene panel does not reach it.

vcf-rdfizer-testing experiment 17's arm 4 found this by comparing the records
each release view kept with a bcftools baseline, record by record. NB72462M
has 13 `*` records in the 28 cancer-predisposition genes; the rule withholding
those genes from research released all 13 to a general-research view. Its 17
`*` records in cardiac genes were also withheld from a view limited to those
genes, the fail-closed side of the same gap.

`*` and `.` now key by the REF span. Symbolic alleles and breakends are still
skipped: their extent is END or a mate, which needs a different coordinate
policy. The SPDI join is unchanged; `*` has no allele sequence to express.

The docs say what a rule over links does not reach: a record a linker could
not key, counted in the link report's skipped_records.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A patch: the gene linkers (`ensembl-genes-grch38`, `gene-demo`) link records
whose ALT is `*`, by their REF span. Up to v3.3.0 they were skipped, so a
policy rule over gene links did not reach them. Nothing changes what a v3.3.0
conversion writes.

The conda sha256 stays a placeholder until the tag exists. Populate it with
`python3 scripts/release.py 3.3.1 --fetch-conda-sha256` after pushing v3.3.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

The validator's q01-q13 have been thirteen since the identity digests
(q11-q13) were added; docs/ already says thirteen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants