-
Notifications
You must be signed in to change notification settings - Fork 2
/
flye_assemble.nf
60 lines (51 loc) · 2.01 KB
/
flye_assemble.nf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Assemble reads with flye
// borrowed from https://github.com/nf-core/modules/blob/master/modules/nf-core/flye/main.nf
process FLYE_ASSEMBLE{
tag "$meta.id"
label 'process_high'
label 'process_high_memory'
label 'process_long'
container "${workflow.containerEngine == 'singularity' || workflow.containerEngine == 'apptainer' ? task.ext.parameters.get('singularity') : task.ext.parameters.get('docker')}"
memory { task.memory * task.attempt}
// TODO check if --debug flag should be added to flye to actually turns off the debug logging?
input:
tuple val(meta), path(reads)
val mode
output:
tuple val(meta), path("*${params.flye.fasta_ext}"), emit: contigs
tuple val(meta), path("*${params.flye.gfa_ext}") , emit: graphs
tuple val(meta), path("*${params.flye.gv_ext}") , emit: gv
tuple val(meta), path("*${params.flye.txt_ext}") , emit: txt
tuple val(meta), path("*${params.flye.log_ext}") , emit: log
tuple val(meta), path("*${params.flye.json_ext}") , emit: json
path "versions.yml" , emit: versions
script:
def args = task.ext.args ?: ""
if(meta.metagenomic){
args = args + " --meta "
}
def prefix = task.ext.prefix ?: "${meta.id}"
"""
flye $mode $reads --out-dir . --threads $task.cpus $args
gzip -c assembly.fasta > ${prefix}.assembly.fasta.gz
gzip -c assembly_graph.gfa > ${prefix}.assembly_graph.gfa.gz
gzip -c assembly_graph.gv > ${prefix}.assembly_graph.gv.gz
mv assembly_info.txt ${prefix}.assembly_info.txt
mv flye.log ${prefix}.flye.log
mv params.json ${prefix}.params.json
cat <<-END_VERSIONS > versions.yml
"${task.process}":
flye: \$( flye --version )
END_VERSIONS
"""
stub:
"""
touch stub${params.flye.fasta_ext}
touch stub${params.flye.gfa_ext}
touch stub${params.flye.gv_ext}
touch stub${params.flye.txt_ext}
touch stub${params.flye.log_ext}
touch stub${params.flye.json_ext}
touch versions.yml
"""
}