-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.nf
More file actions
95 lines (89 loc) · 2.87 KB
/
main.nf
File metadata and controls
95 lines (89 loc) · 2.87 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
* Workflow imports
*/
include { assembly } from './workflows/assembly'
include { train_genemarks; annotation } from './workflows/annotation'
include { repeats } from './workflows/repeatlibrary'
include { variant_calling; extract_buscos } from './workflows/variant_calling'
include { rnaseq } from './workflows/rnaseq'
include { scaffold; assess_scaffolds } from './workflows/finishing'
include { clean_reads } from './workflows/clean_reads.nf'
/*
* Raw files for assembly
*/
raw_ch = Channel.fromFilePairs("$params.raw/S*_R{1,2}_001.fastq.gz")
rna_ch = Channel.fromFilePairs("$params.rna/*_{1,2}.fastq.*")
clean_ch = Channel.fromFilePairs("$params.cleaned/$params.to_assemble/B-S*_R{1,2}_001.fastq.gz")
/*
* Genome channel for repeat library construction
*/
Channel.fromPath("$params.genomes")
.map { it -> [ it.baseName, it ]}
.set { genome_ch }
/*
* Finishing channels
*/
Channel.fromPath("$projectDir/results/assembly/$params.to_scaffold")
.map { it -> [ it.baseName.replaceAll(/_.*/, '').replaceAll(/.*-/, ''), it ]}
.set { contigs_ch }
Channel.fromPath("$projectDir/data/reference/genomes/scaffold_ref/*")
.collect().set { ref_ch }
/*
* Annotation channels
*/
annotation = "$params.assembly/7-aligned/$params.current/*"
Channel.fromPath("$params.scaffolds/ragout/*.fasta")
.map { it -> [ it.baseName, it ] }
.set { train_ch }
Channel.fromPath(
"$annotation")
.map {it -> [ it.baseName, it ]}
.set { chromosome_ch }
Channel.fromPath(
"$params.scaffolds/ragout/${params.current}_scaffolds.fasta")
.map { it -> [ it.baseName, it ] }
.set { scaffold_ch }
Channel.fromPath(
"$params.annotation/S*/S*BUSCO")
.map { it -> [ it.baseName.replaceAll(/-.*/), it ]}
.set { busco_results_ch }
/*
* Variant calling channels
*/
Channel.fromPath(params.reference)
.set { vc_ref_ch }
Channel.fromFilePairs("$projectDir/data/cleaned_dna/${params.called_reads}/B-S*_R{1,2}_001.fastq.gz")
.set { call_reads_ch }
workflow {
/*
* Assembly
*/
if ( params.clean_reads )
clean_reads(raw_ch)
if ( params.assemble_genome )
assembly(clean_ch)
if ( params.assemble_transcriptome )
rnaseq(rna_ch)
if ( params.get_replib )
repeats(genome_ch)
if ( params.scaffold_contigs )
scaffold(contigs_ch, ref_ch )
if ( params.assess_scaffolds )
assess_scaffolds()
/*
* Annotation
*/
if ( params.train_genemarks )
train_genemarks(train_ch)
if ( params.annotate_scaffold )
annotation(chromosome_ch, scaffold_ch)
/*
* Variant calling
*/
if ( params.call )
variant_calling(vc_ref_ch, call_reads_ch)
if ( params.extract_busco_genes )
// Extract busco sequences from aligned BAM file and generate a multiple sequence
// alignment
extract_buscos(params.vc_ref, "$params.scaffolds/ragout/*", "$params.cleaned/*")
}