Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New module: COPTR/EXTRACT #7089

Merged
merged 11 commits into from
Dec 3, 2024
7 changes: 7 additions & 0 deletions modules/nf-core/coptr/extract/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json
channels:
- conda-forge
- bioconda
dependencies:
- "bioconda::coptr=1.1.4"
49 changes: 49 additions & 0 deletions modules/nf-core/coptr/extract/main.nf
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
process COPTR_EXTRACT {
tag "$meta.id"
label 'process_low'

conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/coptr:1.1.4--pyhdfd78af_3':
'biocontainers/coptr:1.1.4--pyhdfd78af_3' }"

input:
tuple val(meta), path(bam, stageAs: "bamfolder/*")
ramirobarrantes marked this conversation as resolved.
Show resolved Hide resolved

output:
tuple val(meta), path("*.pkl"), emit: coverage
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}"

"""
coptr \
extract \
$args \
bamfolder/ \
ramirobarrantes marked this conversation as resolved.
Show resolved Hide resolved
.

cat <<-END_VERSIONS > versions.yml
"${task.process}":
coptr: \$(coptr |& sed -E '11!d ; s/CoPTR.*?\\(v(.*?)\\).*/\\1/')
END_VERSIONS
"""

stub:
def args = task.ext.args ?: ''
ramirobarrantes marked this conversation as resolved.
Show resolved Hide resolved
def prefix = task.ext.prefix ?: "${meta.id}"
"""
touch ${prefix}
ramirobarrantes marked this conversation as resolved.
Show resolved Hide resolved

cat <<-END_VERSIONS > versions.yml
"${task.process}":
"${task.process}":
coptr: \$(coptr |& sed -E '11!d ; s/CoPTR.*?\\(v(.*?)\\).*/\\1/')
Comment on lines +43 to +45
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"${task.process}":
"${task.process}":
coptr: \$(coptr |& sed -E '11!d ; s/CoPTR.*?\\(v(.*?)\\).*/\\1/')
"${task.process}":
coptr: \$(coptr |& sed -E '11!d ; s/CoPTR.*?\\(v(.*?)\\).*/\\1/')

END_VERSIONS
"""
}
56 changes: 56 additions & 0 deletions modules/nf-core/coptr/extract/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json
name: "coptr_extract"
description: Computes the coverage map along the reference genome
keywords:
- coptr
- mapping
- ptr
tools:
- "coptr":
description: "Accurate and robust inference of microbial growth dynamics from
metagenomic sequencing reads."
homepage: "https://github.com/tyjo/coptr"
documentation: "https://coptr.readthedocs.io/"
tool_dev_url: "https://github.com/tyjo/coptr"
doi: "10.1101/gr.275533.121"
licence: ["GPL v3"]
identifier: biotools:coptr

input:
- - meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'sample1', single_end:false ]`
- bam:
type: file
description: bam file with the mapping of the reads on the reference genome
pattern: "*.{.bam}"
ontologies:
- edam: "http://edamontology.org/format_2572"

output:
- coverage:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'sample1', single_end:false ]`
- "*.pkl":
type: file
description: Python pickle (pkl) file containing coverage along the reference genome
pattern: "*.{pkl}"
ontologies:
- edam: "http://edamontology.org/format_4002"

- versions:
- "versions.yml":
type: file
description: File containing software versions
pattern: "versions.yml"

authors:
- "@ramirobarrantes"
maintainers:
- "@ramirobarrantes"
83 changes: 83 additions & 0 deletions modules/nf-core/coptr/extract/tests/main.nf.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
nextflow_process {

name "Test Process COPTR_EXTRACT"
script "../main.nf"
process "COPTR_EXTRACT"

tag "modules"
tag "modules_nfcore"
tag "coptr"
tag "coptr/extract"


test("coptr extract single bam file") {

when {
process {
"""
input[0] = [
[id:'indexNameExample'],
[ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true)
]
]
"""
}
}

then {
assertAll(
{ assert process.success },
{ assert snapshot(process.out).match()
}
)
}

}

test("coptr extract two bam files") {

when {
process {
"""
input[0] = [
[id:'indexNameExample'],
[ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true),
file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.bam', checkIfExists: true)
]
]
"""
}
}

then {
assertAll(
{ assert process.success },
{ assert snapshot(process.out).match()
}
)
}
}

test("coptr extract single bam file") {
ramirobarrantes marked this conversation as resolved.
Show resolved Hide resolved

when {
process {
"""
input[0] = [
[id:'indexNameExample'],
[ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true)
]
]
"""
}
}

then {
assertAll(
{ assert process.success }
)
}
}


}
74 changes: 74 additions & 0 deletions modules/nf-core/coptr/extract/tests/main.nf.test.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"coptr extract two bam files": {
"content": [
{
"0": [
[
{
"id": "indexNameExample"
},
[
"test.paired_end.sorted.cm.pkl:md5,c60bb7cb7cba50898c95b2406516ec5f",
"test.single_end.cm.pkl:md5,128ae12d6548a0640ddace5fc7a7eea8"
]
]
],
"1": [
"versions.yml:md5,c6fcaf8fb6aa9c10a3192d81f9623d4f"
],
"coverage": [
[
{
"id": "indexNameExample"
},
[
"test.paired_end.sorted.cm.pkl:md5,c60bb7cb7cba50898c95b2406516ec5f",
"test.single_end.cm.pkl:md5,128ae12d6548a0640ddace5fc7a7eea8"
]
]
],
"versions": [
"versions.yml:md5,c6fcaf8fb6aa9c10a3192d81f9623d4f"
]
}
],
"meta": {
"nf-test": "0.9.2",
"nextflow": "24.10.1"
},
"timestamp": "2024-11-25T16:06:26.239512"
},
"coptr extract single bam file": {
"content": [
{
"0": [
[
{
"id": "indexNameExample"
},
"test.paired_end.sorted.cm.pkl:md5,c60bb7cb7cba50898c95b2406516ec5f"
]
],
"1": [
"versions.yml:md5,c6fcaf8fb6aa9c10a3192d81f9623d4f"
],
"coverage": [
[
{
"id": "indexNameExample"
},
"test.paired_end.sorted.cm.pkl:md5,c60bb7cb7cba50898c95b2406516ec5f"
]
],
"versions": [
"versions.yml:md5,c6fcaf8fb6aa9c10a3192d81f9623d4f"
]
}
],
"meta": {
"nf-test": "0.9.2",
"nextflow": "24.10.1"
},
"timestamp": "2024-11-25T16:04:59.852647"
}
}
Loading