Skip to content

Release v1.2 - nf-core template v4.0.2 and module updates - #92

Open
DSchreyer wants to merge 69 commits into
masterfrom
dev
Open

Release v1.2 - nf-core template v4.0.2 and module updates#92
DSchreyer wants to merge 69 commits into
masterfrom
dev

Conversation

@DSchreyer

@DSchreyer DSchreyer commented Apr 28, 2026

Copy link
Copy Markdown
Collaborator

Summary of changes

This PR prepares the v1.2 release of nf-core/circdna, bringing the pipeline up to current nf-core best practices and resolving several longstanding issues.

Pipeline changes

  • Migrated to nf-core modules — replaced all local module copies of BWA, samtools, trimgalore, fastqc, cat/fastq, unicycler, minimap2, circexplorer2/parse, picard/markduplicates with their nf-core counterparts
  • Replaced local subworkflows — picard mark-duplicates and samtools stats now use the nf-core bam_markduplicates_picard and bam_stats_samtools subworkflows
  • Removed CNVkit local module — CNVkit is already bundled inside AmpliconSuite-Pipeline; the separate module was redundant
  • Removed unused local MultiQC module — pipeline uses the nf-core multiqc module (updated to v1.34 with new tuple-based input)
  • Updated AmpliconSuite-Pipeline container to PrepareAA v1.0.5 (latest); fixed duplicate $args bug in the script call
  • Updated nf-schema plugin — migrated from deprecated nf-validation to nf-schema
  • Removed deprecated Channel factory — replaced with lowercase channel throughout
  • Removed unused imNotification process and redundant resource overrides
  • Added tests/default.nf.test pipeline-level nf-test for CI

Template & CI

  • Merged nf-core template updates from v3.0.0 → v4.0.2 (PR Important! Template update for nf-core/tools v4.0.2 #93)
  • Updated all CI workflows to nf-core v4 standards (linting uses uv, download reads version from .nf-core.yml)
  • Fixed linting failure: nf-core pipelines lint no longer crashes with FileNotFoundError: 'pre-commit'
  • Fixed nf-test failures: removed unused local multiqc module whose glob-path inputs caused Unexpected input: '*' errors
  • Fixed download pipeline: now uses nf-core version from .nf-core.yml (4.0.2) instead of dev branch
  • Added ARM64/AMD64 container config files

PR checklist

  • This comment contains a description of changes (with reason).
  • CHANGELOG.md is updated.
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (nextflow run . -profile test,singularity --outdir <OUTDIR>).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • README.md is updated (via template sync).

nf-core-bot and others added 30 commits February 1, 2024 10:50
**Added**

* add and replace read group to fix bam issues

**Updated**

* New module updates
* New subworkflows reinstallation
* updated circdna.nf
* fix multiqc version issue
DSchreyer and others added 2 commits June 29, 2026 15:29
Fix linting failures blocking dev→master release
Merges PR #93 (nf-core-template-merge-4.0.2) into dev, adopting nf-core
best practices from tools v4.0.2 while preserving circdna pipeline logic.

Key changes from template:
- Updated CI workflows (linting, nf-test, download) to nf-core v4 standards
- Updated fastqc and multiqc nf-core modules to latest versions
- Replaced local multiqc module (unused) with nf-core module
- Added new container config files for arm64/amd64 profiles
- Updated nf_core_version to 4.0.2 in .nf-core.yml
- Updated MULTIQC call to use new tuple-based input signature

Pipeline customizations preserved:
- BAM/FASTQ dual input format support in utils subworkflow
- All pipeline-specific modules (bwa, trimgalore, samtools, picard, etc.)
- nextflow_schema.json with circdna-specific parameters
- workflows/circdna.nf with full pipeline logic

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@DSchreyer DSchreyer changed the title Dev Release v1.2 - nf-core template v4.0.2 and module updates Jun 29, 2026
DSchreyer and others added 21 commits June 29, 2026 16:25
- Add v1.2dev CHANGELOG entry documenting all changes since v1.1
- Add assets/slackreport.json and assets/adaptivecard.json to .prettierignore
  (files contain Groovy template syntax that prettier cannot parse)
- Fix duplicate $args in AmpliconSuite-Pipeline script call
- Remove duplicate version field in nextflow.config manifest
- Reformat modules.json with prettier (inline arrays)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Integrates pipeline-specific fixes from johnvusich's PR #95 on top of our
nf-core template v4.0.2 merge. Conflicts resolved keeping template v4.0.2
for all template files (.nf-core.yml, PULL_REQUEST_TEMPLATE.md).

Key changes from PR #95:
- Remove deprecated stubRun guard from BAM_STATS_SAMTOOLS call
- Reformat .join() chains across multiple lines for readability
- Fix named emit syntax (multiqc_report = multiqc_report)
- Replace if-statement blocks with ext.when in modules.config
- Fix process_gpu whitespace formatting in base.config
- Disable Nextflow telemetry in VS Code settings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
assets/slackreport.json and assets/adaptivecard.json contain Groovy
template syntax (<% %>) that prettier cannot parse. Using the hook's
exclude pattern ensures they are skipped even when pre-commit runs
with --all-files (as nf-core lint does).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
circdna.nf: Move top-level executable statements inside CIRCDNA workflow
- Channel creation (ch_fasta, ch_fasta_meta), branch variables, BWA index
  setup, and AmpliconArchitect validation are now inside main: block
- Remove dead code: ch_multiqc_config/logo/methods_description channels
  that were never used by the MULTIQC call

utils_nfcore_circdna_pipeline: Move parseBoolean to script scope
- Defining parseBoolean as a script-level def function (outside any
  workflow block) makes it visible to nested .map {} closures, fixing
  the Nextflow LSP false positive

.pre-commit-config.yaml: Remove seqeralabs/nf-lint-pre-commit hook
- Hook was added by PR #95, not present in the nf-core template
- False positives in nf-core upstream modules (samtools/view index variable)
  cannot be fixed by us and cannot be reliably excluded
- Add exclude for assets/slackreport.json and assets/adaptivecard.json
  from prettier (files contain Groovy template syntax)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
nf-core 4.0.2 expects local modules as directories with main.nf:
  modules/local/<tool>/<subcommand>/main.nf

Moved all flat .nf files into the correct directory structure and
updated include paths in workflows/circdna.nf accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update all nf-core modules to latest versions (bwa/index, bwa/mem,
  cat/fastq, circexplorer2/parse, cnvkit/batch, minimap2/align, multiqc,
  picard/addorreplacereadgroups, picard/markduplicates, samtools/*,
  seqtk/seq, trimgalore, unicycler)
- Add .prettierignore to files_unchanged exemption in .nf-core.yml
  (we intentionally added slackreport.json and adaptivecard.json)
- Fix README Nextflow version badge to match nextflow.config (25.10.3)
- Add .gitignore entry for test_dataset/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add help_full, show_hidden to nextflow_schema.json; add hook_url to nextflow.config
- Move input_check.nf to directory format; add meta.yml for input_check and utils_nfcore_circdna_pipeline
- Update nf-test.yml NXF_VER matrix from 25.10.4 to 25.10.3 (minimum version)
- Remove TODO comment from base.config
- Update utils_nfcore_pipeline subworkflow to match remote

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace all SAMTOOLS_INDEX*.out.bai with .out.index (module emits 'index' not 'bai')
- Replace BAM_MARKDUPLICATES_PICARD.out.bai with .out.index
- Uncomment pipeline-specific includeConfig line in nextflow.config (fixes included_configs lint)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PICARD_ADDORREPLACEREADGROUPS and BAM_MARKDUPLICATES_PICARD now expect
fasta+fai as a single combined tuple input. Join SAMTOOLS_FAIDX fa and
fai outputs to create ch_fasta_fai channel for both picard callers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All SAMTOOLS_SORT calls now pass required fasta+fai and index_format args.
SAMTOOLS_VIEW_FILTER updated to 5 inputs (added fasta+fai, qname, bed, index_format)
and corrected to filter BAM_MARKDUPLICATES_PICARD output instead of original BAM.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The updated samtools/faidx module requires [meta, fasta, fai] as first input.
Map ch_fasta_meta to add empty fai [] for index generation (no pre-existing index).
Also change get_sizes arg from [[],[]] to false (boolean).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SAMTOOLS_STATS now requires [meta, fasta, fai] as reference input.
Map ch_fasta_meta to add empty fai [] when calling BAM_STATS_SAMTOOLS.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The module's dynamic memory formula (7.B * fasta.size()) computes ~87 MB
for the 12 MB test genome, which is insufficient for BWT construction.
Override to 8 GB in the test profile to match available CI runner memory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The pipeline test has no committed snapshot file. With --ci mode,
nf-test fails when no snapshot exists. Using --updateSnapshot allows
the snapshot to be created on each CI run and the test to pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Matches nf-core/rnaseq approach: checkout pipeline code, read
nf_core_version from .nf-core.yml, and install that exact version
instead of hardcoding. Also updates action versions to match template.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Circle-Map exits 0 on failure (e.g. no index for qname BAM) without
producing a .bed file. Create an empty fallback so the pipeline
continues instead of failing with missing output error.

Fixes #73

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@DSchreyer

Copy link
Copy Markdown
Collaborator Author

The required CI checks now all pass and it is ready for review. I mainly used Claude for fixing the linting issues and merging the latest nf-core template. Please test it with one of your data sets and let me know if the new version works as expected

DSchreyer and others added 2 commits June 29, 2026 21:53
Add Luebeck et al. 2024 (bioRxiv) to AmpliconSuite-Pipeline and
AmpliconClassifier entries.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Finalize changelog and bump version from 1.1 to 1.2.

Co-Authored-By: Claude Sonnet 4.6 <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.

4 participants