Repository navigation
Stop warning that a breakend has no END/SVLEN (#497) - #818
Merged
Merged
Conversation
A breakend is a point (VCF 4.2 5.4) with no copy-number change, so the coverage pass now skips it at DEBUG before the span lookup. The warning stays for symbolic SVs that need a span and lack one, such as a <DEL>. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 6, 2026
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.
A well-formed breakend supplied via
input_vcfloggedWARN Symbolic SV at 1-based POS 600 has no END/SVLEN — skipping coverage modulation. Skipping is correct: a breakend is a point (VCF 4.2 §5.4) with no copy-number change. But the warning read as a defect in a spec-correct VCF.Versioning: PATCH-level under
versioning.md. A log message changes level; no config key, output, or model format changes.Fix
build_coverage_multipliersnow skipsSvType::Bndbefore the span lookup and logs it at DEBUG (Breakend at 1-based POS 600: a point event, no coverage modulation). The WARN is unchanged for symbolic SVs that need a span and lack one, such as a<DEL>with no END or SVLEN. The function's doc comment said such SVs were skipped "silently", which was not true; it now describes both cases.Skipping is safe because
coverage_multiplier_foralready returned 1.0 for a BND, so the coverage segments are unchanged.Evidence
H1N1_HA:600↔H1N1_PB2:900, no END or SVLEN) logged the WARN four times ondevelop, once per breakend per pass. With the fix, the same run logs 0 WARNs and four DEBUG lines.eidolon/tests/bnd_no_span_warning.rs, which runs the binary at--log-level debugand reads the written log:<DEL>with no END or SVLEN must still log the WARN.|| true) fails the must-fire test. Confirmed the mutant was applied.fmt --checkandclippy -D warningspass locally.Test note: the tests read the log file because simplelog's
TerminalMode::Mixedsends WARN to stdout, not stderr. A stderr assertion would pass even if the warning came back.Not verified
input_vcfbreakends were exercised. De novo BNDs go through the same function, so they get the same skip, but no test runs them.Closes #497.
🤖 Generated with Claude Code