-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnextflow.config
147 lines (115 loc) · 2.98 KB
/
nextflow.config
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
manifest {
homePage = 'https://github.com/iarcbioinfo/facets-nf'
description = 'Somatic Copy Number calls with FACETS'
mainScript = 'main.nf'
version = '2.0'
name = 'facets'
}
profiles {
conda { process.conda = "$baseDir/environment.yml" }
docker {
docker.enabled = true
process.container = 'iarcbioinfo/facets-nf:v2.0'
}
singularity {
singularity.enabled = true
process.container = 'iarcbioinfo/facets-nf:v2.0'
singularity.autoMounts = true
}
}
process {
shell = ['/bin/bash','-o','pipefail']
}
// Load job.conf for process tagging
includeConfig 'conf/jobs.conf'
params {
output_folder="./results"
//we init some parameters
ref = null
dbsnp_vcf_ref = null
tn_file = null
help = false
debug = false
cohort_dir = null
cram = false
tumor_dir = null
normal_dir = null
suffix_tumor = "_T"
suffix_normal = "_N"
//running parameters
snppileup_bin = "snp-pileup"
min_map_quality = 15
min_base_quality = 20
pseudo_snps =100
min_read_count = 20
//the default value is genome
analysis_type = "genome"
snp_nbhd = 1000
cval_preproc = 35
cval_proc1 = 150
cval_proc2 = 300
m_cval = true
//visualization parameters
output_pdf = true
// resource defaults
max_memory = 128.GB
max_cpus = 8
max_time = 240.h
}
timeline {
enabled = true
file = "${params.output_folder}/nf-pipeline_info/facets_timeline.html"
}
report {
enabled = true
file = "${params.output_folder}/nf-pipeline_info/facets_report.html"
}
trace {
enabled = true
file = "${params.output_folder}/nf-pipeline_info/facets_trace.txt"
}
dag {
enabled = true
file = "${params.output_folder}/nf-pipeline_info/facets_dag.html"
}
//Mesage regarding errors or complete
workflow.onComplete = {
// any workflow property can be used here
println "Pipeline complete"
println "Command line: $workflow.commandLine"
}
workflow.onError = {
println "Oops... Pipeline execution stopped with the following message: ${workflow.errorMessage}"
}
// Function to ensure that resource requirements don't go beyond
// a maximum limit
def check_max(obj, type) {
if (type == 'memory') {
try {
if (obj.compareTo(params.max_memory as nextflow.util.MemoryUnit) == 1)
return params.max_memory as nextflow.util.MemoryUnit
else
return obj
} catch (all) {
println " ### ERROR ### Max memory '${params.max_memory}' is not valid! Using default value: $obj"
return obj
}
} else if (type == 'time') {
try {
if (obj.compareTo(params.max_time as nextflow.util.Duration) == 1)
return params.max_time as nextflow.util.Duration
else
return obj
} catch (all) {
println " ### ERROR ### Max time '${params.max_time}' is not valid! Using default value: $obj"
return obj
}
} else if (type == 'cpus') {
try {
return Math.min( obj, params.max_cpus as int )
} catch (all) {
println " ### ERROR ### Max cpus '${params.max_cpus}' is not valid! Using default value: $obj"
return obj
}
}
}