From af69ea749daf521ccd5344bc2da2024ad3a99e54 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Mon, 16 May 2022 14:39:58 +0200 Subject: [PATCH] add module: biobambam/bammerge --- modules/biobambam/bammerge/main.nf | 37 ++++++++++++++++ modules/biobambam/bammerge/meta.yml | 42 +++++++++++++++++++ tests/config/nextflow.config | 1 + tests/config/pytest_modules.yml | 4 ++ tests/modules/biobambam/bammerge/main.nf | 18 ++++++++ .../biobambam/bammerge/nextflow.config | 5 +++ tests/modules/biobambam/bammerge/test.yml | 8 ++++ 7 files changed, 115 insertions(+) create mode 100644 modules/biobambam/bammerge/main.nf create mode 100644 modules/biobambam/bammerge/meta.yml create mode 100644 tests/modules/biobambam/bammerge/main.nf create mode 100644 tests/modules/biobambam/bammerge/nextflow.config create mode 100644 tests/modules/biobambam/bammerge/test.yml diff --git a/modules/biobambam/bammerge/main.nf b/modules/biobambam/bammerge/main.nf new file mode 100644 index 00000000..4849caf0 --- /dev/null +++ b/modules/biobambam/bammerge/main.nf @@ -0,0 +1,37 @@ +process BIOBAMBAM_BAMMERGE { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::biobambam=2.0.183" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/biobambam:2.0.183--h9f5acd7_1': + 'quay.io/biocontainers/biobambam:2.0.183--h9f5acd7_1' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("${prefix}.bam") ,emit: bam + tuple val(meta), path("*.bam.bai") ,optional:true, emit: bam_index + path "versions.yml" ,emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def input_string = bam.join(" I=") + + """ + bammerge \\ + I=${input_string} \\ + $args \\ + > ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bammerge: \$(echo \$(bammerge --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' ) + END_VERSIONS + """ +} diff --git a/modules/biobambam/bammerge/meta.yml b/modules/biobambam/bammerge/meta.yml new file mode 100644 index 00000000..f0d91f59 --- /dev/null +++ b/modules/biobambam/bammerge/meta.yml @@ -0,0 +1,42 @@ +name: biobambam_bamsort +description: Merge a list of sorted bam files +keywords: + - merge + - bam +tools: + - biobambam: + description: | + biobambam is a set of tools for early stage alignment file processing. + homepage: https://gitlab.com/german.tischler/biobambam2 + documentation: https://gitlab.com/german.tischler/biobambam2/-/blob/master/README.md + doi: 10.1186/1751-0473-9-13 + licence: ["GPL v3"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: List containing 1 or more bam files +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Merged BAM file + pattern: "*.bam" + - bam_index: + type: file + description: BAM index file + pattern: "*.{bai}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@matthdsm" diff --git a/tests/config/nextflow.config b/tests/config/nextflow.config index 4ea085f9..2c672d49 100644 --- a/tests/config/nextflow.config +++ b/tests/config/nextflow.config @@ -19,6 +19,7 @@ if ("$PROFILE" == "singularity") { } else { docker.enabled = true docker.userEmulation = true + docker.runOptions = "--platform linux/x86_64" } // Increase time available to build Conda environment diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 68c9efef..a3f2001f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -230,6 +230,10 @@ biobambam/bammarkduplicates2: - modules/biobambam/bammarkduplicates2/** - tests/modules/biobambam/bammarkduplicates2/** +biobambam/bammerge: + - modules/biobambam/bammerge/** + - tests/modules/biobambam/bammerge/** + biobambam/bamsormadup: - modules/biobambam/bamsormadup/** - tests/modules/biobambam/bamsormadup/** diff --git a/tests/modules/biobambam/bammerge/main.nf b/tests/modules/biobambam/bammerge/main.nf new file mode 100644 index 00000000..536a632b --- /dev/null +++ b/tests/modules/biobambam/bammerge/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BIOBAMBAM_BAMMERGE } from '../../../../modules/biobambam/bammerge/main.nf' + +workflow test_biobambam_bammerge { + + input = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true) + ] + ] + + BIOBAMBAM_BAMMERGE ( input ) +} diff --git a/tests/modules/biobambam/bammerge/nextflow.config b/tests/modules/biobambam/bammerge/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/biobambam/bammerge/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/biobambam/bammerge/test.yml b/tests/modules/biobambam/bammerge/test.yml new file mode 100644 index 00000000..1b06e54b --- /dev/null +++ b/tests/modules/biobambam/bammerge/test.yml @@ -0,0 +1,8 @@ +- name: biobambam bammerge test_biobambam_bammerge + command: nextflow run ./tests/modules/biobambam/bammerge -entry test_biobambam_bammerge -c ./tests/config/nextflow.config -c ./tests/modules/biobambam/bammerge/nextflow.config + tags: + - biobambam/bammerge + - biobambam + files: + - path: output/biobambam/test.bam + md5sum: 676157f300c774a58dd3b7b554e00f11