nf-core_modules/modules/bedtools/genomecov/main.nf
Chris Cheshire e8b33e6eb1
bedtools/genomecov updated to allow for providing a per-sample scale factor (#799)
* hifiasm copied from fastqc

* hifiasm tests init from fastqc

* meta.yml init; test.yml and main.nf for printing version

* Add hifiasm version printing

* Removed spaced on an empty line

* Reverted hifiasm from main

* Added genomecov scale module

* Updated tagging

* Removed extra module - began merging

* Removed extra module tests

* Updated genomecov to take a scale value

* Updated line endings

* Removed redundant test

* Update tests/modules/bedtools/genomecov/main.nf

Co-authored-by: Harshil Patel <drpatelh@users.noreply.github.com>

* Added checking for existing -bg arg

* Update modules/bedtools/genomecov/main.nf

Co-authored-by: Harshil Patel <drpatelh@users.noreply.github.com>

* Update modules/bedtools/genomecov/main.nf

Co-authored-by: Harshil Patel <drpatelh@users.noreply.github.com>

Co-authored-by: Sviatoslav Sidorov <sviatoslav.sidorov@crick.ac.uk>
Co-authored-by: Svyatoslav Sidorov <svet.sidorov@gmail.com>
Co-authored-by: Harshil Patel <drpatelh@users.noreply.github.com>
2021-10-28 17:50:25 +01:00

68 lines
2.2 KiB
Text

// Import generic module functions
include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions'
params.options = [:]
options = initOptions(params.options)
process BEDTOOLS_GENOMECOV {
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), meta:meta, publish_by_meta:['id']) }
conda (params.enable_conda ? "bioconda::bedtools=2.30.0" : null)
if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) {
container "https://depot.galaxyproject.org/singularity/bedtools:2.30.0--hc088bd4_0"
} else {
container "quay.io/biocontainers/bedtools:2.30.0--hc088bd4_0"
}
input:
tuple val(meta), path(intervals), val(scale)
path sizes
val extension
output:
tuple val(meta), path("*.${extension}"), emit: genomecov
path "versions.yml" , emit: versions
script:
def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
def args_token = options.args.tokenize()
def args = options.args
args += (scale > 0 && scale != 1) ? " -scale $scale" : ""
if (!args_token.contains('-bg') && (scale > 0 && scale != 1)) {
args += " -bg"
}
if (intervals.name =~ /\.bam/) {
"""
bedtools \\
genomecov \\
-ibam $intervals \\
$args \\
> ${prefix}.${extension}
cat <<-END_VERSIONS > versions.yml
${getProcessName(task.process)}:
${getSoftwareName(task.process)}: \$(bedtools --version | sed -e "s/bedtools v//g")
END_VERSIONS
"""
} else {
"""
bedtools \\
genomecov \\
-i $intervals \\
-g $sizes \\
$args \\
> ${prefix}.${extension}
cat <<-END_VERSIONS > versions.yml
${getProcessName(task.process)}:
${getSoftwareName(task.process)}: \$(bedtools --version | sed -e "s/bedtools v//g")
END_VERSIONS
"""
}
}