From bb5c0ceca5d8d3e674495c380594ac12ddcd271e Mon Sep 17 00:00:00 2001 From: kevinmenden Date: Fri, 19 Feb 2021 14:59:29 +0100 Subject: [PATCH 1/4] adding SplitNCigarReads --- software/gatk4/splitncigarreads/functions.nf | 59 ++++++++++++++++++ software/gatk4/splitncigarreads/main.nf | 43 +++++++++++++ software/gatk4/splitncigarreads/meta.yml | 60 +++++++++++++++++++ ...A_011545545.1_ASM1154554v1_genomic.fna.fai | 1 + tests/software/gatk4/splitncigarreads/main.nf | 18 ++++++ .../software/gatk4/splitncigarreads/test.yml | 8 +++ 6 files changed, 189 insertions(+) create mode 100644 software/gatk4/splitncigarreads/functions.nf create mode 100644 software/gatk4/splitncigarreads/main.nf create mode 100644 software/gatk4/splitncigarreads/meta.yml create mode 100644 tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna.fai create mode 100644 tests/software/gatk4/splitncigarreads/main.nf create mode 100644 tests/software/gatk4/splitncigarreads/test.yml diff --git a/software/gatk4/splitncigarreads/functions.nf b/software/gatk4/splitncigarreads/functions.nf new file mode 100644 index 00000000..d25eea86 --- /dev/null +++ b/software/gatk4/splitncigarreads/functions.nf @@ -0,0 +1,59 @@ +/* + * ----------------------------------------------------- + * Utility functions used in nf-core DSL2 module files + * ----------------------------------------------------- + */ + +/* + * Extract name of software tool from process name using $task.process + */ +def getSoftwareName(task_process) { + return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() +} + +/* + * Function to initialise default values and to generate a Groovy Map of available options for nf-core modules + */ +def initOptions(Map args) { + def Map options = [:] + options.args = args.args ?: '' + options.args2 = args.args2 ?: '' + options.publish_by_id = args.publish_by_id ?: false + options.publish_dir = args.publish_dir ?: '' + options.publish_files = args.publish_files + options.suffix = args.suffix ?: '' + return options +} + +/* + * Tidy up and join elements of a list to return a path string + */ +def getPathFromList(path_list) { + def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries + paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes + return paths.join('/') +} + +/* + * Function to save/publish module results + */ +def saveFiles(Map args) { + if (!args.filename.endsWith('.version.txt')) { + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + if (ioptions.publish_by_id) { + path_list.add(args.publish_id) + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" + } + } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" + } + } +} diff --git a/software/gatk4/splitncigarreads/main.nf b/software/gatk4/splitncigarreads/main.nf new file mode 100644 index 00000000..ce3d10e3 --- /dev/null +++ b/software/gatk4/splitncigarreads/main.nf @@ -0,0 +1,43 @@ +// Import generic module functions +include { initOptions; saveFiles; getSoftwareName } from './functions' + +params.options = [:] +def options = initOptions(params.options) + +process GATK4_SPLITNCIGARREADS { + tag "$meta.id" + label 'process_medium' + publishDir "${params.outdir}", + mode: params.publish_dir_mode, + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), publish_id:meta.id) } + + conda (params.enable_conda ? 'bioconda::gatk4:4.1.9.0' : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container 'https://depot.galaxyproject.org/singularity/gatk4:4.1.9.0--py39_0' + } else { + container 'quay.io/biocontainers/gatk4:4.1.9.0--py39_0' + } + + input: + tuple val(meta), path(bam) + path(fasta) + path(fai) + path(dict) + + output: + tuple val(meta), path('*.split_cigar.bam'), emit: bam + path '*.version.txt' , emit: version + + script: + def software = getSoftwareName(task.process) + def prefix = options.suffix ? "${meta.id}.${options.suffix}" : "${meta.id}" + """ + gatk SplitNCigarReads \\ + -R $fasta \\ + -I $bam \\ + -O ${prefix}.split_cigar.bam \\ + $options.args + + gatk --version | grep Picard | sed "s/Picard Version: //g" > ${software}.version.txt + """ +} diff --git a/software/gatk4/splitncigarreads/meta.yml b/software/gatk4/splitncigarreads/meta.yml new file mode 100644 index 00000000..c35690a6 --- /dev/null +++ b/software/gatk4/splitncigarreads/meta.yml @@ -0,0 +1,60 @@ +name: gatk4_splitncigarreads +description: Splits reads that contain Ns in their cigar string +keywords: + - vcf + - merge +tools: + - gatk4: + description: | + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s + doi: 10.1158/1538-7445.AM2017-3590 +params: + - outdir: + type: string + description: | + The pipeline's output directory. By default, the module will + output files into `$params.outdir/` + - publish_dir_mode: + type: string + description: | + Value for the Nextflow `publishDir` mode parameter. + Available: symlink, rellink, link, copy, copyNoFollow, move. + - enable_conda: + type: boolean + description: | + Run the module with Conda using the software specified + via the `conda` directive + - singularity_pull_docker_container: + type: boolean + description: | + Instead of directly downloading Singularity images for use with Singularity, + force the workflow to pull and convert Docker containers instead. +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - bam: + type: list + description: BAM/SAM/CRAM file containing reads + pattern: "*.{bam,sam,cram}" + - fasta: + type: file + description: Reference sequence file + pattern: "*.fasta" +output: + - bam: + type: file + description: Output file with split reads (BAM/SAM/CRAM) + pattern: "*.{bam,sam,cram}" + - version: + type: file + description: File containing software version + pattern: "*.version.txt" +authors: + - "@kevinmenden" diff --git a/tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna.fai b/tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna.fai new file mode 100644 index 00000000..f683583d --- /dev/null +++ b/tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna.fai @@ -0,0 +1 @@ +MT192765.1 29829 120 80 81 diff --git a/tests/software/gatk4/splitncigarreads/main.nf b/tests/software/gatk4/splitncigarreads/main.nf new file mode 100644 index 00000000..d0fed1e4 --- /dev/null +++ b/tests/software/gatk4/splitncigarreads/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_SPLITNCIGARREADS } from '../../../../software/gatk4/splitncigarreads/main.nf' addParams( options: [:] ) + +workflow test_gatk4_splitncigarreads { + + def input = [] + input = [ [ id:'test' ], // meta map + [ file("${launchDir}/tests/data/bam/test-sc2-artic-v3-sorted-trimmed.bam", checkIfExists: true)] ] + + fasta = file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna", checkIfExists: true) + fai = file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna.fai", checkIfExists: true) + dict = file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.dict", checkIfExists: true) + + GATK4_SPLITNCIGARREADS ( input, fasta, fai, dict ) +} diff --git a/tests/software/gatk4/splitncigarreads/test.yml b/tests/software/gatk4/splitncigarreads/test.yml new file mode 100644 index 00000000..3d52a60d --- /dev/null +++ b/tests/software/gatk4/splitncigarreads/test.yml @@ -0,0 +1,8 @@ +- name: gatk4 splitncigarreads + command: nextflow run ./tests/software/gatk4/splitncigarreads -entry test_gatk4_splitncigarreads -c tests/config/nextflow.config + tags: + - gatk4 + - gatk4_mergevcfs + files: + - path: output/gatk4/test.merged.vcf.gz + md5sum: f25850b7bd4d362b5ea67d4453e9df55 From 43446bc37e051a1fb1e9e3c4902c20bfe53628eb Mon Sep 17 00:00:00 2001 From: kevinmenden Date: Mon, 22 Feb 2021 13:19:12 +0100 Subject: [PATCH 2/4] added sarscov2 fastq and bam files --- tests/data/bam/sarscov2_aln.bam | Bin 0 -> 19963 bytes tests/data/fastq/dna/sarscov2_1.fastq.gz | 400 ++++++++++++++++++ tests/data/fastq/dna/sarscov2_2.fastq.gz | 400 ++++++++++++++++++ tests/software/gatk4/splitncigarreads/main.nf | 2 +- 4 files changed, 801 insertions(+), 1 deletion(-) create mode 100644 tests/data/bam/sarscov2_aln.bam create mode 100644 tests/data/fastq/dna/sarscov2_1.fastq.gz create mode 100644 tests/data/fastq/dna/sarscov2_2.fastq.gz diff --git a/tests/data/bam/sarscov2_aln.bam b/tests/data/bam/sarscov2_aln.bam new file mode 100644 index 0000000000000000000000000000000000000000..c24e367a2854cb4f5815bc1cbb20ca4e59b00925 GIT binary patch literal 19963 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 K000000002d$hLw2 literal 0 HcmV?d00001 diff --git a/tests/data/fastq/dna/sarscov2_1.fastq.gz b/tests/data/fastq/dna/sarscov2_1.fastq.gz new file mode 100644 index 00000000..d43f1d99 --- /dev/null +++ b/tests/data/fastq/dna/sarscov2_1.fastq.gz @@ -0,0 +1,400 @@ +@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1 +TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT ++ +AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE Date: Mon, 22 Feb 2021 13:31:54 +0100 Subject: [PATCH 3/4] reformatted input to tuple --- software/gatk4/splitncigarreads/main.nf | 4 +--- software/gatk4/splitncigarreads/meta.yml | 7 ++++--- tests/software/gatk4/splitncigarreads/main.nf | 8 ++++---- tests/software/gatk4/splitncigarreads/test.yml | 6 +++--- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/software/gatk4/splitncigarreads/main.nf b/software/gatk4/splitncigarreads/main.nf index ce3d10e3..0d7e0aa7 100644 --- a/software/gatk4/splitncigarreads/main.nf +++ b/software/gatk4/splitncigarreads/main.nf @@ -20,9 +20,7 @@ process GATK4_SPLITNCIGARREADS { input: tuple val(meta), path(bam) - path(fasta) - path(fai) - path(dict) + tuple path(fasta), path(fai), path(dict) output: tuple val(meta), path('*.split_cigar.bam'), emit: bam diff --git a/software/gatk4/splitncigarreads/meta.yml b/software/gatk4/splitncigarreads/meta.yml index c35690a6..33610180 100644 --- a/software/gatk4/splitncigarreads/meta.yml +++ b/software/gatk4/splitncigarreads/meta.yml @@ -44,9 +44,10 @@ input: description: BAM/SAM/CRAM file containing reads pattern: "*.{bam,sam,cram}" - fasta: - type: file - description: Reference sequence file - pattern: "*.fasta" + type: tuple of files + description: | + Tuple of fasta file (first), sequence dict (second) and fasta index (third) + pattern: ["*.fasta", "*.dict", "*.fai"] output: - bam: type: file diff --git a/tests/software/gatk4/splitncigarreads/main.nf b/tests/software/gatk4/splitncigarreads/main.nf index d8d7209f..27fd0c33 100644 --- a/tests/software/gatk4/splitncigarreads/main.nf +++ b/tests/software/gatk4/splitncigarreads/main.nf @@ -10,9 +10,9 @@ workflow test_gatk4_splitncigarreads { input = [ [ id:'test' ], // meta map [ file("${launchDir}/tests/data/bam/sarscov2_aln.bam", checkIfExists: true)] ] - fasta = file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna", checkIfExists: true) - fai = file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna.fai", checkIfExists: true) - dict = file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.dict", checkIfExists: true) + fasta = [ file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna", checkIfExists: true), + file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.fna.fai", checkIfExists: true), + file("tests/data/fasta/sarscov2/GCA_011545545.1_ASM1154554v1_genomic.dict", checkIfExists: true)] - GATK4_SPLITNCIGARREADS ( input, fasta, fai, dict ) + GATK4_SPLITNCIGARREADS ( input, fasta ) } diff --git a/tests/software/gatk4/splitncigarreads/test.yml b/tests/software/gatk4/splitncigarreads/test.yml index 3d52a60d..2dd9e0d5 100644 --- a/tests/software/gatk4/splitncigarreads/test.yml +++ b/tests/software/gatk4/splitncigarreads/test.yml @@ -2,7 +2,7 @@ command: nextflow run ./tests/software/gatk4/splitncigarreads -entry test_gatk4_splitncigarreads -c tests/config/nextflow.config tags: - gatk4 - - gatk4_mergevcfs + - gatk4_splitncigarreads files: - - path: output/gatk4/test.merged.vcf.gz - md5sum: f25850b7bd4d362b5ea67d4453e9df55 + - path: output/gatk4/test.split_cigar.bam + md5sum: 9228ac79882a4929c797c891b1bd9f6d From bd585265ce6772b80319f249051c26119d579115 Mon Sep 17 00:00:00 2001 From: kevinmenden Date: Mon, 22 Feb 2021 13:36:49 +0100 Subject: [PATCH 4/4] added entry to filters.yml --- .github/filters.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/filters.yml b/.github/filters.yml index a8402739..32ce12a7 100644 --- a/.github/filters.yml +++ b/.github/filters.yml @@ -140,6 +140,10 @@ gatk4_samtofastq: - software/gatk4/samtofastq/** - tests/software/gatk4/samtofastq/** +gatk4_splitncigarreads: + - software/gatk4/splitncigarreads/** + - tests/software/gatk4/splitncigarreads/** + gffread: - software/gffread/** - tests/software/gffread/**