Merge branch 'master' into new-module-rtg/vcfeval

This commit is contained in:
nvnieuwk 2022-05-06 16:19:17 +02:00 committed by GitHub
commit 5153e10840
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
75 changed files with 1612 additions and 197 deletions

84
modules/busco/main.nf Normal file
View file

@ -0,0 +1,84 @@
process BUSCO {
tag "$meta.id"
label 'process_medium'
conda (params.enable_conda ? "bioconda::busco=5.3.2" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/busco:5.3.2--pyhdfd78af_0':
'quay.io/biocontainers/busco:5.3.2--pyhdfd78af_0' }"
input:
tuple val(meta), path('tmp_input/*')
each lineage // Required: lineage to check against, "auto" enables --auto-lineage instead
path busco_lineages_path // Recommended: path to busco lineages - downloads if not set
path config_file // Optional: busco configuration file
output:
tuple val(meta), path("*-busco.batch_summary.txt"), emit: batch_summary
tuple val(meta), path("short_summary.*.txt") , emit: short_summaries_txt, optional: true
tuple val(meta), path("short_summary.*.json") , emit: short_summaries_json, optional: true
tuple val(meta), path("*-busco") , emit: busco_dir
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}-${lineage}"
def busco_config = config_file ? "--config $config_file" : ''
def busco_lineage = lineage.equals('auto') ? '--auto-lineage' : "--lineage_dataset ${lineage}"
def busco_lineage_dir = busco_lineages_path ? "--offline --download_path ${busco_lineages_path}" : ''
"""
# Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute)
# Check for container variable initialisation script and source it.
if [ -f "/usr/local/env-activate.sh" ]; then
set +u # Otherwise, errors out because of various unbound variables
. "/usr/local/env-activate.sh"
set -u
fi
# If the augustus config directory is not writable, then copy to writeable area
if [ ! -w "\${AUGUSTUS_CONFIG_PATH}" ]; then
# Create writable tmp directory for augustus
AUG_CONF_DIR=\$( mktemp -d -p \$PWD )
cp -r \$AUGUSTUS_CONFIG_PATH/* \$AUG_CONF_DIR
export AUGUSTUS_CONFIG_PATH=\$AUG_CONF_DIR
echo "New AUGUSTUS_CONFIG_PATH=\${AUGUSTUS_CONFIG_PATH}"
fi
# Ensure the input is uncompressed
INPUT_SEQS=input_seqs
mkdir "\$INPUT_SEQS"
cd "\$INPUT_SEQS"
for FASTA in ../tmp_input/*; do
if [ "\${FASTA##*.}" == 'gz' ]; then
gzip -cdf "\$FASTA" > \$( basename "\$FASTA" .gz )
else
ln -s "\$FASTA" .
fi
done
cd ..
busco \\
--cpu $task.cpus \\
--in "\$INPUT_SEQS" \\
--out ${prefix}-busco \\
$busco_lineage \\
$busco_lineage_dir \\
$busco_config \\
$args
# clean up
rm -rf "\$INPUT_SEQS"
# Move files to avoid staging/publishing issues
mv ${prefix}-busco/batch_summary.txt ${prefix}-busco.batch_summary.txt
mv ${prefix}-busco/*/short_summary.*.{json,txt} . || echo "Short summaries were not available: No genes were found."
cat <<-END_VERSIONS > versions.yml
"${task.process}":
busco: \$( busco --version 2>&1 | sed 's/^BUSCO //' )
END_VERSIONS
"""
}

69
modules/busco/meta.yml Normal file
View file

@ -0,0 +1,69 @@
name: busco
description: Benchmarking Universal Single Copy Orthologs
keywords:
- quality control
- genome
- transcriptome
- proteome
tools:
- busco:
description: BUSCO provides measures for quantitative assessment of genome assembly, gene set, and transcriptome completeness based on evolutionarily informed expectations of gene content from near-universal single-copy orthologs selected from OrthoDB.
homepage: https://busco.ezlab.org/
documentation: https://busco.ezlab.org/busco_userguide.html
tool_dev_url: https://gitlab.com/ezlab/busco
doi: "10.1007/978-1-4939-9173-0_14"
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- fasta:
type: file
description: Nucleic or amino acid sequence file in FASTA format.
pattern: "*.{fasta,fna,fa,fasta.gz,fna.gz,fa.gz}"
- lineage:
type: value
description: The BUSCO lineage to use, or "auto" to automatically select lineage
- busco_lineages_path:
type: directory
description: Path to local BUSCO lineages directory.
- config_file:
type: file
description: Path to BUSCO config file.
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- batch_summary:
type: file
description: Summary of all sequence files analyzed
pattern: "*-busco.batch_summary.txt"
- short_summaries_txt:
type: file
description: Short Busco summary in plain text format
pattern: "short_summary.*.txt"
- short_summaries_json:
type: file
description: Short Busco summary in JSON format
pattern: "short_summary.*.json"
- busco_dir:
type: directory
description: BUSCO lineage specific output
pattern: "*-busco"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@priyanka-surana"
- "@charles-plessy"
- "@mahesh-panchal"
- "@muffato"
- "@jvhagey"

View file

@ -2,43 +2,42 @@ process CNVPYTOR_CALLCNVS {
tag "$meta.id" tag "$meta.id"
label 'process_medium' label 'process_medium'
conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0':
'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }"
input: input:
tuple val(meta), path(pytor) tuple val(meta), path(pytor)
val bin_sizes
output: output:
tuple val(meta), path("*.tsv"), emit: cnvs tuple val(meta), path("${pytor.baseName}.pytor") , emit: pytor
path "versions.yml" , emit: versions path "versions.yml" , emit: versions
when: when:
task.ext.when == null || task.ext.when task.ext.when == null || task.ext.when
script: script:
def args = task.ext.args ?: '1000' def bins = bin_sizes ?: '1000'
def prefix = task.ext.prefix ?: "${meta.id}"
""" """
cnvpytor \\ cnvpytor \\
-root $pytor \\ -root $pytor \\
-call $args > ${prefix}.tsv -call $bin_sizes
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
stub: stub:
def prefix = task.ext.prefix ?: "${meta.id}"
""" """
touch ${prefix}.tsv touch ${pytor.baseName}.pytor
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
} }

View file

@ -17,8 +17,11 @@ input:
e.g. [ id:'test'] e.g. [ id:'test']
- pytor: - pytor:
type: file type: file
description: cnvpytor root file description: pytor file containing partitions of read depth histograms using mean-shift method
pattern: "*.{pytor}" pattern: "*.{pytor}"
- bin_sizes:
type: string
description: list of binsizes separated by space e.g. "1000 10000" and "1000"
output: output:
- meta: - meta:
@ -26,10 +29,10 @@ output:
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test' ] e.g. [ id:'test' ]
- cnvs: - pytor:
type: file type: file
description: file containing identified copy numer variations description: pytor files containing cnv calls
pattern: "*.{tsv}" pattern: "*.{pytor}"
- versions: - versions:
type: file type: file
description: File containing software versions description: File containing software versions

View file

@ -2,13 +2,15 @@ process CNVPYTOR_HISTOGRAM {
tag "$meta.id" tag "$meta.id"
label 'process_medium' label 'process_medium'
conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0':
'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }"
input: input:
tuple val(meta), path(pytor) tuple val(meta), path(pytor)
val bin_sizes
output: output:
tuple val(meta), path("${pytor.baseName}.pytor") , emit: pytor tuple val(meta), path("${pytor.baseName}.pytor") , emit: pytor
@ -18,15 +20,15 @@ process CNVPYTOR_HISTOGRAM {
task.ext.when == null || task.ext.when task.ext.when == null || task.ext.when
script: script:
def args = task.ext.args ?: '1000' def bins = bin_sizes ?: '1000'
""" """
cnvpytor \\ cnvpytor \\
-root $pytor \\ -root $pytor \\
-his $args -his $bins
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
@ -36,7 +38,7 @@ process CNVPYTOR_HISTOGRAM {
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
} }

View file

@ -22,6 +22,9 @@ input:
type: file type: file
description: pytor file containing read depth data description: pytor file containing read depth data
pattern: "*.{pytor}" pattern: "*.{pytor}"
- bin_sizes:
type: string
description: list of binsizes separated by space e.g. "1000 10000" and "1000"
output: output:
- meta: - meta:
@ -40,3 +43,4 @@ output:
authors: authors:
- "@sima-r" - "@sima-r"
- "@ramprasadn"

View file

@ -2,10 +2,10 @@ process CNVPYTOR_IMPORTREADDEPTH {
tag "$meta.id" tag "$meta.id"
label 'process_medium' label 'process_medium'
conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0':
'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }"
input: input:
tuple val(meta), path(input_file), path(index) tuple val(meta), path(input_file), path(index)
@ -32,7 +32,7 @@ process CNVPYTOR_IMPORTREADDEPTH {
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
@ -43,7 +43,7 @@ process CNVPYTOR_IMPORTREADDEPTH {
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
} }

View file

@ -52,3 +52,4 @@ output:
authors: authors:
- "@sima-r" - "@sima-r"
- "@ramprasadn"

View file

@ -2,13 +2,14 @@ process CNVPYTOR_PARTITION {
tag "$meta.id" tag "$meta.id"
label 'process_medium' label 'process_medium'
conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0':
'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }"
input: input:
tuple val(meta), path(pytor) tuple val(meta), path(pytor)
val bin_sizes
output: output:
tuple val(meta), path("${pytor.baseName}.pytor"), emit: pytor tuple val(meta), path("${pytor.baseName}.pytor"), emit: pytor
@ -18,15 +19,15 @@ process CNVPYTOR_PARTITION {
task.ext.when == null || task.ext.when task.ext.when == null || task.ext.when
script: script:
def args = task.ext.args ?: '' def bins = bin_sizes ?: '1000'
""" """
cnvpytor \\ cnvpytor \\
-root $pytor \\ -root $pytor \\
-partition $args -partition $bins
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
@ -36,7 +37,7 @@ process CNVPYTOR_PARTITION {
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS END_VERSIONS
""" """
} }

View file

@ -22,6 +22,9 @@ input:
type: file type: file
description: pytor file containing read depth data description: pytor file containing read depth data
pattern: "*.{pytor}" pattern: "*.{pytor}"
- bin_sizes:
type: string
description: list of binsizes separated by space e.g. "1000 10000" and "1000"
output: output:
- meta: - meta:
@ -40,3 +43,4 @@ output:
authors: authors:
- "@sima-r" - "@sima-r"
- "@ramprasadn"

View file

@ -0,0 +1,60 @@
process CNVPYTOR_VIEW {
tag "$meta.id"
label 'process_medium'
conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0':
'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }"
input:
tuple val(meta), path(pytor_files)
val bin_sizes
val output_format
output:
tuple val(meta), path("*.vcf"), emit: vcf , optional: true
tuple val(meta), path("*.tsv"), emit: tsv , optional: true
tuple val(meta), path("*.xls"), emit: xls , optional: true
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def output_suffix = output_format ?: 'vcf'
def bins = bin_sizes ?: '1000'
def input = pytor_files.join(" ")
def prefix = task.ext.prefix ?: "${meta.id}"
"""
python3 <<CODE
import cnvpytor,os
binsizes = "${bins}".split(" ")
for binsize in binsizes:
file_list = "${input}".split(" ")
app = cnvpytor.Viewer(file_list, params={} )
outputfile = "{}_{}.{}".format("${prefix}",binsize.strip(),"${output_suffix}")
app.print_filename = outputfile
app.bin_size = int(binsize)
app.print_calls_file()
CODE
cat <<-END_VERSIONS > versions.yml
"${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS
"""
stub:
def output_suffix = output_format ?: 'vcf'
def prefix = task.ext.prefix ?: "${meta.id}"
"""
touch ${prefix}.${output_suffix}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' ))
END_VERSIONS
"""
}

View file

@ -0,0 +1,56 @@
name: cnvpytor_view
description: view function to generate vcfs
keywords:
- cnv calling
tools:
- cnvpytor:
description: calling CNVs using read depth
homepage: https://github.com/abyzovlab/CNVpytor
documentation: https://github.com/abyzovlab/CNVpytor
tool_dev_url: https://github.com/abyzovlab/CNVpytor
doi: "10.1101/2021.01.27.428472v1"
licence: ["MIT"]
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- pytor_files:
type: file
description: pytor file containing cnv calls. To merge calls from multiple samples use a list of files.
pattern: "*.{pytor}"
- bin_sizes:
type: string
description: list of binsizes separated by space e.g. "1000 10000" and "1000"
- output_format:
type: string
description: output format of the cnv calls. Valid entries are "tsv", "vcf", and "xls"
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- tsv:
type: file
description: tsv file containing cnv calls
pattern: "*.{tsv}"
- vcf:
type: file
description: vcf file containing cnv calls
pattern: "*.{vcf}"
- xls:
type: file
description: xls file containing cnv calls
pattern: "*.{xls}"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@sima-r"
- "@ramprasadn"

View file

@ -8,13 +8,14 @@ LABEL \
COPY environment.yml / COPY environment.yml /
RUN conda env create -f /environment.yml && conda clean -a RUN conda env create -f /environment.yml && conda clean -a
# Add conda installation dir to PATH (instead of doing 'conda activate')
ENV PATH /opt/conda/envs/nf-core-vep-104.3/bin:$PATH
# Setup default ARG variables # Setup default ARG variables
ARG GENOME=GRCh38 ARG GENOME=GRCh38
ARG SPECIES=homo_sapiens ARG SPECIES=homo_sapiens
ARG VEP_VERSION=99 ARG VEP_VERSION=104
ARG VEP_TAG=104.3
# Add conda installation dir to PATH (instead of doing 'conda activate')
ENV PATH /opt/conda/envs/nf-core-vep-${VEP_TAG}/bin:$PATH
# Download Genome # Download Genome
RUN vep_install \ RUN vep_install \
@ -27,4 +28,4 @@ RUN vep_install \
--NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE
# Dump the details of the installed packages to a file for posterity # Dump the details of the installed packages to a file for posterity
RUN conda env export --name nf-core-vep-104.3 > nf-core-vep-104.3.yml RUN conda env export --name nf-core-vep-${VEP_TAG} > nf-core-vep-${VEP_TAG}.yml

View file

@ -10,11 +10,12 @@ build_push() {
VEP_TAG=$4 VEP_TAG=$4
docker build \ docker build \
. \
-t nfcore/vep:${VEP_TAG}.${GENOME} \ -t nfcore/vep:${VEP_TAG}.${GENOME} \
software/vep/. \
--build-arg GENOME=${GENOME} \ --build-arg GENOME=${GENOME} \
--build-arg SPECIES=${SPECIES} \ --build-arg SPECIES=${SPECIES} \
--build-arg VEP_VERSION=${VEP_VERSION} --build-arg VEP_VERSION=${VEP_VERSION} \
--build-arg VEP_TAG=${VEP_TAG}
docker push nfcore/vep:${VEP_TAG}.${GENOME} docker push nfcore/vep:${VEP_TAG}.${GENOME}
} }

View file

@ -13,6 +13,7 @@ process ENSEMBLVEP {
val species val species
val cache_version val cache_version
path cache path cache
path extra_files
output: output:
tuple val(meta), path("*.ann.vcf"), emit: vcf tuple val(meta), path("*.ann.vcf"), emit: vcf

View file

@ -10,17 +10,6 @@ tools:
homepage: https://www.ensembl.org/info/docs/tools/vep/index.html homepage: https://www.ensembl.org/info/docs/tools/vep/index.html
documentation: https://www.ensembl.org/info/docs/tools/vep/script/index.html documentation: https://www.ensembl.org/info/docs/tools/vep/script/index.html
licence: ["Apache-2.0"] licence: ["Apache-2.0"]
params:
- use_cache:
type: boolean
description: |
Enable the usage of containers with cache
Does not work with conda
- vep_tag:
type: value
description: |
Specify the tag for the container
https://hub.docker.com/r/nfcore/vep/tags
input: input:
- meta: - meta:
type: map type: map
@ -47,6 +36,10 @@ input:
type: file type: file
description: | description: |
path to VEP cache (optional) path to VEP cache (optional)
- extra_files:
type: tuple
description: |
path to file(s) needed for plugins (optional)
output: output:
- vcf: - vcf:
type: file type: file

View file

@ -18,7 +18,9 @@ process KRONA_KRONADB {
script: script:
def args = task.ext.args ?: '' def args = task.ext.args ?: ''
""" """
ktUpdateTaxonomy.sh taxonomy ktUpdateTaxonomy.sh \\
$args \\
taxonomy/
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":

View file

@ -23,7 +23,10 @@ process KRONA_KTIMPORTTAXONOMY {
script: script:
def args = task.ext.args ?: '' def args = task.ext.args ?: ''
""" """
ktImportTaxonomy "$report" -tax taxonomy ktImportTaxonomy \\
$args \\
-tax taxonomy/ \\
"$report"
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":

View file

@ -23,8 +23,11 @@ input:
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test'] e.g. [ id:'test']
- database: - database:
type: path type: file
description: "Path to the taxonomy database downloaded by krona/kronadb" description: |
Path to the taxonomy database .tab file downloaded by krona/ktUpdateTaxonomy
The file will be saved under a folder named "taxonomy" as "taxonomy/taxonomy.tab".
The parent folder will be passed as argument to ktImportTaxonomy.
- report: - report:
type: file type: file
description: "A tab-delimited file with taxonomy IDs and (optionally) query IDs, magnitudes, and scores. Query IDs are taken from column 1, taxonomy IDs from column 2, and scores from column 3. Lines beginning with # will be ignored." description: "A tab-delimited file with taxonomy IDs and (optionally) query IDs, magnitudes, and scores. Query IDs are taken from column 1, taxonomy IDs from column 2, and scores from column 3. Lines beginning with # will be ignored."

View file

@ -0,0 +1,30 @@
def VERSION='2.7.1' // Version information not provided by tool on CLI
process KRONA_KTUPDATETAXONOMY {
label 'process_low'
conda (params.enable_conda ? "bioconda::krona=2.7.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/krona:2.7.1--pl526_5' :
'quay.io/biocontainers/krona:2.7.1--pl526_5' }"
output:
path 'taxonomy/taxonomy.tab', emit: db
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
"""
ktUpdateTaxonomy.sh \\
$args \\
taxonomy/
cat <<-END_VERSIONS > versions.yml
"${task.process}":
krona: $VERSION
END_VERSIONS
"""
}

View file

@ -0,0 +1,31 @@
name: krona_ktupdatetaxonomy
description: KronaTools Update Taxonomy downloads a taxonomy database
keywords:
- database
- taxonomy
- krona
- visualisation
tools:
- krona:
description: Krona Tools is a set of scripts to create Krona charts from several Bioinformatics tools as well as from text and XML files.
homepage: https://github.com/marbl/Krona/wiki/KronaTools
documentation: https://github.com/marbl/Krona/wiki/Installing
tool_dev_url:
doi: https://doi.org/10.1186/1471-2105-12-385
licence:
input:
- none: There is no input. This module downloads a pre-built taxonomy database for use with Krona Tools.
output:
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
- db:
type: file
description: A TAB separated file that contains a taxonomy database.
pattern: "*.{tab}"
authors:
- "@mjakobs"

35
modules/md5sum/main.nf Normal file
View file

@ -0,0 +1,35 @@
process MD5SUM {
tag "$meta.id"
label 'process_low'
conda (params.enable_conda ? "conda-forge::coreutils=9.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ubuntu:20.04' :
'ubuntu:20.04' }"
input:
tuple val(meta), path(file)
output:
tuple val(meta), path("*.md5"), emit: checksum
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}"
"""
md5sum \\
$args \\
${file} \\
> ${file}.md5
cat <<-END_VERSIONS > versions.yml
"${task.process}":
md5sum: \$(echo \$(md5sum --version 2>&1 | head -n 1| sed 's/^.*) //;' ))
END_VERSIONS
"""
}

39
modules/md5sum/meta.yml Normal file
View file

@ -0,0 +1,39 @@
name: "md5sum"
description: Create an MD5 (128-bit) checksum
keywords:
- checksum
tools:
- "md5sum":
description: Create an MD5 (128-bit) checksum
homepage: "https://www.gnu.org"
documentation: "https://man7.org/linux/man-pages/man1/md5sum.1.html"
licence: GPLv3+
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- file:
type: file
description: Any file
pattern: "*.*"
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"
- checksum:
type: file
description: File containing checksum
pattern: "*.md5"
authors:
- "@matthdsm"

View file

@ -0,0 +1,39 @@
process MOTUS_DOWNLOADDB {
label 'process_low'
conda (params.enable_conda ? "bioconda::motus=3.0.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/motus:3.0.1--pyhdfd78af_0':
'quay.io/biocontainers/motus:3.0.1--pyhdfd78af_0' }"
input:
path motus_downloaddb_script
output:
path "db_mOTU/" , emit: db
path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def software = "${motus_downloaddb_script.simpleName}_copy.py"
"""
## must copy script file to working directory,
## otherwise the reference_db will be download to bin folder
## other than current directory
cp $motus_downloaddb_script ${software}
python ${software} \\
$args \\
-t $task.cpus
## mOTUs version number is not available from command line.
## mOTUs save the version number in index database folder.
## mOTUs will check the database version is same version as exec version.
cat <<-END_VERSIONS > versions.yml
"${task.process}":
mOTUs: \$(grep motus db_mOTU/db_mOTU_versions | sed 's/motus\\t//g')
END_VERSIONS
"""
}

View file

@ -0,0 +1,39 @@
name: "motus_downloaddb"
description: Download the mOTUs database
keywords:
- classify
- metagenomics
- fastq
- taxonomic profiling
- database
- download
tools:
- "motus":
description: "The mOTU profiler is a computational tool that estimates relative taxonomic abundance of known and currently unknown microbial community members using metagenomic shotgun sequencing data."
homepage: "None"
documentation: "https://github.com/motu-tool/mOTUs/wiki"
tool_dev_url: "https://github.com/motu-tool/mOTUs"
doi: "10.1038/s41467-019-08844-4"
licence: "['GPL v3']"
input:
- motus_downloaddb:
type: directory
description: |
The mOTUs downloadDB script source file.
It is the source file installed or
remote source in github such as https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py
pattern: "downloadDB.py"
output:
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
- db:
type: directory
description: The mOTUs database directory
pattern: "db_mOTU"
authors:
- "@jianhong"

View file

@ -45,7 +45,7 @@ process SAMTOOLS_BAM2FQ {
bam2fq \\ bam2fq \\
$args \\ $args \\
-@ $task.cpus \\ -@ $task.cpus \\
$inputbam >${prefix}_interleaved.fq.gz $inputbam | gzip --no-name > ${prefix}_interleaved.fq.gz
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":

35
modules/shasum/main.nf Normal file
View file

@ -0,0 +1,35 @@
process SHASUM {
tag "$meta.id"
label 'process_low'
conda (params.enable_conda ? "conda-forge::coreutils=9.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ubuntu:20.04' :
'ubuntu:20.04' }"
input:
tuple val(meta), path(file)
output:
tuple val(meta), path("*.sha256"), emit: checksum
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}"
"""
sha256sum \\
$args \\
${file} \\
> ${file}.sha256
cat <<-END_VERSIONS > versions.yml
"${task.process}":
sha256sum: \$(echo \$(sha256sum --version 2>&1 | head -n 1| sed 's/^.*) //;' ))
END_VERSIONS
"""
}

40
modules/shasum/meta.yml Normal file
View file

@ -0,0 +1,40 @@
name: "shasum"
description: Print SHA256 (256-bit) checksums.
keywords:
- checksum
- sha256
tools:
- "md5sum":
description: Create an SHA256 (256-bit) checksum.
homepage: "https://www.gnu.org"
documentation: "https://linux.die.net/man/1/shasum"
licence: GPLv3+
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- file:
type: file
description: Any file
pattern: "*.*"
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"
- checksum:
type: file
description: File containing checksum
pattern: "*.sha256"
authors:
- "@matthdsm"

View file

@ -8,15 +8,16 @@ LABEL \
COPY environment.yml / COPY environment.yml /
RUN conda env create -f /environment.yml && conda clean -a RUN conda env create -f /environment.yml && conda clean -a
# Add conda installation dir to PATH (instead of doing 'conda activate')
ENV PATH /opt/conda/envs/nf-core-snpeff-5.0/bin:$PATH
# Setup default ARG variables # Setup default ARG variables
ARG GENOME=GRCh38 ARG GENOME=GRCh38
ARG SNPEFF_CACHE_VERSION=99 ARG SNPEFF_CACHE_VERSION=99
ARG SNPEFF_TAG=99
# Add conda installation dir to PATH (instead of doing 'conda activate')
ENV PATH /opt/conda/envs/nf-core-snpeff-${SNPEFF_TAG}/bin:$PATH
# Download Genome # Download Genome
RUN snpEff download -v ${GENOME}.${SNPEFF_CACHE_VERSION} RUN snpEff download -v ${GENOME}.${SNPEFF_CACHE_VERSION}
# Dump the details of the installed packages to a file for posterity # Dump the details of the installed packages to a file for posterity
RUN conda env export --name nf-core-snpeff-5.0 > nf-core-snpeff-5.0.yml RUN conda env export --name nf-core-snpeff-${SNPEFF_TAG} > nf-core-snpeff-${SNPEFF_TAG}.yml

5
modules/snpeff/build.sh Executable file → Normal file
View file

@ -9,10 +9,11 @@ build_push() {
SNPEFF_TAG=$3 SNPEFF_TAG=$3
docker build \ docker build \
. \
-t nfcore/snpeff:${SNPEFF_TAG}.${GENOME} \ -t nfcore/snpeff:${SNPEFF_TAG}.${GENOME} \
software/snpeff/. \
--build-arg GENOME=${GENOME} \ --build-arg GENOME=${GENOME} \
--build-arg SNPEFF_CACHE_VERSION=${SNPEFF_CACHE_VERSION} --build-arg SNPEFF_CACHE_VERSION=${SNPEFF_CACHE_VERSION} \
--build-arg SNPEFF_TAG=${SNPEFF_TAG}
docker push nfcore/snpeff:${SNPEFF_TAG}.${GENOME} docker push nfcore/snpeff:${SNPEFF_TAG}.${GENOME}
} }

View file

@ -10,18 +10,6 @@ tools:
homepage: https://pcingola.github.io/SnpEff/ homepage: https://pcingola.github.io/SnpEff/
documentation: https://pcingola.github.io/SnpEff/se_introduction/ documentation: https://pcingola.github.io/SnpEff/se_introduction/
licence: ["MIT"] licence: ["MIT"]
params:
- use_cache:
type: boolean
description: |
boolean to enable the usage of containers with cache
Enable the usage of containers with cache
Does not work with conda
- snpeff_tag:
type: value
description: |
Specify the tag for the container
https://hub.docker.com/r/nfcore/snpeff/tags
input: input:
- meta: - meta:
type: map type: map

View file

@ -2,10 +2,10 @@ process SVDB_MERGE {
tag "$meta.id" tag "$meta.id"
label 'process_medium' label 'process_medium'
conda (params.enable_conda ? "bioconda::svdb=2.6.0" : null) conda (params.enable_conda ? "bioconda::svdb=2.6.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/svdb:2.6.0--py39h5371cbf_0': 'https://depot.galaxyproject.org/singularity/svdb:2.6.1--py39h5371cbf_0':
'quay.io/biocontainers/svdb:2.6.0--py39h5371cbf_0' }" 'quay.io/biocontainers/svdb:2.6.1--py39h5371cbf_0' }"
input: input:
tuple val(meta), path(vcfs) tuple val(meta), path(vcfs)

View file

@ -2,10 +2,10 @@ process SVDB_QUERY {
tag "$meta.id" tag "$meta.id"
label 'process_medium' label 'process_medium'
conda (params.enable_conda ? "bioconda::svdb=2.6.0" : null) conda (params.enable_conda ? "bioconda::svdb=2.6.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/svdb:2.6.0--py39h5371cbf_0': 'https://depot.galaxyproject.org/singularity/svdb:2.6.1--py39h5371cbf_0':
'quay.io/biocontainers/svdb:2.6.0--py39h5371cbf_0' }" 'quay.io/biocontainers/svdb:2.6.1--py39h5371cbf_0' }"
input: input:
tuple val(meta), path(vcf) tuple val(meta), path(vcf)

View file

@ -0,0 +1,31 @@
//
// Run VEP to annotate VCF files
//
include { ENSEMBLVEP } from '../../../../modules/ensemblvep/main'
include { TABIX_BGZIPTABIX } from '../../../../modules/tabix/bgziptabix/main'
workflow ANNOTATION_ENSEMBLVEP {
take:
vcf // channel: [ val(meta), vcf ]
vep_genome // value: genome to use
vep_species // value: species to use
vep_cache_version // value: cache version to use
vep_cache // path: /path/to/vep/cache (optionnal)
vep_extra_files // channel: [ file1, file2...] (optionnal)
main:
ch_versions = Channel.empty()
ENSEMBLVEP(vcf, vep_genome, vep_species, vep_cache_version, vep_cache, vep_extra_files)
TABIX_BGZIPTABIX(ENSEMBLVEP.out.vcf)
// Gather versions of all tools used
ch_versions = ch_versions.mix(ENSEMBLVEP.out.versions.first())
ch_versions = ch_versions.mix(TABIX_BGZIPTABIX.out.versions.first())
emit:
vcf_tbi = TABIX_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ]
reports = ENSEMBLVEP.out.report // path: *.html
versions = ch_versions // path: versions.yml
}

View file

@ -0,0 +1,49 @@
name: annotation_ensemblvep
description: |
Perform annotation with ensemblvep and bgzip + tabix index the resulting VCF file
keywords:
- ensemblvep
modules:
- ensemblvep
- tabix/bgziptabix
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- vcf:
type: file
description: |
vcf to annotate
- genome:
type: value
description: |
which genome to annotate with
- species:
type: value
description: |
which species to annotate with
- cache_version:
type: value
description: |
which version of the cache to annotate with
- cache:
type: file
description: |
path to VEP cache (optional)
- extra_files:
type: tuple
description: |
path to file(s) needed for plugins (optional)
output:
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
- vcf_tbi:
type: file
description: Compressed vcf file + tabix index
pattern: "[ *{.vcf.gz,vcf.gz.tbi} ]"
authors:
- "@maxulysse"

View file

@ -0,0 +1,28 @@
//
// Run SNPEFF to annotate VCF files
//
include { SNPEFF } from '../../../../modules/snpeff/main'
include { TABIX_BGZIPTABIX } from '../../../../modules/tabix/bgziptabix/main'
workflow ANNOTATION_SNPEFF {
take:
vcf // channel: [ val(meta), vcf ]
snpeff_db // value: db version to use
snpeff_cache // path: /path/to/snpeff/cache (optionnal)
main:
ch_versions = Channel.empty()
SNPEFF(vcf, snpeff_db, snpeff_cache)
TABIX_BGZIPTABIX(SNPEFF.out.vcf)
// Gather versions of all tools used
ch_versions = ch_versions.mix(SNPEFF.out.versions.first())
ch_versions = ch_versions.mix(TABIX_BGZIPTABIX.out.versions.first())
emit:
vcf_tbi = TABIX_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ]
reports = SNPEFF.out.report // path: *.html
versions = ch_versions // path: versions.yml
}

View file

@ -11,11 +11,19 @@ input:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test' ] e.g. [ id:'test', single_end:false ]
- input: - vcf:
type: vcf type: file
description: list containing one vcf file description: |
pattern: "[ *.{vcf,vcf.gz} ]" vcf to annotate
- db:
type: value
description: |
which db to annotate with
- cache:
type: file
description: |
path to snpEff cache (optional)
output: output:
- versions: - versions:
type: file type: file

View file

@ -1,26 +0,0 @@
//
// Run VEP to annotate VCF files
//
include { ENSEMBLVEP } from '../../../modules/ensemblvep/main'
include { TABIX_BGZIPTABIX as ANNOTATION_BGZIPTABIX } from '../../../modules/tabix/bgziptabix/main'
workflow ANNOTATION_ENSEMBLVEP {
take:
vcf // channel: [ val(meta), vcf ]
vep_genome // value: which genome
vep_species // value: which species
vep_cache_version // value: which cache version
vep_cache // path: path_to_vep_cache (optionnal)
main:
ENSEMBLVEP(vcf, vep_genome, vep_species, vep_cache_version, vep_cache)
ANNOTATION_BGZIPTABIX(ENSEMBLVEP.out.vcf)
ch_versions = ENSEMBLVEP.out.versions.first().mix(ANNOTATION_BGZIPTABIX.out.versions.first())
emit:
vcf_tbi = ANNOTATION_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ]
reports = ENSEMBLVEP.out.report // path: *.html
versions = ch_versions // path: versions.yml
}

View file

@ -1,29 +0,0 @@
name: annotation_ensemblvep
description: |
Perform annotation with ensemblvep and bgzip + tabix index the resulting VCF file
keywords:
- ensemblvep
modules:
- ensemblvep
- tabix/bgziptabix
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- input:
type: vcf
description: list containing one vcf file
pattern: "[ *.{vcf,vcf.gz} ]"
output:
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"
- vcf_tbi:
type: file
description: Compressed vcf file + tabix index
pattern: "[ *{.vcf.gz,vcf.gz.tbi} ]"
authors:
- "@maxulysse"

View file

@ -1,23 +0,0 @@
//
// Run SNPEFF to annotate VCF files
//
include { SNPEFF } from '../../../modules/snpeff/main'
include { TABIX_BGZIPTABIX as ANNOTATION_BGZIPTABIX } from '../../../modules/tabix/bgziptabix/main'
workflow ANNOTATION_SNPEFF {
take:
vcf // channel: [ val(meta), vcf ]
snpeff_db // value: version of db to use
snpeff_cache // path: path_to_snpeff_cache (optionnal)
main:
SNPEFF(vcf, snpeff_db, snpeff_cache)
ANNOTATION_BGZIPTABIX(SNPEFF.out.vcf)
ch_versions = SNPEFF.out.versions.first().mix(ANNOTATION_BGZIPTABIX.out.versions.first())
emit:
vcf_tbi = ANNOTATION_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ]
reports = SNPEFF.out.report // path: *.html
versions = ch_versions // path: versions.yml
}

View file

@ -337,6 +337,10 @@ bracken/bracken:
- modules/bracken/bracken/** - modules/bracken/bracken/**
- tests/modules/bracken/bracken/** - tests/modules/bracken/bracken/**
busco:
- modules/busco/**
- tests/modules/busco/**
bwa/aln: bwa/aln:
- modules/bwa/aln/** - modules/bwa/aln/**
- tests/modules/bwa/aln/** - tests/modules/bwa/aln/**
@ -1066,6 +1070,10 @@ krona/ktimporttext:
- modules/krona/ktimporttext/** - modules/krona/ktimporttext/**
- tests/modules/krona/ktimporttext/** - tests/modules/krona/ktimporttext/**
krona/ktupdatetaxonomy:
- modules/krona/ktupdatetaxonomy/**
- tests/modules/krona/ktupdatetaxonomy/**
last/dotplot: last/dotplot:
- modules/last/dotplot/** - modules/last/dotplot/**
- tests/modules/last/dotplot/** - tests/modules/last/dotplot/**
@ -1186,6 +1194,10 @@ maxbin2:
- modules/maxbin2/** - modules/maxbin2/**
- tests/modules/maxbin2/** - tests/modules/maxbin2/**
md5sum:
- modules/md5sum/**
- tests/modules/md5sum/**
medaka: medaka:
- modules/medaka/** - modules/medaka/**
- tests/modules/medaka/** - tests/modules/medaka/**
@ -1250,6 +1262,10 @@ mosdepth:
- modules/mosdepth/** - modules/mosdepth/**
- tests/modules/mosdepth/** - tests/modules/mosdepth/**
motus/downloaddb:
- modules/motus/downloaddb/**
- tests/modules/motus/downloaddb/**
msisensor/msi: msisensor/msi:
- modules/msisensor/msi/** - modules/msisensor/msi/**
- tests/modules/msisensor/msi/** - tests/modules/msisensor/msi/**
@ -1731,6 +1747,10 @@ seqwish/induce:
- modules/seqwish/induce/** - modules/seqwish/induce/**
- tests/modules/seqwish/induce/** - tests/modules/seqwish/induce/**
shasum:
- modules/shasum/**
- tests/modules/shasum/**
shigatyper: shigatyper:
- modules/shigatyper/** - modules/shigatyper/**
- tests/modules/shigatyper/** - tests/modules/shigatyper/**

View file

@ -111,7 +111,9 @@ params {
test_sequencing_summary = "${test_data_dir}/genomics/sarscov2/nanopore/sequencing_summary/test.sequencing_summary.txt" test_sequencing_summary = "${test_data_dir}/genomics/sarscov2/nanopore/sequencing_summary/test.sequencing_summary.txt"
} }
'metagenome' { 'metagenome' {
classified_reads_assignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt"
kraken_report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" kraken_report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt"
krona_taxonomy = "${test_data_dir}/genomics/sarscov2/metagenome/krona_taxonomy.tab"
} }
} }
'homo_sapiens' { 'homo_sapiens' {

404
tests/modules/busco/main.nf Normal file
View file

@ -0,0 +1,404 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { BUSCO } from '../../../modules/busco/main.nf'
workflow test_busco_genome_single_fasta {
input = [
[ id:'test' ], // meta map
file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true)
]
BUSCO (
input,
['bacteria_odb10', 'bacteroidetes_odb10'], // Launch with 'auto' to use --auto-lineage, and specified lineages // 'auto' removed from test due to memory issues
[], // Download busco lineage
[], // No config
)
/* Output tree:
/tmp/tmpyz_hi62i/busco/
├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/short_summary.specific.bacteria_odb10.genome.fna.json
├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/short_summary.specific.bacteria_odb10.genome.fna.txt
├── short_summary.specific.bacteroidetes_odb10.genome.fna.json -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/short_summary.specific.bacteroidetes_odb10.genome.fna.json
├── short_summary.specific.bacteroidetes_odb10.genome.fna.txt -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/short_summary.specific.bacteroidetes_odb10.genome.fna.txt
├── test-bacteria_odb10-busco -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/test-bacteria_odb10-busco/
│ ├── genome.fna/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── prodigal_err.log
│ │ │ └── prodigal_out.log
│ │ ├── prodigal_output/
│ │ │ └── predicted_genes/
│ │ └── run_bacteria_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ └── logs/
│ └── busco.log
├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/test-bacteria_odb10-busco.batch_summary.txt
├── test-bacteroidetes_odb10-busco -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/test-bacteroidetes_odb10-busco/
│ ├── genome.fna/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── prodigal_err.log
│ │ │ └── prodigal_out.log
│ │ ├── prodigal_output/
│ │ │ └── predicted_genes/
│ │ └── run_bacteroidetes_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ └── logs/
│ └── busco.log
├── test-bacteroidetes_odb10-busco.batch_summary.txt -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/test-bacteroidetes_odb10-busco.batch_summary.txt
└── versions.yml -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/versions.yml
Former Output tree -w 'auto':
/tmp/tmp846crjv2/busco/
├── short_summary.generic.bacteria_odb10.genome.fna.json -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.generic.bacteria_odb10.genome.fna.json
├── short_summary.generic.bacteria_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.generic.bacteria_odb10.genome.fna.txt
├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/short_summary.specific.bacteria_odb10.genome.fna.json
├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/short_summary.specific.bacteria_odb10.genome.fna.txt
├── short_summary.specific.bacteroidales_odb10.genome.fna.json -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.specific.bacteroidales_odb10.genome.fna.json
├── short_summary.specific.bacteroidales_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.specific.bacteroidales_odb10.genome.fna.txt
├── short_summary.specific.bacteroidetes_odb10.genome.fna.json -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/short_summary.specific.bacteroidetes_odb10.genome.fna.json
├── short_summary.specific.bacteroidetes_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/short_summary.specific.bacteroidetes_odb10.genome.fna.txt
├── test-auto-busco -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/test-auto-busco/
│ ├── genome.fna/
│ │ ├── auto_lineage/
│ │ │ ├── run_archaea_odb10/
│ │ │ ├── run_bacteria_odb10/
│ │ │ └── run_eukaryota_odb10/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── metaeuk_err.log
│ │ │ ├── metaeuk_out.log
│ │ │ ├── prodigal_err.log
│ │ │ ├── prodigal_out.log
│ │ │ ├── sepp_err.log
│ │ │ └── sepp_out.log
│ │ ├── prodigal_output/
│ │ │ └── predicted_genes/
│ │ ├── run_bacteria_odb10 -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/test-auto-busco/genome.fna/auto_lineage/run_bacteria_odb10/ [recursive, not followed]
│ │ └── run_bacteroidales_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ └── logs/
│ └── busco.log
├── test-auto-busco.batch_summary.txt -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/test-auto-busco.batch_summary.txt
├── test-bacteria_odb10-busco -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/test-bacteria_odb10-busco/
│ ├── genome.fna/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── prodigal_err.log
│ │ │ └── prodigal_out.log
│ │ ├── prodigal_output/
│ │ │ └── predicted_genes/
│ │ └── run_bacteria_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ └── logs/
│ └── busco.log
├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/test-bacteria_odb10-busco.batch_summary.txt
├── test-bacteroidetes_odb10-busco -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/test-bacteroidetes_odb10-busco/
│ ├── genome.fna/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── prodigal_err.log
│ │ │ └── prodigal_out.log
│ │ ├── prodigal_output/
│ │ │ └── predicted_genes/
│ │ └── run_bacteroidetes_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ └── logs/
│ └── busco.log
├── test-bacteroidetes_odb10-busco.batch_summary.txt -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/test-bacteroidetes_odb10-busco.batch_summary.txt
└── versions.yml -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/versions.yml
*/
}
workflow test_busco_genome_multi_fasta {
input = [
[ id:'test' ], // meta map
[
file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true),
file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['genome_fasta'], checkIfExists: true)
]
]
BUSCO (
input,
'bacteria_odb10',
[], // Download busco lineage
[], // No config
)
/* Output tree:
/tmp/tmpk19byek7/busco/
├── short_summary.specific.bacteria_odb10.genome.fasta.json -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fasta.json
├── short_summary.specific.bacteria_odb10.genome.fasta.txt -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fasta.txt
├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fna.json
├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fna.txt
├── test-bacteria_odb10-busco -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/test-bacteria_odb10-busco/
│ ├── genome.fasta/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── prodigal_err.log
│ │ │ └── prodigal_out.log
│ │ ├── prodigal_output/
│ │ │ └── predicted_genes/
│ │ └── run_bacteria_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ ├── genome.fna/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── prodigal_err.log
│ │ │ └── prodigal_out.log
│ │ ├── prodigal_output/
│ │ │ └── predicted_genes/
│ │ └── run_bacteria_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ └── logs/
│ └── busco.log
├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/test-bacteria_odb10-busco.batch_summary.txt
└── versions.yml -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/versions.yml
*/
}
workflow test_busco_eukaryote_metaeuk {
input = [
[ id:'test' ], // meta map
file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
]
BUSCO (
input,
'eukaryota_odb10',
[], // Download busco lineage
[], // No config
)
/* Output tree:
/tmp/tmpeq4dsir5/busco/
├── short_summary.specific.eukaryota_odb10.genome.fasta.json -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/short_summary.specific.eukaryota_odb10.genome.fasta.json
├── short_summary.specific.eukaryota_odb10.genome.fasta.txt -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/short_summary.specific.eukaryota_odb10.genome.fasta.txt
├── test-eukaryota_odb10-busco -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/test-eukaryota_odb10-busco/
│ ├── genome.fasta/
│ │ ├── logs/
│ │ │ ├── hmmsearch_err.log
│ │ │ ├── hmmsearch_out.log
│ │ │ ├── metaeuk_err.log
│ │ │ └── metaeuk_out.log
│ │ └── run_eukaryota_odb10/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── metaeuk_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ └── short_summary.txt
│ └── logs/
│ └── busco.log
├── test-eukaryota_odb10-busco.batch_summary.txt -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/test-eukaryota_odb10-busco.batch_summary.txt
└── versions.yml -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/versions.yml
*/
}
workflow test_busco_eukaryote_augustus {
input = [
[ id:'test' ], // meta map
file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
]
BUSCO (
input,
'eukaryota_odb10',
[], // Download busco lineage
[], // No config
)
/* Output tree:
/tmp/tmp2xqaygjj/busco/
├── test-eukaryota_odb10-busco -> /tmp/tmpjqs61x9o/3f/67cc14e873c0ceb45e2a27594d624c/test-eukaryota_odb10-busco/
│ ├── genome.fasta/
│ │ ├── blast_db/
│ │ │ ├── genome.fasta.ndb
│ │ │ ├── genome.fasta.nhr
│ │ │ ├── genome.fasta.nin
│ │ │ ├── genome.fasta.not
│ │ │ ├── genome.fasta.nsq
│ │ │ ├── genome.fasta.ntf
│ │ │ └── genome.fasta.nto
│ │ ├── logs/
│ │ │ ├── makeblastdb_err.log
│ │ │ ├── makeblastdb_out.log
│ │ │ ├── tblastn_err.log
│ │ │ └── tblastn_out.log
│ │ └── run_eukaryota_odb10/
│ │ ├── augustus_output/
│ │ ├── blast_output/
│ │ ├── busco_sequences/
│ │ └── hmmer_output/
│ └── logs/
│ └── busco.log
├── test-eukaryota_odb10-busco.batch_summary.txt -> /tmp/tmpjqs61x9o/3f/67cc14e873c0ceb45e2a27594d624c/test-eukaryota_odb10-busco.batch_summary.txt
└── versions.yml -> /tmp/tmpjqs61x9o/3f/67cc14e873c0ceb45e2a27594d624c/versions.yml
*/
}
workflow test_busco_protein {
input = [
[ id:'test' ], // meta map
file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['proteome_fasta'], checkIfExists: true)
]
BUSCO (
input,
'bacteria_odb10',
[], // Download busco lineage
[], // No config
)
/* Output tree:
/tmp/tmpzwd5dn56/busco/
├── short_summary.specific.bacteria_odb10.proteome.fasta.json -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/short_summary.specific.bacteria_odb10.proteome.fasta.json
├── short_summary.specific.bacteria_odb10.proteome.fasta.txt -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/short_summary.specific.bacteria_odb10.proteome.fasta.txt
├── test-bacteria_odb10-busco -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/test-bacteria_odb10-busco/
│ ├── logs/
│ │ └── busco.log
│ └── proteome.fasta/
│ ├── logs/
│ │ ├── hmmsearch_err.log
│ │ └── hmmsearch_out.log
│ └── run_bacteria_odb10/
│ ├── busco_sequences/
│ ├── full_table.tsv
│ ├── hmmer_output/
│ ├── missing_busco_list.tsv
│ ├── short_summary.json
│ └── short_summary.txt
├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/test-bacteria_odb10-busco.batch_summary.txt
└── versions.yml -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/versions.yml
*/
}
workflow test_busco_transcriptome {
input = [
[ id:'test' ], // meta map
file( params.test_data['bacteroides_fragilis']['illumina']['test1_contigs_fa_gz'], checkIfExists: true)
]
BUSCO (
input,
'bacteria_odb10',
[], // Download busco lineage
[], // No config
)
/* Output tree:
/tmp/tmpitjyvo9g/busco/
├── short_summary.specific.bacteria_odb10.test1.contigs.fa.json -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/short_summary.specific.bacteria_odb10.test1.contigs.fa.json
├── short_summary.specific.bacteria_odb10.test1.contigs.fa.txt -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/short_summary.specific.bacteria_odb10.test1.contigs.fa.txt
├── test-bacteria_odb10-busco -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/test-bacteria_odb10-busco/
│ ├── logs/
│ │ └── busco.log
│ └── test1.contigs.fa/
│ ├── blast_db/
│ │ ├── test1.contigs.fa.ndb
│ │ ├── test1.contigs.fa.nhr
│ │ ├── test1.contigs.fa.nin
│ │ ├── test1.contigs.fa.not
│ │ ├── test1.contigs.fa.nsq
│ │ ├── test1.contigs.fa.ntf
│ │ └── test1.contigs.fa.nto
│ ├── logs/
│ │ ├── hmmsearch_err.log
│ │ ├── hmmsearch_out.log
│ │ ├── makeblastdb_err.log
│ │ ├── makeblastdb_out.log
│ │ ├── tblastn_err.log
│ │ └── tblastn_out.log
│ ├── run_bacteria_odb10/
│ │ ├── blast_output/
│ │ ├── busco_sequences/
│ │ ├── full_table.tsv
│ │ ├── hmmer_output/
│ │ ├── missing_busco_list.tsv
│ │ ├── short_summary.json
│ │ ├── short_summary.txt
│ │ └── single_copy_proteins.faa
│ └── translated_proteins/
│ ├── 1024388at2.faa
│ ├── 1054741at2.faa
│ ├── 1093223at2.faa
│ ├── 1151822at2.faa
│ ├── 143460at2.faa
│ ├── 1491686at2.faa
│ ├── 1504821at2.faa
│ ├── 1574817at2.faa
│ ├── 1592033at2.faa
│ ├── 1623045at2.faa
│ ├── 1661836at2.faa
│ ├── 1674344at2.faa
│ ├── 1698718at2.faa
│ ├── 1990650at2.faa
│ ├── 223233at2.faa
│ ├── 402899at2.faa
│ ├── 505485at2.faa
│ ├── 665824at2.faa
│ ├── 776861at2.faa
│ ├── 874197at2.faa
│ ├── 932854at2.faa
│ └── 95696at2.faa
├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/test-bacteria_odb10-busco.batch_summary.txt
└── versions.yml -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/versions.yml
*/
}

View file

@ -0,0 +1,28 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
withName: 'test_busco_genome_single_fasta:BUSCO' {
ext.args = '--mode genome'
}
withName: 'test_busco_genome_multi_fasta:BUSCO' {
ext.args = '--mode genome'
}
withName: 'test_busco_eukaryote_metaeuk:BUSCO' {
ext.args = '--mode genome'
}
withName: 'test_busco_eukaryote_augustus:BUSCO' {
ext.args = '--mode genome --augustus'
}
withName: 'test_busco_protein:BUSCO' {
ext.args = '--mode proteins'
}
withName: 'test_busco_transcriptome:BUSCO'{
ext.args = '--mode transcriptome'
}
}

View file

@ -0,0 +1,159 @@
- name: busco test_busco_genome_single_fasta
command: nextflow run tests/modules/busco -entry test_busco_genome_single_fasta -c tests/config/nextflow.config
tags:
- busco
files:
- path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json
contains:
- "one_line_summary"
- "input_file"
- "mode"
- "dataset"
- path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt
contains:
- "BUSCO version"
- "The lineage dataset is"
- "BUSCO was run in mode"
- "Complete BUSCOs"
- "Missing BUSCOs"
- "Dependencies and versions"
- path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.json
contains:
- "one_line_summary"
- "input_file"
- "mode"
- "dataset"
- path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.txt
contains:
- "BUSCO version"
- "The lineage dataset is"
- "BUSCO was run in mode"
- "Complete BUSCOs"
- "Missing BUSCOs"
- "Dependencies and versions"
- path: output/busco/test-bacteria_odb10-busco.batch_summary.txt
md5sum: e50690742e9ae6abdd2bf99334ff9e12
- path: output/busco/test-bacteroidetes_odb10-busco.batch_summary.txt
md5sum: 4c1b2c4317c88398eddc30877ed740d9
- path: output/busco/versions.yml
md5sum: 8aa830f71587d859df35c6cfab59f35d
- name: busco test_busco_genome_multi_fasta
command: nextflow run tests/modules/busco -entry test_busco_genome_multi_fasta -c tests/config/nextflow.config
tags:
- busco
files:
- path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.json
contains:
- "one_line_summary"
- "input_file"
- "mode"
- "dataset"
- path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.txt
contains:
- "BUSCO version"
- "The lineage dataset is"
- "BUSCO was run in mode"
- "Complete BUSCOs"
- "Missing BUSCOs"
- "Dependencies and versions"
- path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json
contains:
- "one_line_summary"
- "input_file"
- "mode"
- "dataset"
- path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt
contains:
- "BUSCO version"
- "The lineage dataset is"
- "BUSCO was run in mode"
- "Complete BUSCOs"
- "Missing BUSCOs"
- "Dependencies and versions"
- path: output/busco/test-bacteria_odb10-busco.batch_summary.txt
md5sum: 5360dfe83bec1f5741ee115e53e6b517
- path: output/busco/versions.yml
md5sum: 9a959eb0a1f765777dff1ea2f5c139c0
- name: busco test_busco_eukaryote_metaeuk
command: nextflow run tests/modules/busco -entry test_busco_eukaryote_metaeuk -c tests/config/nextflow.config
tags:
- busco
files:
- path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.json
contains:
- "one_line_summary"
- "input_file"
- "mode"
- "dataset"
- path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.txt
contains:
- "BUSCO version"
- "The lineage dataset is"
- "BUSCO was run in mode"
- "Complete BUSCOs"
- "Missing BUSCOs"
- "Dependencies and versions"
- path: output/busco/test-eukaryota_odb10-busco.batch_summary.txt
md5sum: a70806f99ba5706d7353d3353b3f1d2b
- path: output/busco/versions.yml
md5sum: 34a808c257e6db1b0456f3b4372bc477
- name: busco test_busco_eukaryote_augustus
command: nextflow run tests/modules/busco -entry test_busco_eukaryote_augustus -c tests/config/nextflow.config
tags:
- busco
files:
- path: output/busco/test-eukaryota_odb10-busco.batch_summary.txt
md5sum: 660393dd43cd6a093b952d4b8ad41e40
- path: output/busco/versions.yml
md5sum: 2caac915461410b16a1524ac064cd0df
- name: busco test_busco_protein
command: nextflow run tests/modules/busco -entry test_busco_protein -c tests/config/nextflow.config
tags:
- busco
files:
- path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.json
contains:
- "one_line_summary"
- "input_file"
- "mode"
- "dataset"
- path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.txt
contains:
- "BUSCO version"
- "The lineage dataset is"
- "BUSCO was run in mode"
- "Complete BUSCOs"
- "Missing BUSCOs"
- "Dependencies and versions"
- path: output/busco/test-bacteria_odb10-busco.batch_summary.txt
md5sum: fd3b4e30ce74d1fcb95d6286d6e2049f
- path: output/busco/versions.yml
md5sum: d7392261a57960a7e6aea609dce824f5
- name: busco test_busco_transcriptome
command: nextflow run tests/modules/busco -entry test_busco_transcriptome -c tests/config/nextflow.config
tags:
- busco
files:
- path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.json
contains:
- "one_line_summary"
- "input_file"
- "mode"
- "dataset"
- path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.txt
contains:
- "BUSCO version"
- "The lineage dataset is"
- "BUSCO was run in mode"
- "Complete BUSCOs"
- "Missing BUSCOs"
- "Dependencies and versions"
- path: output/busco/test-bacteria_odb10-busco.batch_summary.txt
md5sum: 9a176cafe66ac0adca89dc34ad2be13f
- path: output/busco/versions.yml
md5sum: 30eacbc7df70f6b1e72e0a7b6d02a7e1

View file

@ -4,10 +4,8 @@
- cnvpytor - cnvpytor
- cnvpytor/callcnvs - cnvpytor/callcnvs
files: files:
- path: output/cnvpytor/test.tsv - path: output/cnvpytor/test.pytor
md5sum: d41d8cd98f00b204e9800998ecf8427e
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 0bea08a253fcb2ff0ff79b99df77b9fa
- name: cnvpytor callcnvs test_cnvpytor_callcnvs stub - name: cnvpytor callcnvs test_cnvpytor_callcnvs stub
command: nextflow run tests/modules/cnvpytor/callcnvs -entry test_cnvpytor_callcnvs -c tests/config/nextflow.config -stub-run command: nextflow run tests/modules/cnvpytor/callcnvs -entry test_cnvpytor_callcnvs -c tests/config/nextflow.config -stub-run
@ -15,6 +13,5 @@
- cnvpytor - cnvpytor
- cnvpytor/callcnvs - cnvpytor/callcnvs
files: files:
- path: output/cnvpytor/test.tsv - path: output/cnvpytor/test.pytor
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 0bea08a253fcb2ff0ff79b99df77b9fa

View file

@ -5,9 +5,7 @@
- cnvpytor/histogram - cnvpytor/histogram
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
md5sum: aa03a8fa15b39f77816705a48e10312a
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 0f4d75c4f3a3eb26c22616d12b0b78b2
- name: cnvpytor histogram test_cnvpytor_histogram stub - name: cnvpytor histogram test_cnvpytor_histogram stub
command: nextflow run tests/modules/cnvpytor/histogram -entry test_cnvpytor_histogram -c tests/config/nextflow.config -stub-run command: nextflow run tests/modules/cnvpytor/histogram -entry test_cnvpytor_histogram -c tests/config/nextflow.config -stub-run
@ -17,4 +15,3 @@
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 0f4d75c4f3a3eb26c22616d12b0b78b2

View file

@ -6,7 +6,6 @@
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 5834495324c08a37f3fd73ccdd881dc8
- name: cnvpytor importreaddepth test_cnvpytor_importreaddepth stub - name: cnvpytor importreaddepth test_cnvpytor_importreaddepth stub
command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth -c tests/config/nextflow.config -stub-run command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth -c tests/config/nextflow.config -stub-run
@ -16,7 +15,6 @@
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 5834495324c08a37f3fd73ccdd881dc8
- name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram - name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram
command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config
@ -26,7 +24,6 @@
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: dfa0afb0982d985b96d1633f71ebb82a
- name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram stub - name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram stub
command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config -stub-run command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config -stub-run
@ -36,4 +33,3 @@
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: dfa0afb0982d985b96d1633f71ebb82a

View file

@ -5,9 +5,7 @@
- cnvpytor/partition - cnvpytor/partition
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
md5sum: aa03a8fa15b39f77816705a48e10312a
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 7fd6ec952a316463bcd324f176b46b64
- name: cnvpytor partition test_cnvpytor_partition stub - name: cnvpytor partition test_cnvpytor_partition stub
command: nextflow run tests/modules/cnvpytor/partition -entry test_cnvpytor_partition -c tests/config/nextflow.config -stub-run command: nextflow run tests/modules/cnvpytor/partition -entry test_cnvpytor_partition -c tests/config/nextflow.config -stub-run
@ -17,4 +15,3 @@
files: files:
- path: output/cnvpytor/test.pytor - path: output/cnvpytor/test.pytor
- path: output/cnvpytor/versions.yml - path: output/cnvpytor/versions.yml
md5sum: 7fd6ec952a316463bcd324f176b46b64

View file

@ -0,0 +1,42 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { CNVPYTOR_VIEW } from '../../../../modules/cnvpytor/view/main.nf'
workflow test_cnvpytor_view {
input = [
[ id:'test'], // meta map
[file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true)]
]
bin_sizes = "10000 100000"
CNVPYTOR_VIEW ( input, bin_sizes, [] )
}
workflow test_cnvpytor_view_tsvout {
input = [
[ id:'test'], // meta map
[file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true)]
]
output_suffix = "tsv"
CNVPYTOR_VIEW ( input, [], output_suffix )
}
workflow test_cnvpytor_view_stub {
input = [
[ id:'test'], // meta map
[file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true)]
]
bin_sizes = []
output_suffix = []
CNVPYTOR_VIEW ( input, bin_sizes, output_suffix )
}

View file

@ -0,0 +1,7 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
withName: CNVPYTOR_VIEW {
ext.args = '10000 100000'
}
}

View file

@ -0,0 +1,27 @@
- name: cnvpytor view test_cnvpytor_view
command: nextflow run tests/modules/cnvpytor/view -entry test_cnvpytor_view -c tests/config/nextflow.config
tags:
- cnvpytor
- cnvpytor/view
files:
- path: output/cnvpytor/test_10000.vcf
- path: output/cnvpytor/test_100000.vcf
- path: output/cnvpytor/versions.yml
- name: cnvpytor view test_cnvpytor_view tsv
command: nextflow run tests/modules/cnvpytor/view -entry test_cnvpytor_view_tsvout -c tests/config/nextflow.config
tags:
- cnvpytor
- cnvpytor/view
files:
- path: output/cnvpytor/test_1000.tsv
- path: output/cnvpytor/versions.yml
- name: cnvpytor view test_cnvpytor_view stub
command: nextflow run tests/modules/cnvpytor/view -entry test_cnvpytor_view_stub -c tests/config/nextflow.config -stub-run
tags:
- cnvpytor
- cnvpytor/view
files:
- path: output/cnvpytor/test.vcf
- path: output/cnvpytor/versions.yml

View file

@ -10,5 +10,5 @@ workflow test_ensemblvep {
file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true)
] ]
ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [] ) ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [], [] )
} }

View file

@ -2,15 +2,27 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { KRONA_KTIMPORTTAXONOMY } from '../../../../modules/krona/ktimporttaxonomy/main.nf' include { KRONA_KTIMPORTTAXONOMY as KRONA_KTIMPORTTAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf'
include { KRONA_KTIMPORTTAXONOMY as KRONA_KTIMPORTTAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf'
workflow test_krona_ktimporttaxonomy { workflow test_krona_ktimporttaxonomy_reads {
input = [ input = [
[ id:'test', single_end:false ], // meta map [ id:'test', single_end:false ], // meta map
file(params.test_data['generic']['txt']['hello'], checkIfExists: true) file(params.test_data['sarscov2']['metagenome']['classified_reads_assignment'], checkIfExists: true)
] ]
taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) taxonomy = file(params.test_data['sarscov2']['metagenome']['krona_taxonomy'], checkIfExists: true)
KRONA_KTIMPORTTAXONOMY ( input, taxonomy ) KRONA_KTIMPORTTAXONOMY_READS ( input, taxonomy )
}
workflow test_krona_ktimporttaxonomy_report {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['metagenome']['kraken_report'], checkIfExists: true)
]
taxonomy = file(params.test_data['sarscov2']['metagenome']['krona_taxonomy'], checkIfExists: true)
KRONA_KTIMPORTTAXONOMY_REPORT ( input, taxonomy )
} }

View file

@ -2,4 +2,12 @@ process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
withName: KRONA_KTIMPORTTAXONOMY_READS {
ext.args = '-t 3'
}
withName: KRONA_KTIMPORTTAXONOMY_REPORT {
ext.args = '-m 3 -t 5'
}
} }

View file

@ -1,9 +1,23 @@
- name: krona ktimporttaxonomy test_krona_ktimporttaxonomy - name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_reads
command: nextflow run ./tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy -c ./tests/config/nextflow.config -c ./tests/modules/krona/ktimporttaxonomy/nextflow.config command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_reads -c tests/config/nextflow.config
tags: tags:
- krona/ktimporttaxonomy
- krona - krona
- krona/ktimporttaxonomy
files: files:
- path: output/krona/taxonomy.krona.html - path: output/krona/taxonomy.krona.html
contains: contains:
- "DOCTYPE html PUBLIC" - "DOCTYPE html PUBLIC"
- path: output/krona/versions.yml
md5sum: 660a8c151191bf4c63bd96db2c7fe503
- name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_report
command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_report -c tests/config/nextflow.config
tags:
- krona
- krona/ktimporttaxonomy
files:
- path: output/krona/taxonomy.krona.html
contains:
- "DOCTYPE html PUBLIC"
- path: output/krona/versions.yml
md5sum: 8a593c16bb2d4132638fb0fc342fe2b7

View file

@ -0,0 +1,9 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { KRONA_KTUPDATETAXONOMY } from '../../../../modules/krona/ktupdatetaxonomy/main.nf'
workflow test_krona_ktupdatetaxonomy {
KRONA_KTUPDATETAXONOMY ( )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,7 @@
- name: krona ktupdatetaxonomy test_krona_ktupdatetaxonomy
command: nextflow run ./tests/modules/krona/ktupdatetaxonomy -entry test_krona_ktupdatetaxonomy -c ./tests/config/nextflow.config -c ./tests/modules/krona/ktupdatetaxonomy/nextflow.config
tags:
- krona
- krona/ktupdatetaxonomy
files:
- path: output/krona/taxonomy/taxonomy.tab

View file

@ -0,0 +1,15 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { MD5SUM } from '../../../modules/md5sum/main.nf'
workflow test_md5sum {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true)
]
MD5SUM ( input )
}

View file

@ -0,0 +1,3 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,8 @@
- name: md5sum test_md5sum
command: nextflow run tests/modules/md5sum -entry test_md5sum -c tests/config/nextflow.config
tags:
- md5sum
files:
- path: output/md5sum/test.paired_end.bam.md5
md5sum: 1163095be8fdfb2acb3cc6c027389c4b
- path: output/md5sum/versions.yml

View file

@ -0,0 +1,12 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { MOTUS_DOWNLOADDB } from '../../../../modules/motus/downloaddb/main.nf'
workflow test_motus_downloaddb {
input = file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py')
MOTUS_DOWNLOADDB ( input )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,7 @@
- name: motus downloaddb test_motus_downloaddb
command: nextflow run tests/modules/motus/downloaddb -entry test_motus_downloaddb -c tests/config/nextflow.config
tags:
- motus
- motus/downloaddb
files:
- path: output/motus/db_mOTU/db_mOTU_versions

View file

@ -1,14 +1,15 @@
- name: samtools bam2fq test_samtools_bam2fq_nosplit - name: samtools bam2fq test_samtools_bam2fq_nosplit
command: nextflow run ./tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_nosplit -c ./tests/config/nextflow.config -c ./tests/modules/samtools/bam2fq/nextflow.config command: nextflow run tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_nosplit -c tests/config/nextflow.config
tags: tags:
- samtools/bam2fq - samtools/bam2fq
- samtools - samtools
files: files:
- path: output/samtools/test_interleaved.fq.gz - path: output/samtools/test_interleaved.fq.gz
md5sum: d733e66d29a4b366bf9df8c42f845256 - path: output/samtools/versions.yml
md5sum: 4973eac1b6a8f090d5fcd4456d65a894
- name: samtools bam2fq test_samtools_bam2fq_withsplit - name: samtools bam2fq test_samtools_bam2fq_withsplit
command: nextflow run ./tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_withsplit -c ./tests/config/nextflow.config -c ./tests/modules/samtools/bam2fq/nextflow.config command: nextflow run tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_withsplit -c tests/config/nextflow.config
tags: tags:
- samtools/bam2fq - samtools/bam2fq
- samtools - samtools
@ -21,3 +22,5 @@
md5sum: 709872fc2910431b1e8b7074bfe38c67 md5sum: 709872fc2910431b1e8b7074bfe38c67
- path: output/samtools/test_singleton.fq.gz - path: output/samtools/test_singleton.fq.gz
md5sum: 709872fc2910431b1e8b7074bfe38c67 md5sum: 709872fc2910431b1e8b7074bfe38c67
- path: output/samtools/versions.yml
md5sum: e92d21bbcda2fed7cb438d95c51edff0

View file

@ -0,0 +1,15 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { SHASUM } from '../../../modules/shasum/main.nf'
workflow test_shasum {
input = [
[ id:'test', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true)
]
SHASUM ( input )
}

View file

@ -0,0 +1,5 @@
process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
}

View file

@ -0,0 +1,8 @@
- name: shasum test_shasum
command: nextflow run tests/modules/shasum -entry test_shasum -c tests/config/nextflow.config
tags:
- shasum
files:
- path: output/shasum/test.paired_end.bam.sha256
md5sum: 138a19e100f09fc975ea1b717da9b6dd
- path: output/shasum/versions.yml

View file

@ -2,7 +2,7 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { ANNOTATION_ENSEMBLVEP } from '../../../../subworkflows/nf-core/annotation_ensemblvep/main' include { ANNOTATION_ENSEMBLVEP } from '../../../../../subworkflows/nf-core/annotation/ensemblvep/main'
workflow annotation_ensemblvep { workflow annotation_ensemblvep {
input = [ input = [
@ -10,5 +10,5 @@ workflow annotation_ensemblvep {
file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true)
] ]
ANNOTATION_ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [] ) ANNOTATION_ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [], [] )
} }

View file

@ -7,7 +7,7 @@ process {
publishDir = [ enabled: false ] publishDir = [ enabled: false ]
} }
withName: ANNOTATION_BGZIPTABIX { withName: TABIX_BGZIPTABIX {
ext.prefix = { "${meta.id}_VEP.ann.vcf" } ext.prefix = { "${meta.id}_VEP.ann.vcf" }
} }

View file

@ -2,7 +2,7 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { ANNOTATION_SNPEFF } from '../../../../subworkflows/nf-core/annotation_snpeff/main' include { ANNOTATION_SNPEFF } from '../../../../../subworkflows/nf-core/annotation_snpeff/main'
workflow annotation_snpeff { workflow annotation_snpeff {
input = [ input = [

View file

@ -7,7 +7,7 @@ process {
publishDir = [ enabled: false ] publishDir = [ enabled: false ]
} }
withName: ANNOTATION_BGZIPTABIX { withName: TABIX_BGZIPTABIX {
ext.prefix = { "${meta.id}_snpEff.ann.vcf" } ext.prefix = { "${meta.id}_snpEff.ann.vcf" }
} }