Repository navigation
Conversation
…11) * add params input for sigrap tools
* update "HIGH_INF_POS" to "HIGH_I_I_POS" in VCF header for latest pcgr version * update constant for pcgr 2.2.5
* change sage vcf header to match 2024 version * move check function * add check in rescue for sage vcf * change for consistencency with pcgr
…arallelisation because OOM hypermutated samples
…'t use more core and so more memory
…e_command. Fixes #26 - Commands now fail immediately instead of continuing silently
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Path.with_suffix() only replaces the last suffix everything after the final dot. The caller passes a path ending in .pass
….2.5 tabix check)
When select_pcgr_variants cannot bring the PASS count below MAX_SOMATIC_VARIANTS via tiered filtering it raises RuntimeError, aborting the entire report step. This left sash with no usable SMLV_SOMATIC_REPORT output for samples with very high variant counts (e.g. L2100242 with 595,416 PASS variants — high CNA complexity, not a true hypermutator). Catch the RuntimeError, log a warning, and skip prepare_vcf_somatic and run_somatic. Non-PCGR outputs (bcftools stats, AF distributions, variant counts) continue to publish. Companion sash change marks the PCGR emits as optional. Refs: umccr/sash#52
Add three tests: - select_pcgr_variants raises RuntimeError when all SAGE_HOTSPOT variants (RETAIN_FIELDS) make tiered filtering impossible - entry() skips prepare_vcf_somatic + run_somatic when the RuntimeError is caught (core of the sash #52 fix) - entry() calls run_somatic normally when count is within the limit (regression guard)
PCGR writes PCGR_MUTATION_HOTSPOT=. (Type=String placeholder) on every non-hotspot variant. cyvcf2 returns the string '.' which Python evaluates as truthy, so any(variant.INFO.get(e) ...) always returned True — ALL variants were treated as retained, variants_sorted stayed empty, and select_pcgr_variants raised RuntimeError for any sample with >450k PASS variants (sash #52 root cause). Fix: exclude '.' alongside None so only genuinely set String/Flag fields trigger retention. Adds regression test with PCGR_MUTATION_HOTSPOT=. fixture to prevent silent recurrence.
* fix: drop --estimate_signatures from PCGR somatic invocation PCGR's mutational signature estimation is unreliable for our cohort and we get signature analysis from gpgr/sigrap downstream. Keep --estimate_msi and --estimate_tmb (still useful in the PCGR report). Refs: umccr/sash#57 * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Documents CI smoke tests, build fixes, split_vcf tabix-indexing, r-gpgr 2.3.1 bump, and the estimate_signatures drop (#31, sash#57) — all merged into release/0.3.0 after the v0.3.1 tag but never recorded.
* fix: skip PCGR when variant count exceeds MAX_SOMATIC_VARIANTS When select_pcgr_variants cannot bring the PASS count below MAX_SOMATIC_VARIANTS via tiered filtering it raises RuntimeError, aborting the entire report step. This left sash with no usable SMLV_SOMATIC_REPORT output for samples with very high variant counts (e.g. L2100242 with 595,416 PASS variants — high CNA complexity, not a true hypermutator). Catch the RuntimeError, log a warning, and skip prepare_vcf_somatic and run_somatic. Non-PCGR outputs (bcftools stats, AF distributions, variant counts) continue to publish. Companion sash change marks the PCGR emits as optional. Refs: umccr/sash#52 * test: cover PCGR graceful skip on unresolvable variant count overflow Add three tests: - select_pcgr_variants raises RuntimeError when all SAGE_HOTSPOT variants (RETAIN_FIELDS) make tiered filtering impossible - entry() skips prepare_vcf_somatic + run_somatic when the RuntimeError is caught (core of the sash #52 fix) - entry() calls run_somatic normally when count is within the limit (regression guard) * fix: treat PCGR_MUTATION_HOTSPOT=. as missing in retention check PCGR writes PCGR_MUTATION_HOTSPOT=. (Type=String placeholder) on every non-hotspot variant. cyvcf2 returns the string '.' which Python evaluates as truthy, so any(variant.INFO.get(e) ...) always returned True — ALL variants were treated as retained, variants_sorted stayed empty, and select_pcgr_variants raised RuntimeError for any sample with >450k PASS variants (sash #52 root cause). Fix: exclude '.' alongside None so only genuinely set String/Flag fields trigger retention. Adds regression test with PCGR_MUTATION_HOTSPOT=. fixture to prevent silent recurrence. * refactor: tighten retention-check comment to one line * test: assert real PCGR_MUTATION_HOTSPOT value retains variant
…ogger.info cleanup
Graceful PCGR skip when variant count exceeds MAX_SOMATIC_VARIANTS (sash #52, bolt PR #32). Fixes dot-placeholder PCGR_MUTATION_HOTSPOT retention false positive. Approved by scwatts (2026-06-05), all CI green.
Drops comments that restate what the code already says (logger setup, execute_command flag explanation, merge step annotations) and replaces multi-paragraph docstrings on merge_tsv_files/merge_vcf_files with no docstring, per project conventions.
This was referenced Jul 17, 2026
Collaborator
Author
|
Closing — redundant with bolt #33 which already covers the full release/0.3.0 tip including 0.3.2. Created in error. |
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.
Release 0.3.2
Merges bolt 0.3.2 into
main. Builds on bolt #35 (release/0.3.1-validated→main, 0.3.0 + 0.3.1) — merge that first.Fixed
MAX_SOMATIC_VARIANTS— graceful skip, non-PCGR outputs still publish (#32, sash #52)PCGR_MUTATION_HOTSPOT=.treated as truthy in retention check — was blocking tiered filtering for any sample with >450k PASS variants (#32)--estimate_signaturesfrom PCGR somatic invocation — signature analysis is downstream in gpgr/sigrap (#31, sash #57)--estimate_msi/--estimate_tmbin chunked PCGR annotation runs — estimates on partial VCFs are not meaningfuljlumbroso/free-disk-spaceCI action tov1.3.0Tests added
TestRunSomaticCommandArgs(estimate flags),TestEntrySkipsPcgrOnOverflow,TestSelectPcgrVariantsRaisesOnUnresolvableOverflow,disable_estimatesforwarding inTestRunSomaticChunkArgMappingPrerequisite