mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-12-22 11:08:17 +00:00
add FCS adaptor (#2033)
* add FCS adaptor * run prettier * fix EClint * add keywords to meta * fix docker Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com>
This commit is contained in:
parent
4eed099a12
commit
c9889866a9
6 changed files with 150 additions and 0 deletions
49
modules/fcs/fcsadaptor/main.nf
Normal file
49
modules/fcs/fcsadaptor/main.nf
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
process FCS_FCSADAPTOR {
|
||||||
|
tag "$meta.id"
|
||||||
|
label 'process_low'
|
||||||
|
|
||||||
|
if (params.enable_conda) {
|
||||||
|
exit 1, "Conda environments cannot be used when using the FCS tool. Please use docker or singularity containers."
|
||||||
|
}
|
||||||
|
// WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions.
|
||||||
|
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||||
|
'https://ftp.ncbi.nlm.nih.gov/genomes/TOOLS/FCS/releases/0.2.3/fcs-adaptor.0.2.3.sif':
|
||||||
|
'ncbi/fcs-adaptor:0.2.3' }"
|
||||||
|
|
||||||
|
input:
|
||||||
|
tuple val(meta), path(assembly)
|
||||||
|
|
||||||
|
output:
|
||||||
|
tuple val(meta), path("*.cleaned_sequences.fa.gz"), emit: cleaned_assembly
|
||||||
|
tuple val(meta), path("*.fcs_adaptor_report.txt") , emit: adaptor_report
|
||||||
|
tuple val(meta), path("*.fcs_adaptor.log") , emit: log
|
||||||
|
tuple val(meta), path("*.pipeline_args.yaml") , emit: pipeline_args
|
||||||
|
tuple val(meta), path("*.skipped_trims.jsonl") , emit: skipped_trims
|
||||||
|
path "versions.yml" , emit: versions
|
||||||
|
|
||||||
|
when:
|
||||||
|
task.ext.when == null || task.ext.when
|
||||||
|
|
||||||
|
script:
|
||||||
|
def args = task.ext.args ?: '--prok' // --prok || --euk
|
||||||
|
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||||
|
def FCSADAPTOR_VERSION = '0.2.3' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
|
||||||
|
"""
|
||||||
|
/app/fcs/bin/av_screen_x \\
|
||||||
|
-o output/ \\
|
||||||
|
$args \\
|
||||||
|
$assembly
|
||||||
|
|
||||||
|
# compress and/or rename files with prefix
|
||||||
|
gzip -cf output/cleaned_sequences/* > "${prefix}.cleaned_sequences.fa.gz"
|
||||||
|
cp "output/fcs_adaptor_report.txt" "${prefix}.fcs_adaptor_report.txt"
|
||||||
|
cp "output/fcs_adaptor.log" "${prefix}.fcs_adaptor.log"
|
||||||
|
cp "output/pipeline_args.yaml" "${prefix}.pipeline_args.yaml"
|
||||||
|
cp "output/skipped_trims.jsonl" "${prefix}.skipped_trims.jsonl"
|
||||||
|
|
||||||
|
cat <<-END_VERSIONS > versions.yml
|
||||||
|
"${task.process}":
|
||||||
|
FCS-adaptor: $FCSADAPTOR_VERSION
|
||||||
|
END_VERSIONS
|
||||||
|
"""
|
||||||
|
}
|
62
modules/fcs/fcsadaptor/meta.yml
Normal file
62
modules/fcs/fcsadaptor/meta.yml
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
name: "fcs_fcsadaptor"
|
||||||
|
description: Run NCBI's FCS adaptor on assembled genomes
|
||||||
|
keywords:
|
||||||
|
- assembly
|
||||||
|
- genomics
|
||||||
|
- quality control
|
||||||
|
- contamination
|
||||||
|
- NCBI
|
||||||
|
tools:
|
||||||
|
- "fcs":
|
||||||
|
description: |
|
||||||
|
The Foreign Contamination Screening (FCS) tool rapidly detects contaminants from foreign
|
||||||
|
organisms in genome assemblies to prepare your data for submission. Therefore, the
|
||||||
|
submission process to NCBI is faster and fewer contaminated genomes are submitted.
|
||||||
|
This reduces errors in analyses and conclusions, not just for the original data submitter
|
||||||
|
but for all subsequent users of the assembly.
|
||||||
|
homepage: "https://www.ncbi.nlm.nih.gov/data-hub/cgr/data-quality-tools/"
|
||||||
|
documentation: "https://github.com/ncbi/fcs/wiki/FCS-adaptor"
|
||||||
|
tool_dev_url: "https://github.com/ncbi/fcs"
|
||||||
|
doi: ""
|
||||||
|
licence: "United States Government Work"
|
||||||
|
input:
|
||||||
|
- meta:
|
||||||
|
type: map
|
||||||
|
description: |
|
||||||
|
Groovy Map containing sample information
|
||||||
|
e.g. [ id:'test', single_end:false ]
|
||||||
|
- assembly:
|
||||||
|
type: file
|
||||||
|
description: assembly fasta file
|
||||||
|
output:
|
||||||
|
- meta:
|
||||||
|
type: map
|
||||||
|
description: |
|
||||||
|
Groovy Map containing sample information
|
||||||
|
e.g. [ id:'test', single_end:false ]
|
||||||
|
- versions:
|
||||||
|
type: file
|
||||||
|
description: File containing software versions
|
||||||
|
pattern: "versions.yml"
|
||||||
|
- cleaned_assembly:
|
||||||
|
type: file
|
||||||
|
description: Cleaned assembly in fasta format
|
||||||
|
pattern: "*.{cleaned_sequences.fa.gz}"
|
||||||
|
- adaptor_report:
|
||||||
|
type: file
|
||||||
|
description: Report of identified adaptors
|
||||||
|
pattern: "*.{fcs_adaptor_report.txt}"
|
||||||
|
- log:
|
||||||
|
type: file
|
||||||
|
description: Log file
|
||||||
|
pattern: "*.{fcs_adaptor.log}"
|
||||||
|
- pipeline_args:
|
||||||
|
type: file
|
||||||
|
description: Run arguments
|
||||||
|
pattern: "*.{pipeline_args.yaml}"
|
||||||
|
- skipped_trims:
|
||||||
|
type: file
|
||||||
|
description: Skipped trim information
|
||||||
|
pattern: "*.{skipped_trims.jsonl}"
|
||||||
|
authors:
|
||||||
|
- "@d4straub"
|
|
@ -803,6 +803,10 @@ fasttree:
|
||||||
- modules/fasttree/**
|
- modules/fasttree/**
|
||||||
- tests/modules/fasttree/**
|
- tests/modules/fasttree/**
|
||||||
|
|
||||||
|
fcs/fcsadaptor:
|
||||||
|
- modules/fcs/fcsadaptor/**
|
||||||
|
- tests/modules/fcs/fcsadaptor/**
|
||||||
|
|
||||||
ffq:
|
ffq:
|
||||||
- modules/ffq/**
|
- modules/ffq/**
|
||||||
- tests/modules/ffq/**
|
- tests/modules/ffq/**
|
||||||
|
|
15
tests/modules/fcs/fcsadaptor/main.nf
Normal file
15
tests/modules/fcs/fcsadaptor/main.nf
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env nextflow
|
||||||
|
|
||||||
|
nextflow.enable.dsl = 2
|
||||||
|
|
||||||
|
include { FCS_FCSADAPTOR } from '../../../../modules/fcs/fcsadaptor/main.nf'
|
||||||
|
|
||||||
|
workflow test_fcs_fcsadaptor {
|
||||||
|
|
||||||
|
input = [
|
||||||
|
[ id:'test', single_end:false ], // meta map
|
||||||
|
file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true)
|
||||||
|
]
|
||||||
|
|
||||||
|
FCS_FCSADAPTOR ( input )
|
||||||
|
}
|
5
tests/modules/fcs/fcsadaptor/nextflow.config
Normal file
5
tests/modules/fcs/fcsadaptor/nextflow.config
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
process {
|
||||||
|
|
||||||
|
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
|
||||||
|
|
||||||
|
}
|
15
tests/modules/fcs/fcsadaptor/test.yml
Normal file
15
tests/modules/fcs/fcsadaptor/test.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
- name: fcs fcsadaptor test_fcs_fcsadaptor
|
||||||
|
command: nextflow run ./tests/modules/fcs/fcsadaptor -entry test_fcs_fcsadaptor -c ./tests/config/nextflow.config -c ./tests/modules/fcs/fcsadaptor/nextflow.config
|
||||||
|
tags:
|
||||||
|
- fcs/fcsadaptor
|
||||||
|
- fcs
|
||||||
|
files:
|
||||||
|
- path: output/fcs/test.cleaned_sequences.fa.gz
|
||||||
|
md5sum: 2f331e59b352418420a35236091bf93c
|
||||||
|
- path: output/fcs/test.fcs_adaptor.log
|
||||||
|
contains: ["Original command:", "Executing:", "INFO:cwltool:[workflow ] completed success"]
|
||||||
|
- path: output/fcs/test.fcs_adaptor_report.txt
|
||||||
|
md5sum: 27375be4671e01d2d2674ddd1d44414a
|
||||||
|
- path: output/fcs/test.pipeline_args.yaml
|
||||||
|
md5sum: 80effed2a75550a6a861c47f4c30449d
|
||||||
|
- path: output/fcs/test.skipped_trims.jsonl
|
Loading…
Reference in a new issue