Modules TLC (#551)

* Modules TLC

* Fix all the tests
This commit is contained in:
Harshil Patel 2021-07-01 16:13:01 +01:00 committed by GitHub
parent 601bf5eb64
commit b3278a1e63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 327 additions and 237 deletions

View file

@ -2,7 +2,7 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
process CNVKIT { process CNVKIT {
tag "$meta.id" tag "$meta.id"
@ -20,8 +20,8 @@ process CNVKIT {
input: input:
tuple val(meta), path(tumourbam), path(normalbam) tuple val(meta), path(tumourbam), path(normalbam)
path fasta path fasta
path targetfile path targetfile
output: output:
tuple val(meta), path("*.bed"), emit: bed tuple val(meta), path("*.bed"), emit: bed
@ -32,15 +32,15 @@ process CNVKIT {
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}"
""" """
cnvkit.py batch \\ cnvkit.py \\
batch \\
$tumourbam \\ $tumourbam \\
--normal $normalbam\\ --normal $normalbam\\
--fasta $fasta \\ --fasta $fasta \\
--targets $targetfile \\ --targets $targetfile \\
$options.args $options.args
cnvkit.py version | sed -e "s/cnvkit v//g" > ${software}.version.txt echo \$(cnvkit.py version) | sed -e "s/cnvkit v//g" > ${software}.version.txt
""" """
} }

View file

@ -20,10 +20,10 @@ process GATK4_APPLYBQSR {
input: input:
tuple val(meta), path(bam), path(bai), path(bqsr_table) tuple val(meta), path(bam), path(bai), path(bqsr_table)
path fasta path fasta
path fastaidx path fastaidx
path dict path dict
path intervalsBed path intervals
output: output:
tuple val(meta), path("*.bam"), emit: bam tuple val(meta), path("*.bam"), emit: bam
@ -32,17 +32,16 @@ process GATK4_APPLYBQSR {
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
def intervalsCommand = intervalsBed ? "-L ${intervalsBed}" : "" def interval = intervals ? "-L ${intervals}" : ""
""" """
gatk ApplyBQSR \\ gatk ApplyBQSR \\
-R $fasta \\ -R $fasta \\
-I $bam \\ -I $bam \\
--bqsr-recal-file $bqsr_table \\ --bqsr-recal-file $bqsr_table \\
$intervalsCommand \\ $interval \\
-O ${prefix}.bam \\ -O ${prefix}.bam \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -45,6 +45,6 @@ process GATK4_BASERECALIBRATOR {
$options.args \ $options.args \
-O ${prefix}.table -O ${prefix}.table
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -28,7 +28,7 @@ process GATK4_BEDTOINTERVALLIST {
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
""" """
gatk BedToIntervalList \\ gatk BedToIntervalList \\
-I $bed \\ -I $bed \\
@ -36,6 +36,6 @@ process GATK4_BEDTOINTERVALLIST {
-O ${prefix}.interval_list \\ -O ${prefix}.interval_list \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -40,6 +40,6 @@ process GATK4_CREATESEQUENCEDICTIONARY {
--URI $fasta \\ --URI $fasta \\
$options.args $options.args
echo \$(gatk CreateSequenceDictionary --version 2>&1) | sed 's/^.*(GATK) v//; s/ HTSJDK.*\$//' > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -35,6 +35,7 @@ process GATK4_FASTQTOSAM {
-O ${prefix}.bam \\ -O ${prefix}.bam \\
-SM $prefix \\ -SM $prefix \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt
echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -47,6 +47,6 @@ process GATK4_HAPLOTYPECALLER {
-O ${prefix}.vcf.gz \\ -O ${prefix}.vcf.gz \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -33,10 +33,10 @@ process GATK4_INTERVALLISTTOOLS {
mkdir ${prefix}_split mkdir ${prefix}_split
gatk \\ gatk \\
IntervalListTools \\ IntervalListTools \\
-I ${interval_list} \\ -I ${interval_list} \\
-O ${prefix}_split \\ -O ${prefix}_split \\
$options.args $options.args
python3 <<CODE python3 <<CODE
import glob, os import glob, os
@ -48,6 +48,6 @@ process GATK4_INTERVALLISTTOOLS {
os.rename(interval, newName) os.rename(interval, newName)
CODE CODE
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -39,6 +39,6 @@ process GATK4_MARKDUPLICATES {
--OUTPUT ${prefix}.bam \\ --OUTPUT ${prefix}.bam \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -2,7 +2,7 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
process GATK4_MERGEBAMALIGNMENT { process GATK4_MERGEBAMALIGNMENT {
tag "$meta.id" tag "$meta.id"
@ -20,25 +20,25 @@ process GATK4_MERGEBAMALIGNMENT {
input: input:
tuple val(meta), path(aligned) tuple val(meta), path(aligned)
path unmapped path unmapped
path fasta path fasta
path dict path dict
output: output:
tuple val(meta), path('*.merged.bam'), emit: bam tuple val(meta), path('*.bam'), emit: bam
path '*.version.txt' , emit: version path '*.version.txt' , emit: version
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
""" """
gatk MergeBamAlignment \\ gatk MergeBamAlignment \\
ALIGNED=$aligned \\ ALIGNED=$aligned \\
UNMAPPED=$unmapped \\ UNMAPPED=$unmapped \\
R=$fasta \\ R=$fasta \\
O=${prefix}.merged.bam \\ O=${prefix}.bam \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -20,16 +20,17 @@ process GATK4_MERGEVCFS {
input: input:
tuple val(meta), path(vcfs) tuple val(meta), path(vcfs)
path(ref_dict) path ref_dict
val use_ref_dict val use_ref_dict
output: output:
tuple val(meta), path('*.vcf.gz') , emit: vcf tuple val(meta), path('*.vcf.gz'), emit: vcf
path '*.version.txt' , emit: version path '*.version.txt' , emit: version
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
// Make list of VCFs to merge // Make list of VCFs to merge
def input = "" def input = ""
for (vcf in vcfs) { for (vcf in vcfs) {
@ -39,10 +40,10 @@ process GATK4_MERGEVCFS {
""" """
gatk MergeVcfs \\ gatk MergeVcfs \\
$input \\ $input \\
O=${prefix}.merged.vcf.gz \\ O=${prefix}.vcf.gz \\
$ref \\ $ref \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -22,18 +22,18 @@ process GATK4_REVERTSAM {
tuple val(meta), path(bam) tuple val(meta), path(bam)
output: output:
tuple val(meta), path('*.bam') , emit: bam tuple val(meta), path('*.bam'), emit: bam
path '*.version.txt' , emit: version path '*.version.txt' , emit: version
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
""" """
gatk RevertSam \\ gatk RevertSam \\
I=$bam \\ I=$bam \\
O=${prefix}.reverted.bam \\ O=${prefix}.reverted.bam \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -22,19 +22,19 @@ process GATK4_SAMTOFASTQ {
tuple val(meta), path(bam) tuple val(meta), path(bam)
output: output:
tuple val(meta), path('*.fastq.gz') , emit: fastq tuple val(meta), path('*.fastq.gz'), emit: fastq
path '*.version.txt' , emit: version path '*.version.txt' , emit: version
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
def output = meta.single_end ? "FASTQ=${prefix}.fastq.gz" : "FASTQ=${prefix}_1.fastq.gz SECOND_END_FASTQ=${prefix}_2.fastq.gz" def output = meta.single_end ? "FASTQ=${prefix}.fastq.gz" : "FASTQ=${prefix}_1.fastq.gz SECOND_END_FASTQ=${prefix}_2.fastq.gz"
""" """
gatk SamToFastq \\ gatk SamToFastq \\
I=$bam \\ I=$bam \\
$output \\ $output \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -23,19 +23,19 @@ process GATK4_SPLITNCIGARREADS {
tuple path(fasta), path(fai), path(dict) tuple path(fasta), path(fai), path(dict)
output: output:
tuple val(meta), path('*.split_cigar.bam'), emit: bam tuple val(meta), path('*.bam'), emit: bam
path '*.version.txt' , emit: version path '*.version.txt' , emit: version
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
""" """
gatk SplitNCigarReads \\ gatk SplitNCigarReads \\
-R $fasta \\ -R $fasta \\
-I $bam \\ -I $bam \\
-O ${prefix}.split_cigar.bam \\ -O ${prefix}.bam \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -2,7 +2,7 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
process GATK4_VARIANTFILTRATION { process GATK4_VARIANTFILTRATION {
tag "$meta.id" tag "$meta.id"
@ -20,9 +20,9 @@ process GATK4_VARIANTFILTRATION {
input: input:
tuple val(meta), path(vcf) tuple val(meta), path(vcf)
path fasta path fasta
path fai path fai
path dict path dict
output: output:
tuple val(meta), path("*.vcf"), emit: vcf tuple val(meta), path("*.vcf"), emit: vcf
@ -39,6 +39,6 @@ process GATK4_VARIANTFILTRATION {
-O ${prefix}.vcf \\ -O ${prefix}.vcf \\
$options.args $options.args
gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -2,9 +2,9 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
process KRAKEN2_RUN { process KRAKEN2_KRAKEN2 {
tag "$meta.id" tag "$meta.id"
label 'process_high' label 'process_high'
publishDir "${params.outdir}", publishDir "${params.outdir}",

View file

@ -0,0 +1,59 @@
name: kraken2_kraken2
description: Classifies metagenomic sequence data
keywords:
- classify
- metagenomics
- fastq
- db
tools:
- kraken2:
description: |
Kraken2 is a taxonomic sequence classifier that assigns taxonomic labels to sequence reads
homepage: https://ccb.jhu.edu/software/kraken2/
documentation: https://github.com/DerrickWood/kraken2/wiki/Manual
doi: 10.1186/s13059-019-1891-0
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.
- db:
type: directory
description: Kraken2 database
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- classified:
type: file
description: |
Reads classified to belong to any of the taxa
on the Kraken2 database.
pattern: "*{fastq.gz}"
- unclassified:
type: file
description: |
Reads not classified to belong to any of the taxa
on the Kraken2 database.
pattern: "*{fastq.gz}"
- txt:
type: file
description: |
Kraken2 report containing stats about classified
and not classifed reads.
pattern: "*.{report.txt}"
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
authors:
- "@joseespinosa"
- "@drpatelh"

View file

@ -1,59 +0,0 @@
name: kraken2_run
description: Classifies metagenomic sequence data
keywords:
- classify
- metagenomics
- fastq
- db
tools:
- kraken2:
description: |
Kraken2 is a taxonomic sequence classifier that assigns taxonomic labels to sequence reads
homepage: https://ccb.jhu.edu/software/kraken2/
documentation: https://github.com/DerrickWood/kraken2/wiki/Manual
doi: 10.1186/s13059-019-1891-0
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.
- db:
type: directory
description: Kraken2 database
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- classified:
type: file
description: |
Reads classified to belong to any of the taxa
on the Kraken2 database.
pattern: "*{fastq.gz}"
- unclassified:
type: file
description: |
Reads not classified to belong to any of the taxa
on the Kraken2 database.
pattern: "*{fastq.gz}"
- txt:
type: file
description: |
Kraken2 report containing stats about classified
and not classifed reads.
pattern: "*.{report.txt}"
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
authors:
- "@joseespinosa"
- "@drpatelh"

View file

@ -2,7 +2,8 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
process MINIA { process MINIA {
tag "$meta.id" tag "$meta.id"
label 'process_high' label 'process_high'
@ -36,6 +37,7 @@ process MINIA {
-nb-cores $task.cpus \\ -nb-cores $task.cpus \\
-in input_files.txt \\ -in input_files.txt \\
-out $prefix -out $prefix
echo \$(minia --version 2>&1) | sed 's/^.*Minia version //; s/ .*\$//' > ${software}.version.txt echo \$(minia --version 2>&1) | sed 's/^.*Minia version //; s/ .*\$//' > ${software}.version.txt
""" """
} }

View file

@ -2,7 +2,7 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
process NANOLYSE { process NANOLYSE {
tag "$meta.id" tag "$meta.id"
@ -20,7 +20,7 @@ process NANOLYSE {
input: input:
tuple val(meta), path(fastq) tuple val(meta), path(fastq)
path fasta path fasta
output: output:
tuple val(meta), path("*.fastq.gz"), emit: fastq tuple val(meta), path("*.fastq.gz"), emit: fastq
@ -29,7 +29,7 @@ process NANOLYSE {
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
""" """
gunzip -c $fastq | NanoLyse -r $fasta | gzip > ${prefix}.fastq.gz gunzip -c $fastq | NanoLyse -r $fasta | gzip > ${prefix}.fastq.gz
mv NanoLyse.log ${prefix}.nanolyse.log mv NanoLyse.log ${prefix}.nanolyse.log

View file

@ -27,7 +27,7 @@ process PANGOLIN {
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
""" """
pangolin \\ pangolin \\
$fasta\\ $fasta\\
@ -35,6 +35,6 @@ process PANGOLIN {
--threads $task.cpus \\ --threads $task.cpus \\
$options.args $options.args
pangolin --version | sed "s/pangolin //g" > ${software}.version.txt echo \$(pangolin --version) | sed "s/pangolin //g" > ${software}.version.txt
""" """
} }

View file

@ -25,30 +25,29 @@ process STRELKA_GERMLINE {
path target_bed path target_bed
output: output:
tuple val(meta), path("*_variants.vcf.gz") , emit: vcf tuple val(meta), path("*variants.vcf.gz") , emit: vcf
tuple val(meta), path("*_variants.vcf.gz.tbi"), emit: vcf_tbi tuple val(meta), path("*variants.vcf.gz.tbi"), emit: vcf_tbi
tuple val(meta), path("*_genome.vcf.gz") , emit: genome_vcf tuple val(meta), path("*genome.vcf.gz") , emit: genome_vcf
tuple val(meta), path("*_genome.vcf.gz.tbi") , emit: genome_vcf_tbi tuple val(meta), path("*genome.vcf.gz.tbi") , emit: genome_vcf_tbi
path "*.version.txt" , emit: version path "*.version.txt" , emit: version
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def ioptions = initOptions(options) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
def prefix = ioptions.suffix ? "strelka_${meta.id}${ioptions.suffix}" : "strelka_${meta.id}" def regions = params.target_bed ? "--exome --callRegions ${target_bed}" : ""
def options_strelka = params.target_bed ? "--exome --callRegions ${target_bed}" : ""
""" """
configureStrelkaGermlineWorkflow.py \\ configureStrelkaGermlineWorkflow.py \\
--bam $bam \\ --bam $bam \\
--referenceFasta $fasta \\ --referenceFasta $fasta \\
$options_strelka \\ $regions \\
$options.args \\ $options.args \\
--runDir strelka --runDir strelka
python strelka/runWorkflow.py -m local -j $task.cpus python strelka/runWorkflow.py -m local -j $task.cpus
mv strelka/results/variants/genome.*.vcf.gz ${prefix}_genome.vcf.gz mv strelka/results/variants/genome.*.vcf.gz ${prefix}.genome.vcf.gz
mv strelka/results/variants/genome.*.vcf.gz.tbi ${prefix}_genome.vcf.gz.tbi mv strelka/results/variants/genome.*.vcf.gz.tbi ${prefix}.genome.vcf.gz.tbi
mv strelka/results/variants/variants.vcf.gz ${prefix}_variants.vcf.gz mv strelka/results/variants/variants.vcf.gz ${prefix}.variants.vcf.gz
mv strelka/results/variants/variants.vcf.gz.tbi ${prefix}_variants.vcf.gz.tbi mv strelka/results/variants/variants.vcf.gz.tbi ${prefix}.variants.vcf.gz.tbi
echo configureStrelkaGermlineWorkflow.py --version &> ${software}.version.txt #2>&1 echo configureStrelkaGermlineWorkflow.py --version &> ${software}.version.txt #2>&1
""" """

View file

@ -2,13 +2,13 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
process STRINGTIE_MERGE { process STRINGTIE_MERGE {
label 'process_medium' label 'process_medium'
publishDir "${params.outdir}", publishDir "${params.outdir}",
mode: params.publish_dir_mode, mode: params.publish_dir_mode,
saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['']) } saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:[:], publish_by_meta:[]) }
// Note: 2.7X indices incompatible with AWS iGenomes. // Note: 2.7X indices incompatible with AWS iGenomes.
conda (params.enable_conda ? "bioconda::stringtie=2.1.4" : null) conda (params.enable_conda ? "bioconda::stringtie=2.1.4" : null)
@ -19,11 +19,11 @@ process STRINGTIE_MERGE {
} }
input: input:
path stringtie_gtf path stringtie_gtf
path annotation_gtf path annotation_gtf
output: output:
path "stringtie.merged.gtf" , emit: merged_gtf path "stringtie.merged.gtf", emit: gtf
script: script:
""" """

View file

@ -20,25 +20,25 @@ process TIDDIT_SV {
input: input:
tuple val(meta), path(bam) tuple val(meta), path(bam)
path fasta path fasta
path fai path fai
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("*.ploidy.tab") , emit: ploidy
tuple val(meta), path("*.signals.tab"), emit: signals tuple val(meta), path("*.signals.tab"), emit: signals
path "*.version.txt", emit: version path "*.version.txt" , emit: version
script: script:
def software = getSoftwareName(task.process) def software = getSoftwareName(task.process)
def output = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
def reference = fasta == "dummy_file.txt" ? "--ref $fasta" : "" def reference = fasta == "dummy_file.txt" ? "--ref $fasta" : ""
""" """
tiddit \\ tiddit \\
--sv $options.args \\ --sv $options.args \\
--bam $bam \\ --bam $bam \\
$reference \\ $reference \\
-o $output -o $prefix
echo \$(tiddit -h 2>&1) | sed 's/^.*Version: //; s/(.*\$//' > ${software}.version.txt echo \$(tiddit -h 2>&1) | sed 's/^.*Version: //; s/(.*\$//' > ${software}.version.txt
""" """

View file

@ -2,7 +2,7 @@
include { initOptions; saveFiles; getSoftwareName } from './functions' include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:] params.options = [:]
def options = initOptions(params.options) options = initOptions(params.options)
def VERSION = '377' def VERSION = '377'
@ -36,6 +36,7 @@ process UCSC_BED12TOBIGBED {
$bed \\ $bed \\
$sizes \\ $sizes \\
${prefix}.bigBed ${prefix}.bigBed
echo $VERSION > ${software}.version.txt echo $VERSION > ${software}.version.txt
""" """
} }

View file

@ -0,0 +1,46 @@
name: ucsc_bed12tobigbed
description: Convert file from bed12 to bigBed format
keywords:
- bed12
- bigbed
tools:
- ucsc:
description: Convert file from bed12 to bigBed format
homepage: None
documentation: None
tool_dev_url: None
doi: ""
licence: ["varies; see http://genome.ucsc.edu/license"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bed:
type: file
description: bed12 file
pattern: "*.{bed,bed12}"
- sizes:
type: file
description: chromosome sizes file
pattern: "*.{sizes}"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
- bigbed:
type: file
description: bigBed file
pattern: "*.{bigBed}"
authors:
- "@drpatelh"

View file

@ -0,0 +1,46 @@
name: ucsc_bedgraphtobigwig
description: Convert a bedGraph file to bigWig format.
keywords:
- bedgraph
- bigwig
tools:
- ucsc:
description: Convert a bedGraph file to bigWig format.
homepage: None
documentation: None
tool_dev_url: None
doi: ""
licence: ["varies; see http://genome.ucsc.edu/license"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bedgraph:
type: file
description: bedGraph file
pattern: "*.{bedGraph}"
- sizes:
type: file
description: chromosome sizes file
pattern: "*.{sizes}"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
- bigwig:
type: file
description: bigWig file
pattern: "*.{bigWig}"
authors:
- "@drpatelh"

View file

@ -385,10 +385,10 @@ kallistobustools/ref:
- software/kallistobustools/ref/** - software/kallistobustools/ref/**
- tests/software/kallistobustools/ref/** - tests/software/kallistobustools/ref/**
kraken2/run: kraken2/kraken2:
- software/kraken2/run/** - software/kraken2/kraken2/**
- software/untar/** - software/untar/**
- tests/software/kraken2/run/** - tests/software/kraken2/kraken2/**
last/dotplot: last/dotplot:
- software/last/dotplot/** - software/last/dotplot/**

View file

@ -9,19 +9,19 @@
md5sum: d41d8cd98f00b204e9800998ecf8427e md5sum: d41d8cd98f00b204e9800998ecf8427e
- path: output/cnvkit/reference.cnn - path: output/cnvkit/reference.cnn
md5sum: ac99c1ad8b917b96ae15119146c91ab9 md5sum: ac99c1ad8b917b96ae15119146c91ab9
- path: output/cnvkit/test_paired_end.sorted.targetcoverage.cnn - path: output/cnvkit/test.paired_end.sorted.targetcoverage.cnn
md5sum: 3fe80b6013ffc3e9968345e810158215 md5sum: 3fe80b6013ffc3e9968345e810158215
- path: output/cnvkit/test_paired_end.sorted.antitargetcoverage.cnn - path: output/cnvkit/test.paired_end.sorted.antitargetcoverage.cnn
md5sum: 203caf8cef6935bb50b4138097955cb8 md5sum: 203caf8cef6935bb50b4138097955cb8
- path: output/cnvkit/test_single_end.sorted.targetcoverage.cnn - path: output/cnvkit/test.single_end.sorted.targetcoverage.cnn
md5sum: aa8a018b1d4d1e688c9f9f6ae01bf4d7 md5sum: aa8a018b1d4d1e688c9f9f6ae01bf4d7
- path: output/cnvkit/test_single_end.sorted.antitargetcoverage.cnn - path: output/cnvkit/test.single_end.sorted.antitargetcoverage.cnn
md5sum: 203caf8cef6935bb50b4138097955cb8 md5sum: 203caf8cef6935bb50b4138097955cb8
- path: output/cnvkit/test_paired_end.sorted.cnr - path: output/cnvkit/test.paired_end.sorted.cnr
md5sum: 7e37d73ab604dbc3fe4ebb56aca9bdc3 md5sum: 7e37d73ab604dbc3fe4ebb56aca9bdc3
- path: output/cnvkit/test_paired_end.sorted.cns - path: output/cnvkit/test.paired_end.sorted.cns
md5sum: 060af1aa637ed51812af19bcce24fcfe md5sum: 060af1aa637ed51812af19bcce24fcfe
- path: output/cnvkit/test_paired_end.sorted.bintest.cns - path: output/cnvkit/test.paired_end.sorted.bintest.cns
md5sum: 6544d979475def8a9f69ba42a985668d md5sum: 6544d979475def8a9f69ba42a985668d
- path: output/cnvkit/test_paired_end.sorted.call.cns - path: output/cnvkit/test.paired_end.sorted.call.cns
md5sum: f2ca59b4d50b0c317adc526c1b99b622 md5sum: f2ca59b4d50b0c317adc526c1b99b622

View file

@ -5,7 +5,7 @@
- gatk4/applybqsr - gatk4/applybqsr
files: files:
- path: output/gatk4/test.bam - path: output/gatk4/test.bam
md5sum: 139a5ffc7601ce3cfa7a896cd381542a md5sum: dac716c394db5e83c12b44355c098ca7
- name: gatk4 applybqsr test_gatk4_applybqsr_intervals - name: gatk4 applybqsr test_gatk4_applybqsr_intervals
command: nextflow run tests/software/gatk4/applybqsr -entry test_gatk4_applybqsr_intervals -c tests/config/nextflow.config command: nextflow run tests/software/gatk4/applybqsr -entry test_gatk4_applybqsr_intervals -c tests/config/nextflow.config
@ -14,4 +14,4 @@
- gatk4/applybqsr - gatk4/applybqsr
files: files:
- path: output/gatk4/test.bam - path: output/gatk4/test.bam
md5sum: 5b1f6fa2525124c281f71e5a76d28482 md5sum: 400441dbe5344658580ba0a24ba57069

View file

@ -5,4 +5,4 @@
- gatk4/markduplicates - gatk4/markduplicates
files: files:
- path: output/gatk4/test.bam - path: output/gatk4/test.bam
md5sum: b58d47345e3ce5825c0641c9d6e6cb7a md5sum: 3b6facab3afbacfa08a7a975efbd2c6b

View file

@ -4,5 +4,5 @@
- gatk4 - gatk4
- gatk4/mergebamalignment - gatk4/mergebamalignment
files: files:
- path: output/gatk4/test.merged.bam - path: output/gatk4/test.bam
md5sum: bd4a5e2ea916826aadebb5878333e26f md5sum: bd4a5e2ea916826aadebb5878333e26f

View file

@ -4,7 +4,7 @@
- gatk4/mergevcfs - gatk4/mergevcfs
- gatk4 - gatk4
files: files:
- path: output/gatk4/test.merged.vcf.gz - path: output/gatk4/test.vcf.gz
md5sum: ff48f175e26db2d4b2957762f6d1c715 md5sum: ff48f175e26db2d4b2957762f6d1c715
- name: gatk4 mergevcfs test_gatk4_mergevcfs_refdict - name: gatk4 mergevcfs test_gatk4_mergevcfs_refdict
@ -13,5 +13,5 @@
- gatk4/mergevcfs - gatk4/mergevcfs
- gatk4 - gatk4
files: files:
- path: output/gatk4/test.merged.vcf.gz - path: output/gatk4/test.vcf.gz
md5sum: ff48f175e26db2d4b2957762f6d1c715 md5sum: ff48f175e26db2d4b2957762f6d1c715

View file

@ -4,5 +4,5 @@
- gatk4 - gatk4
- gatk4/splitncigarreads - gatk4/splitncigarreads
files: files:
- path: output/gatk4/test.split_cigar.bam - path: output/gatk4/test.bam
md5sum: a8473bd4abc7b13751fc51b92531da4c md5sum: 900af0f67749d5ffac961354178ecb29

View file

@ -2,20 +2,20 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { UNTAR } from '../../../../software/untar/main.nf' addParams( options: [:] ) include { UNTAR } from '../../../../software/untar/main.nf' addParams( options: [:] )
include { KRAKEN2_RUN } from '../../../../software/kraken2/run/main.nf' addParams( options: [:] ) include { KRAKEN2_KRAKEN2 } from '../../../../software/kraken2/kraken2/main.nf' addParams( options: [:] )
workflow test_kraken2_run_single_end { workflow test_kraken2_kraken2_single_end {
input = [ [ id:'test', single_end:true ], // meta map input = [ [ id:'test', single_end:true ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
] ]
db = file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) db = file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true)
UNTAR ( db ) UNTAR ( db )
KRAKEN2_RUN ( input, UNTAR.out.untar ) KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar )
} }
workflow test_kraken2_run_paired_end { workflow test_kraken2_kraken2_paired_end {
input = [ [ id:'test', single_end:false ], // meta map input = [ [ id:'test', single_end:false ], // meta map
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
@ -23,5 +23,5 @@ workflow test_kraken2_run_paired_end {
db = file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) db = file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true)
UNTAR ( db ) UNTAR ( db )
KRAKEN2_RUN ( input, UNTAR.out.untar ) KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar )
} }

View file

@ -1,8 +1,8 @@
- name: kraken2 run single-end - name: kraken2 kraken2 single-end
command: nextflow run ./tests/software/kraken2/run -entry test_kraken2_run_single_end -c tests/config/nextflow.config command: nextflow run ./tests/software/kraken2/kraken2 -entry test_kraken2_kraken2_single_end -c tests/config/nextflow.config
tags: tags:
- kraken2 - kraken2
- kraken2/run - kraken2/kraken2
files: files:
- path: output/kraken2/test.classified.fastq.gz - path: output/kraken2/test.classified.fastq.gz
should_exist: true should_exist: true
@ -11,11 +11,11 @@
- path: output/kraken2/test.kraken2.report.txt - path: output/kraken2/test.kraken2.report.txt
md5sum: 4227755fe40478b8d7dc8634b489761e md5sum: 4227755fe40478b8d7dc8634b489761e
- name: kraken2 run paired-end - name: kraken2 kraken2 paired-end
command: nextflow run ./tests/software/kraken2/run -entry test_kraken2_run_paired_end -c tests/config/nextflow.config command: nextflow run ./tests/software/kraken2/kraken2 -entry test_kraken2_kraken2_paired_end -c tests/config/nextflow.config
tags: tags:
- kraken2 - kraken2
- kraken2/run - kraken2/kraken2
files: files:
- path: output/kraken2/test.classified_1.fastq.gz - path: output/kraken2/test.classified_1.fastq.gz
should_exist: true should_exist: true

View file

@ -2,23 +2,15 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { NANOLYSE } from '../../../software/nanolyse/main.nf' addParams( options: [suffix: 'clean'] ) include { NANOLYSE } from '../../../software/nanolyse/main.nf' addParams( options: [suffix: '.clean'] )
process GET_NANOLYSE_FASTA {
output:
path "*fasta.gz", emit: fasta
script:
"""
wget https://github.com/wdecoster/nanolyse/raw/master/reference/lambda.fasta.gz
"""
}
workflow test_nanolyse { workflow test_nanolyse {
input = [ [ id:'test' ], // meta map input = [
[ file(params.test_data['sarscov2']['nanopore']['test_fastq_gz'], checkIfExists: true)] [ id:'test' ], // meta map
] [ file(params.test_data['sarscov2']['nanopore']['test_fastq_gz'], checkIfExists: true)]
]
GET_NANOLYSE_FASTA() fasta = file("https://github.com/wdecoster/nanolyse/raw/master/reference/lambda.fasta.gz", checkIfExists: true)
NANOLYSE ( input, GET_NANOLYSE_FASTA.out.fasta )
NANOLYSE ( input, fasta )
} }

View file

@ -5,25 +5,29 @@ nextflow.enable.dsl = 2
include { STRELKA_GERMLINE } from '../../../../software/strelka/germline/main.nf' addParams( options: [:] ) include { STRELKA_GERMLINE } from '../../../../software/strelka/germline/main.nf' addParams( options: [:] )
workflow test_strelka_germline { workflow test_strelka_germline {
input = [ [ id:'test'], // meta map input = [
file("${launchDir}/tests/data/genomics/sarscov2/illumina/bam/test_paired_end.sorted.bam", checkIfExists: true), [ id:'test'], // meta map
file("${launchDir}/tests/data/genomics/sarscov2/illumina/bam/test_paired_end.sorted.bam.bai", 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("${launchDir}/tests/data/genomics/sarscov2/genome/genome.fasta", checkIfExists: true) ]
fai = file("${launchDir}/tests/data/genomics/sarscov2/genome/genome.fasta.fai", 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)
targets = [] targets = []
STRELKA_GERMLINE ( input, fasta, fai, targets ) STRELKA_GERMLINE ( input, fasta, fai, targets )
} }
workflow test_strelka_germline_target_bed { workflow test_strelka_germline_target_bed {
input = [ [ id:'test'], // meta map input = [
file("${launchDir}/tests/data/genomics/sarscov2/illumina/bam/test_paired_end.sorted.bam", checkIfExists: true), [ id:'test'], // meta map
file("${launchDir}/tests/data/genomics/sarscov2/illumina/bam/test_paired_end.sorted.bam.bai", 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("${launchDir}/tests/data/genomics/sarscov2/genome/genome.fasta", checkIfExists: true) ]
fai = file("${launchDir}/tests/data/genomics/sarscov2/genome/genome.fasta.fai", checkIfExists: true)
targets = file("${launchDir}/tests/data/genomics/sarscov2/genome/bed/test.bed", 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)
targets = file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true)
STRELKA_GERMLINE ( input, fasta, fai, targets ) STRELKA_GERMLINE ( input, fasta, fai, targets )
} }

View file

@ -1,22 +1,20 @@
## TODO nf-core: Please run the following command to build this file:
# nf-core modules create-test-yml strelka/germline
- name: strelka germline - name: strelka germline
command: nextflow run ./tests/software/strelka/germline -entry test_strelka_germline -c tests/config/nextflow.config command: nextflow run ./tests/software/strelka/germline -entry test_strelka_germline -c tests/config/nextflow.config
tags: tags:
- strelka - strelka
- strelka/germline - strelka/germline
files: files:
- path: output/strelka/strelka_test_variants.vcf.gz - path: output/strelka/test.variants.vcf.gz
- path: output/strelka/strelka_test_variants.vcf.gz.tbi - path: output/strelka/test.variants.vcf.gz.tbi
- path: output/strelka/strelka_test_genome.vcf.gz - path: output/strelka/test.genome.vcf.gz
- path: output/strelka/strelka_test_genome.vcf.gz.tbi - path: output/strelka/test.genome.vcf.gz.tbi
- name: strelka germline target bed - name: strelka germline target bed
command: nextflow run ./tests/software/strelka/germline -entry test_strelka_germline_target_bed -c tests/config/nextflow.config command: nextflow run ./tests/software/strelka/germline -entry test_strelka_germline_target_bed -c tests/config/nextflow.config
tags: tags:
- strelka - strelka
- strelka/germline - strelka/germline
files: files:
- path: output/strelka/strelka_test_variants.vcf.gz - path: output/strelka/test.variants.vcf.gz
- path: output/strelka/strelka_test_variants.vcf.gz.tbi - path: output/strelka/test.variants.vcf.gz.tbi
- path: output/strelka/strelka_test_genome.vcf.gz - path: output/strelka/test.genome.vcf.gz
- path: output/strelka/strelka_test_genome.vcf.gz.tbi - path: output/strelka/test.genome.vcf.gz.tbi

View file

@ -5,9 +5,11 @@ nextflow.enable.dsl = 2
include { TIDDIT_SV } from '../../../../software/tiddit/sv/main.nf' addParams( options: [:] ) include { TIDDIT_SV } from '../../../../software/tiddit/sv/main.nf' addParams( options: [:] )
workflow test_tiddit_sv { workflow test_tiddit_sv {
input = [ [ id:'test' ], // meta map input = [
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] [ id:'test' ], // meta map
] [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], 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) fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true)
@ -15,9 +17,10 @@ workflow test_tiddit_sv {
} }
workflow test_tiddit_sv_no_ref { workflow test_tiddit_sv_no_ref {
input = [ [ id:'test' ], // meta map input = [
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] [ id:'test' ], // meta map
] [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ]
]
TIDDIT_SV ( input, [], [] ) TIDDIT_SV ( input, [], [] )
} }

View file

@ -7,9 +7,8 @@
- path: output/tiddit/test.ploidy.tab - path: output/tiddit/test.ploidy.tab
md5sum: 45e050b0e204f0a5a3a99627cc440eaa md5sum: 45e050b0e204f0a5a3a99627cc440eaa
- path: output/tiddit/test.signals.tab - path: output/tiddit/test.signals.tab
md5sum: 25408a43dbdd01c08e33a6d670f2bb84 md5sum: dab4b2fec4ddf8eb1c23005b0770150e
- path: output/tiddit/test.vcf - path: output/tiddit/test.vcf
should_exist: true
- name: tiddit sv no ref - name: tiddit sv no ref
command: nextflow run ./tests/software/tiddit/sv -entry test_tiddit_sv_no_ref -c tests/config/nextflow.config command: nextflow run ./tests/software/tiddit/sv -entry test_tiddit_sv_no_ref -c tests/config/nextflow.config
@ -20,6 +19,5 @@
- path: output/tiddit/test.ploidy.tab - path: output/tiddit/test.ploidy.tab
md5sum: 45e050b0e204f0a5a3a99627cc440eaa md5sum: 45e050b0e204f0a5a3a99627cc440eaa
- path: output/tiddit/test.signals.tab - path: output/tiddit/test.signals.tab
md5sum: 25408a43dbdd01c08e33a6d670f2bb84 md5sum: dab4b2fec4ddf8eb1c23005b0770150e
- path: output/tiddit/test.vcf - path: output/tiddit/test.vcf
should_exist: true