Merge branch 'master' of https://github.com/nf-core/modules into rhocall

This commit is contained in:
Ramprasad Neethiraj 2022-06-08 16:34:34 +02:00
commit 0b090a6b6d
16 changed files with 178 additions and 87 deletions

View file

@ -23,6 +23,9 @@ input:
- af_file: - af_file:
type: file type: file
description: "Read allele frequencies from a tab-delimited file containing the columns: CHROM\tPOS\tREF,ALT\tAF." description: "Read allele frequencies from a tab-delimited file containing the columns: CHROM\tPOS\tREF,ALT\tAF."
- af_file_tbi:
type: file
description: "tbi index of af_file."
- genetic_map: - genetic_map:
type: file type: file
description: "Genetic map in the format required also by IMPUTE2." description: "Genetic map in the format required also by IMPUTE2."

View file

@ -7,7 +7,8 @@ process MULTIQC {
'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }" 'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }"
input: input:
path multiqc_files path multiqc_files, stageAs: "?/*"
tuple path(multiqc_config), path(multiqc_logo)
output: output:
path "*multiqc_report.html", emit: report path "*multiqc_report.html", emit: report
@ -20,8 +21,13 @@ process MULTIQC {
script: script:
def args = task.ext.args ?: '' def args = task.ext.args ?: ''
def config = multiqc_config ? "--config $multiqc_config" : ''
""" """
multiqc -f $args . multiqc \\
--force \\
$config \\
$args \\
.
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":

View file

@ -17,6 +17,14 @@ input:
type: file type: file
description: | description: |
List of reports / files recognised by MultiQC, for example the html and zip output of FastQC List of reports / files recognised by MultiQC, for example the html and zip output of FastQC
- multiqc_config:
type: file
description: Config yml for MultiQC
pattern: "*.{yml,yaml}"
- multiqc_logo:
type: file
description: Logo file for MultiQC
pattern: "*.{png}"
output: output:
- report: - report:
type: file type: file

View file

@ -2,17 +2,17 @@ process TIDDIT_COV {
tag "$meta.id" tag "$meta.id"
label 'process_low' label 'process_low'
conda (params.enable_conda ? "bioconda::tiddit=2.12.1" : null) conda (params.enable_conda ? "bioconda::tiddit=3.0.0" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/tiddit:2.12.1--py38h1773678_0' : 'https://depot.galaxyproject.org/singularity/tiddit:3.0.0--py39h59fae87_1' :
'quay.io/biocontainers/tiddit:2.12.1--py38h1773678_0' }" 'quay.io/biocontainers/tiddit:3.0.0--py39h59fae87_1' }"
input: input:
tuple val(meta), path(bam) tuple val(meta), path(input)
path fasta path fasta
output: output:
tuple val(meta), path("*.tab"), optional: true, emit: cov tuple val(meta), path("*.bed"), optional: true, emit: cov
tuple val(meta), path("*.wig"), optional: true, emit: wig tuple val(meta), path("*.wig"), optional: true, emit: wig
path "versions.yml" , emit: versions path "versions.yml" , emit: versions
@ -28,12 +28,12 @@ process TIDDIT_COV {
--cov \\ --cov \\
-o $prefix \\ -o $prefix \\
$args \\ $args \\
--bam $bam \\ --bam $input \\
$reference $reference
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*tiddit-//; s/ .*\$//')
END_VERSIONS END_VERSIONS
""" """
@ -45,7 +45,7 @@ process TIDDIT_COV {
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*tiddit-//; s/ .*\$//')
END_VERSIONS END_VERSIONS
""" """
} }

View file

@ -19,7 +19,7 @@ input:
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- bam: - input:
type: file type: file
description: BAM/CRAM file description: BAM/CRAM file
pattern: "*.{bam,cram}" pattern: "*.{bam,cram}"

View file

@ -2,20 +2,19 @@ process TIDDIT_SV {
tag "$meta.id" tag "$meta.id"
label 'process_medium' label 'process_medium'
conda (params.enable_conda ? "bioconda::tiddit=2.12.1" : null) conda (params.enable_conda ? "bioconda::tiddit=3.0.0" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/tiddit:2.12.1--py38h1773678_0' : 'https://depot.galaxyproject.org/singularity/tiddit:3.0.0--py39h59fae87_1' :
'quay.io/biocontainers/tiddit:2.12.1--py38h1773678_0' }" 'quay.io/biocontainers/tiddit:3.0.0--py39h59fae87_1' }"
input: input:
tuple val(meta), path(bam) tuple val(meta), path(input), path(input_index)
path fasta path fasta
path fai path bwa_index
output: output:
tuple val(meta), path("*.vcf") , emit: vcf tuple val(meta), path("*.vcf") , emit: vcf
tuple val(meta), path("*.ploidy.tab") , emit: ploidy tuple val(meta), path("*.ploidies.tab"), emit: ploidy
tuple val(meta), path("*.signals.tab"), emit: signals
path "versions.yml" , emit: versions path "versions.yml" , emit: versions
when: when:
@ -24,18 +23,19 @@ process TIDDIT_SV {
script: script:
def args = task.ext.args ?: '' def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}" def prefix = task.ext.prefix ?: "${meta.id}"
def reference = fasta ? "--ref $fasta" : ""
""" """
[[ -d $bwa_index ]] && for i in $bwa_index/*; do [[ -f $fasta && ! "\$i" =~ .*"$fasta".* ]] && ln -s \$i ${fasta}.\${i##*.} || ln -s \$i .; done
tiddit \\ tiddit \\
--sv \\ --sv \\
$args \\ $args \\
--bam $bam \\ --bam $input \\
$reference \\ --ref $fasta \\
-o $prefix -o $prefix
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*tiddit-//; s/ .*\$//')
END_VERSIONS END_VERSIONS
""" """
@ -43,12 +43,11 @@ process TIDDIT_SV {
def prefix = task.ext.prefix ?: "${meta.id}" def prefix = task.ext.prefix ?: "${meta.id}"
""" """
touch ${prefix}.vcf touch ${prefix}.vcf
touch ${prefix}.ploidy.tab touch ${prefix}.ploidies.tab
touch ${prefix}.signals.tab
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*tiddit-//; s/ .*\$//')
END_VERSIONS END_VERSIONS
""" """
} }

View file

@ -17,14 +17,22 @@ input:
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- input:
type: file
description: BAM/CRAM file
pattern: "*.{bam,cram}"
- index:
type: file
description: BAM/CRAM index file
pattern: "*.{bai,crai}"
- fasta: - fasta:
type: file type: file
description: Input FASTA file description: Input FASTA file
pattern: "*.{fasta,fa}" pattern: "*.{fasta,fa}"
- fai: - bwa_index:
type: file type: file
description: FASTA index file description: BWA genome index files
pattern: "*.{fai}" pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}"
output: output:
- meta: - meta:
type: map type: map
@ -38,11 +46,7 @@ output:
- ploidy: - ploidy:
type: file type: file
description: tab description: tab
pattern: "*.{ploidy.tab}" pattern: "*.{ploidies.tab}"
- signals:
type: file
description: tab
pattern: "*.{signals.tab}"
- versions: - versions:
type: file type: file
description: File containing software versions description: File containing software versions

View file

@ -10,7 +10,7 @@ workflow test_bcftools_roh {
file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true)] file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true)]
af_file = [] af_file = [[],[]]
gen_map = [] gen_map = []
regions = [] regions = []
targets = [] targets = []
@ -25,7 +25,7 @@ workflow test_bcftools_roh_stub {
file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true)] file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true)]
af_file = [] af_file = [[],[]]
gen_map = [] gen_map = []
regions = [] regions = []
targets = [] targets = []

View file

@ -3,14 +3,31 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { FASTQC } from '../../../modules/fastqc/main.nf' include { FASTQC } from '../../../modules/fastqc/main.nf'
include { FASTQC as FASTQC2 } from '../../../modules/fastqc/main.nf'
include { MULTIQC } from '../../../modules/multiqc/main.nf' include { MULTIQC } from '../../../modules/multiqc/main.nf'
workflow test_multiqc { workflow test_multiqc {
input = [ [ id: 'test', single_end: false ], input = [
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), [ id: 'test', single_end: false ],
file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)]
] ]
FASTQC ( input ) FASTQC ( input )
MULTIQC ( FASTQC.out.zip.collect { it[1] } ) MULTIQC ( FASTQC.out.zip.collect { it[1] }, [[],[]] )
}
workflow test_multiqc_fn_collision {
fqc_input = [
[ id: 'test', single_end: false ],
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)]
]
mqc_input = Channel.empty()
FASTQC ( fqc_input )
mqc_input = mqc_input.mix(FASTQC.out.zip.collect { it[1] })
FASTQC2 ( fqc_input )
mqc_input = mqc_input.mix(FASTQC2.out.zip.collect { it[1] })
MULTIQC ( mqc_input, [[],[]] )
} }

View file

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

View file

@ -1,6 +1,13 @@
- name: multiqc - name: multiqc test_multiqc
command: nextflow run ./tests/modules/multiqc -entry test_multiqc -c ./tests/config/nextflow.config -c ./tests/modules/multiqc/nextflow.config command: nextflow run ./tests/modules/multiqc -entry test_multiqc -c ./tests/config/nextflow.config -c ./tests/modules/multiqc/nextflow.config
tags: tags:
- multiqc - multiqc
files: files:
- path: output/multiqc/multiqc_report.html - path: output/multiqc/multiqc_report.html
- name: multiqc test_multiqc_fn_collision
command: nextflow run ./tests/modules/multiqc -entry test_multiqc_fn_collision -c ./tests/config/nextflow.config -c ./tests/modules/multiqc/nextflow.config
tags:
- multiqc
files:
- path: output/multiqc/multiqc_report.html

View file

@ -2,22 +2,41 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { TIDDIT_COV } from '../../../../modules/tiddit/cov/main.nf' include { TIDDIT_COV as TIDDIT_COV_BED } from '../../../../modules/tiddit/cov/main.nf'
include { TIDDIT_COV as TIDDIT_COV_WIG } from '../../../../modules/tiddit/cov/main.nf'
workflow test_tiddit_cov { workflow test_tiddit_cov_cram_bed {
input = [ [ id:'test', single_end:false ], // meta map
file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) ]
fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
TIDDIT_COV_BED ( input, fasta )
}
workflow test_tiddit_cov_bam_bed {
input = [ [ id:'test', single_end:false ], // meta map input = [ [ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) TIDDIT_COV_BED ( input, [] )
TIDDIT_COV ( input, fasta )
} }
workflow test_tiddit_cov_no_ref { workflow test_tiddit_cov_cram_wig {
input = [ [ id:'test', single_end:false ], // meta map
file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) ]
fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
TIDDIT_COV_WIG ( input, fasta )
}
workflow test_tiddit_cov_bam_wig {
input = [ [ id:'test', single_end:false ], // meta map input = [ [ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ]
TIDDIT_COV ( input, [] ) TIDDIT_COV_WIG ( input, [] )
} }

View file

@ -2,4 +2,8 @@ process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
withName: TIDDIT_COV_WIG {
ext.args = '-w'
}
} }

View file

@ -1,17 +1,35 @@
- name: tiddit cov test_tiddit_cov - name: tiddit cov test_tiddit_cov_cram_bed
command: nextflow run ./tests/modules/tiddit/cov -entry test_tiddit_cov -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/cov/nextflow.config command: nextflow run ./tests/modules/tiddit/cov -entry test_tiddit_cov_cram_bed -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/cov/nextflow.config
tags: tags:
- tiddit - tiddit
- tiddit/cov - tiddit/cov
files: files:
- path: output/tiddit/test.tab - path: output/tiddit/test.bed
md5sum: f7974948f809f94879d8a60b726194f5 md5sum: 3b1a28c62a5f25bbba77c1042e9abdf7
- name: tiddit cov test_tiddit_cov_no_ref - name: tiddit cov test_tiddit_cov_bam_bed
command: nextflow run ./tests/modules/tiddit/cov -entry test_tiddit_cov_no_ref -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/cov/nextflow.config command: nextflow run ./tests/modules/tiddit/cov -entry test_tiddit_cov_bam_bed -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/cov/nextflow.config
tags: tags:
- tiddit - tiddit
- tiddit/cov - tiddit/cov
files: files:
- path: output/tiddit/test.tab - path: output/tiddit/test.bed
md5sum: f7974948f809f94879d8a60b726194f5 md5sum: 9d1474f1c7c6516205254077087bb026
- name: tiddit cov test_tiddit_cov_cram_wig
command: nextflow run ./tests/modules/tiddit/cov -entry test_tiddit_cov_cram_wig -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/cov/nextflow.config
tags:
- tiddit
- tiddit/cov
files:
- path: output/tiddit/test.wig
md5sum: ca3645fd0c3491c86c075c91d16d57c4
- name: tiddit cov test_tiddit_cov_bam_wig
command: nextflow run ./tests/modules/tiddit/cov -entry test_tiddit_cov_bam_wig -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/cov/nextflow.config
tags:
- tiddit
- tiddit/cov
files:
- path: output/tiddit/test.wig
md5sum: 44bea2ac6a56774738e65773065da670

View file

@ -2,25 +2,33 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { BWA_INDEX } from '../../../../modules/bwa/index/main.nf'
include { TIDDIT_SV } from '../../../../modules/tiddit/sv/main.nf' include { TIDDIT_SV } from '../../../../modules/tiddit/sv/main.nf'
workflow test_tiddit_sv { workflow test_tiddit_sv_bam {
input = [ input = [
[ id:'test' ], // meta map [ id:'test' ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ],
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ]
] ]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true)
TIDDIT_SV ( input, fasta, fai ) BWA_INDEX( fasta )
TIDDIT_SV ( input, fasta, BWA_INDEX.out.index)
} }
workflow test_tiddit_sv_no_ref { workflow test_tiddit_sv_cram {
input = [ input = [
[ id:'test' ], // meta map [ id:'test' ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) ],
[ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true) ]
] ]
TIDDIT_SV ( input, [], [] ) fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
BWA_INDEX( fasta )
TIDDIT_SV ( input, fasta, BWA_INDEX.out.index)
} }

View file

@ -1,25 +1,21 @@
- name: tiddit sv - name: tiddit sv test_tiddit_sv_bam
command: nextflow run ./tests/modules/tiddit/sv -entry test_tiddit_sv -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/sv/nextflow.config command: nextflow run ./tests/modules/tiddit/sv -entry test_tiddit_sv_bam -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/sv/nextflow.config
tags: tags:
- tiddit - tiddit
- tiddit/sv - tiddit/sv
files: files:
- path: output/tiddit/test.ploidy.tab - path: output/tiddit/test.ploidies.tab
md5sum: 45e050b0e204f0a5a3a99627cc440eaa md5sum: 6319d3611f7b6b94425a184d274b3dfc
- path: output/tiddit/test.signals.tab
md5sum: dab4b2fec4ddf8eb1c23005b0770150e
- path: output/tiddit/test.vcf - path: output/tiddit/test.vcf
md5sum: bdce14ae8292bf3deb81f6f255baf859 md5sum: 41d3f8746f0420f894104321b7e64f67
- name: tiddit sv no ref - name: tiddit sv test_tiddit_sv_cram
command: nextflow run ./tests/modules/tiddit/sv -entry test_tiddit_sv_no_ref -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/sv/nextflow.config command: nextflow run ./tests/modules/tiddit/sv -entry test_tiddit_sv_cram -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/sv/nextflow.config
tags: tags:
- tiddit - tiddit
- tiddit/sv - tiddit/sv
files: files:
- path: output/tiddit/test.ploidy.tab - path: output/tiddit/test.ploidies.tab
md5sum: 45e050b0e204f0a5a3a99627cc440eaa md5sum: f1162a940ddc8b963f6e0e506bb5c136
- path: output/tiddit/test.signals.tab
md5sum: dab4b2fec4ddf8eb1c23005b0770150e
- path: output/tiddit/test.vcf - path: output/tiddit/test.vcf
md5sum: 3d0e83a8199b2bdb81cfe3e6b12bf64b md5sum: 34db59578991285d6b62dc1500272fca