Add core Biscuit tools (#1354)

* create files with nf-core command

* update meta.yml files

* starting to work on index main.nf

* prelim test for index

* index test working; not finding all output files

* index passing tests

* index and align passing tests

* prototyping biscuitblaster and pileup

* update containers

* updates to pileup

* pileup passing tests

* template creation for more biscuit tools

* tests passing on blaster,bsconv,pupsom

* epiread passing tests, but need to update SNP bed file path

* vcf2bed working; change test file

* all biscuit commands passing tests

* biscuitblaster rename

* try to fix permissions

* more permission fixes

* trying a couple more permission changes

* hopefully last permission fixes

* really last permission changes

* few more permissions

* add when blocks

* Remove read group meta

Co-authored-by: James A. Fellows Yates <jfy133@gmail.com>

* remove read group meta

Co-authored-by: James A. Fellows Yates <jfy133@gmail.com>

* changes for first round of review

* update meta.yml with more specific links

* Update modules/biscuit/biscuitblaster/main.nf

Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com>

* Apply new version reporting

Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com>

* Update modules/biscuit/pileup/main.nf

Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com>

* Update main.nf

* Update modules/biscuit/pileupsomatic/main.nf

Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com>

* update test file path

* Update modules/biscuit/align/main.nf

Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com>

* Update modules/biscuit/align/main.nf

Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com>

* tests passing again

* Update modules/biscuit/align/main.nf

* Update modules/biscuit/bsconv/main.nf

* Update modules/biscuit/epiread/main.nf

* Update modules/biscuit/index/main.nf

* Update test.yml

* Update modules/biscuit/pileupsomatic/main.nf

* remove module-specific extension/prefix

* remove module-specific extension/prefix

* add missing args

* switch pileup strategy

* update test.yml

* remove debug

* whitespace cleanup

* add in newline escapes

* requested changes

* Update modules/biscuit/pileup/meta.yml

Co-authored-by: Spix <nathan.spix@submit.cm.cluster>
Co-authored-by: James A. Fellows Yates <jfy133@gmail.com>
Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com>
Co-authored-by: Spix <nathan.spix@node107.cm.cluster>
Co-authored-by: njspix <nathan.spix@vai.org>
This commit is contained in:
Nathan Spix 2022-03-14 09:34:22 -04:00 committed by GitHub
parent 625098a408
commit 801240a971
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
47 changed files with 1588 additions and 1 deletions

View file

@ -0,0 +1,44 @@
process BISCUIT_ALIGN {
tag "$meta.id"
label 'process_high'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0':
'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }"
input:
tuple val(meta), path(reads)
path index
output:
tuple val(meta), path("*.bam"), emit: bam
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def args2 = task.ext.args2 ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.9),1)
def samtools_cpus = task.cpus-biscuit_cpus
"""
INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'`
biscuit align \\
$args \\
-@ $biscuit_cpus \\
\$INDEX \\
$reads \\
| samtools sort $args2 --threads $samtools_cpus -o ${prefix}.bam -
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,52 @@
name: biscuit_align
description: Aligns single- or paired-end reads from bisulfite-converted libraries to a reference genome using Biscuit.
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- aligner
- bam
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/docs/alignment
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- reads:
type: file
description: |
List of input fastq files of size 1 and 2 for single-end and paired-end data,
respectively.
- index:
type: dir
description: Biscuit genome index directory (generated with 'biscuit index')
pattern: "BiscuitIndex"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: Output BAM file containing read alignments
pattern: "*.{bam}"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -0,0 +1,52 @@
process BISCUIT_BLASTER {
tag "$meta.id"
label 'process_high'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samblaster=0.1.26 bioconda::samtools=1.15" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0':
'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }"
input:
tuple val(meta), path(reads)
path index
output:
tuple val(meta), path("*.bam"), emit: bam
tuple val(meta), path("*.bai"), emit: bai
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def prefix = task.ext.prefix ?: "${meta.id}"
def args = task.ext.args ?: ''
def args2 = task.ext.args2 ?: ''
def args3 = task.ext.args3 ?: ''
def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.95),1)
def samtools_cpus = task.cpus-biscuit_cpus
"""
INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'`
biscuit align \\
-@ $biscuit_cpus \\
$args \\
\$INDEX \\
$reads | \\
samblaster \\
$args2 | \\
samtools sort \\
-@ $samtools_cpus \\
$args3 \\
--write-index \\
-o ${prefix}.bam##idx##${prefix}.bam.bai
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' )
samblaster: \$( samblaster --version |& sed 's/^.*samblaster: Version //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,78 @@
name: biscuit_blaster
description: A fast, compact one-liner to produce duplicate-marked, sorted, and indexed BAM files using Biscuit
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- aligner
- bam
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/biscuitblaster/
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
- samblaster:
description: |
samblaster is a fast and flexible program for marking duplicates in read-id grouped paired-end SAM files.
It can also optionally output discordant read pairs and/or split read mappings to separate SAM files,
and/or unmapped/clipped reads to a separate FASTQ file.
By default, samblaster reads SAM input from stdin and writes SAM to stdout.
homepage: None
documentation: https://github.com/GregoryFaust/samblaster
tool_dev_url: https://github.com/GregoryFaust/samblaster
doi: "10.1093/bioinformatics/btu314"
licence: ["MIT"]
- samtools:
description: |
SAMtools is a set of utilities for interacting with and post-processing
short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li.
These files are generated as output by short read aligners like BWA.
homepage: http://www.htslib.org/
documentation: hhttp://www.htslib.org/doc/samtools.html
doi: 10.1093/bioinformatics/btp352
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- reads:
type: file
description: |
List of input fastq files of size 1 and 2 for single-end and paired-end data,
respectively.
- index:
type: dir
description: Biscuit genome index directory (generated with 'biscuit index')
pattern: "BiscuitIndex"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: Output BAM file containing read alignments
pattern: "*.{bam}"
- bai:
type: file
description: Output BAM index
pattern: "*.{bai}"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -0,0 +1,39 @@
process BISCUIT_BSCONV {
tag "$meta.id"
label 'process_long'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/biscuit:1.0.2.20220113--h81a5ba2_0':
'quay.io/biocontainers/biscuit:1.0.2.20220113--h81a5ba2_0' }"
input:
tuple val(meta), path(bam), path(bai)
path(index)
output:
tuple val(meta), path("*.bam"), emit: bsconv_bam
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
if ("$bam" == "${prefix}.bam") error "Input and output names are the same, set prefix in module configuration to disambiguate!"
"""
INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'`
biscuit bsconv \\
$args \\
\$INDEX \\
$bam \\
${prefix}.bam
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,55 @@
name: biscuit_bsconv
description: Summarize and/or filter reads based on bisulfite conversion rate
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- aligner
- bam
- filter
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/docs/subcommand_help.html#biscuit-bsconv
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: BAM file contained mapped reads
- bai:
type: file
description: BAM file index
- index:
type: dir
description: Biscuit genome index directory (generated with 'biscuit index')
pattern: "BiscuitIndex"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bsconv_bam:
type: file
description: Output BAM file containing filtered read alignments
pattern: "*.{bam}"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -0,0 +1,57 @@
process BISCUIT_EPIREAD {
tag "$meta.id"
label 'process_long'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0':
'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }"
input:
tuple val(meta), path(bam), path(bai), path(snp_bed)
path(index)
output:
tuple val(meta), path("*.bed.gz"), emit: epiread_bed
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def args2 = task.ext.args2 ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.9),1)
def samtools_cpus = task.cpus-biscuit_cpus
// As of 2/25/22, epiread does not support reading a gzipped SNP BED file.
// This is a bit hacky but allows the user to supply a gzipped OR uncompressed bed file
def unzip_snp_bed = snp_bed && (snp_bed.toString() =~ /\.gz$/) ? "bgzip -d ${snp_bed}" : ""
def unzipped_snp_bed = snp_bed ? snp_bed.toString() - ~/\.gz$/: ""
// SNP BED input is optional
def options_snp_bed = snp_bed ? "-B ${unzipped_snp_bed}" : ""
if ("$options_snp_bed" == "${prefix}.bed.gz") error "Input and output names are the same, set prefix in module configuration to disambiguate!"
"""
INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'`
$unzip_snp_bed
biscuit epiread \\
-@ $biscuit_cpus \\
$args \\
$options_snp_bed \\
\$INDEX \\
$bam | \\
LC_ALL=C sort -k1,1 -k2,2n | \\
bgzip \\
-@ $samtools_cpus \\
$args2 \\
-c > ${prefix}.bed.gz
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,58 @@
name: biscuit_epiread
description: |
Summarizes read-level methylation (and optionally SNV) information from a
Biscuit BAM file in a standard-compliant BED format.
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- aligner
- bam
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/epiread_format/
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: Biscuit BAM file
- bai:
type: file
description: BAM index
- snp_bed:
type: file
description: BED file containing SNP information (optional)
- index:
type: dir
description: Biscuit genome index directory (generated with 'biscuit index')
pattern: "BiscuitIndex"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- epiread_bed:
type: file
description: Gzipped BED file with methylation (and optionally SNV) information
pattern: "*.{epiread.bed.gz}"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -0,0 +1,33 @@
process BISCUIT_INDEX {
tag "$fasta"
label 'process_long'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/biscuit:1.0.2.20220113--h81a5ba2_0':
'quay.io/biocontainers/biscuit:1.0.2.20220113--h81a5ba2_0' }"
input:
path fasta, stageAs: "BiscuitIndex/*"
output:
path "BiscuitIndex/*.fa*", emit: index, includeInputs: true
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
"""
biscuit \\
index \\
$args \\
$fasta
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,38 @@
name: biscuit_index
description: Indexes a reference genome for use with Biscuit
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- index
- reference
- fasta
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/docs/alignment
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- fasta:
type: file
description: Input genome fasta file
output:
- index:
type: dir
description: Biscuit genome index directory
pattern: "BiscuitIndex"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -0,0 +1,43 @@
process BISCUIT_MERGECG {
tag "$meta.id"
label 'process_long'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0':
'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }"
input:
tuple val(meta), path(bed)
path index
output:
tuple val(meta), path("*.bed.gz"), emit: mergecg_bed
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def args2 = task.ext.args2 ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
"""
INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'`
biscuit mergecg \\
$args \\
\$INDEX \\
$bed | \\
LC_ALL=C sort -k1,1 -k2,2n | \\
bgzip \\
$args2 \\
-c > ${prefix}.bed.gz
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,51 @@
name: biscuit_mergecg
description: Merges methylation information for opposite-strand C's in a CpG context
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- aligner
- bed
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/docs/methylextraction.html
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bed:
type: file
description: |
Biscuit BED file (output of biscuit vcf2bed)
- index:
type: dir
description: Biscuit genome index directory (generated with 'biscuit index')
pattern: "BiscuitIndex"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- mergecg_bed:
type: file
description: Gzipped BED file with merged methylation information
pattern: "*.bed.gz"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -0,0 +1,45 @@
process BISCUIT_PILEUP {
tag "$meta.id"
label 'process_high'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0':
'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }"
input:
tuple val(meta), path(normal_bams), path(normal_bais), path(tumor_bam), path(tumor_bai)
path index
output:
tuple val(meta), path("*.vcf.gz"), emit: vcf
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def args2 = task.ext.args2 ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.9),1)
def bgzip_cpus = task.cpus-biscuit_cpus
if ( tumor_bam != [] && normal_bams.toList().size() > 1 ) error "[BISCUIT_PILEUP] error: Tumor BAM provided with more than one normal BAM"
if ( tumor_bam.toList().size() > 1 ) error "[BISCUIT_PILEUP] error: more than one tumor BAM provided"
input = ( tumor_bam==[] ) ? "${normal_bams}" : "-S -T ${tumor_bam} -I ${normal_bams}"
"""
INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'`
biscuit pileup \\
-@ $biscuit_cpus \\
$args \\
\$INDEX \\
$input \\
| bgzip -@ $bgzip_cpus $args2 > ${prefix}.vcf.gz
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,70 @@
name: biscuit_pileup
description: Computes cytosine methylation and callable SNV mutations, optionally in reference to a germline BAM to call somatic variants
keywords:
- bisulfite
- DNA methylation
- pileup
- variant calling
- WGBS
- scWGBS
- bam
- vcf
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/docs/pileup.html
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- normal_bams:
type: file(s)
description: |
BAM files to be analyzed. If no tumor_bam file is provided, any number of "normal" BAMs may be provided
("normal" here is just a semantic issue, these BAMs could be from tumor or any other kind of tissue). If a
tumor BAM file is provided, exactly one normal (germline) BAM must be provided.
pattern: "*.{bam}"
- normal_bais:
type: file(s)
description: BAM index file or files corresponding to the provided normal_bams
pattern: "*.{bai}"
- tumor_bam:
type: file(s)
description: |
Optional. If a tumor BAM file is provided, pileup will run in "somatic" mode and will annotate variants with
their somatic state (present in tumor only, present in normal only, present in both, etc). Note that if a
tumor BAM file is provided, exactly one normal BAM must be provided.
pattern: "*.{bam}"
- tumor_bai:
type: file(s)
description: Optional. BAM index file corresponding to provided tumor_bam
pattern: "*.{bai}"
- index:
type: dir
description: Biscuit genome index directory (generated with 'biscuit index')
pattern: "BiscuitIndex"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
- vcf:
type: file
description: vcf file with methylation information
pattern: "*.{vcf.gz}"
authors:
- "@njspix"

View file

@ -0,0 +1,40 @@
process BISCUIT_QC {
tag "$meta.id"
label 'process_long'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/biscuit:1.0.2.20220113--h81a5ba2_0':
'quay.io/biocontainers/biscuit:1.0.2.20220113--h81a5ba2_0' }"
input:
tuple val(meta), path(bam)
path(index)
output:
tuple val(meta), path("*.txt"), emit: biscuit_qc_reports
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
def se = meta.single_end ? "-s" : ""
"""
INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'`
biscuit qc \\
$args \\
$se \\
\$INDEX \\
$bam \\
$prefix
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,51 @@
name: biscuit_qc
description: Perform basic quality control on a BAM file generated with Biscuit
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- index
- BAM
- quality control
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/docs/subcommand_help.html#biscuit-qc
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: BAM file produced using Biscuit
output:
- biscuit_qc_reports:
type: file
description: |
Summary files containing the following information:
- CpG retention by position in read
- CpH retention by position in read
- Read duplication statistics
- Insert size distribution
- Distribution of mapping qualities
- Proportion of reads mapping to each strand
- Read-averaged cytosine conversion rate for CpA, CpC, CpG, and CpT
pattern: "*.txt"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -0,0 +1,39 @@
process BISCUIT_VCF2BED {
tag "$meta.id"
label 'process_long'
conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0':
'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }"
input:
tuple val(meta), path(vcf)
output:
tuple val(meta), path("*.bed.gz"), emit: bed
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def args2 = task.ext.args2 ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
"""
biscuit vcf2bed \\
$args \\
$vcf | \\
LC_ALL=C sort -k1,1 -k2,2n | \\
bgzip \\
$args2 \\
-c > ${prefix}.bed.gz
cat <<-END_VERSIONS > versions.yml
"${task.process}":
biscuit: \$(echo \$(biscuit version 2>&1) | sed 's/^.*BISCUIT Version: //; s/Using.*\$//')
samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' )
END_VERSIONS
"""
}

View file

@ -0,0 +1,48 @@
name: biscuit_vcf2bed
description: |
Summarizes methylation or SNV information from a Biscuit VCF in a
standard-compliant BED file.
keywords:
- biscuit
- DNA methylation
- WGBS
- scWGBS
- bisulfite sequencing
- aligner
- vcf
tools:
- biscuit:
description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data
homepage: https://huishenlab.github.io/biscuit/
documentation: https://huishenlab.github.io/biscuit/docs/methylextraction.html
tool_dev_url: https://github.com/huishenlab/biscuit
doi: ""
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- vcf:
type: file
description: Biscuit vcf file (output of biscuit pileup)
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bed:
type: file
description: Gzipped BED file with methylation or SNV information
pattern: "*.{bed.gz}"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@njspix"

View file

@ -28,5 +28,5 @@ conda { createTimeout = "120 min" }
includeConfig 'test_data.config'
manifest {
nextflowVersion = '!>=21.10.3'
nextflowVersion = '!>=21.10.0'
}

View file

@ -198,6 +198,49 @@ bedtools/subtract:
- modules/bedtools/subtract/**
- tests/modules/bedtools/subtract/**
biscuit/align:
- modules/biscuit/index/**
- modules/biscuit/align/**
- tests/modules/biscuit/align/**
biscuit/biscuitblaster:
- modules/biscuit/index/**
- modules/biscuit/biscuitblaster/**
- tests/modules/biscuit/biscuitblaster/**
biscuit/bsconv:
- modules/biscuit/index/**
- modules/biscuit/bsconv/**
- tests/modules/biscuit/bsconv/**
biscuit/epiread:
- modules/biscuit/index/**
- modules/biscuit/epiread/**
- tests/modules/biscuit/epiread/**
biscuit/index:
- modules/biscuit/index/**
- tests/modules/biscuit/index/**
biscuit/mergecg:
- modules/biscuit/index/**
- modules/biscuit/mergecg/**
- tests/modules/biscuit/mergecg/**
biscuit/pileup:
- modules/biscuit/index/**
- modules/biscuit/pileup/**
- tests/modules/biscuit/pileup/**
biscuit/qc:
- modules/biscuit/index/**
- modules/biscuit/qc/**
- tests/modules/biscuit/qc/**
biscuit/vcf2bed:
- modules/biscuit/vcf2bed/**
- tests/modules/biscuit/vcf2bed/**
biobambam/bammarkduplicates2:
- modules/biobambam/bammarkduplicates2/**
- tests/modules/biobambam/bammarkduplicates2/**

View file

@ -0,0 +1,33 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
include { BISCUIT_ALIGN as BISCUIT_ALIGN_SE } from '../../../../modules/biscuit/align/main.nf'
include { BISCUIT_ALIGN as BISCUIT_ALIGN_PE } from '../../../../modules/biscuit/align/main.nf'
// Single-end test
workflow test_biscuit_align_single {
input = [ [ id:'test' ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true) ]
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX ( fasta )
BISCUIT_ALIGN_SE (input, BISCUIT_INDEX.out.index )
}
// paired-end test
workflow test_biscuit_align_paired {
input = [ [ id:'test' ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_methylated_2_fastq_gz'], checkIfExists: true) ]
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX ( fasta )
BISCUIT_ALIGN_SE (input, BISCUIT_INDEX.out.index )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,53 @@
- name: biscuit align test_biscuit_align_single
command: nextflow run tests/modules/biscuit/align -entry test_biscuit_align_single -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/align
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bam
md5sum: eb36532425cb9b259410d6464a9e523a
- path: output/biscuit/versions.yml
md5sum: a86c4170bbf90cc75b93eb59ea124acd
- name: biscuit align test_biscuit_align_paired
command: nextflow run tests/modules/biscuit/align -entry test_biscuit_align_paired -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/align
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bam
md5sum: be3f6aa86c499d6a6b2996e5936e4f50
- path: output/biscuit/versions.yml
md5sum: f0b7dffd28f5e6bb1466fce6661d133f

View file

@ -0,0 +1,32 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
include { BISCUIT_BLASTER as BISCUIT_BLASTER_SE } from '../../../../modules/biscuit/biscuitblaster/main.nf'
include { BISCUIT_BLASTER as BISCUIT_BLASTER_PE } from '../../../../modules/biscuit/biscuitblaster/main.nf'
// Single-end test
workflow test_biscuit_blaster_single {
input = [ [ id:'test' ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true) ]
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX ( fasta )
BISCUIT_BLASTER_SE (input, BISCUIT_INDEX.out.index )
}
// paired-end test
workflow test_biscuit_blaster_paired {
input = [ [ id:'test' ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_methylated_2_fastq_gz'], checkIfExists: true) ]
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX ( fasta )
BISCUIT_BLASTER_PE (input, BISCUIT_INDEX.out.index )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,57 @@
- name: biscuit biscuitblaster test_biscuit_blaster_single
command: nextflow run tests/modules/biscuit/biscuitblaster -entry test_biscuit_blaster_single -c tests/config/nextflow.config
tags:
- biscuit/biscuitblaster
- biscuit
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bam
md5sum: 9ece50b67349382d38b20c2702e65675
- path: output/biscuit/test.bam.bai
md5sum: 8f14bb42fd38cc7ce4a3c3a9d7133ea4
- path: output/biscuit/versions.yml
md5sum: bfb660b5b0d92dde6817a1c6a2a302bb
- name: biscuit biscuitblaster test_biscuit_blaster_paired
command: nextflow run tests/modules/biscuit/biscuitblaster -entry test_biscuit_blaster_paired -c tests/config/nextflow.config
tags:
- biscuit/biscuitblaster
- biscuit
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bam
md5sum: 0c6de35f38003df6ea5dd036170df91b
- path: output/biscuit/test.bam.bai
md5sum: 0d76977b2e36046cc176112776c5fa4e
- path: output/biscuit/versions.yml
md5sum: 82160a7ad29ccc3a21e59b1869399c04

View file

@ -0,0 +1,19 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
include { BISCUIT_BSCONV } from '../../../../modules/biscuit/bsconv/main.nf'
workflow test_biscuit_bsconv {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true)
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX( fasta )
BISCUIT_BSCONV ( input, BISCUIT_INDEX.out.index )
}

View file

@ -0,0 +1,10 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
withName: '.*BISCUIT_BSCONV' {
ext.args = '-f 0.1'
}
}

View file

@ -0,0 +1,26 @@
- name: biscuit bsconv test_biscuit_bsconv
command: nextflow run tests/modules/biscuit/bsconv -entry test_biscuit_bsconv -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/bsconv
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bam
md5sum: e33e9498d00dd32222b90a6bd981226f
- path: output/biscuit/versions.yml
md5sum: 7deec1f096203542bbb72ac4fa05f9ba

View file

@ -0,0 +1,48 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
include { BISCUIT_EPIREAD } from '../../../../modules/biscuit/epiread/main.nf'
workflow test_biscuit_epiread_nosnp {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true),
[] //SNP BED file
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX( fasta )
BISCUIT_EPIREAD ( input, BISCUIT_INDEX.out.index )
}
workflow test_biscuit_epiread_snp {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true),
file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test-snp.bed')
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX( fasta )
BISCUIT_EPIREAD ( input, BISCUIT_INDEX.out.index )
}
workflow test_biscuit_epiread_snp_decompress {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true),
file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test-snp.bed.gz')
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX( fasta )
BISCUIT_EPIREAD ( input, BISCUIT_INDEX.out.index )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,80 @@
- name: biscuit epiread test_biscuit_epiread_nosnp
command: nextflow run tests/modules/biscuit/epiread -entry test_biscuit_epiread_nosnp -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/epiread
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bed.gz
md5sum: dbb30b59f4ef6fdfdee38630225c0574
- path: output/biscuit/versions.yml
md5sum: 674a77ac5ca8f4b42d30e58e30c3a9af
- name: biscuit epiread test_biscuit_epiread_snp
command: nextflow run tests/modules/biscuit/epiread -entry test_biscuit_epiread_snp -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/epiread
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bed.gz
md5sum: a29fea6ad74453ec94f8220747dab906
- path: output/biscuit/versions.yml
md5sum: f2f7c4ff3c6a135b1c8a3aff24a44d81
- name: biscuit epiread test_biscuit_epiread_snp_decompress
command: nextflow run tests/modules/biscuit/epiread -entry test_biscuit_epiread_snp_decompress -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/epiread
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bed.gz
md5sum: a29fea6ad74453ec94f8220747dab906
- path: output/biscuit/versions.yml
md5sum: cb0258ebf4e1a731a4310ec17c3dc442

View file

@ -0,0 +1,12 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
workflow test_biscuit_index {
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX ( fasta )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,24 @@
- name: biscuit index test_biscuit_index
command: nextflow run tests/modules/biscuit/index -entry test_biscuit_index -c tests/config/nextflow.config
tags:
- biscuit/index
- biscuit
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/versions.yml
md5sum: 5c5873e482a57966db246648ffddf62f

View file

@ -0,0 +1,18 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
include { BISCUIT_MERGECG } from '../../../../modules/biscuit/mergecg/main.nf'
workflow test_biscuit_mergecg {
input = [
[ id:'test', single_end:false ], // meta map
file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test-cg.bed.gz', checkIfExists: true)
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX( fasta )
BISCUIT_MERGECG ( input, BISCUIT_INDEX.out.index )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,26 @@
- name: biscuit mergecg test_biscuit_mergecg
command: nextflow run tests/modules/biscuit/mergecg -entry test_biscuit_mergecg -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/mergecg
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test.bed.gz
md5sum: d693b28ddc81265f388860d391fc7c5b
- path: output/biscuit/versions.yml
md5sum: f670d63671af06bf8654677bf373b3a1

View file

@ -0,0 +1,38 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
include { BISCUIT_PILEUP } from '../../../../modules/biscuit/pileup/main.nf'
workflow test_biscuit_pileup {
input = [ [ id:'test' ], // meta map
[file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true),
file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)],
[file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true),
file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true)],
[], //tumor bam
[] //tumor bai
]
fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX ( fasta )
BISCUIT_PILEUP ( input, BISCUIT_INDEX.out.index )
}
workflow test_biscuit_pileup_somatic {
input = [ [ id:'test' ], // meta map
file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true),
file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true),
file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true),
file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true)
]
fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX ( fasta )
BISCUIT_PILEUP ( input, BISCUIT_INDEX.out.index )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,53 @@
- name: biscuit pileup test_biscuit_pileup
command: nextflow run tests/modules/biscuit/pileup -entry test_biscuit_pileup -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/pileup
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: f315020d899597c1b57e5fe9f60f4c3e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 1891c1de381b3a96d4e72f590fde20c1
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: 2df4aa2d7580639fa0fcdbcad5e2e969
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 8569fbdb2c98c6fb16dfa73d8eacb070
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: 668799eea40aefb8013cbf8ed6c47cfe
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 10541b05bbea44d0344b0345a6522ba8
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 2c38edd64234420add133f5fe1ff975d
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 7deee1aac3395d93bef1df11ab38379e
- path: output/biscuit/test.vcf.gz
md5sum: ef9798c318ead0f8a79ee7fdeb1ffbf9
- path: output/biscuit/versions.yml
md5sum: ae38b891fdbf9f7ff5c486408f949dc5
- name: biscuit pileup test_biscuit_pileup_somatic
command: nextflow run tests/modules/biscuit/pileup -entry test_biscuit_pileup_somatic -c tests/config/nextflow.config
tags:
- biscuit
- biscuit/pileup
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: f315020d899597c1b57e5fe9f60f4c3e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 1891c1de381b3a96d4e72f590fde20c1
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: 2df4aa2d7580639fa0fcdbcad5e2e969
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 8569fbdb2c98c6fb16dfa73d8eacb070
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: 668799eea40aefb8013cbf8ed6c47cfe
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 10541b05bbea44d0344b0345a6522ba8
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 2c38edd64234420add133f5fe1ff975d
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 7deee1aac3395d93bef1df11ab38379e
- path: output/biscuit/test.vcf.gz
md5sum: 692b4a6191b08fabe5efa5abe00da420
- path: output/biscuit/versions.yml
md5sum: cc51fd498d67fdc7cc067686eb855b93

View file

@ -0,0 +1,18 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf'
include { BISCUIT_QC } from '../../../../modules/biscuit/qc/main.nf'
workflow test_biscuit_qc {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true)
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
BISCUIT_INDEX( fasta )
BISCUIT_QC ( input, BISCUIT_INDEX.out.index )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,38 @@
- name: biscuit qc test_biscuit_qc
command: nextflow run tests/modules/biscuit/qc -entry test_biscuit_qc -c tests/config/nextflow.config
tags:
- biscuit/qc
- biscuit
files:
- path: output/biscuit/BiscuitIndex/genome.fasta
md5sum: 6e9fe4042a72f2345f644f239272b7e6
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt
md5sum: a11bc31775f7b7a4f9cd3bc4f981661a
- path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa
md5sum: 9c9e07fa1c75ef32d764274579c89b08
- path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt
md5sum: 62eb83cd557a47b59589713d98024fc2
- path: output/biscuit/BiscuitIndex/genome.fasta.par.sa
md5sum: 55bcd97d7059bf73dc0d221e36e8e901
- path: output/biscuit/test_CpGRetentionByReadPos.txt
md5sum: 498b6c0af196fb34c8835371b9e9b68a
- path: output/biscuit/test_CpHRetentionByReadPos.txt
md5sum: a266942c5719cecab7f60f63cbe7335d
- path: output/biscuit/test_dup_report.txt
md5sum: 65bddf4fbe9e40d7c6c976060df53e3b
- path: output/biscuit/test_isize_table.txt
md5sum: aadf6f2e271abc334b6146cf164bdda3
- path: output/biscuit/test_mapq_table.txt
md5sum: c8adaac84bb8db3b7f48e1ed4fccad00
- path: output/biscuit/test_strand_table.txt
md5sum: 27068382ba6b2dbf313169a85c9dbb3a
- path: output/biscuit/test_totalReadConversionRate.txt
md5sum: 8f0c1fceaebfa74f2757720e3bc85fed
- path: output/biscuit/versions.yml
md5sum: a730fa4888e6882cf1b8ba92645b04ee

View file

@ -0,0 +1,16 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BISCUIT_VCF2BED } from '../../../../modules/biscuit/vcf2bed/main.nf'
workflow test_biscuit_vcf2bed {
input = [
[ id:'test', single_end:false ], // meta map
file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test.vcf.gz', checkIfExists: true)
]
BISCUIT_VCF2BED ( input )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,10 @@
- name: biscuit vcf2bed test_biscuit_vcf2bed
command: nextflow run tests/modules/biscuit/vcf2bed -entry test_biscuit_vcf2bed -c tests/config/nextflow.config
tags:
- biscuit/vcf2bed
- biscuit
files:
- path: output/biscuit/test.bed.gz
md5sum: e2dd492289dc8463f364285e31b9553a
- path: output/biscuit/versions.yml
md5sum: cd784276e2fb6739d55e1b60d12202cd