-
Notifications
You must be signed in to change notification settings - Fork 522
Fix FilterMutectCalls not running when starting from BAM with lane field #2124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
When starting from `--step variant_calling` with BAM files that include a `lane` column in the samplesheet, the meta.id was set to `sample-lane` (e.g. "PM10_P0-1"). However, the Mutect2 tumor-only subworkflow resets the ID to `meta.sample` (e.g. "PM10_P0") at the pileup/contamination step. This mismatch caused the `.join()` to produce an empty channel, so FilterMutectCalls silently never ran. The fix uses lane-based IDs only for the mapping step (where lanes are processed separately). For all other steps, the sample-based ID is used, ensuring consistent ID matching in downstream channel joins. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
Warning Newer version of the nf-core template is available. Your pipeline is using an old version of the nf-core template: 3.5.1. For more documentation on how to update your pipeline, please see the nf-core documentation and Synchronisation documentation. |
Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
maxulysse
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Summary
--step variant_callingwith BAM files that include alanecolumn in the samplesheet,FilterMutectCallssilently does not run, causing variants to not be annotated/filteredmeta.idwas set tosample-lane(e.g.,"PM10_P0-1") in samplesheet parsing, but the Mutect2 tumor-only subworkflow resets the pileup/contamination ID tometa.sample(e.g.,"PM10_P0"), causing.join()mismatches that produce empty channelsFixes the issue where removing the
lanefield from the samplesheet was the only workaround.Test plan
--step variant_callingwith BAM input withlanefield in samplesheet — verifyFilterMutectCallsruns--step variant_callingwith BAM input withoutlanefield — verify no regression--step mappingwith BAM input withlanefield — verify alignment still uses lane-based IDs🤖 Generated with Claude Code