mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-12-22 11:08:17 +00:00
Merge branch 'master' into gatk_426
This commit is contained in:
commit
868150e1af
38 changed files with 862 additions and 334 deletions
|
@ -2,15 +2,20 @@ process ARRIBA {
|
|||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::arriba=2.1.0" : null)
|
||||
conda (params.enable_conda ? "bioconda::arriba=2.2.1" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/arriba:2.1.0--h3198e80_1' :
|
||||
'quay.io/biocontainers/arriba:2.1.0--h3198e80_1' }"
|
||||
'https://depot.galaxyproject.org/singularity/arriba:2.2.1--hecb563c_2' :
|
||||
'quay.io/biocontainers/arriba:2.2.1--hecb563c_2' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(bam)
|
||||
path fasta
|
||||
path gtf
|
||||
path blacklist
|
||||
path known_fusions
|
||||
path structural_variants
|
||||
path tags
|
||||
path protein_domains
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.fusions.tsv") , emit: fusions
|
||||
|
@ -23,7 +28,12 @@ process ARRIBA {
|
|||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def blacklist = (args.contains('-b')) ? '' : '-f blacklist'
|
||||
def blacklist = blacklist ? "-b $blacklist" : "-f blacklist"
|
||||
def known_fusions = known_fusions ? "-k $known_fusions" : ""
|
||||
def structural_variants = structural_variants ? "-d $structual_variants" : ""
|
||||
def tags = tags ? "-t $tags" : ""
|
||||
def protein_domains = protein_domains ? "-p $protein_domains" : ""
|
||||
|
||||
"""
|
||||
arriba \\
|
||||
-x $bam \\
|
||||
|
@ -32,6 +42,10 @@ process ARRIBA {
|
|||
-o ${prefix}.fusions.tsv \\
|
||||
-O ${prefix}.fusions.discarded.tsv \\
|
||||
$blacklist \\
|
||||
$known_fusions \\
|
||||
$structural_variants \\
|
||||
$tags \\
|
||||
$protein_domains \\
|
||||
$args
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
|
@ -39,4 +53,14 @@ process ARRIBA {
|
|||
arriba: \$(arriba -h | grep 'Version:' 2>&1 | sed 's/Version:\s//')
|
||||
END_VERSIONS
|
||||
"""
|
||||
|
||||
stub:
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
echo stub > ${prefix}.fusions.tsv
|
||||
echo stub > ${prefix}.fusions.discarded.tsv
|
||||
|
||||
echo "${task.process}:" > versions.yml
|
||||
echo ' arriba: 2.2.1' >> versions.yml
|
||||
"""
|
||||
}
|
||||
|
|
|
@ -30,6 +30,26 @@ input:
|
|||
type: file
|
||||
description: Annotation GTF file
|
||||
pattern: "*.{gtf}"
|
||||
- blacklist:
|
||||
type: file
|
||||
description: Blacklist file
|
||||
pattern: "*.{tsv}"
|
||||
- known_fusions:
|
||||
type: file
|
||||
description: Known fusions file
|
||||
pattern: "*.{tsv}"
|
||||
- structural_variants:
|
||||
type: file
|
||||
description: Structural variants file
|
||||
pattern: "*.{tsv}"
|
||||
- tags:
|
||||
type: file
|
||||
description: Tags file
|
||||
pattern: "*.{tsv}"
|
||||
- protein_domains:
|
||||
type: file
|
||||
description: Protein domains file
|
||||
pattern: "*.{gff3}"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
|
@ -51,4 +71,4 @@ output:
|
|||
pattern: "*.{fusions.discarded.tsv}"
|
||||
|
||||
authors:
|
||||
- "@praveenraj2018"
|
||||
- "@praveenraj2018,@rannick"
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
process BOWTIE2_ALIGN {
|
||||
tag "$meta.id"
|
||||
label 'process_high'
|
||||
label "process_high"
|
||||
|
||||
conda (params.enable_conda ? 'bioconda::bowtie2=2.4.4 bioconda::samtools=1.15.1 conda-forge::pigz=2.6' : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0' :
|
||||
'quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0' }"
|
||||
conda (params.enable_conda ? "bioconda::bowtie2=2.4.4 bioconda::samtools=1.15.1 conda-forge::pigz=2.6" : null)
|
||||
container "${ workflow.containerEngine == "singularity" && !task.ext.singularity_pull_docker_container ?
|
||||
"https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0" :
|
||||
"quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0" }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(reads)
|
||||
|
@ -13,59 +13,50 @@ process BOWTIE2_ALIGN {
|
|||
val save_unaligned
|
||||
|
||||
output:
|
||||
tuple val(meta), path('*.bam') , emit: bam
|
||||
tuple val(meta), path('*.log') , emit: log
|
||||
tuple val(meta), path('*fastq.gz'), emit: fastq, optional:true
|
||||
tuple val(meta), path("*.bam") , emit: bam
|
||||
tuple val(meta), path("*.log") , emit: log
|
||||
tuple val(meta), path("*fastq.gz"), emit: fastq, optional:true
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def args2 = task.ext.args2 ?: ''
|
||||
def args = task.ext.args ?: ""
|
||||
def args2 = task.ext.args2 ?: ""
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
if (meta.single_end) {
|
||||
def unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : ''
|
||||
"""
|
||||
INDEX=`find -L ./ -name "*.rev.1.bt2" | sed 's/.rev.1.bt2//'`
|
||||
[ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed 's/.rev.1.bt2l//'`
|
||||
[ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1
|
||||
bowtie2 \\
|
||||
-x \$INDEX \\
|
||||
-U $reads \\
|
||||
--threads $task.cpus \\
|
||||
$unaligned \\
|
||||
$args \\
|
||||
2> ${prefix}.bowtie2.log \\
|
||||
| samtools view -@ $task.cpus $args2 -bhS -o ${prefix}.bam -
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//')
|
||||
samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
|
||||
pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
def unaligned = ""
|
||||
def reads_args = ""
|
||||
if (meta.single_end) {
|
||||
unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : ""
|
||||
reads_args = "-U ${reads}"
|
||||
} else {
|
||||
def unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : ''
|
||||
unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : ""
|
||||
reads_args = "-1 ${reads[0]} -2 ${reads[1]}"
|
||||
}
|
||||
|
||||
def samtools_command = "samtools view -@ $task.cpus --bam --with-header ${args2} > ${prefix}.bam"
|
||||
|
||||
|
||||
"""
|
||||
INDEX=`find -L ./ -name "*.rev.1.bt2" | sed 's/.rev.1.bt2//'`
|
||||
[ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed 's/.rev.1.bt2l//'`
|
||||
[ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1
|
||||
INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/.rev.1.bt2//"`
|
||||
[ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed "s/.rev.1.bt2l//"`
|
||||
[ -z "\$INDEX" ] && echo "Bowtie2 index files not found" 1>&2 && exit 1
|
||||
|
||||
bowtie2 \\
|
||||
-x \$INDEX \\
|
||||
-1 ${reads[0]} \\
|
||||
-2 ${reads[1]} \\
|
||||
$reads_args \\
|
||||
--threads $task.cpus \\
|
||||
$unaligned \\
|
||||
$args \\
|
||||
2> ${prefix}.bowtie2.log \\
|
||||
| samtools view -@ $task.cpus $args2 -bhS -o ${prefix}.bam -
|
||||
| $samtools_command
|
||||
|
||||
if [ -f ${prefix}.unmapped.fastq.1.gz ]; then
|
||||
mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz
|
||||
fi
|
||||
|
||||
if [ -f ${prefix}.unmapped.fastq.2.gz ]; then
|
||||
mv ${prefix}.unmapped.fastq.2.gz ${prefix}.unmapped_2.fastq.gz
|
||||
fi
|
||||
|
@ -77,5 +68,5 @@ process BOWTIE2_ALIGN {
|
|||
pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
|
|
20
modules/custom/sratoolsncbisettings/main.nf
Normal file
20
modules/custom/sratoolsncbisettings/main.nf
Normal file
|
@ -0,0 +1,20 @@
|
|||
process CUSTOM_SRATOOLSNCBISETTINGS {
|
||||
tag 'ncbi-settings'
|
||||
label 'process_low'
|
||||
|
||||
conda (params.enable_conda ? 'bioconda::sra-tools=2.11.0' : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/sra-tools:2.11.0--pl5321ha49a11a_3' :
|
||||
'quay.io/biocontainers/sra-tools:2.11.0--pl5321ha49a11a_3' }"
|
||||
|
||||
output:
|
||||
path('*.mkfg') , emit: ncbi_settings
|
||||
path 'versions.yml', emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
shell:
|
||||
config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n"
|
||||
template 'detect_ncbi_settings.sh'
|
||||
}
|
28
modules/custom/sratoolsncbisettings/meta.yml
Normal file
28
modules/custom/sratoolsncbisettings/meta.yml
Normal file
|
@ -0,0 +1,28 @@
|
|||
name: "sratoolsncbisettings"
|
||||
description: Test for the presence of suitable NCBI settings or create them on the fly.
|
||||
keywords:
|
||||
- NCBI
|
||||
- settings
|
||||
- sra-tools
|
||||
- prefetch
|
||||
- fasterq-dump
|
||||
tools:
|
||||
- "sratools":
|
||||
description: "SRA Toolkit and SDK from NCBI"
|
||||
homepage: https://github.com/ncbi/sra-tools
|
||||
documentation: https://github.com/ncbi/sra-tools/wiki
|
||||
tool_dev_url: https://github.com/ncbi/sra-tools
|
||||
licence: "['Public Domain']"
|
||||
|
||||
output:
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- ncbi_settings:
|
||||
type: file
|
||||
description: An NCBI user settings file.
|
||||
pattern: "*.mkfg"
|
||||
|
||||
authors:
|
||||
- "@Midnighter"
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -u
|
||||
|
||||
|
||||
# Get the expected NCBI settings path and define the environment variable
|
||||
# `NCBI_SETTINGS`.
|
||||
eval "$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')"
|
||||
|
||||
# If the user settings do not exist yet, create a file suitable for `prefetch`
|
||||
# and `fasterq-dump`. If an existing settings file does not contain the required
|
||||
# values, error out with a helpful message.
|
||||
if [[ ! -f "${NCBI_SETTINGS}" ]]; then
|
||||
printf '!{config}' > 'user-settings.mkfg'
|
||||
else
|
||||
prefetch --help &> /dev/null
|
||||
if [[ $? = 78 ]]; then
|
||||
echo "You have an existing vdb-config at '${NCBI_SETTINGS}' but it is"\
|
||||
"missing the required entries for /LIBS/GUID and"\
|
||||
"/libs/cloud/report_instance_identity."\
|
||||
"Feel free to add the following to your settings file:" >&2
|
||||
echo "$(printf '!{config}')" >&2
|
||||
exit 1
|
||||
fi
|
||||
fasterq-dump --help &> /dev/null
|
||||
if [[ $? = 78 ]]; then
|
||||
echo "You have an existing vdb-config at '${NCBI_SETTINGS}' but it is"\
|
||||
"missing the required entries for /LIBS/GUID and"\
|
||||
"/libs/cloud/report_instance_identity."\
|
||||
"Feel free to add the following to your settings file:" >&2
|
||||
echo "$(printf '!{config}')" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ "${NCBI_SETTINGS}" != *.mkfg ]]; then
|
||||
echo "The detected settings '${NCBI_SETTINGS}' do not have the required"\
|
||||
"file extension '.mkfg'." >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "${NCBI_SETTINGS}" ./
|
||||
fi
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"!{task.process}":
|
||||
sratools: $(vdb-config --version 2>&1 | grep -Eo '[0-9.]+')
|
||||
END_VERSIONS
|
59
modules/rtgtools/vcfeval/main.nf
Normal file
59
modules/rtgtools/vcfeval/main.nf
Normal file
|
@ -0,0 +1,59 @@
|
|||
process RTGTOOLS_VCFEVAL {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::rtg-tools=3.12.1" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/rtg-tools:3.12.1--hdfd78af_0':
|
||||
'quay.io/biocontainers/rtg-tools:3.12.1--hdfd78af_0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(query_vcf), path(query_vcf_tbi)
|
||||
tuple path(truth_vcf), path(truth_vcf_tbi)
|
||||
path(truth_regions)
|
||||
path(evaluation_regions)
|
||||
path(sdf)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("**results/{done,progress,*.log}") , emit: logs
|
||||
tuple val(meta), path("**tp.vcf.gz"), path("**tp.vcf.gz.tbi") , emit: tp
|
||||
tuple val(meta), path("**fn.vcf.gz"), path("**fn.vcf.gz.tbi") , emit: fn
|
||||
tuple val(meta), path("**fp.vcf.gz"), path("**fp.vcf.gz.tbi") , emit: fp
|
||||
tuple val(meta), path("**baseline.vcf.gz"), path("**baseline.vcf.gz.tbi") , emit: baseline
|
||||
tuple val(meta), path("**.tsv.gz") , emit: roc
|
||||
tuple val(meta), path("**results/summary.txt") , emit: summary
|
||||
tuple val(meta), path("**results/phasing.txt") , emit: phasing
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ""
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def bed_regions = truth_regions ? "--bed-regions=$truth_regions" : ""
|
||||
def eval_regions = evaluation_regions ? "--evaluation-regions=$evaluation_regions" : ""
|
||||
def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf"
|
||||
def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf"
|
||||
|
||||
"""
|
||||
$truth_index
|
||||
$query_index
|
||||
|
||||
rtg vcfeval \\
|
||||
$args \\
|
||||
--baseline=$truth_vcf \\
|
||||
$bed_regions \\
|
||||
$eval_regions \\
|
||||
--calls=$query_vcf \\
|
||||
--output=${prefix}_results \\
|
||||
--template=$sdf \\
|
||||
--threads=$task.cpus \\
|
||||
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
rtg-tools: \$(echo \$(rtg version | head -n 1 | awk '{print \$4}'))
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
95
modules/rtgtools/vcfeval/meta.yml
Normal file
95
modules/rtgtools/vcfeval/meta.yml
Normal file
|
@ -0,0 +1,95 @@
|
|||
name: "rtgtools_vcfeval"
|
||||
description: The VCFeval tool of RTG tools. It is used to evaluate called variants for agreement with a baseline variant set
|
||||
keywords:
|
||||
- benchmarking
|
||||
- vcf
|
||||
- rtg-tools
|
||||
tools:
|
||||
- "rtgtools":
|
||||
description: "RealTimeGenomics Tools -- Utilities for accurate VCF comparison and manipulation"
|
||||
homepage: "https://www.realtimegenomics.com/products/rtg-tools"
|
||||
documentation: "https://github.com/RealTimeGenomics/rtg-tools"
|
||||
tool_dev_url: "https://github.com/RealTimeGenomics/rtg-tools"
|
||||
doi: ""
|
||||
licence: "['BSD']"
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- truth_vcf:
|
||||
type: file
|
||||
description: A standard VCF to compare against
|
||||
pattern: "*.{vcf,vcf.gz}"
|
||||
- truth_vcf_index:
|
||||
type: file
|
||||
description: The index of the standard VCF (optional)
|
||||
pattern: "*.tbi"
|
||||
- query_vcf:
|
||||
type: file
|
||||
description: A VCF with called variants to benchmark against the standard
|
||||
pattern: "*.{vcf,vcf.gz}"
|
||||
- query_vcf_index:
|
||||
type: file
|
||||
description: The index of the called VCF (optional)
|
||||
pattern: "*.tbi"
|
||||
- truth_regions:
|
||||
type: file
|
||||
description: A BED file containining the strict regions where VCFeval should only evaluate the fully overlapping variants (optional)
|
||||
pattern: "*.bed"
|
||||
- evaluation_regions:
|
||||
type: file
|
||||
description: A BED file containing the regions where VCFeval will evaluate every fully and partially overlapping variant (optional)
|
||||
pattern: "*.bed"
|
||||
- sdf:
|
||||
type: file
|
||||
description: The SDF (RTG Sequence Data File) folder of the reference genome
|
||||
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"
|
||||
- logging:
|
||||
type: file
|
||||
description: Files containing logging from vcfeval
|
||||
pattern: "*{done,progress,.log}"
|
||||
- tp:
|
||||
type: file
|
||||
description: A tuple containing the VCF and TBI file for the true positive variants
|
||||
pattern: "tp.vcf{.gz,.gz.tbi}"
|
||||
- baseline:
|
||||
type: file
|
||||
description: A tuple containing the VCF and TBI file for the baseline true positive variants
|
||||
pattern: "tp-baseline.vcf{.gz,.gz.tbi}"
|
||||
- fp:
|
||||
type: file
|
||||
description: A tuple containing the VCF and TBI file for the false positive variants
|
||||
pattern: "fp.vcf{.gz,.gz.tbi}"
|
||||
- fn:
|
||||
type: file
|
||||
description: A tuple containing the VCF and TBI file for the false negative variants
|
||||
pattern: "fn.vcf{.gz,.gz.tbi}"
|
||||
- roc:
|
||||
type: file
|
||||
description: TSV files containing ROC data for the evaluated variants
|
||||
pattern: "*.tsv.gz"
|
||||
- summary:
|
||||
type: file
|
||||
description: A TXT file containing the summary of the evaluation
|
||||
pattern: "summary.txt"
|
||||
- phasing:
|
||||
type: file
|
||||
description: A TXT file containing the data on the phasing
|
||||
pattern: "phasing.txt"
|
||||
|
||||
authors:
|
||||
- "@nvnieuwk"
|
|
@ -9,6 +9,7 @@ process SRATOOLS_FASTERQDUMP {
|
|||
|
||||
input:
|
||||
tuple val(meta), path(sra)
|
||||
path ncbi_settings
|
||||
|
||||
output:
|
||||
tuple val(meta), path(output), emit: reads
|
||||
|
@ -20,17 +21,12 @@ process SRATOOLS_FASTERQDUMP {
|
|||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def args2 = task.ext.args2 ?: ''
|
||||
def config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n"
|
||||
// Paired-end data extracted by fasterq-dump (--split-3 the default) always creates
|
||||
// *_1.fastq *_2.fastq files but sometimes also an additional *.fastq file
|
||||
// for unpaired reads which we ignore here.
|
||||
output = meta.single_end ? '*.fastq.gz' : '*_{1,2}.fastq.gz'
|
||||
"""
|
||||
eval "\$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')"
|
||||
if [[ ! -f "\${NCBI_SETTINGS}" ]]; then
|
||||
mkdir -p "\$(dirname "\${NCBI_SETTINGS}")"
|
||||
printf '${config}' > "\${NCBI_SETTINGS}"
|
||||
fi
|
||||
export NCBI_SETTINGS="\$PWD/${ncbi_settings}"
|
||||
|
||||
fasterq-dump \\
|
||||
$args \\
|
||||
|
|
|
@ -10,7 +10,7 @@ tools:
|
|||
homepage: https://github.com/ncbi/sra-tools
|
||||
documentation: https://github.com/ncbi/sra-tools/wiki
|
||||
tool_dev_url: https://github.com/ncbi/sra-tools
|
||||
licence: ["US-Government-Work"]
|
||||
licence: ["Public Domain"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
@ -22,6 +22,11 @@ input:
|
|||
type: directory
|
||||
description: Directory containing ETL data for the given SRA.
|
||||
pattern: "*/*.sra"
|
||||
- ncbi_settings:
|
||||
type: file
|
||||
description: >
|
||||
An NCBI user settings file.
|
||||
pattern: "*.mkfg"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
|
|
|
@ -9,10 +9,11 @@ process SRATOOLS_PREFETCH {
|
|||
|
||||
input:
|
||||
tuple val(meta), val(id)
|
||||
path ncbi_settings
|
||||
|
||||
output:
|
||||
tuple val(meta), path(id), emit: sra
|
||||
path "versions.yml" , emit: versions
|
||||
path 'versions.yml' , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
@ -20,7 +21,5 @@ process SRATOOLS_PREFETCH {
|
|||
shell:
|
||||
args = task.ext.args ?: ''
|
||||
args2 = task.ext.args2 ?: '5 1 100' // <num retries> <base delay in seconds> <max delay in seconds>
|
||||
config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n"
|
||||
|
||||
template 'retry_with_backoff.sh'
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ tools:
|
|||
homepage: https://github.com/ncbi/sra-tools
|
||||
documentation: https://github.com/ncbi/sra-tools/wiki
|
||||
tool_dev_url: https://github.com/ncbi/sra-tools
|
||||
licence: ["US-Government-Work"]
|
||||
licence: ["Public Domain"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
@ -22,6 +22,11 @@ input:
|
|||
type: val
|
||||
description: >
|
||||
A string denoting an SRA id.
|
||||
- ncbi_settings:
|
||||
type: file
|
||||
description: >
|
||||
An NCBI user settings file.
|
||||
pattern: "*.mkfg"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
|
|
|
@ -40,11 +40,7 @@ retry_with_backoff() {
|
|||
echo "${output}"
|
||||
}
|
||||
|
||||
eval "$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')"
|
||||
if [[ ! -f "${NCBI_SETTINGS}" ]]; then
|
||||
mkdir -p "$(dirname "${NCBI_SETTINGS}")"
|
||||
printf '!{config}' > "${NCBI_SETTINGS}"
|
||||
fi
|
||||
export NCBI_SETTINGS="$PWD/!{ncbi_settings}"
|
||||
|
||||
retry_with_backoff !{args2} \
|
||||
prefetch \
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
//
|
||||
// Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA).
|
||||
//
|
||||
|
||||
params.prefetch_options = [:]
|
||||
params.fasterqdump_options = [:]
|
||||
|
||||
include { SRATOOLS_PREFETCH } from '../../../modules/sratools/prefetch/main' addParams( options: params.prefetch_options )
|
||||
include { SRATOOLS_FASTERQDUMP } from '../../../modules/sratools/fasterqdump/main' addParams( options: params.fasterqdump_options )
|
||||
|
||||
workflow SRA_FASTQ {
|
||||
take:
|
||||
sra_ids // channel: [ val(meta), val(id) ]
|
||||
|
||||
main:
|
||||
|
||||
ch_versions = Channel.empty()
|
||||
|
||||
//
|
||||
// Prefetch sequencing reads in SRA format.
|
||||
//
|
||||
SRATOOLS_PREFETCH ( sra_ids )
|
||||
ch_versions = ch_versions.mix( SRATOOLS_PREFETCH.out.versions.first() )
|
||||
|
||||
//
|
||||
// Convert the SRA format into one or more compressed FASTQ files.
|
||||
//
|
||||
SRATOOLS_FASTERQDUMP ( SRATOOLS_PREFETCH.out.sra )
|
||||
ch_versions = ch_versions.mix( SRATOOLS_FASTERQDUMP.out.versions.first() )
|
||||
|
||||
emit:
|
||||
reads = SRATOOLS_FASTERQDUMP.out.reads // channel: [ val(meta), [ reads ] ]
|
||||
versions = ch_versions // channel: [ versions.yml ]
|
||||
}
|
38
subworkflows/nf-core/srafastq/main.nf
Normal file
38
subworkflows/nf-core/srafastq/main.nf
Normal file
|
@ -0,0 +1,38 @@
|
|||
include { CUSTOM_SRATOOLSNCBISETTINGS } from '../../../modules/custom/sratoolsncbisettings/main'
|
||||
include { SRATOOLS_PREFETCH } from '../../../modules/sratools/prefetch/main'
|
||||
include { SRATOOLS_FASTERQDUMP } from '../../../modules/sratools/fasterqdump/main'
|
||||
|
||||
/**
|
||||
* Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA).
|
||||
*/
|
||||
workflow SRAFASTQ {
|
||||
take:
|
||||
sra_ids // channel: [ val(meta), val(id) ]
|
||||
|
||||
main:
|
||||
|
||||
ch_versions = Channel.empty()
|
||||
|
||||
//
|
||||
// Detect existing NCBI user settings or create new ones.
|
||||
//
|
||||
CUSTOM_SRATOOLSNCBISETTINGS()
|
||||
def settings = CUSTOM_SRATOOLSNCBISETTINGS.out.ncbi_settings
|
||||
ch_versions = ch_versions.mix( CUSTOM_SRATOOLSNCBISETTINGS.out.versions )
|
||||
|
||||
//
|
||||
// Prefetch sequencing reads in SRA format.
|
||||
//
|
||||
SRATOOLS_PREFETCH ( sra_ids, settings )
|
||||
ch_versions = ch_versions.mix( SRATOOLS_PREFETCH.out.versions.first() )
|
||||
|
||||
//
|
||||
// Convert the SRA format into one or more compressed FASTQ files.
|
||||
//
|
||||
SRATOOLS_FASTERQDUMP ( SRATOOLS_PREFETCH.out.sra, settings )
|
||||
ch_versions = ch_versions.mix( SRATOOLS_FASTERQDUMP.out.versions.first() )
|
||||
|
||||
emit:
|
||||
reads = SRATOOLS_FASTERQDUMP.out.reads // channel: [ val(meta), [ reads ] ]
|
||||
versions = ch_versions // channel: [ versions.yml ]
|
||||
}
|
|
@ -1,11 +1,14 @@
|
|||
name: sra_fastq
|
||||
description: Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA).
|
||||
keywords:
|
||||
- SRA
|
||||
- NCBI
|
||||
- sequencing
|
||||
- FASTQ
|
||||
- prefetch
|
||||
- dump
|
||||
- fasterq-dump
|
||||
modules:
|
||||
- custom/sratoolsncbisettings
|
||||
- sratools/prefetch
|
||||
- sratools/fasterqdump
|
||||
input:
|
||||
|
@ -17,7 +20,7 @@ input:
|
|||
- id:
|
||||
type: string
|
||||
description: >
|
||||
SRA identifier.
|
||||
SRA run identifier.
|
||||
# TODO Update when we decide on a standard for subworkflow docs
|
||||
output:
|
||||
- meta:
|
|
@ -495,6 +495,10 @@ custom/getchromsizes:
|
|||
- modules/custom/getchromsizes/**
|
||||
- tests/modules/custom/getchromsizes/**
|
||||
|
||||
custom/sratoolsncbisettings:
|
||||
- modules/custom/sratoolsncbisettings/**
|
||||
- tests/modules/custom/sratoolsncbisettings/**
|
||||
|
||||
cutadapt:
|
||||
- modules/cutadapt/**
|
||||
- tests/modules/cutadapt/**
|
||||
|
@ -1619,6 +1623,10 @@ rseqc/tin:
|
|||
- modules/rseqc/tin/**
|
||||
- tests/modules/rseqc/tin/**
|
||||
|
||||
rtgtools/vcfeval:
|
||||
- modules/rtgtools/vcfeval/**
|
||||
- tests/modules/rtgtools/vcfeval/**
|
||||
|
||||
salmon/index:
|
||||
- modules/salmon/index/**
|
||||
- tests/modules/salmon/index/**
|
||||
|
|
|
@ -135,6 +135,7 @@ params {
|
|||
transcriptome_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/transcriptome.fasta"
|
||||
genome2_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/genome2.fasta"
|
||||
genome_chain_gz = "${test_data_dir}/genomics/homo_sapiens/genome/genome.chain.gz"
|
||||
genome_21_sdf = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome_sdf.tar.gz"
|
||||
genome_21_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta"
|
||||
genome_21_fasta_fai = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai"
|
||||
genome_21_dict = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.dict"
|
||||
|
@ -212,7 +213,6 @@ params {
|
|||
test_paired_end_hla = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.bam"
|
||||
test_paired_end_hla_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam"
|
||||
test_paired_end_hla_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam.bai"
|
||||
|
||||
test2_paired_end_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam"
|
||||
test2_paired_end_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam.bai"
|
||||
test2_paired_end_name_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.name.sorted.bam"
|
||||
|
@ -227,6 +227,7 @@ params {
|
|||
test2_paired_end_umi_unsorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_unsorted.bam"
|
||||
test2_paired_end_umi_unsorted_tagged_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.unsorted_tagged.bam"
|
||||
|
||||
|
||||
mitochon_standin_recalibrated_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam"
|
||||
mitochon_standin_recalibrated_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam.bai"
|
||||
|
||||
|
@ -266,6 +267,9 @@ params {
|
|||
test2_haplotc_ann_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz"
|
||||
test2_haplotc_ann_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi"
|
||||
|
||||
test2_haplotc_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz"
|
||||
test2_haplotc_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi"
|
||||
|
||||
test2_recal = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal"
|
||||
test2_recal_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal.idx"
|
||||
test2_tranches = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.tranches"
|
||||
|
@ -378,7 +382,7 @@ params {
|
|||
test3_gff = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test3.gff"
|
||||
}
|
||||
'illumina' {
|
||||
test_1_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fasta/test_1.fastq.gz"
|
||||
test_1_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_1.fastq.gz"
|
||||
test_2_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_2.fastq.gz"
|
||||
test_se_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_se.fastq.gz"
|
||||
}
|
||||
|
@ -422,6 +426,9 @@ params {
|
|||
test_merge_cool_cp2 = "${test_data_dir}/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cp2.cool"
|
||||
|
||||
}
|
||||
'config' {
|
||||
ncbi_user_settings = "${test_data_dir}/generic/config/ncbi_user_settings.mkfg"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ workflow test_arriba_single_end {
|
|||
|
||||
STAR_GENOMEGENERATE ( fasta, gtf )
|
||||
STAR_ALIGN ( input, STAR_GENOMEGENERATE.out.index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center )
|
||||
ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf )
|
||||
ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf , [], [], [], [], [])
|
||||
}
|
||||
|
||||
workflow test_arriba_paired_end {
|
||||
|
@ -38,5 +38,5 @@ workflow test_arriba_paired_end {
|
|||
|
||||
STAR_GENOMEGENERATE ( fasta, gtf )
|
||||
STAR_ALIGN ( input, STAR_GENOMEGENERATE.out.index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center )
|
||||
ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf )
|
||||
ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf, [], [], [], [], [])
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
- arriba
|
||||
files:
|
||||
- path: output/arriba/test.fusions.discarded.tsv
|
||||
md5sum: cad8c215b938d1e45b747a5b7898a4c2
|
||||
md5sum: 7602ab4ccbbb0c54fbca12a942877e6d
|
||||
- path: output/arriba/test.fusions.tsv
|
||||
md5sum: 7c3383f7eb6d79b84b0bd30a7ef02d70
|
||||
- path: output/star/star/Genome
|
||||
|
@ -39,6 +39,7 @@
|
|||
- path: output/star/star/transcriptInfo.tab
|
||||
md5sum: 0c3a5adb49d15e5feff81db8e29f2e36
|
||||
- path: output/star/test.Aligned.out.bam
|
||||
md5sum: 4fa079d11f8938e51015e3e477fa7149
|
||||
- path: output/star/test.Log.final.out
|
||||
- path: output/star/test.Log.out
|
||||
- path: output/star/test.Log.progress.out
|
||||
|
@ -50,7 +51,7 @@
|
|||
- arriba
|
||||
files:
|
||||
- path: output/arriba/test.fusions.discarded.tsv
|
||||
md5sum: 85e36c887464e4deaa65f45174d3b8fd
|
||||
md5sum: cdc6cfbc75e68ce29a766f50f390274d
|
||||
- path: output/arriba/test.fusions.tsv
|
||||
md5sum: 7c3383f7eb6d79b84b0bd30a7ef02d70
|
||||
- path: output/star/star/Genome
|
||||
|
|
|
@ -1,83 +1,21 @@
|
|||
- name: bowtie2 align single-end
|
||||
- name: bowtie2 align test_bowtie2_align_single_end
|
||||
command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config
|
||||
tags:
|
||||
- bowtie2
|
||||
- bowtie2/align
|
||||
- bowtie2
|
||||
files:
|
||||
- path: ./output/bowtie2/test.bam
|
||||
- path: ./output/bowtie2/test.bowtie2.log
|
||||
- path: ./output/bowtie2/bowtie2/genome.3.bt2
|
||||
md5sum: 4ed93abba181d8dfab2e303e33114777
|
||||
- path: ./output/bowtie2/bowtie2/genome.2.bt2
|
||||
md5sum: 47b153cd1319abc88dda532462651fcf
|
||||
- path: ./output/bowtie2/bowtie2/genome.1.bt2
|
||||
md5sum: cbe3d0bbea55bc57c99b4bfa25b5fbdf
|
||||
- path: ./output/bowtie2/bowtie2/genome.4.bt2
|
||||
md5sum: c25be5f8b0378abf7a58c8a880b87626
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.1.bt2
|
||||
md5sum: 52be6950579598a990570fbcf5372184
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.2.bt2
|
||||
md5sum: e3b4ef343dea4dd571642010a7d09597
|
||||
- path: output/bowtie2/test.bam
|
||||
- path: output/bowtie2/test.bowtie2.log
|
||||
md5sum: 7b8a9e61b7646da1089b041333c41a87
|
||||
- path: output/bowtie2/versions.yml
|
||||
|
||||
- name: bowtie2 align paired-end
|
||||
- name: bowtie2 align test_bowtie2_align_paired_end
|
||||
command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config
|
||||
tags:
|
||||
- bowtie2
|
||||
- bowtie2/align
|
||||
files:
|
||||
- path: ./output/bowtie2/test.bam
|
||||
- path: ./output/bowtie2/test.bowtie2.log
|
||||
- path: ./output/bowtie2/bowtie2/genome.3.bt2
|
||||
md5sum: 4ed93abba181d8dfab2e303e33114777
|
||||
- path: ./output/bowtie2/bowtie2/genome.2.bt2
|
||||
md5sum: 47b153cd1319abc88dda532462651fcf
|
||||
- path: ./output/bowtie2/bowtie2/genome.1.bt2
|
||||
md5sum: cbe3d0bbea55bc57c99b4bfa25b5fbdf
|
||||
- path: ./output/bowtie2/bowtie2/genome.4.bt2
|
||||
md5sum: c25be5f8b0378abf7a58c8a880b87626
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.1.bt2
|
||||
md5sum: 52be6950579598a990570fbcf5372184
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.2.bt2
|
||||
md5sum: e3b4ef343dea4dd571642010a7d09597
|
||||
|
||||
- name: bowtie2 align single-end large-index
|
||||
command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config --force_large_index
|
||||
tags:
|
||||
- bowtie2
|
||||
- bowtie2/align
|
||||
files:
|
||||
- path: ./output/bowtie2/test.bam
|
||||
- path: ./output/bowtie2/test.bowtie2.log
|
||||
- path: ./output/bowtie2/bowtie2/genome.3.bt2l
|
||||
md5sum: 8952b3e0b1ce9a7a5916f2e147180853
|
||||
- path: ./output/bowtie2/bowtie2/genome.2.bt2l
|
||||
md5sum: 22c284084784a0720989595e0c9461fd
|
||||
- path: ./output/bowtie2/bowtie2/genome.1.bt2l
|
||||
md5sum: 07d811cd4e350d56267183d2ac7023a5
|
||||
- path: ./output/bowtie2/bowtie2/genome.4.bt2l
|
||||
md5sum: c25be5f8b0378abf7a58c8a880b87626
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.1.bt2l
|
||||
md5sum: fda48e35925fb24d1c0785f021981e25
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.2.bt2l
|
||||
md5sum: 802c26d32b970e1b105032b7ce7348b4
|
||||
|
||||
- name: bowtie2 align paired-end large-index
|
||||
command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config --force_large_index
|
||||
tags:
|
||||
- bowtie2
|
||||
- bowtie2/align
|
||||
files:
|
||||
- path: ./output/bowtie2/test.bam
|
||||
- path: ./output/bowtie2/test.bowtie2.log
|
||||
- path: ./output/bowtie2/bowtie2/genome.3.bt2l
|
||||
md5sum: 8952b3e0b1ce9a7a5916f2e147180853
|
||||
- path: ./output/bowtie2/bowtie2/genome.2.bt2l
|
||||
md5sum: 22c284084784a0720989595e0c9461fd
|
||||
- path: ./output/bowtie2/bowtie2/genome.1.bt2l
|
||||
md5sum: 07d811cd4e350d56267183d2ac7023a5
|
||||
- path: ./output/bowtie2/bowtie2/genome.4.bt2l
|
||||
md5sum: c25be5f8b0378abf7a58c8a880b87626
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.1.bt2l
|
||||
md5sum: fda48e35925fb24d1c0785f021981e25
|
||||
- path: ./output/bowtie2/bowtie2/genome.rev.2.bt2l
|
||||
md5sum: 802c26d32b970e1b105032b7ce7348b4
|
||||
- path: output/bowtie2/test.bam
|
||||
- path: output/bowtie2/test.bowtie2.log
|
||||
md5sum: bd89ce1b28c93bf822bae391ffcedd19
|
||||
- path: output/bowtie2/versions.yml
|
||||
|
|
44
tests/modules/custom/sratoolsncbisettings/main.nf
Normal file
44
tests/modules/custom/sratoolsncbisettings/main.nf
Normal file
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env nextflow
|
||||
|
||||
nextflow.enable.dsl = 2
|
||||
|
||||
include { CUSTOM_SRATOOLSNCBISETTINGS } from '../../../../modules/custom/sratoolsncbisettings/main.nf'
|
||||
|
||||
workflow test_sratoolsncbisettings_with_good_existing {
|
||||
|
||||
file(params.settings_path).mkdirs()
|
||||
def settings = file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true)
|
||||
settings.copyTo(params.settings_file)
|
||||
|
||||
CUSTOM_SRATOOLSNCBISETTINGS()
|
||||
}
|
||||
|
||||
workflow test_sratoolsncbisettings_with_bad_existing {
|
||||
|
||||
file(params.settings_path).mkdirs()
|
||||
def settings = file(params.settings_file)
|
||||
settings.text = '''
|
||||
## auto-generated configuration file - DO NOT EDIT ##
|
||||
|
||||
config/default = "false"
|
||||
/repository/remote/main/CGI/resolver-cgi = "https://trace.ncbi.nlm.nih.gov/Traces/names/names.fcgi"
|
||||
/repository/remote/protected/CGI/resolver-cgi = "https://trace.ncbi.nlm.nih.gov/Traces/names/names.fcgi"
|
||||
/repository/user/ad/public/apps/file/volumes/flatAd = "."
|
||||
/repository/user/ad/public/apps/refseq/volumes/refseqAd = "."
|
||||
/repository/user/ad/public/apps/sra/volumes/sraAd = "."
|
||||
/repository/user/ad/public/apps/sraPileup/volumes/ad = "."
|
||||
/repository/user/ad/public/apps/sraRealign/volumes/ad = "."
|
||||
/repository/user/ad/public/apps/wgs/volumes/wgsAd = "."
|
||||
/repository/user/ad/public/root = "."
|
||||
/repository/user/default-path = "/root/ncbi"
|
||||
'''.stripIndent()
|
||||
|
||||
CUSTOM_SRATOOLSNCBISETTINGS()
|
||||
}
|
||||
|
||||
workflow test_sratoolsncbisettings_with_nonexisting {
|
||||
def settings = file(params.settings_file)
|
||||
settings.delete()
|
||||
|
||||
CUSTOM_SRATOOLSNCBISETTINGS()
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
params.settings_path = '/tmp/.ncbi'
|
||||
params.settings_file = "${params.settings_path}/user-settings.mkfg"
|
||||
|
||||
process {
|
||||
|
||||
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
|
||||
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
params.settings_path = '/tmp/.ncbi'
|
||||
params.settings_file = "${params.settings_path}/user-settings.mkfg"
|
||||
|
||||
env.NCBI_SETTINGS = params.settings_file
|
||||
|
||||
process {
|
||||
|
||||
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
|
||||
|
||||
withName: CUSTOM_SRATOOLSNCBISETTINGS {
|
||||
containerOptions = {
|
||||
(workflow.containerEngine == 'singularity') ?
|
||||
"-B ${params.settings_path}:${params.settings_path}" :
|
||||
"-v ${params.settings_path}:${params.settings_path}"
|
||||
}
|
||||
}
|
||||
}
|
44
tests/modules/custom/sratoolsncbisettings/test.yml
Normal file
44
tests/modules/custom/sratoolsncbisettings/test.yml
Normal file
|
@ -0,0 +1,44 @@
|
|||
- name: "custom sratoolsncbisettings test_sratoolsncbisettings_with_good_existing"
|
||||
command: nextflow run ./tests/modules/custom/sratoolsncbisettings -entry test_sratoolsncbisettings_with_good_existing -c ./tests/config/nextflow.config -c ./tests/modules/custom/sratoolsncbisettings/nextflow_mount.config
|
||||
tags:
|
||||
- "custom"
|
||||
- "custom/sratoolsncbisettings"
|
||||
files:
|
||||
- path: "output/custom/user-settings.mkfg"
|
||||
md5sum: 955e27aff2c277c2f1f0943a098888c1
|
||||
- path: output/custom/versions.yml
|
||||
contains:
|
||||
- "sratools: 2.11.0"
|
||||
|
||||
- name: "custom sratoolsncbisettings test_sratoolsncbisettings_with_bad_existing"
|
||||
command: nextflow run ./tests/modules/custom/sratoolsncbisettings -entry test_sratoolsncbisettings_with_bad_existing -c ./tests/config/nextflow.config -c ./tests/modules/custom/sratoolsncbisettings/nextflow_mount.config
|
||||
tags:
|
||||
- "custom"
|
||||
- "custom/sratoolsncbisettings"
|
||||
exit_code: 1
|
||||
stdout:
|
||||
contains:
|
||||
- "Command error:"
|
||||
- "missing the required entries"
|
||||
- "/LIBS/GUID"
|
||||
- "/libs/cloud/report_instance_identity"
|
||||
- "Feel free to add the following"
|
||||
files:
|
||||
- path: "output/custom/user-settings.mkfg"
|
||||
should_exist: false
|
||||
- path: output/custom/versions.yml
|
||||
should_exist: false
|
||||
|
||||
- name: "custom sratoolsncbisettings test_sratoolsncbisettings_with_nonexisting"
|
||||
command: nextflow run ./tests/modules/custom/sratoolsncbisettings -entry test_sratoolsncbisettings_with_nonexisting -c ./tests/config/nextflow.config -c ./tests/modules/custom/sratoolsncbisettings/nextflow.config
|
||||
tags:
|
||||
- "custom"
|
||||
- "custom/sratoolsncbisettings"
|
||||
files:
|
||||
- path: "output/custom/user-settings.mkfg"
|
||||
contains:
|
||||
- "/LIBS/GUID"
|
||||
- "/libs/cloud/report_instance_identity"
|
||||
- path: output/custom/versions.yml
|
||||
contains:
|
||||
- "sratools: 2.11.0"
|
69
tests/modules/rtgtools/vcfeval/main.nf
Normal file
69
tests/modules/rtgtools/vcfeval/main.nf
Normal file
|
@ -0,0 +1,69 @@
|
|||
#!/usr/bin/env nextflow
|
||||
|
||||
nextflow.enable.dsl = 2
|
||||
|
||||
include { RTGTOOLS_VCFEVAL } from '../../../../modules/rtgtools/vcfeval/main.nf'
|
||||
include { UNTAR } from '../../../modules/untar/main.nf'
|
||||
|
||||
workflow test_rtgtools_vcfeval {
|
||||
|
||||
input = [
|
||||
[ id:'test' ], // meta map
|
||||
file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true),
|
||||
file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz_tbi'], checkIfExists: true),
|
||||
]
|
||||
|
||||
truth = [
|
||||
file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true),
|
||||
file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true)
|
||||
]
|
||||
|
||||
truth_regions = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true)
|
||||
|
||||
evaluation_regions = file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)
|
||||
|
||||
compressed_sdf = [
|
||||
[],
|
||||
file(params.test_data['homo_sapiens']['genome']['genome_21_sdf'])
|
||||
]
|
||||
|
||||
sdf = UNTAR( compressed_sdf ).untar
|
||||
.map({
|
||||
meta, folder ->
|
||||
folder
|
||||
})
|
||||
|
||||
|
||||
RTGTOOLS_VCFEVAL ( input, truth, truth_regions, evaluation_regions, sdf )
|
||||
}
|
||||
|
||||
workflow test_rtgtools_vcfeval_no_optional_inputs {
|
||||
|
||||
input = [
|
||||
[ id:'test' ], // meta map
|
||||
file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true),
|
||||
[],
|
||||
]
|
||||
|
||||
truth = [
|
||||
file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true),
|
||||
[]
|
||||
]
|
||||
|
||||
truth_regions = []
|
||||
|
||||
evaluation_regions = []
|
||||
|
||||
compressed_sdf = [
|
||||
[],
|
||||
file(params.test_data['homo_sapiens']['genome']['genome_21_sdf'])
|
||||
]
|
||||
|
||||
sdf = UNTAR( compressed_sdf ).untar
|
||||
.map({
|
||||
meta, folder ->
|
||||
[folder]
|
||||
})
|
||||
|
||||
RTGTOOLS_VCFEVAL ( input, truth, truth_regions, evaluation_regions, sdf )
|
||||
}
|
5
tests/modules/rtgtools/vcfeval/nextflow.config
Normal file
5
tests/modules/rtgtools/vcfeval/nextflow.config
Normal file
|
@ -0,0 +1,5 @@
|
|||
process {
|
||||
|
||||
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
|
||||
|
||||
}
|
75
tests/modules/rtgtools/vcfeval/test.yml
Normal file
75
tests/modules/rtgtools/vcfeval/test.yml
Normal file
|
@ -0,0 +1,75 @@
|
|||
- name: rtgtools vcfeval test_rtgtools_vcfeval
|
||||
command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval -c tests/config/nextflow.config
|
||||
tags:
|
||||
- rtgtools
|
||||
- rtgtools/vcfeval
|
||||
files:
|
||||
- path: output/rtgtools/test_results/done
|
||||
- path: output/rtgtools/test_results/fn.vcf.gz
|
||||
md5sum: be9c9106055bfad4c5985bc0d33efd56
|
||||
- path: output/rtgtools/test_results/fn.vcf.gz.tbi
|
||||
md5sum: 092a7a3162e7cff25d273525751eb284
|
||||
- path: output/rtgtools/test_results/fp.vcf.gz
|
||||
md5sum: e0f0ff841dc63e9fb61fd3a5db137ced
|
||||
- path: output/rtgtools/test_results/fp.vcf.gz.tbi
|
||||
md5sum: 092a7a3162e7cff25d273525751eb284
|
||||
- path: output/rtgtools/test_results/non_snp_roc.tsv.gz
|
||||
md5sum: ad5bad32c48f05aef232e2c0e708877a
|
||||
- path: output/rtgtools/test_results/phasing.txt
|
||||
md5sum: 133677dbd8be657439ea2b03fdfb8795
|
||||
- path: output/rtgtools/test_results/progress
|
||||
- path: output/rtgtools/test_results/snp_roc.tsv.gz
|
||||
md5sum: 6785b83d66486e7e6c75c5a5b1574c09
|
||||
- path: output/rtgtools/test_results/summary.txt
|
||||
md5sum: f4c8df93c8bdab603036bbc27b4a28c3
|
||||
- path: output/rtgtools/test_results/tp-baseline.vcf.gz
|
||||
md5sum: be9c9106055bfad4c5985bc0d33efd56
|
||||
- path: output/rtgtools/test_results/tp-baseline.vcf.gz.tbi
|
||||
md5sum: 092a7a3162e7cff25d273525751eb284
|
||||
- path: output/rtgtools/test_results/tp.vcf.gz
|
||||
md5sum: e0f0ff841dc63e9fb61fd3a5db137ced
|
||||
- path: output/rtgtools/test_results/tp.vcf.gz.tbi
|
||||
md5sum: 092a7a3162e7cff25d273525751eb284
|
||||
- path: output/rtgtools/test_results/vcfeval.log
|
||||
- path: output/rtgtools/test_results/weighted_roc.tsv.gz
|
||||
md5sum: fa7c046ea0084172f1ef91f19de07b2b
|
||||
- path: output/rtgtools/versions.yml
|
||||
md5sum: 270ed7a5a8e347b251eb4aa2198f98e8
|
||||
|
||||
- name: rtgtools vcfeval test_rtgtools_vcfeval_no_optional_inputs
|
||||
command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_optional_inputs -c tests/config/nextflow.config
|
||||
tags:
|
||||
- rtgtools
|
||||
- rtgtools/vcfeval
|
||||
files:
|
||||
- path: output/rtgtools/test_results/done
|
||||
- path: output/rtgtools/test_results/fn.vcf.gz
|
||||
md5sum: c11c889a4f42c8ea325748bd768ea34d
|
||||
- path: output/rtgtools/test_results/fn.vcf.gz.tbi
|
||||
md5sum: 092a7a3162e7cff25d273525751eb284
|
||||
- path: output/rtgtools/test_results/fp.vcf.gz
|
||||
md5sum: 138e85c1cd79f8fea9a33e81ce0c734c
|
||||
- path: output/rtgtools/test_results/fp.vcf.gz.tbi
|
||||
md5sum: 092a7a3162e7cff25d273525751eb284
|
||||
- path: output/rtgtools/test_results/non_snp_roc.tsv.gz
|
||||
md5sum: 34fb78a008dfc0bef02807b8a7012b07
|
||||
- path: output/rtgtools/test_results/phasing.txt
|
||||
md5sum: 133677dbd8be657439ea2b03fdfb8795
|
||||
- path: output/rtgtools/test_results/progress
|
||||
- path: output/rtgtools/test_results/snp_roc.tsv.gz
|
||||
md5sum: a4c5761c2653e2d04fc84c1cea13b1f0
|
||||
- path: output/rtgtools/test_results/summary.txt
|
||||
md5sum: f33feb32f84958fb931063044fba369b
|
||||
- path: output/rtgtools/test_results/tp-baseline.vcf.gz
|
||||
md5sum: d1c2d990899edf127ea5fcca8866fcb0
|
||||
- path: output/rtgtools/test_results/tp-baseline.vcf.gz.tbi
|
||||
md5sum: 3307008fea47adb75c46d395c5567bc0
|
||||
- path: output/rtgtools/test_results/tp.vcf.gz
|
||||
md5sum: e35b4dab82894eee9b77c81f9bc89cca
|
||||
- path: output/rtgtools/test_results/tp.vcf.gz.tbi
|
||||
md5sum: 45d8f8793140944f129e728299918c88
|
||||
- path: output/rtgtools/test_results/vcfeval.log
|
||||
- path: output/rtgtools/test_results/weighted_roc.tsv.gz
|
||||
md5sum: 5b8efc9e9381f604880412800f58e4e9
|
||||
- path: output/rtgtools/versions.yml
|
||||
md5sum: 55568e4bbe5ab7e634a1f392abb89cc4
|
|
@ -13,7 +13,7 @@ workflow test_sratools_fasterqdump_single_end {
|
|||
def input = Channel.of([ id:'test_single_end', single_end:true ])
|
||||
.combine(UNTAR.out.untar.map{ it[1] })
|
||||
|
||||
SRATOOLS_FASTERQDUMP ( input )
|
||||
SRATOOLS_FASTERQDUMP(input, file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true))
|
||||
}
|
||||
|
||||
workflow test_sratools_fasterqdump_paired_end {
|
||||
|
@ -24,5 +24,5 @@ workflow test_sratools_fasterqdump_paired_end {
|
|||
def input = Channel.of([ id:'test_paired_end', single_end:false ])
|
||||
.combine(UNTAR.out.untar.map{ it[1] })
|
||||
|
||||
SRATOOLS_FASTERQDUMP ( input )
|
||||
SRATOOLS_FASTERQDUMP(input, file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true))
|
||||
}
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
md5sum: 1054c7b71884acdb5eed8a378f18be82
|
||||
- path: output/untar/SRR13255544/SRR13255544.sra
|
||||
md5sum: 466d05dafb2eec672150754168010b4d
|
||||
- path: output/sratools/versions.yml
|
||||
contains:
|
||||
- "sratools: 2.11.0"
|
||||
|
||||
- name: sratools fasterqdump test_sratools_fasterqdump_paired_end
|
||||
command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config
|
||||
|
@ -21,3 +24,6 @@
|
|||
md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e
|
||||
- path: output/untar/SRR11140744/SRR11140744.sra
|
||||
md5sum: 065666caf5b2d5dfb0cb25d5f3abe659
|
||||
- path: output/sratools/versions.yml
|
||||
contains:
|
||||
- "sratools: 2.11.0"
|
||||
|
|
|
@ -8,8 +8,8 @@ workflow test_sratools_prefetch {
|
|||
|
||||
input = [
|
||||
[ id:'test', single_end:false ], // meta map
|
||||
'ERR2815334'
|
||||
'DRR000774'
|
||||
]
|
||||
|
||||
SRATOOLS_PREFETCH ( input )
|
||||
SRATOOLS_PREFETCH(input, file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true))
|
||||
}
|
||||
|
|
|
@ -4,5 +4,8 @@
|
|||
- sratools/prefetch
|
||||
- sratools
|
||||
files:
|
||||
- path: output/sratools/ERR2815334/ERR2815334.sra
|
||||
md5sum: 9a98c7f6f4774b7ef94aa915b92a54ea
|
||||
- path: output/sratools/DRR000774/DRR000774.sra
|
||||
md5sum: 7647dba20c89c0e3d7ad13842f060eb0
|
||||
- path: output/sratools/versions.yml
|
||||
contains:
|
||||
- "sratools: 2.11.0"
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
#!/usr/bin/env nextflow
|
||||
|
||||
nextflow.enable.dsl = 2
|
||||
|
||||
include { SRA_FASTQ } from '../../../../subworkflows/nf-core/sra_fastq/main.nf' addParams( [:] )
|
||||
|
||||
workflow test_sra_fastq_single_end {
|
||||
input = [
|
||||
[ id:'test_single_end', single_end:true ], // meta map
|
||||
'SRR13255544'
|
||||
]
|
||||
|
||||
SRA_FASTQ ( input )
|
||||
}
|
||||
|
||||
workflow test_sra_fastq_paired_end {
|
||||
input = [
|
||||
[ id:'test_paired_end', single_end:false ], // meta map
|
||||
'SRR11140744'
|
||||
]
|
||||
|
||||
SRA_FASTQ ( input )
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
- name: sra fastq single-end
|
||||
command: nextflow run ./tests/subworkflows/nf-core/sra_fastq -entry test_sra_fastq_single_end -c tests/config/nextflow.config
|
||||
tags:
|
||||
- subworkflows
|
||||
# - subworkflows/sra_fastq
|
||||
# Modules
|
||||
# - sratools
|
||||
# - sratools/prefetch
|
||||
# - sratools/fasterqdump
|
||||
files:
|
||||
- path: output/sratools/SRR13255544.fastq.gz
|
||||
md5sum: 1054c7b71884acdb5eed8a378f18be82
|
||||
|
||||
- name: sra fastq paired-end
|
||||
command: nextflow run ./tests/subworkflows/nf-core/sra_fastq -entry test_sra_fastq_paired_end -c tests/config/nextflow.config
|
||||
tags:
|
||||
- subworkflows
|
||||
# - subworkflows/sra_fastq
|
||||
# Modules
|
||||
# - sratools
|
||||
# - sratools/prefetch
|
||||
# - sratools/fasterqdump
|
||||
files:
|
||||
- path: output/sratools/SRR11140744_1.fastq.gz
|
||||
md5sum: 193809c784a4ea132ab2a253fa4f55b6
|
||||
- path: output/sratools/SRR11140744_2.fastq.gz
|
||||
md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e
|
29
tests/subworkflows/nf-core/srafastq/main.nf
Normal file
29
tests/subworkflows/nf-core/srafastq/main.nf
Normal file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env nextflow
|
||||
|
||||
nextflow.enable.dsl = 2
|
||||
|
||||
include { SRAFASTQ } from '../../../../subworkflows/nf-core/srafastq/main.nf'
|
||||
|
||||
workflow test_srafastq_single_end {
|
||||
input = Channel.of(
|
||||
[
|
||||
[ id:'test_single_end1', single_end:true ], // meta map
|
||||
'DRR000774'
|
||||
],
|
||||
[
|
||||
[ id:'test_single_end2', single_end:true ], // meta map
|
||||
'DRR000775'
|
||||
]
|
||||
)
|
||||
|
||||
SRAFASTQ ( input )
|
||||
}
|
||||
|
||||
workflow test_srafastq_paired_end {
|
||||
input = [
|
||||
[ id:'test_paired_end', single_end:false ], // meta map
|
||||
'SRR11140744'
|
||||
]
|
||||
|
||||
SRAFASTQ ( input )
|
||||
}
|
5
tests/subworkflows/nf-core/srafastq/nextflow.config
Normal file
5
tests/subworkflows/nf-core/srafastq/nextflow.config
Normal file
|
@ -0,0 +1,5 @@
|
|||
process {
|
||||
|
||||
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
|
||||
|
||||
}
|
29
tests/subworkflows/nf-core/srafastq/test.yml
Normal file
29
tests/subworkflows/nf-core/srafastq/test.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
- name: srafastq single-end
|
||||
command: nextflow run ./tests/subworkflows/nf-core/srafastq -entry test_srafastq_single_end -c tests/config/nextflow.config -c tests/subworkflows/nf-core/srafastq/nextflow.config
|
||||
tags:
|
||||
- subworkflows
|
||||
# - subworkflows/srafastq
|
||||
# Modules
|
||||
# - sratools
|
||||
# - sratools/prefetch
|
||||
# - sratools/fasterqdump
|
||||
files:
|
||||
- path: output/sratools/DRR000774.fastq.gz
|
||||
md5sum: 19029a1132115b55277a0d79ee089b49
|
||||
- path: output/sratools/DRR000775.fastq.gz
|
||||
md5sum: 59ff24c86ecb260752668c059c2a1eaf
|
||||
|
||||
- name: srafastq paired-end
|
||||
command: nextflow run ./tests/subworkflows/nf-core/srafastq -entry test_srafastq_paired_end -c tests/config/nextflow.config -c tests/subworkflows/nf-core/srafastq/nextflow.config
|
||||
tags:
|
||||
- subworkflows
|
||||
# - subworkflows/srafastq
|
||||
# Modules
|
||||
# - sratools
|
||||
# - sratools/prefetch
|
||||
# - sratools/fasterqdump
|
||||
files:
|
||||
- path: output/sratools/SRR11140744_1.fastq.gz
|
||||
md5sum: 193809c784a4ea132ab2a253fa4f55b6
|
||||
- path: output/sratools/SRR11140744_2.fastq.gz
|
||||
md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e
|
Loading…
Reference in a new issue