Merge branch 'master' into rhocall

This commit is contained in:
Ramprasad Neethiraj 2022-05-24 16:07:55 +02:00 committed by GitHub
commit c91947f8a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 307 additions and 155 deletions

View file

@ -1,5 +1,5 @@
process CNVKIT_REFERENCE { process CNVKIT_REFERENCE {
tag "$reference" tag "$fasta"
label 'process_low' label 'process_low'
conda (params.enable_conda ? "bioconda::cnvkit=0.9.9" : null) conda (params.enable_conda ? "bioconda::cnvkit=0.9.9" : null)
@ -8,19 +8,20 @@ process CNVKIT_REFERENCE {
'quay.io/biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" 'quay.io/biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }"
input: input:
path fasta path fasta
path targets path targets
path antitargets path antitargets
output: output:
path("*.cnn") , emit: cnn path "*.cnn" , emit: cnn
path "versions.yml" , emit: versions path "versions.yml", emit: versions
when: when:
task.ext.when == null || task.ext.when task.ext.when == null || task.ext.when
script: script:
def args = task.ext.args ?: '' def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: targets.BaseName
""" """
cnvkit.py \\ cnvkit.py \\
@ -28,7 +29,7 @@ process CNVKIT_REFERENCE {
--fasta $fasta \\ --fasta $fasta \\
--targets $targets \\ --targets $targets \\
--antitargets $antitargets \\ --antitargets $antitargets \\
--output reference.cnn \\ --output ${prefix}.reference.cnn \\
$args $args
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml

View file

@ -10,13 +10,13 @@ process MOSDEPTH {
input: input:
tuple val(meta), path(bam), path(bai) tuple val(meta), path(bam), path(bai)
path bed path bed
val window_size path fasta
output: output:
tuple val(meta), path('*.global.dist.txt') , emit: global_txt tuple val(meta), path('*.global.dist.txt') , emit: global_txt
tuple val(meta), path('*.region.dist.txt') , emit: regions_txt , optional:true tuple val(meta), path('*.region.dist.txt') , emit: regions_txt , optional:true
tuple val(meta), path('*.summary.txt') , emit: summary_txt tuple val(meta), path('*.summary.txt') , emit: summary_txt
tuple val(meta), path('*.per-base.d4') , emit: d4 , optional:true tuple val(meta), path('*.per-base.d4') , emit: per_base_d4 , optional:true
tuple val(meta), path('*.per-base.bed.gz') , emit: per_base_bed, optional:true tuple val(meta), path('*.per-base.bed.gz') , emit: per_base_bed, optional:true
tuple val(meta), path('*.per-base.bed.gz.csi'), emit: per_base_csi, optional:true tuple val(meta), path('*.per-base.bed.gz.csi'), emit: per_base_csi, optional:true
tuple val(meta), path('*.regions.bed.gz') , emit: regions_bed , optional:true tuple val(meta), path('*.regions.bed.gz') , emit: regions_bed , optional:true
@ -29,19 +29,21 @@ process MOSDEPTH {
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}"
if (window_size) { def reference = fasta ? "--fasta ${fasta}" : ""
interval = "--by ${window_size}" def interval = bed ? "--by ${bed}" : ""
} else if ( bed ) { if (bed && args.contains("--by")) {
interval = "--by ${bed}" exit 1, "'--by' can only be specified once when running mosdepth! Either remove input BED file definition or remove '--by' from 'ext.args' definition"
} else {
interval = ""
} }
""" """
mosdepth \\ mosdepth \\
--threads ${task.cpus} \\
$interval \\ $interval \\
$reference \\
$args \\ $args \\
$prefix \\ $prefix \\
$bam $bam
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
mosdepth: \$(mosdepth --version 2>&1 | sed 's/^.*mosdepth //; s/ .*\$//') mosdepth: \$(mosdepth --version 2>&1 | sed 's/^.*mosdepth //; s/ .*\$//')

View file

@ -30,10 +30,10 @@ input:
type: file type: file
description: BED file with intersected intervals description: BED file with intersected intervals
pattern: "*.{bed}" pattern: "*.{bed}"
- window_size: - fasta:
type: integer type: file
description: Window size description: Reference genome FASTA file
pattern: "[0-9]+" pattern: "*.{fa,fasta}"
output: output:
- meta: - meta:
type: map type: map
@ -60,6 +60,10 @@ output:
type: file type: file
description: Index file for BED file with per-base coverage description: Index file for BED file with per-base coverage
pattern: "*.{per-base.bed.gz.csi}" pattern: "*.{per-base.bed.gz.csi}"
- per_base_d4:
type: file
description: D4 file with per-base coverage
pattern: "*.{per-base.d4}"
- regions_bed: - regions_bed:
type: file type: file
description: BED file with per-region coverage description: BED file with per-region coverage
@ -76,3 +80,4 @@ authors:
- "@joseespinosa" - "@joseespinosa"
- "@drpatelh" - "@drpatelh"
- "@ramprasadn" - "@ramprasadn"
- "@matthdsm"

View file

@ -9,12 +9,13 @@ process UMITOOLS_DEDUP {
input: input:
tuple val(meta), path(bam), path(bai) tuple val(meta), path(bam), path(bai)
val get_output_stats
output: output:
tuple val(meta), path("*.bam") , emit: bam tuple val(meta), path("*.bam") , emit: bam
tuple val(meta), path("*edit_distance.tsv"), emit: tsv_edit_distance tuple val(meta), path("*edit_distance.tsv"), optional:true, emit: tsv_edit_distance
tuple val(meta), path("*per_umi.tsv") , emit: tsv_per_umi tuple val(meta), path("*per_umi.tsv") , optional:true, emit: tsv_per_umi
tuple val(meta), path("*per_position.tsv") , emit: tsv_umi_per_position tuple val(meta), path("*per_position.tsv") , optional:true, emit: tsv_umi_per_position
path "versions.yml" , emit: versions path "versions.yml" , emit: versions
when: when:
@ -24,12 +25,13 @@ process UMITOOLS_DEDUP {
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 paired = meta.single_end ? "" : "--paired" def paired = meta.single_end ? "" : "--paired"
def stats = get_output_stats ? "--output-stats $prefix" : ""
""" """
umi_tools \\ umi_tools \\
dedup \\ dedup \\
-I $bam \\ -I $bam \\
-S ${prefix}.bam \\ -S ${prefix}.bam \\
--output-stats $prefix \\ $stats \\
$paired \\ $paired \\
$args $args

View file

@ -26,6 +26,10 @@ input:
description: | description: |
BAM index files corresponding to the input BAM file. BAM index files corresponding to the input BAM file.
pattern: "*.{bai}" pattern: "*.{bai}"
- get_output_stats:
type: boolean
description: |
Whether or not to generate output stats.
output: output:
- meta: - meta:
type: map type: map

View file

@ -4,5 +4,5 @@
- cnvkit/reference - cnvkit/reference
- cnvkit - cnvkit
files: files:
- path: output/cnvkit/reference.cnn - path: output/cnvkit/multi_intervals.reference.cnn
md5sum: 7c4a7902f5ab101b1f9d6038d331b3d9 md5sum: 7c4a7902f5ab101b1f9d6038d331b3d9

View file

@ -2,35 +2,72 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { MOSDEPTH } from '../../../modules/mosdepth/main.nf' include { MOSDEPTH } from '../../../modules/mosdepth/main.nf'
include { MOSDEPTH as MOSDEPTH_FAIL } from '../../../modules/mosdepth/main.nf'
include { MOSDEPTH as MOSDEPTH_WINDOW } from '../../../modules/mosdepth/main.nf'
workflow test_mosdepth { workflow test_mosdepth {
input = [ [ id:'test', single_end:true ], input = [
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], [ id:'test', single_end:true ],
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ] [ 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) ]
]
MOSDEPTH ( input, [], [] ) MOSDEPTH ( input, [], [] )
} }
workflow test_mosdepth_window {
input = [ [ id:'test', single_end: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) ]
]
window = 100
MOSDEPTH ( input, [], window )
}
workflow test_mosdepth_bed { workflow test_mosdepth_bed {
input = [ [ id:'test', single_end:true ], input = [
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], [ id:'test', single_end:true ],
[ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ] [ 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) ]
bed = [ file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) ] ]
bed = [ file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ]
MOSDEPTH ( input, bed, [] ) MOSDEPTH ( input, bed, [] )
} }
workflow test_mosdepth_cram {
input = [
[ id:'test', single_end: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) ]
]
fasta = [ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ]
MOSDEPTH ( input, [], fasta )
}
workflow test_mosdepth_cram_bed {
input = [
[ id:'test', single_end: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) ]
]
bed = [ file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ]
fasta = [ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ]
MOSDEPTH ( input, bed, fasta )
}
workflow test_mosdepth_window {
input = [
[ id:'test', single_end:true ],
[ 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) ]
]
bed = [ file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ]
MOSDEPTH_WINDOW ( input, [], [] )
}
workflow test_mosdepth_fail {
input = [
[ id:'test', single_end:true ],
[ 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) ]
]
bed = [ file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ]
MOSDEPTH_FAIL ( input, bed, [] )
}

View file

@ -1,5 +1,10 @@
process { process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
withName: MOSDEPTH_FAIL {
ext.args = "--by 100"
}
withName: MOSDEPTH_WINDOW {
ext.args = "--by 100"
}
} }

View file

@ -1,53 +1,93 @@
- name: mosdepth - name: mosdepth test_mosdepth
command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config
tags: tags:
- mosdepth - mosdepth
files: files:
- path: ./output/mosdepth/test.per-base.bed.gz.csi - path: output/mosdepth/test.mosdepth.global.dist.txt
md5sum: b2aad62c41a7146680d31df505fcc8c5 md5sum: e82e90c7d508a135b5a8a7cd6933452e
- path: ./output/mosdepth/test.per-base.bed.gz - path: output/mosdepth/test.mosdepth.summary.txt
md5sum: 11b3f649072c2c7453febb085b1a9c33 md5sum: 4f0d231060cbde4efdd673863bd2fb59
- path: ./output/mosdepth/test.mosdepth.global.dist.txt - path: output/mosdepth/test.per-base.bed.gz
md5sum: 2a1de1b0ecc361a21cd296ec4e1efd6a md5sum: bc1df47d46f818fee5275975925d769a
- path: ./output/mosdepth/test.mosdepth.summary.txt - path: output/mosdepth/test.per-base.bed.gz.csi
md5sum: 7b249dd3b3e58cc122fbd25ea84aa25d md5sum: 9e649ac749ff6c6073bef5ab63e8aaa4
- name: mosdepth window - name: mosdepth test_mosdepth_bed
command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_window -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_bed -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config
tags: tags:
- mosdepth - mosdepth
files: files:
- path: ./output/mosdepth/test.per-base.bed.gz.csi - path: output/mosdepth/test.mosdepth.global.dist.txt
md5sum: b2aad62c41a7146680d31df505fcc8c5 md5sum: e82e90c7d508a135b5a8a7cd6933452e
- path: ./output/mosdepth/test.per-base.bed.gz - path: output/mosdepth/test.mosdepth.region.dist.txt
md5sum: 11b3f649072c2c7453febb085b1a9c33 md5sum: e82e90c7d508a135b5a8a7cd6933452e
- path: ./output/mosdepth/test.mosdepth.global.dist.txt - path: output/mosdepth/test.mosdepth.summary.txt
md5sum: 2a1de1b0ecc361a21cd296ec4e1efd6a md5sum: 96c037f769974b904beb53edc4f56d82
- path: ./output/mosdepth/test.regions.bed.gz - path: output/mosdepth/test.per-base.bed.gz
md5sum: 64e1ced01c4443d7c1796ef553992f0c md5sum: bc1df47d46f818fee5275975925d769a
- path: ./output/mosdepth/test.regions.bed.gz.csi - path: output/mosdepth/test.per-base.bed.gz.csi
md5sum: 9e312b4b0784bd46dfbd23b3a8afed6a md5sum: 9e649ac749ff6c6073bef5ab63e8aaa4
- path: ./output/mosdepth/test.mosdepth.region.dist.txt - path: output/mosdepth/test.regions.bed.gz
md5sum: 65fbc824c4212c6884354d8ac72ad37e md5sum: 5d398caf7171ec4406278e2add3009ae
- path: ./output/mosdepth/test.mosdepth.summary.txt - path: output/mosdepth/test.regions.bed.gz.csi
md5sum: 11804907dab069ddb99ca97bf2698572 md5sum: 47669cfe41f3e222e74d81e1b1be191f
- name: mosdepth bed - name: mosdepth test_mosdepth_cram
command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_bed -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_cram -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config
tags: tags:
- mosdepth - mosdepth
files: files:
- path: ./output/mosdepth/test.per-base.bed.gz.csi - path: output/mosdepth/test.mosdepth.global.dist.txt
md5sum: b2aad62c41a7146680d31df505fcc8c5 md5sum: e82e90c7d508a135b5a8a7cd6933452e
- path: ./output/mosdepth/test.per-base.bed.gz - path: output/mosdepth/test.mosdepth.summary.txt
md5sum: 11b3f649072c2c7453febb085b1a9c33 md5sum: 4f0d231060cbde4efdd673863bd2fb59
- path: ./output/mosdepth/test.mosdepth.global.dist.txt - path: output/mosdepth/test.per-base.bed.gz
md5sum: 2a1de1b0ecc361a21cd296ec4e1efd6a md5sum: bc1df47d46f818fee5275975925d769a
- path: ./output/mosdepth/test.regions.bed.gz - path: output/mosdepth/test.per-base.bed.gz.csi
md5sum: 347f877700d1dc42c95157199eff25d5 md5sum: 9e649ac749ff6c6073bef5ab63e8aaa4
- path: ./output/mosdepth/test.regions.bed.gz.csi
md5sum: ed5fbf46e3bdcbf60094df295bc40356 - name: mosdepth test_mosdepth_cram_bed
- path: ./output/mosdepth/test.mosdepth.region.dist.txt command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_cram_bed -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config
md5sum: 295564628113d2ec0ca34d7f661cfea8 tags:
- path: ./output/mosdepth/test.mosdepth.summary.txt - mosdepth
md5sum: b07817412fd17819c14541e63bc4926c files:
- path: output/mosdepth/test.mosdepth.global.dist.txt
md5sum: e82e90c7d508a135b5a8a7cd6933452e
- path: output/mosdepth/test.mosdepth.region.dist.txt
md5sum: e82e90c7d508a135b5a8a7cd6933452e
- path: output/mosdepth/test.mosdepth.summary.txt
md5sum: 96c037f769974b904beb53edc4f56d82
- path: output/mosdepth/test.per-base.bed.gz
md5sum: bc1df47d46f818fee5275975925d769a
- path: output/mosdepth/test.per-base.bed.gz.csi
md5sum: 9e649ac749ff6c6073bef5ab63e8aaa4
- path: output/mosdepth/test.regions.bed.gz
md5sum: 5d398caf7171ec4406278e2add3009ae
- path: output/mosdepth/test.regions.bed.gz.csi
md5sum: 47669cfe41f3e222e74d81e1b1be191f
- name: mosdepth test_mosdepth_window
command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_window -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config
tags:
- mosdepth
files:
- path: output/mosdepth/test.mosdepth.global.dist.txt
md5sum: e82e90c7d508a135b5a8a7cd6933452e
- path: output/mosdepth/test.mosdepth.region.dist.txt
md5sum: 39e0e707ec32feb5176fd20a95f1f468
- path: output/mosdepth/test.mosdepth.summary.txt
md5sum: 96c037f769974b904beb53edc4f56d82
- path: output/mosdepth/test.per-base.bed.gz
md5sum: bc1df47d46f818fee5275975925d769a
- path: output/mosdepth/test.per-base.bed.gz.csi
md5sum: 9e649ac749ff6c6073bef5ab63e8aaa4
- path: output/mosdepth/test.regions.bed.gz
md5sum: f02e2cb49cc050e13d76942d6960827a
- path: output/mosdepth/test.regions.bed.gz.csi
md5sum: 257d67678136963d9dd904330079609d
- name: mosdepth test_mosdepth_fail
command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_fail -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config
tags:
- mosdepth
exit_code: 1

View file

@ -3,54 +3,81 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { UMITOOLS_EXTRACT } from '../../../../modules/umitools/extract/main.nf' include { UMITOOLS_EXTRACT } from '../../../../modules/umitools/extract/main.nf'
include { BWA_INDEX } from '../../../../modules/bwa/index/main.nf' include { BWA_INDEX } from '../../../../modules/bwa/index/main.nf'
include { BWA_MEM } from '../../../../modules/bwa/mem/main.nf' include { BWA_MEM } from '../../../../modules/bwa/mem/main.nf'
include { SAMTOOLS_INDEX } from '../../../../modules/samtools/index/main.nf' include { SAMTOOLS_INDEX } from '../../../../modules/samtools/index/main.nf'
include { UMITOOLS_DEDUP } from '../../../../modules/umitools/dedup/main.nf' include { UMITOOLS_DEDUP } from '../../../../modules/umitools/dedup/main.nf'
// //
// Test with no UMI // Test with no UMI
// //
workflow test_umitools_dedup_no_umi { workflow test_umitools_dedup_no_umi {
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_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)
]
get_output_stats = false
UMITOOLS_DEDUP ( input ) UMITOOLS_DEDUP ( input, get_output_stats )
} }
// //
// Test with single-end data // Test with single-end data without --output-stats
// //
workflow test_umitools_dedup_single_end { workflow test_umitools_dedup_single_end_no_stats {
input = [ [ id:'test', single_end:true ], // meta map input = [
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] [ id:'test', single_end:true ], // meta map
] file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
get_output_stats = false
UMITOOLS_EXTRACT ( input ) UMITOOLS_EXTRACT ( input )
BWA_INDEX ( fasta ) BWA_INDEX ( fasta )
BWA_MEM ( UMITOOLS_EXTRACT.out.reads, BWA_INDEX.out.index, true ) BWA_MEM ( UMITOOLS_EXTRACT.out.reads, BWA_INDEX.out.index, true )
SAMTOOLS_INDEX (BWA_MEM.out.bam) SAMTOOLS_INDEX ( BWA_MEM.out.bam )
UMITOOLS_DEDUP(BWA_MEM.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0])) UMITOOLS_DEDUP ( BWA_MEM.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0]), get_output_stats )
} }
// //
// Test with paired-end data // Test with paired-end data without --output-stats
// //
workflow test_umitools_dedup_paired_end { workflow test_umitools_dedup_paired_end_no_stats {
input = [ [ id:'test', single_end:false ], // meta map input = [
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), [ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_2_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)
]
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
get_output_stats = false
UMITOOLS_EXTRACT ( input ) UMITOOLS_EXTRACT ( input )
BWA_INDEX ( fasta ) BWA_INDEX ( fasta )
BWA_MEM ( UMITOOLS_EXTRACT.out.reads, BWA_INDEX.out.index, true ) BWA_MEM ( UMITOOLS_EXTRACT.out.reads, BWA_INDEX.out.index, true )
SAMTOOLS_INDEX (BWA_MEM.out.bam) SAMTOOLS_INDEX ( BWA_MEM.out.bam )
UMITOOLS_DEDUP(BWA_MEM.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0])) UMITOOLS_DEDUP ( BWA_MEM.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0]), get_output_stats )
}
//
// Test with paired-end data with --output-stats
//
workflow test_umitools_dedup_paired_end_stats {
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_2_fastq_gz'], checkIfExists: true)
]
]
fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
get_output_stats = true
UMITOOLS_EXTRACT ( input )
BWA_INDEX ( fasta )
BWA_MEM ( UMITOOLS_EXTRACT.out.reads, BWA_INDEX.out.index, true )
SAMTOOLS_INDEX ( BWA_MEM.out.bam )
UMITOOLS_DEDUP ( BWA_MEM.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0]), get_output_stats )
} }

View file

@ -7,11 +7,7 @@ process {
} }
withName: UMITOOLS_DEDUP { withName: UMITOOLS_DEDUP {
ext.args = '' ext.prefix = { "${meta.id}.dedup" }
ext.prefix = 'dedup'
} }
withName: BWA_MEM {
ext.args2 = ''
}
} }

View file

@ -1,54 +1,87 @@
- name: umitools dedup test_umitools_dedup_no_umi - name: umitools dedup test_umitools_dedup_no_umi
command: nextflow run tests/modules/umitools/dedup -entry test_umitools_dedup_no_umi -c tests/config/nextflow.config command: nextflow run ./tests/modules/umitools/dedup -entry test_umitools_dedup_no_umi -c ./tests/config/nextflow.config -c ./tests/modules/umitools/dedup/nextflow.config
tags: tags:
- umitools/dedup - umitools/dedup
- umitools - umitools
files: files:
- path: output/umitools/dedup.bam - path: output/umitools/test.dedup.bam
md5sum: 53b4edc399db81b87d2343e78af73cf0
- path: output/umitools/dedup_edit_distance.tsv
md5sum: 65186b0964e2f8d970cc04d736d8b119
- path: output/umitools/dedup_per_umi.tsv
md5sum: 8e6783a4a79437b095f095f2aefe7c01
- path: output/umitools/dedup_per_umi_per_position.tsv
md5sum: 9386db4a104b8e4e32f3ca4a84efa4ac
- path: output/umitools/versions.yml
md5sum: 4aaaa33565bcd9a984255139933d6446
- name: umitools dedup test_umitools_dedup_single_end - name: umitools dedup test_umitools_dedup_single_end_no_stats
command: nextflow run tests/modules/umitools/dedup -entry test_umitools_dedup_single_end -c tests/config/nextflow.config command: nextflow run ./tests/modules/umitools/dedup -entry test_umitools_dedup_single_end_no_stats -c ./tests/config/nextflow.config -c ./tests/modules/umitools/dedup/nextflow.config
tags: tags:
- umitools
- umitools/dedup - umitools/dedup
- umitools
files: files:
- path: output/bwa/bwa/genome.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/bwa/bwa/genome.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/bwa/bwa/genome.bwt
md5sum: 0469c30a1e239dd08f68afe66fde99da
- path: output/bwa/bwa/genome.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/bwa/bwa/genome.sa
md5sum: ab3952cabf026b48cd3eb5bccbb636d1
- path: output/bwa/test.bam - path: output/bwa/test.bam
md5sum: ea41a3cdca1856b22845e1067fd31f37 md5sum: 3ecbe569cadb9b6c881917ce60779f75
- path: output/bwa/versions.yml
md5sum: ce4d987f2c53f4c01b31d210c357b24a
- path: output/samtools/test.bam.bai - path: output/samtools/test.bam.bai
md5sum: 095af0ad3921212597ffd7c342ecd5a0 md5sum: 095af0ad3921212597ffd7c342ecd5a0
- path: output/samtools/versions.yml - path: output/umitools/test.dedup.bam
md5sum: 69b7cde627c9b4e8403dfc125db71cc7 - path: output/umitools/test.umi_extract.fastq.gz
- path: output/umitools/dedup.bam - path: output/umitools/test.umi_extract.log
md5sum: d95df177063432748ff33f473910cb1e
- path: output/umitools/versions.yml
md5sum: 730e768dd199d2f5bfb6fd0850446344
- name: umitools dedup test_umitools_dedup_paired_end - name: umitools dedup test_umitools_dedup_paired_end_no_stats
command: nextflow run tests/modules/umitools/dedup -entry test_umitools_dedup_paired_end -c tests/config/nextflow.config command: nextflow run ./tests/modules/umitools/dedup -entry test_umitools_dedup_paired_end_no_stats -c ./tests/config/nextflow.config -c ./tests/modules/umitools/dedup/nextflow.config
tags: tags:
- umitools
- umitools/dedup - umitools/dedup
- umitools
files: files:
- path: output/bwa/bwa/genome.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/bwa/bwa/genome.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/bwa/bwa/genome.bwt
md5sum: 0469c30a1e239dd08f68afe66fde99da
- path: output/bwa/bwa/genome.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/bwa/bwa/genome.sa
md5sum: ab3952cabf026b48cd3eb5bccbb636d1
- path: output/bwa/test.bam - path: output/bwa/test.bam
md5sum: 1ad786cae0ff2254c655e3a206929617 md5sum: e7dcbac1825bf210409b762dbb4fec8f
- path: output/bwa/versions.yml
md5sum: b524c5ddf61c20f4a0a93ae8fc78b851
- path: output/samtools/test.bam.bai - path: output/samtools/test.bam.bai
md5sum: 7496f4056a8e86327ca93e350f282fc2 md5sum: f75780d1de7860329b7fb4afeadc4bed
- path: output/samtools/versions.yml - path: output/umitools/test.dedup.bam
md5sum: 72fc2ab934fd4bca0f7f14a705530d34 - path: output/umitools/test.umi_extract.log
- path: output/umitools/dedup.bam - path: output/umitools/test.umi_extract_1.fastq.gz
md5sum: e8d1eae2aacef76254948c5568e94555 - path: output/umitools/test.umi_extract_2.fastq.gz
- path: output/umitools/versions.yml
md5sum: fd39e05042d354b3d8de49b617d3183d - name: umitools dedup test_umitools_dedup_paired_end_stats
command: nextflow run ./tests/modules/umitools/dedup -entry test_umitools_dedup_paired_end_stats -c ./tests/config/nextflow.config -c ./tests/modules/umitools/dedup/nextflow.config
tags:
- umitools/dedup
- umitools
files:
- path: output/bwa/bwa/genome.amb
md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e
- path: output/bwa/bwa/genome.ann
md5sum: c32e11f6c859f166c7525a9c1d583567
- path: output/bwa/bwa/genome.bwt
md5sum: 0469c30a1e239dd08f68afe66fde99da
- path: output/bwa/bwa/genome.pac
md5sum: 983e3d2cd6f36e2546e6d25a0da78d66
- path: output/bwa/bwa/genome.sa
md5sum: ab3952cabf026b48cd3eb5bccbb636d1
- path: output/bwa/test.bam
md5sum: e7dcbac1825bf210409b762dbb4fec8f
- path: output/samtools/test.bam.bai
md5sum: f75780d1de7860329b7fb4afeadc4bed
- path: output/umitools/test.dedup.bam
- path: output/umitools/test.dedup_edit_distance.tsv
md5sum: c247a49b58768e6e2e86a6c08483e612
- path: output/umitools/test.dedup_per_umi.tsv
md5sum: 10e35ca37f2bfb521ac6dd7314951a68
- path: output/umitools/test.dedup_per_umi_per_position.tsv
md5sum: 2e1a12e6f720510880068deddeefe063
- path: output/umitools/test.umi_extract.log
- path: output/umitools/test.umi_extract_1.fastq.gz
- path: output/umitools/test.umi_extract_2.fastq.gz