-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnextflow.config
366 lines (292 loc) · 11.5 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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
// USER DEFINED PARAMETERS FOR INNUCA PIPELINE //
///////////////////////////////////////////////////////////////////////////////
params {
// GENERAL PARAMS //
// Path and expression for paired-end FastQ files
fastq = "data/*_{1,2}.*"
// Genome size estimate for samples
genomeSize = 2.1
// Minimum coverage
minCoverage = 15
// SEQ_TYPING
referenceFileO = 'None'
referenceFileH = 'None'
// PATHO_TYPING
pathoSpecies = 'None'
// FASTQC //
// Adapters file path
adapters = 'None'
// TRIMMOMATIC //
// Perform a sliding window trimming, cutting once the average quality
// within the window falls below a threshold
trimSlidingWindow = '5:20'
// Cut bases off the start of a read, if below a threshold quality
trimLeading = '3'
// Cut bases off the end of a read, if below a threshold quality
trimTrailing = '3'
// Drop the read if it is below a specified length
trimMinLength = '55'
// SPADES //
// The minimum number of reads to consider an edge in the de Bruijn
// graph during the assembly.
spadesMinCoverage = 2
// Minimum contigs K-mer coverage. After assembly only keep contigs with
// reported k-mer coverage equal or above this value
spadesMinKmerCoverage = 2
// If 'auto' the SPAdes k-mer lengths will be determined from the maximum
// read length of each assembly. If 'default', SPAdes will use the default
// k-mer lengths. Otherwise, specify the k-mer lengths manually like:
// '55 77 99 113 127'
spadesKmers = 'auto'
// Filter SPAdes contigs for length greater or equal than this value
spadesMinContigLen = 200
// Maximum number of contigs per 1.5 Mb of expected genome size
spadesMaxContigs = 100
// ASSEMBLY MAPPING //
// In auto, the default minimum coverage for each assembled contig is
// 1/3 of the assembly mean coverage or 10x, if the mean coverage is below
// 10x.
minAssemblyCoverage = 'auto'
AMaxContigs = 100
// RUN TIME OPTIONS //
// Specify at which point (process) the pipeline should end. This can
// be useful when testing some part of the pipeline without running it
// completely. Leave empty to run the entire pipeline
stopAt = ""
// POST ASSEMBLY OPTIONS //
// The following options are for post assembly processing
// Master controller for annotation runs
// This option controls whether the mlst, abricate and prokka process will
// run. If it is set to false, they will not run even if the individual
// run options are set to true
annotationRun = true
// MLST
mlstRun = true
// ABRICATE
abricateRun = true
// Database options: "argannot" "card" "ncbi" "ncbibetalactamase" "plasmidfinder" "resfinder" "vfdb"
abricateDatabases = ["resfinder", "card", "vfdb", "plasmidfinder"]
// PROKKA
prokkaRun = true
// CHEWBBACA
chewbbacaRun = true
chewbbacaQueue = null
chewbbacaSpecies = null
schemaPath = null
schemaSelectedLoci = null
schemaCore = null
// PLATFORM CONFIGURATIONS
sampleName = null
projectId = null
pipelineId = null
platformHTTP = null
reportHTTP = null
currentUserName = null
currentUserId = null
species = null
}
process {
// DOCKER CONTAINERS //
$seq_typing.container = 'odiogosilva/seq_typing:latest'
$patho_typing.container = 'odiogosilva/patho_typing:latest'
$fastqc.container = 'ummidock/fastqc:0.11.5'
$fastqc2.container = 'ummidock/fastqc:0.11.5'
$trimmomatic.container = 'ummidock/trimmomatic:0.36'
$spades.container = 'ummidock/spades:3.11.0'
$assembly_mapping.container = 'ummidock/bowtie2_samtools:latest'
$assembly_mapping_coverage.container = 'ummidock/bowtie2_samtools:latest'
$process_assembly_mapping.container = 'ummidock/bowtie2_samtools:latest'
$pilon.container = 'ummidock/pilon:1.22'
$pilon_report.container = 'ummidock/pilon:1.22'
$mlst.container = 'ummidock/mlst:latest'
$abricate.container = 'ummidock/abricate:latest'
$process_abricate.container = 'ummidock/abricate:latest'
$prokka.container = 'ummidock/prokka:1.12'
$chewbbaca.container = 'ummidock/chewbbaca:py3'
// General CPU profiles
$seq_typing.cpus = 2
$patho_typing.cpis = 2
$trimmomatic.memory = "4GB"
$pilon.memory = "7GB"
}
executor {
$local {
cpus = 4
}
}
trace {
enabled = true
file = "pipeline_stats.txt"
fields = "task_id,process,tag,status,exit,start,container,cpus,duration,realtime,queue,%cpu,%mem,rss,vmem"
}
// PROFILE OPTIONS //
///////////////////////////////////////////////////////////////////////////////
profiles {
// DEFAULT profile for local execution (for desktop/laptops or servers
// without distributed computing environments)
standard {
docker.enabled = true
process {
// CPU USAGE PER PROCESS //
$fastqc.cpus = 2
$trimmomatic.cpus = 2
$spades.cpus = 2
$assembly_mapping.cpus = 2
$pilon.cpus = 2
$prokka.cpus = 2
$chewbbaca.cpus = 3
}
}
// SINGULARITY PROFILE
// Specify this profile to use singularity engine instead of docker
sing {
singularity.enabled = true
// Replace container destination for singularity images
process.$seq_typing.container = 'docker://odiogosilva/seq_typing:latest'
process.$patho_typing.container = 'docker://odiogosilva/patho_typing:latest'
process.$fastqc.container = 'docker://odiogosilva/fastqc:0.11.5'
process.$fastqc2.container = 'docker://odiogosilva/fastqc:0.11.5'
process.$trimmomatic.container = 'docker://odiogosilva/trimmomatic'
process.$spades.container = 'docker://odiogosilva/spades:3.11.0'
process.$assembly_mapping.container = 'docker://odiogosilva/bowtie2_samtools'
process.$assembly_mapping_coverage.container = 'docker://odiogosilva/bowtie2_samtools'
process.$process_assembly_mapping.container = 'docker://odiogosilva/bowtie2_samtools'
process.$pilon.container = 'docker://odiogosilva/pilon:1.22'
process.$pilon_report.container = 'docker://odiogosilva/pilon:1.22'
process.$mlst.container = 'docker://odiogosilva/mlst'
process.$abricate.container = 'docker://ummidock/abricate:latest'
process.$process_abricate.container = 'docker://ummidock/abricate:latest'
process.$prokka.container = 'docker://ummidock/prokka:1.12'
process.$chewbbaca.container = 'docker://ummidock/chewbbaca:py3'
}
oneida {
process.executor = "slurm"
docker.enabled = true
process{
// MEMORY USAGE PER PROCESS //
// general memory usage
memory = "4GB"
// CPU USAGE PER PROCESS //
$fastqc.cpus = 2
$trimmomatic.cpus = 4
$spades.cpus = 4
$assembly_mapping.cpus = 6
$pilon.cpus = 8
$prokka.cpus = 4
$chewbbaca.cpus = 6
}
}
// INCD PROFILE
incd {
process.executor = "slurm"
singularity.enabled = true
singularity {
cacheDir = "/mnt/singularity_cache"
autoMounts = true
}
// Error and retry strategies
process.errorStrategy = "retry"
maxRetries = 3
process.$chewbbaca.queue = "chewBBACA"
// Replace container destination for singularity images
process.$seq_typing.container = 'docker://odiogosilva/seq_typing:latest'
process.$patho_typing.container = 'docker://odiogosilva/patho_typing:latest'
process.$fastqc.container = 'docker://odiogosilva/fastqc:0.11.5'
process.$fastqc2.container = 'docker://odiogosilva/fastqc:0.11.5'
process.$trimmomatic.container = 'docker://odiogosilva/trimmomatic'
process.$spades.container = 'docker://odiogosilva/spades:3.11.0'
process.$assembly_mapping.container = 'docker://odiogosilva/bowtie2_samtools'
process.$assembly_mapping_coverage.container = 'docker://odiogosilva/bowtie2_samtools'
process.$process_assembly_mapping.container = 'docker://odiogosilva/bowtie2_samtools'
process.$pilon.container = 'docker://odiogosilva/pilon:1.22'
process.$pilon_report.container = 'docker://odiogosilva/pilon:1.22'
process.$mlst.container = 'docker://odiogosilva/mlst'
process.$abricate.container = 'docker://ummidock/abricate:latest'
process.$process_abricate.container = 'docker://ummidock/abricate:latest'
process.$prokka.container = 'docker://ummidock/prokka:1.12'
process.$chewbbaca.container = 'docker://ummidock/chewbbaca:py3'
process {
// Use scratch for these processes
$spades.scratch = true
// CPU USAGE PER PROCESS //
$seq_typing.cpus = 4
$patho_typing.cpus = 4
$fastqc.cpus = 2
$trimmomatic.cpus = 4
$spades.cpus = 4
$assembly_mapping.cpus = 6
$pilon.cpus = 6
$prokka.cpus = 4
$chewbbaca.cpus = 10
// MEMORY USAGE PER PROCESS //
// general memory usage
memory = "4GB"
// Process specific memory usage
$spades.memory = "7GB"
$trimmomatic.memory = "7GB"
$pilon.memory = "7GB"
}
}
// SLURM PROFILE
slurm {
// Change executor for SLURM
process.executor = "slurm"
// Change container engine for Shifter
shifter.enabled = true
process {
clusterOptions = "--qos=oneida"
// Use scratch for these processes
$spades.scratch = true
$assembly_mapping.scratch = true
// CPU USAGE PER PROCESS //
$fastqc.cpus = 2
$trimmomatic.cpus = 4
$spades.cpus = 4
$assembly_mapping.cpus = 6
$pilon.cpus = 8
$prokka.cpus = 4
$chewbbaca.cpus = 40
// MEMORY USAGE PER PROCESS //
// general memory usage
memory = "4GB"
// Process specific memory usage
$spades.memory = "10GB"
$trimmomatic.memory = "10GB"
$pilon.memory = "8GB"
}
}
// SLURM PROFILE
slurmOneida {
// Change executor for SLURM
process.executor = "slurm"
// Change container engine for Shifter
shifter.enabled = true
process {
clusterOptions = "--qos=oneida"
// Use scratch for these processes
$spades.scratch = true
// CPU USAGE PER PROCESS //
$fastqc.cpus = 2
$trimmomatic.cpus = 4
$spades.cpus = 4
$assembly_mapping.cpus = 6
$pilon.cpus = 8
$prokka.cpus = 4
$chewbbaca.cpus = 40
// MEMORY USAGE PER PROCESS //
// general memory usage
memory = "4GB"
// Process specific memory usage
$spades.memory = "10GB"
$trimmomatic.memory = "10GB"
$pilon.memory = "8GB"
// Set QOS for chewbbaca in order to run a single job
$chewbbaca.clusterOptions = "--qos=chewbbaca"
}
}
}
manifest {
homePage = 'https://github.com/ODiogoSilva/innuca-nf'
description = 'A nextflow implementation of INNUENDO quality control of reads, de novo assembly and contigs quality assessment, and possible contamination search'
mainScript = 'innuca.nf'
}