Repository navigation
fix(counting): distinguish chromosome mismatch from unassigned reads - #176
Draft
NicoDeVeaux wants to merge 5 commits into
Draft
NicoDeVeaux wants to merge 5 commits into
NicoDeVeaux wants to merge 5 commits into
Conversation
…mosome names When mapped reads exist but none lands in a gene, `count_reads` reports "Chromosome name mismatch" without comparing names. These tests fail where the BAM and GTF share a name (directly, or through chromosome_prefix) and keep the mismatch message for disjoint names. All three expect a non-zero exit: whether to abort on this input is a separate question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… overlap When mapped reads exist but none is assigned to a gene, check whether any alignment chromosome (after chromosome_prefix / chromosome_mapping) is a GTF chromosome. If one is, report that no reads could be assigned to any gene instead of "Chromosome name mismatch" and its chromosome_mapping advice. The run still fails in both cases; only the diagnostic changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Avoid claiming no physical overlap when strandedness rejects overlapping reads. Preserve error exits and chromosome-name diagnostics. Add a wrong-strand overlap regression with a successful unstranded control.
Port the separately verified seven-line iterator delta from a9083c, preserving integer addition and channel order.
Apply only the crossbeam-epoch 0.9.20 and libz-sys 1.1.31 version/checksum blocks from b5658a8. These exact pins passed the combined candidate validation.
This branch has not been 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.
When mapped reads cannot be assigned to a gene, RustQC now reports a chromosome-name mismatch only when the effective alignment names and GTF names are disjoint. Shared names produce an assignment diagnostic that directs users to annotation/genome assembly and strandedness settings.
The wording deliberately describes configured gene assignment: a read can physically overlap a gene and still be excluded by
--stranded. The previous version of this PR incorrectly said that no mapped read overlapped a gene in that case. Exit behavior stays nonzero for zero assignment; deciding whether to produce partial/empty outputs is a separate owner decision.Validation of
7c5985on macOS arm64 / Rust 1.90.0:This stays independent of #175's counting work and the #118 → #177 → #178 reader migration. The existing mismatch branch's example chromosome mapping is unchanged. Fresh GitHub CI is reported by the checks on this PR; no full RNA-QC or release acceptance is claimed.
This update is written by GPT-6 on Nico DeVeaux's behalf. The original PR was prepared with Claude Code.