Skip to content
Merged

Taps #574

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
db60bfe
Merge pull request #558 from nf-core/dev
sateeshperi Aug 10, 2025
b8a893f
updated version
eduard-watchmaker Oct 15, 2025
a424477
updated version
eduard-watchmaker Oct 15, 2025
eb87a07
updated version
eduard-watchmaker Oct 15, 2025
42f8fe0
schema
eduard-watchmaker Oct 15, 2025
787282d
path
eduard-watchmaker Oct 15, 2025
320f9e2
path
eduard-watchmaker Oct 15, 2025
de90b7d
working version
eduard-watchmaker Oct 15, 2025
8f590c7
changed fq_align_dedup_bwamem for fq_align_bwa
eduard-watchmaker Oct 21, 2025
cf83bb2
samtools change
eduard-watchmaker Oct 21, 2025
7bef714
taps to nfcore
eduard-watchmaker Oct 21, 2025
c4755b5
add bam to workflow name
eduard-watchmaker Oct 21, 2025
dca1e44
renaming
eduard-watchmaker Oct 21, 2025
93abf2a
changes
eduard-watchmaker Oct 21, 2025
8265979
more tests
eduard-watchmaker Oct 21, 2025
9d142bf
comment out
eduard-watchmaker Oct 21, 2025
bb149eb
params
eduard-watchmaker Oct 21, 2025
a303797
rm file from test
eduard-watchmaker Oct 21, 2025
9ce829f
rm file from test
eduard-watchmaker Oct 21, 2025
0b69be9
rm file from test
eduard-watchmaker Oct 21, 2025
ec22182
new parabricks fq2bam
eduard-watchmaker Oct 22, 2025
0051ed1
fix
eduard-watchmaker Oct 22, 2025
8d5a482
add picard groups
eduard-watchmaker Oct 22, 2025
7cc8490
why only one sample
eduard-watchmaker Oct 22, 2025
a5fa5ae
why only one sample
eduard-watchmaker Oct 22, 2025
d4bbc26
why only one sample
eduard-watchmaker Oct 22, 2025
4e15539
why only one sample
eduard-watchmaker Oct 22, 2025
892598d
why only one sample
eduard-watchmaker Oct 22, 2025
b521204
why only one sample
eduard-watchmaker Oct 22, 2025
146cb8f
boradcast
eduard-watchmaker Oct 22, 2025
3203069
boradcast methyldackel
eduard-watchmaker Oct 23, 2025
32f5e0b
updated to fastq_align_dedup_bwamem
eduard-watchmaker Oct 30, 2025
7025f4d
Merge branch 'taps' of github.com:nf-core/methylseq into taps
eduard-watchmaker Oct 30, 2025
53e636d
missing comma
eduard-watchmaker Oct 30, 2025
a06c82d
rm redundant code
eduard-watchmaker Oct 30, 2025
81666bb
config fix
eduard-watchmaker Oct 30, 2025
ffc1c2d
forgot damn config
eduard-watchmaker Oct 30, 2025
d243263
more channels
eduard-watchmaker Nov 3, 2025
86a5349
new snapshots
Nov 3, 2025
e254e62
less tests
eduard-watchmaker Nov 3, 2025
48786da
fixing new version HS metrics
eduard-watchmaker Nov 3, 2025
ffc3ee3
ignore multiqc parquet
eduard-watchmaker Nov 3, 2025
79fd87a
input was ahead of time lol
eduard-watchmaker Nov 3, 2025
e959b2d
gpu snapshhot
Nov 3, 2025
4d98def
fix lint issues from new template
Nov 5, 2025
7b9930c
Merge branch 'dev' into taps
eduard-watchmaker Nov 5, 2025
301de2e
PR feedback
Nov 17, 2025
a0b77aa
forgot allOf
Nov 17, 2025
d7e865c
paths for output
Nov 17, 2025
08d1bf9
update multiqc module and snapshots
sateeshperi Nov 21, 2025
8f49567
pre-commit fix all files
sateeshperi Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5

- name: Set up Python 3.13
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
- name: Set up Python 3.14
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
with:
python-version: "3.13"
python-version: "3.14"

- name: Install pre-commit
run: pip install pre-commit
Expand All @@ -28,14 +28,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5

- name: Install Nextflow
uses: nf-core/setup-nextflow@v2

- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
with:
python-version: "3.13"
python-version: "3.14"
architecture: "x64"

- name: read .nf-core.yml
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:

- name: Upload linting log file artifact
if: ${{ always() }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: linting-logs
path: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linting_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
run: echo "pr_number=$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT

- name: Post PR comment
uses: marocchino/sticky-pull-request-comment@52423e01640425a022ef5fd42c6fb5f633a02728 # v2
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.pr_number.outputs.pr_number }}
Expand Down
4 changes: 3 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,7 @@ testing/
testing*
*.pyc
bin/
.nf-test/
ro-crate-metadata.json
*.nf.test.snap
modules/nf-core/
subworkflows/nf-core/
6 changes: 6 additions & 0 deletions CITATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@

> Felix Krueger, Simon R. Andrews, Bismark: a flexible aligner and methylation caller for Bisulfite-Seq applications, Bioinformatics, Volume 27, Issue 11, 1 June 2011, Pages 1571–1572, doi: [10.1093/bioinformatics/btr167](https://doi.org/10.1093/bioinformatics/btr167)

- [BWA-MEM](https://arxiv.org/abs/1303.3997v2)

> Li H: Aligning sequence reads, clone sequences and assembly contigs with BWA-MEM. arXiv 2013. doi: 10.48550/arXiv.1303.3997

- [bwa-meth](https://arxiv.org/abs/1401.1129)

> Pedersen, Brent S. and Eyring, Kenneth and De, Subhajyoti and Yang, Ivana V. and Schwartz, David A. Fast and accurate alignment of long bisulfite-seq reads, arXiv:1401.1129, doi: [10.48550/arXiv.1401.1129](https://doi.org/10.48550/arXiv.1401.1129)
Expand All @@ -49,6 +53,8 @@

> Daley, T., Smith, A. Predicting the molecular complexity of sequencing libraries. Nat Methods 10, 325–327 (2013). doi: [10.1038/nmeth.2375](https://doi.org/10.1038/nmeth.2375)

- [rastair](https://bitbucket.org/bsblabludwig/rastair/src/master/)

- [Samtools](https://doi.org/10.1093/gigascience/giab008)

> Petr Danecek, James K Bonfield, Jennifer Liddle, John Marshall, Valeriu Ohan, Martin O Pollard, Andrew Whitwham, Thomas Keane, Shane A McCarthy, Robert M Davies, Heng Li, Twelve years of SAMtools and BCFtools, GigaScience, Volume 10, Issue 2, February 2021, giab008, doi: [10.1093/gigascience/giab008](https://doi.org/10.1093/gigascience/giab008)
Expand Down
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

**nf-core/methylseq** is a bioinformatics analysis pipeline used for Methylation (Bisulfite) sequencing data. It pre-processes raw data from FastQ inputs, aligns the reads and performs extensive quality-control on the results.

![nf-core/methylseq metro map](docs/images/4.0.0_metromap.png)
![nf-core/methylseq metro map](docs/images/taps_metromap.png)

The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker / Singularity / Podman / Charliecloud / Apptainer containers making installation trivial and results highly reproducible.

Expand All @@ -32,26 +32,26 @@ On release, automated continuous integration tests run the pipeline on a full-si

## Pipeline Summary

The pipeline allows you to choose between running either [Bismark](https://github.com/FelixKrueger/Bismark) or [bwa-meth](https://github.com/brentp/bwa-meth) / [MethylDackel](https://github.com/dpryan79/methyldackel).
The pipeline allows you to choose between running either [Bismark](https://github.com/FelixKrueger/Bismark), [bwa-meth](https://github.com/brentp/bwa-meth) / [MethylDackel](https://github.com/dpryan79/methyldackel) or [BWA-Mem](https://github.com/lh3/bwa) plus [rastair](https://bitbucket.org/bsblabludwig/rastair/src/master/) for for TAPS data processing. rastair can also be used with bwa-meth aligned reads by setting the aligner to `--aligner bwameth` and adding the flag `--taps`.

Choose between workflows by using `--aligner bismark` (default, uses bowtie2 for alignment), `--aligner bismark_hisat` or `--aligner bwameth`. For higher performance, the pipeline can leverage the [Parabricks implementation of bwa-meth (fq2bammeth)](https://docs.nvidia.com/clara/parabricks/latest/documentation/tooldocs/man_fq2bam_meth.html), which implements the baseline tool `bwa-meth` in a performant method using fq2bam (BWA-MEM + GATK) as a backend for processing on GPU. To use this option, include the `gpu` profile along with `--aligner bwameth`.
Choose between workflows by using `--aligner bismark` (default, uses bowtie2 for alignment), `--aligner bismark_hisat`, `--aligner bwameth` or `--aligner bwamem`. For higher performance, the pipeline can leverage the [Parabricks implementation of bwa-meth (fq2bammeth)](https://docs.nvidia.com/clara/parabricks/latest/documentation/tooldocs/man_fq2bam_meth.html) and the [Parabricks implementation of bwa-mem (fq2bammemh)](https://docs.nvidia.com/clara/parabricks/latest/documentation/tooldocs/man_fq2bam.html), which implement the baseline tools `bwa-meth` and `bwa-mem`. To use this option, include the `gpu` profile along with `--aligner bwameth` or `--aligner bwamem`.

Note: For faster CPU runs with BWA-Meth, enable the BWA-MEM2 algorithm using `--use_mem2`. The GPU pathway (Parabricks) requires `-profile gpu` and a container runtime (Docker, Singularity, or Podman); Conda/Mamba are not supported for the GPU module.

| Step | Bismark workflow | bwa-meth workflow |
| -------------------------------------------- | ------------------------ | --------------------- |
| Generate Reference Genome Index _(optional)_ | Bismark | bwa-meth |
| Merge re-sequenced FastQ files | cat | cat |
| Raw data QC | FastQC | FastQC |
| Adapter sequence trimming | Trim Galore! | Trim Galore! |
| Align Reads | Bismark (bowtie2/hisat2) | bwa-meth |
| Deduplicate Alignments | Bismark | Picard MarkDuplicates |
| Extract methylation calls | Bismark | MethylDackel |
| Sample report | Bismark | - |
| Summary Report | Bismark | - |
| Alignment QC | Qualimap _(optional)_ | Qualimap _(optional)_ |
| Sample complexity | Preseq _(optional)_ | Preseq _(optional)_ |
| Project Report | MultiQC | MultiQC |
| Step | Bismark workflow | bwa-meth workflow | bwa-mem + TAPS workflow |
| -------------------------------------------- | ------------------------ | --------------------- | -------------------------- |
| Generate Reference Genome Index _(optional)_ | Bismark | bwa-meth | bwa index |
| Merge re-sequenced FastQ files | cat | cat | cat |
| Raw data QC | FastQC | FastQC | FastQC |
| Adapter sequence trimming | Trim Galore! | Trim Galore! | Trim Galore! |
| Align Reads | Bismark (bowtie2/hisat2) | bwa-meth | bwa mem |
| Deduplicate Alignments | Bismark | Picard MarkDuplicates | Picard MarkDuplicates |
| Extract methylation calls | Bismark | MethylDackel | TAPS subworkflow (rastair) |
| Sample report | Bismark | - | - |
| Summary Report | Bismark | - | - |
| Alignment QC | Qualimap _(optional)_ | Qualimap _(optional)_ | Qualimap _(optional)_ |
| Sample complexity | Preseq _(optional)_ | Preseq _(optional)_ | Preseq _(optional)_ |
| Project Report | MultiQC | MultiQC | MultiQC |

Optional targeted sequencing analysis is available via `--run_targeted_sequencing` and `--target_regions_file`; see the [usage documentation](https://nf-co.re/methylseq/usage) for details.

Expand Down
Binary file modified assets/nf-core-methylseq_logo_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions conf/base.config
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,7 @@ process {
withName: PARABRICKS_FQ2BAMMETH {
memory = { 100.GB * task.attempt }
}
withName: PARABRICKS_FQ2BAM {
memory = { 100.GB * task.attempt }
}
}
5 changes: 5 additions & 0 deletions conf/modules/gatk_removeduplicates.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
process {
withName: GATK4_REMOVEDUPLICATES {
ext.args = "--REMOVE_DUPLICATES true --TAG_DUPLICATE_SET_MEMBERS true"
}
}
5 changes: 5 additions & 0 deletions conf/modules/picard_addorreplacereadgroups.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
process {
withName: PICARD_ADDORREPLACEREADGROUPS {
ext.args = "--RGID 1 --RGLB lib1 --RGPL illumina --RGPU unit1 --RGSM sample1"
}
}
18 changes: 18 additions & 0 deletions conf/modules/picard_removeduplicates.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
process {
withName: PICARD_REMOVEDUPLICATES {
ext.args = "--ASSUME_SORTED true --REMOVE_DUPLICATES true --VALIDATION_STRINGENCY LENIENT --PROGRAM_RECORD_ID 'null' --TMP_DIR tmp"
ext.prefix = { "${meta.id}.dedup.sorted" }
publishDir = [
[
path: { "${params.outdir}/${params.aligner}/deduplicated/picard_metrics" },
pattern: "*.metrics.txt",
mode: params.publish_dir_mode
],
[
path: { "${params.outdir}/${params.aligner}/deduplicated" },
pattern: "*.bam",
mode: params.publish_dir_mode
]
]
}
}
20 changes: 20 additions & 0 deletions conf/modules/rastair_call.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
process {
withName: RASTAIR_CALL {
ext.args = [
// Pending the resolution of the mbias_parse process
params.trim_OT ?: '0,0,10,0', // [r1_start, r1_end, r2_start, r2_end]
params.trim_OB ?: '0,0,10,0' // [r1_start, r1_end, r2_start, r2_end]
].join(" ").trim()
publishDir = [
[
path: { "${params.outdir}/rastair/call" },
mode: params.publish_dir_mode,
pattern: "*.txt"
], [
path: { "${params.outdir}/rastair/call" },
mode: params.publish_dir_mode,
pattern: "*.gz"
]
]
}
}
11 changes: 11 additions & 0 deletions conf/modules/rastair_mbias.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
process {
withName: RASTAIR_MBIAS {
publishDir = [
[
path: { "${params.outdir}/rastair/mbias" },
mode: params.publish_dir_mode,
pattern: "*.txt"
]
]
}
}
11 changes: 11 additions & 0 deletions conf/modules/rastair_mbias_parser.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
process {
withName: RASTAIR_MBIASPARSER {
publishDir = [
[
path: { "${params.outdir}/rastair/mbiasparser" },
mode: params.publish_dir_mode,
pattern: "*rastair_mbias_processed*"
]
]
}
}
11 changes: 11 additions & 0 deletions conf/modules/rastair_methylkit.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
process {
withName: RASTAIR_METHYLKIT {
publishDir = [
[
path: { "${params.outdir}/rastair/methylkit" },
mode: params.publish_dir_mode,
pattern: "*.txt.gz"
]
]
}
}
2 changes: 2 additions & 0 deletions conf/subworkflows/bam_methyldackel.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
includeConfig "../modules/methyldackel_extract.config"
includeConfig "../modules/methyldackel_mbias.config"
4 changes: 4 additions & 0 deletions conf/subworkflows/bam_taps_conversion.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
includeConfig "../modules/rastair_call.config"
includeConfig "../modules/rastair_mbias.config"
includeConfig "../modules/rastair_mbias_parser.config"
includeConfig "../modules/rastair_methylkit.config"
4 changes: 4 additions & 0 deletions conf/subworkflows/fasta_index_methylseq.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
includeConfig "../modules/gunzip.config"
includeConfig "../modules/bismark_genomepreparation.config"
includeConfig "../modules/samtools_faidx.config"
includeConfig "../modules/bwameth_index.config"
2 changes: 2 additions & 0 deletions conf/subworkflows/fastq_align_dedup_bwamem.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
includeConfig "../modules/picard_addorreplacereadgroups.config"
includeConfig "../modules/picard_removeduplicates.config"
2 changes: 0 additions & 2 deletions conf/subworkflows/fastq_align_dedup_bwameth.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ includeConfig "../modules/samtools_sort.config"
includeConfig "../modules/samtools_flagstat.config"
includeConfig "../modules/samtools_stats.config"
includeConfig "../modules/picard_markduplicates.config"
includeConfig "../modules/methyldackel_extract.config"
includeConfig "../modules/methyldackel_mbias.config"

process {

Expand Down
Binary file modified docs/images/nf-core-methylseq_logo_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/nf-core-methylseq_logo_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/taps_metromap.png
Comment thread
eduard-watchmaker marked this conversation as resolved.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading