-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.nf
86 lines (65 loc) · 2.13 KB
/
main.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
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
#!/usr/bin/env nextflow
nextflow.enable.dsl=2
// subworkflows to be run
include { bwa_index } from './modules/bwa.nf'
include { samtools_index} from './modules/samtools.nf'
include { gatk_dict } from './modules/gatk.nf'
// Print header
log.info """\
===================================================================
I N D E X R E F E R E N C E F A S T A - N F
===================================================================
Created by the Sydney Informatics Hub, University of Sydney
Documentation @ https://github.com/Sydney-Informatics-Hub/IndexReferenceFasta-nf
Log issues @ https://github.com/Sydney-Informatics-Hub/IndexReferenceFasta-nf/issues
===================================================================
Workflow run parameters
===================================================================
version : ${params.version}
reference : ${params.ref}
workDir : ${workflow.workDir}
===================================================================
"""
// Help function
def helpMessage() {
log.info"""
OOPS, YOU FORGOT SOME REQUIRED ARGUMENTS!
Usage: nextflow run main.nf --ref <reference.fasta> --gatk --bwa
Required Arguments:
--ref Specify path to reference FASTA file
(include file extension).
Optional Arguments:
--bwa Run bwa index
--gatk Run gatk CreateSequenceDictionary
""".stripIndent()
}
// run workflow
workflow{
// Help message
if ( params.help || params.ref == false ){
// Invoke the help function above and exit
helpMessage()
exit 1
} else {
// create samtools index (default)
samtools_index(params.ref)
if (params.bwa) {
// create bwa indexes
bwa_index(params.ref)}
if (params.gatk) {
// create gatk dictionary
gatk_dict(params.ref)}
}}
workflow.onComplete {
summary = """
===================================================================
Workflow execution summary
===================================================================
Duration : ${workflow.duration}
Success : ${workflow.success}
workDir : ${workflow.workDir}
Exit status : ${workflow.exitStatus}
===================================================================
"""
println summary
}