Skip to content

Dev#6

Open
nickhsmith wants to merge 6298 commits into
nickhsmith:devfrom
nf-core:dev
Open

Dev#6
nickhsmith wants to merge 6298 commits into
nickhsmith:devfrom
nf-core:dev

Conversation

@nickhsmith

Copy link
Copy Markdown
Owner

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
    • If you've added a new tool - add to the software_versions process and a regex to scrape_software_versions.py
    • If you've added a new tool - have you followed the pipeline conventions in the contribution docs
    • If necessary, also make a PR on the nf-core/sarek branch on the nf-core/test-datasets repository.
  • Make sure your code lints (nf-core lint .).
  • Ensure the test suite passes (nextflow run . -profile test,docker).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

maxulysse and others added 29 commits December 17, 2025 16:32
Enable the Condel plugin for VEP annotation to calculate Consensus Deleteriousness scores for missense mutations using SIFT and PolyPhen-2 predictions.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add usage documentation for the Condel VEP plugin.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Enable the Mastermind plugin for VEP annotation to retrieve citation counts from the Mastermind Genomic Search Engine for variants.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add support for mutations, var_iden, and url optional parameters for the Mastermind plugin. Update CHANGELOG with correct PR numbers for both Condel (#2092) and Mastermind (#2093) plugins.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add usage documentation for the Mastermind VEP plugin including optional parameters.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add support for the VEP Phenotypes plugin which retrieves overlapping phenotype information from Ensembl's phenotype annotation databases. The plugin maps phenotype data to genomic features including genes, variants, and QTLs.

Parameters:
- --vep_phenotypes: Enable the plugin
- --phenotypes_file: Optional path to phenotype GFF/GVF file (auto-downloads if not specified)
- --phenotypes_include_types: Optional filter for feature types (Gene, Variation, QTL, StructuralVariation)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
famosab and others added 30 commits February 18, 2026 16:05
…2143)

<!--
# nf-core/sarek pull request

Many thanks for contributing to nf-core/sarek!

Please fill in the appropriate checklist below (delete whatever is not
relevant).
These are the most common things requested on pull requests (PRs).

Remember that PRs should be made against the dev branch, unless you're
preparing a pipeline release.

Learn more about contributing:
[CONTRIBUTING.md](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md)
-->

## PR checklist

Related to #2030

- [ ] This comment contains a description of changes (with reason).
- [ ] If you've fixed a bug or added code that should be tested, add
tests!
- [ ] If you've added a new tool - have you followed the pipeline
conventions in the [contribution
docs](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md)
- [ ] If necessary, also make a PR on the nf-core/sarek _branch_ on the
[nf-core/test-datasets](https://github.com/nf-core/test-datasets)
repository.
- [ ] Make sure your code lints (`nf-core pipelines lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker
--outdir <OUTDIR>`).
- [ ] Check for unexpected warnings in debug mode (`nextflow run .
-profile debug,test,docker --outdir <OUTDIR>`).
- [ ] Usage Documentation in `docs/usage.md` is updated.
- [ ] Output Documentation in `docs/output.md` is updated.
- [ ] `CHANGELOG.md` is updated.
- [ ] `README.md` is updated (including new tool citations and
authors/contributors).
Update vcf_annotate_snpeff subworkflow
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: nf-core-bot <core@nf-co.re>
Closes: #2107
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Fixes #2151
## Summary
- Replace the hand-rolled `imNotification` / `hook_url` /
`slackreport.json` mechanism with the [`nf-slack`
plugin](https://seqeralabs.github.io/nf-slack/)
- Slack notifications are now configured via the `SLACK_WEBHOOK_URL`
environment variable and the plugin's `slack {}` config scope in
`nextflow.config`
- Remove `assets/slackreport.json`, `assets/adaptivecard.json`, the
`imNotification()` function, and the `hook_url` parameter

## Migration
Users previously using `--hook_url` or the `HOOK_URL` env var should now
set `SLACK_WEBHOOK_URL` instead. The nf-slack plugin handles on-start,
on-complete, and on-error notifications automatically.

## Test plan
- [ ] Run pipeline with `SLACK_WEBHOOK_URL` set and verify Slack
notification is received
- [ ] Run pipeline without `SLACK_WEBHOOK_URL` and verify no errors
(plugin disabled gracefully)
- [ ] Verify email notifications still work as before

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…eCaller (#2146)

## Summary
- Closes #1282
- The pipeline now errors immediately when `--no_intervals` is used with
`--joint_germline` and `haplotypecaller`, since GenomicsDB cannot
operate without intervals
- Sentieon tools (haplotyper, dnascope) are not affected as they don't
use GenomicsDB
- Separated the missing VQSR resources warning from the `no_intervals`
check for clarity

## Test plan
- [ ] Run with `--tools haplotypecaller --joint_germline --no_intervals`
and confirm the pipeline exits with a clear error message
- [ ] Run with `--tools sentieon_haplotyper --joint_germline
--no_intervals` and confirm it still works (no error)
- [ ] Run normal joint germline HaplotypeCaller with intervals to
confirm no regression

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Closes #1437
Co-authored-by: FriederikeHanssen <friederike.hanssen@seqera.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Closes: #2118
Fixing strict syntax errors so that I can test with Nextflow 26.04

The main change is removing if statements from config. You should be
able to just remove them without generating tons of false warnings,
since the strict syntax can validate process selectors against
conditional processes as well.

I was able to run the `test` profile with these changes on 26.03.0-edge

---------

Co-authored-by: Famke Bäuerle <45968370+famosab@users.noreply.github.com>
Co-authored-by: Famke Bäuerle <famke.baeuerle@gmail.com>
<!--
# nf-core/sarek pull request

Many thanks for contributing to nf-core/sarek!

Please fill in the appropriate checklist below (delete whatever is not
relevant).
These are the most common things requested on pull requests (PRs).

Remember that PRs should be made against the dev branch, unless you're
preparing a pipeline release.

Learn more about contributing:
[CONTRIBUTING.md](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md)
-->

## PR checklist

- [ ] This comment contains a description of changes (with reason).
- [ ] If you've fixed a bug or added code that should be tested, add
tests!
- [ ] If you've added a new tool - have you followed the pipeline
conventions in the [contribution
docs](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md)
- [ ] If necessary, also make a PR on the nf-core/sarek _branch_ on the
[nf-core/test-datasets](https://github.com/nf-core/test-datasets)
repository.
- [ ] Make sure your code lints (`nf-core pipelines lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker
--outdir <OUTDIR>`).
- [ ] Check for unexpected warnings in debug mode (`nextflow run .
-profile debug,test,docker --outdir <OUTDIR>`).
- [ ] Usage Documentation in `docs/usage.md` is updated.
- [ ] Output Documentation in `docs/output.md` is updated.
- [x] `CHANGELOG.md` is updated.
- [ ] `README.md` is updated (including new tool citations and
authors/contributors).
… (#2188)

Bumps all 9 sentieon vendored modules (applyvarcal, bwamem, dedup,
dnamodelapply, dnascope, gvcftyper, haplotyper, tnscope, varcal) from
pinned SHA 256557155... to nf-core/modules HEAD 7ad1622c6...

Notable upstream changes pulled in:

  * sentieon/gvcftyper now honours its staged `--interval` input. Joint
    runs no longer produce overlapping records at interval boundaries.

  * sentieon/varcal multi-`--resource:` parsing in the List branch is
    fixed; sarek's igenomes.config style of packing multiple resources
    into one string (e.g. known_indels_vqsr for hg38) now passes through
    correctly instead of leaving an orphan `--resource:mills,…` literal.

  * All sentieon modules now emit versions via `topic: versions`
    (emit name `versions_sentieon`). Removed the explicit
`versions.mix(SENTIEON_*.out.versions)` calls in 8 local subworkflows
    — sarek's `softwareVersionsToYAML` already collects topic emissions
    via `channel.topic("versions")`, so they're picked up automatically.

Co-authored-by: Maxime U. Garcia <max.u.garcia@gmail.com>
…ing (#2189)

Co-authored-by: nf-core-bot <core@nf-co.re>
Co-authored-by: Maxime U Garcia <max.u.garcia@gmail.com>
…-core subworkflows, add htslib to ensemblvep/vep (#2194)
Co-authored-by: nf-core-bot <core@nf-co.re>
Co-authored-by: Maxime U Garcia <max.u.garcia@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
## What this fixes

`--save_output_as_bam` was broken in several ways. This PR makes it work
end-to-end and tightens an existing safeguard.

### User-visible behaviour

- With `--save_output_as_bam`: markduplicates, sentieon dedup, and
recalibration all publish BAM directly. No more silently-skipped variant
calling, no more duplicate-emission errors.
- Without `--save_output_as_bam`: BAM files no longer appear in
`preprocessing/converted/cram_to_bam/` as a side-effect of
cnvkit/msisensor2/muse running. The conversion still happens for those
tools (they need BAM input), it's just not published.
- `--use_gatk_spark markduplicates` + `--save_mapped` now errors at
parameter validation, regardless of `--save_output_as_bam`. Previously
it produced a name-sorted, unindexable mapped BAM/CRAM (#1949).

### How

Instead of always producing CRAM and converting back to BAM, the
relevant processes now output the requested format directly:

- `APPLYBQSR`, `GATK4_MARKDUPLICATES`, `GATK4SPARK_MARKDUPLICATES`, and
`SENTIEON_DEDUP` have `ext.prefix`/`ext.suffix` conditional on
`params.save_output_as_bam`.
- `bam_applybqsr`, `bam_markduplicates`, `bam_markduplicates_spark`, and
`bam_sentieon_dedup` each expose a single `alignment` channel that mixes
their BAM and CRAM output branches — only one is ever populated per
sample, so there is no duplicate emission to join on.
- CSV restart files derive the data type from the actual filename
instead of a brittle `.minus(".cram")` hack.
- The conditional `CRAM_TO_BAM`/`CRAM_TO_BAM_RECAL` conversion steps at
the preprocessing stages are gone. The variant-calling-stage
`CRAM_TO_BAM` (needed for cnvkit/msisensor2/muse BAM input) still runs
but now only publishes its output when `--save_output_as_bam` is set.

### Issues closed

- Closes #2136 — `GATK4_APPLYBQSR` duplicate-emission on left channel
- Closes #2064 — same, right channel
- Closes #2149 — variant calling silently skipped when APPLYBQSR emitted
`.recal.bam` but downstream looked for `.recal.cram`
- Closes #2148 — converted BAMs published in
`preprocessing/converted/cram_to_bam/` without the flag
- Closes #2078 — sentieon dedup + `--save_output_as_bam --save_mapped`
join mismatch
- Closes #2132 — `.md.cram.metrics` instead of `.md.bam.metrics` when
saving as BAM
- Closes #1894 — restart from `--step prepare_recalibration` with BAM
input
- Closes #1949 — Spark markduplicates + `--save_mapped` produced
unindexable output

### Test plan

- [x] `nf-test test tests/save_output_as_bam.nf.test --profile
debug,test,docker` — both scenarios pass
- [x] `nf-test test tests/default.nf.test --profile debug,test,docker` —
default test passes (no BAM artifacts without flag)
- [ ] With `--save_output_as_bam`: BAM files in
`preprocessing/markduplicates/` and `preprocessing/recalibrated/`,
variant calling runs
- [ ] Without flag: only CRAM files, no
`preprocessing/converted/cram_to_bam/` artifacts
- [ ] With intervals (WGS): no duplicate emission errors
- [ ] With sentieon dedup: BAM published to
`preprocessing/sentieon_dedup/` when flag is set
- [ ] `--use_gatk_spark markduplicates --save_mapped` errors out at
parameter validation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Maxime U Garcia <max.u.garcia@gmail.com>
…nda/share (#2196)

### Problem
`vep_version` was set to `115.0-0` in `nextflow.config` but the
container ships `ensembl-vep=115.2` via conda, which installs to
`/opt/conda/share/ensembl-vep-115.2-1`. The `loftee_path` in
`conf/modules/annotate.config` still referenced `/usr/local/share/`,
resulting in a broken LoFTEE plugin path for anyone enabling
`--vep_loftee`.

### Fix
- Updated `vep_version` from `115.0-0` to `115.2-1` in `nextflow.config`
- Fixed `loftee_path` from
`/usr/local/share/ensembl-vep-${params.vep_version}` to
`/opt/conda/share/ensembl-vep-${params.vep_version}` in
`conf/modules/annotate.config`
- Updated the default and help_text in `nextflow_schema.json`

This mirrors the same fix applied in
[nf-core/rnavar#307](nf-core/rnavar#307).
Co-authored-by: Friederike Hanssen <friederike.hanssen@seqera.io>
## Description

Follow-up to #2199. Adds the missing flowing dots at entry points of the
animated metro map (`docs/images/sarek_subway_animated.svg`):

- **Core (green) line** — dots for the additional `bam/cram` entry
points (markduplicates, prepare-recalibration, applyBQSR areas) and the
`vcf` entry point near the variant-calling block. Each dot drops from
its file onto the line and flows into variant calling, matching the
existing fastq/ubam/cram entry style.
- **Germline (blue) line** — a dot entering from the `cram` file along
the previously-empty upper express track. The existing germline dots
only rode the lower track, so the cram entry had no flowing dot.

All new dots flow *into* the line (file → line) and reuse the existing
white-dot styling; durations are scaled to keep dot speed consistent
with the existing animation.

SVG-only change — no pipeline logic affected.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
## Description

Reverts the `controlfreec/assesssignificance` submodule from
`control-freec` 11.6b (`hde5307d_3`) back to 11.6 (`h1b792b2_1`).

## Changes

- `modules/nf-core/controlfreec/assesssignificance/environment.yml` —
`control-freec=11.6b` → `control-freec=11.6`
- `modules/nf-core/controlfreec/assesssignificance/main.nf` — container
`11.6b--hde5307d_3` → `11.6--h1b792b2_1`
- `modules.json` — pin updated `git_sha`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
<!--
# nf-core/sarek pull request

Many thanks for contributing to nf-core/sarek!

Please fill in the appropriate checklist below (delete whatever is not
relevant).
These are the most common things requested on pull requests (PRs).

Remember that PRs should be made against the dev branch, unless you're
preparing a pipeline release.

Learn more about contributing:
[CONTRIBUTING.md](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md)
-->

## PR checklist

- [ ] This comment contains a description of changes (with reason).
- [ ] If you've fixed a bug or added code that should be tested, add
tests!
- [ ] If you've added a new tool - have you followed the pipeline
conventions in the [contribution
docs](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md)
- [ ] If necessary, also make a PR on the nf-core/sarek _branch_ on the
[nf-core/test-datasets](https://github.com/nf-core/test-datasets)
repository.
- [ ] Make sure your code lints (`nf-core pipelines lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker
--outdir <OUTDIR>`).
- [ ] Check for unexpected warnings in debug mode (`nextflow run .
-profile debug,test,docker --outdir <OUTDIR>`).
- [ ] Usage Documentation in `docs/usage.md` is updated.
- [ ] Output Documentation in `docs/output.md` is updated.
- [ ] `CHANGELOG.md` is updated.
- [ ] `README.md` is updated (including new tool citations and
authors/contributors).

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Addresses review feedback from #2168 (Release 3.9.0).

## Changes

**CHANGELOG**
- Document the varlociraptor `--force-samples` behaviour change (#2055)
— merge now proceeds by renaming colliding sample columns instead of
failing
- Document the UMI consensus `groupKey` fix that strips `sample_lane_id`
so `groupTuple` can merge lanes from the same sample (#2117)
- Add the missing `sentieon` `202503.01 → 202503.02` dependency bump
(#2188)

**Cleanup**
- Remove the obsolete `test_azure` / `test_full_azure` /
`test_full_germline_azure` profiles from `nextflow.config` —
`cloudtest.yml` no longer dispatches them and they were not referenced
anywhere else
- Drop a dead commented-out `ext.when` line in
`conf/modules/aligner_parabricks.config`

## Reviewer questions resolved without code changes

- **`null` in test snapshot CLI strings** (`intervals`,
`joint_calling_haplotypecaller`): the `null`s are in the nf-test
snapshot label/key strings, not real command lines. The params come from
a separate `params:` map where Groovy `null` == unset; nothing
interpolates `"null"` into a tool command. No change needed.
- **Empty Picard histogram files** (`save_output_as_bam` snapshot):
legitimately-empty MultiQC data exports (no data to plot on the small
test dataset). The identical empty md5 appears in 14 other sarek
snapshots — a pre-existing suite-wide pattern, not introduced here.
- **`cli_typecast` `null`** in `utils_nfcore_sarek_pipeline`: stock
nf-schema template value (`null` = default typecasting behaviour).
Resolved on the original PR.
- **cloudtest `vars` → `secrets`**: left as-is; cloud tests run.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

9 participants