mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2025-01-02 20:52:07 -05:00
New tool: biobambam/bamsormadup (#1478)
* add bamsormadup * fix yaml * add test.yml * Update tests/modules/biobambam/bamsormadup/test.yml Co-authored-by: James A. Fellows Yates <jfy133@gmail.com> * test meta.yaml: remove md5sums * Tool bamsormadup: - add (optional) reference input - add bam index ouput - add cram output option - make metrics output: more general * fix input and output formats * update input file description * drop sam output, goes against nf-core regs; add input check for cram files * fix typo * Update modules/biobambam/bamsormadup/main.nf Co-authored-by: James A. Fellows Yates <jfy133@gmail.com> * improve ref fasta name * fix if else shorthand * fix syntax error * kind of fix tests * set fixed suffix for metrics file to keep it in line with picard and bammarkduplicates2 * fix command line * update test.yml * add support for multiple input bams * Update modules/biobambam/bamsormadup/meta.yml Co-authored-by: James A. Fellows Yates <jfy133@gmail.com> * Update modules/biobambam/bamsormadup/meta.yml Co-authored-by: James A. Fellows Yates <jfy133@gmail.com> * Update tests/modules/biobambam/bamsormadup/test.yml Co-authored-by: James A. Fellows Yates <jfy133@gmail.com> Co-authored-by: James A. Fellows Yates <jfy133@gmail.com>
This commit is contained in:
parent
797ce3254e
commit
dc95e67e15
6 changed files with 133 additions and 0 deletions
46
modules/biobambam/bamsormadup/main.nf
Normal file
46
modules/biobambam/bamsormadup/main.nf
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
process BIOBAMBAM_BAMSORMADUP {
|
||||||
|
tag "$meta.id"
|
||||||
|
label "process_medium"
|
||||||
|
|
||||||
|
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(bams)
|
||||||
|
path(fasta)
|
||||||
|
|
||||||
|
output:
|
||||||
|
tuple val(meta), path("*.{bam,cram}") ,emit: bam
|
||||||
|
tuple val(meta), path("*.bam.bai") ,optional:true, emit: bam_index
|
||||||
|
tuple val(meta), path("*.metrics.txt") ,emit: metrics
|
||||||
|
path "versions.yml" ,emit: versions
|
||||||
|
|
||||||
|
when:
|
||||||
|
task.ext.when == null || task.ext.when
|
||||||
|
|
||||||
|
script:
|
||||||
|
def args = task.ext.args ?: ''
|
||||||
|
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||||
|
def suffix = args.contains("outputformat=cram") ? "cram" : "bam"
|
||||||
|
def input_string = bams.join(" I=")
|
||||||
|
|
||||||
|
if (args.contains("outputformat=cram") && reference == null) error "Reference required for CRAM output."
|
||||||
|
|
||||||
|
"""
|
||||||
|
bamcat \\
|
||||||
|
I=${input_string} \\
|
||||||
|
level=0 \\
|
||||||
|
| bamsormadup \\
|
||||||
|
$args \\
|
||||||
|
M=${prefix}.metrics.txt \\
|
||||||
|
tmpfile=$prefix \\
|
||||||
|
threads=$task.cpus \\
|
||||||
|
> ${prefix}.${suffix}
|
||||||
|
|
||||||
|
cat <<-END_VERSIONS > versions.yml
|
||||||
|
"${task.process}":
|
||||||
|
bamcat: \$(echo \$(bamsormadup --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' )
|
||||||
|
bamsormadup: \$(echo \$(bamsormadup --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' )
|
||||||
|
END_VERSIONS
|
||||||
|
"""
|
||||||
|
}
|
52
modules/biobambam/bamsormadup/meta.yml
Normal file
52
modules/biobambam/bamsormadup/meta.yml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
name: biobambam_bamsormadup
|
||||||
|
description: Parallel sorting and duplicate marking
|
||||||
|
keywords:
|
||||||
|
- markduplicates
|
||||||
|
- sort
|
||||||
|
- bam
|
||||||
|
- cram
|
||||||
|
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 ]
|
||||||
|
- bams:
|
||||||
|
type: file
|
||||||
|
description: List containing 1 or more bam files
|
||||||
|
- fasta:
|
||||||
|
type: file
|
||||||
|
description: Reference genome in FASTA format (optional)
|
||||||
|
pattern: "*.{fa,fasta}"
|
||||||
|
output:
|
||||||
|
- meta:
|
||||||
|
type: map
|
||||||
|
description: |
|
||||||
|
Groovy Map containing sample information
|
||||||
|
e.g. [ id:'test', single_end:false ]
|
||||||
|
- bam:
|
||||||
|
type: file
|
||||||
|
description: BAM/CRAM file with duplicate reads marked/removed
|
||||||
|
pattern: "*.{bam,cram}"
|
||||||
|
- bam_index:
|
||||||
|
type: file
|
||||||
|
description: BAM index file
|
||||||
|
pattern: "*.{bai}"
|
||||||
|
- metrics:
|
||||||
|
type: file
|
||||||
|
description: Duplicate metrics file generated by biobambam
|
||||||
|
pattern: "*.{metrics.txt}"
|
||||||
|
- versions:
|
||||||
|
type: file
|
||||||
|
description: File containing software versions
|
||||||
|
pattern: "versions.yml"
|
||||||
|
authors:
|
||||||
|
- "@matthdsm"
|
|
@ -214,6 +214,10 @@ biobambam/bammarkduplicates2:
|
||||||
- modules/biobambam/bammarkduplicates2/**
|
- modules/biobambam/bammarkduplicates2/**
|
||||||
- tests/modules/biobambam/bammarkduplicates2/**
|
- tests/modules/biobambam/bammarkduplicates2/**
|
||||||
|
|
||||||
|
biobambam/bamsormadup:
|
||||||
|
- modules/biobambam/bamsormadup/**
|
||||||
|
- tests/modules/biobambam/bamsormadup/**
|
||||||
|
|
||||||
biscuit/align:
|
biscuit/align:
|
||||||
- modules/biscuit/index/**
|
- modules/biscuit/index/**
|
||||||
- modules/biscuit/align/**
|
- modules/biscuit/align/**
|
||||||
|
|
15
tests/modules/biobambam/bamsormadup/main.nf
Normal file
15
tests/modules/biobambam/bamsormadup/main.nf
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env nextflow
|
||||||
|
|
||||||
|
nextflow.enable.dsl = 2
|
||||||
|
|
||||||
|
include { BIOBAMBAM_BAMSORMADUP } from '../../../../modules/biobambam/bamsormadup/main.nf'
|
||||||
|
|
||||||
|
workflow test_biobambam_bamsormadup {
|
||||||
|
|
||||||
|
input = [
|
||||||
|
[ id:'test', single_end:false ], // meta map
|
||||||
|
[file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)],
|
||||||
|
]
|
||||||
|
|
||||||
|
BIOBAMBAM_BAMSORMADUP ( input, [] )
|
||||||
|
}
|
5
tests/modules/biobambam/bamsormadup/nextflow.config
Normal file
5
tests/modules/biobambam/bamsormadup/nextflow.config
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
process {
|
||||||
|
|
||||||
|
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
|
||||||
|
|
||||||
|
}
|
11
tests/modules/biobambam/bamsormadup/test.yml
Normal file
11
tests/modules/biobambam/bamsormadup/test.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
- name: biobambam bamsormadup test_biobambam_bamsormadup
|
||||||
|
command: nextflow run tests/modules/biobambam/bamsormadup -entry test_biobambam_bamsormadup -c tests/config/nextflow.config
|
||||||
|
tags:
|
||||||
|
- biobambam/bamsormadup
|
||||||
|
- biobambam
|
||||||
|
files:
|
||||||
|
- path: output/biobambam/test.bam
|
||||||
|
md5sum: 243a77fb0642fd46bb16a4d3432d19dc
|
||||||
|
- path: output/biobambam/test.metrics.txt
|
||||||
|
md5sum: 1721879bea1f3888ecd33b35e6ee0e72
|
||||||
|
- path: output/biobambam/versions.yml
|
Loading…
Reference in a new issue