-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnextflow.config
220 lines (155 loc) · 7.58 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
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NorwegianVeterinaryInstitute/ALPPACA Nextflow config file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
// Global default params, used in configs
params {
// csv fields: ID,assembly,longreads,R1,R2,type,comments
// ID(name),assembly (path),longreads(path),R1(path),R2(path),type(assembly),comments(for you in case)
// options type: short, long, hybrid
input = null
// TRACK Choice : purely_raw (not done), tryssembly (not done), filter_contigs, coverage, haplopurge, varwrrum
track = null
// ----------------------------------------------------------------------------
// ------------------------- PURELY_RAW --------------------------------------
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// ------------------------- TRYSSEMBLY --------------------------------------
// List of assemblers to try : separate by , with no space , lowercase
assemblers = null // "necat,masurca"
// ------------------ necat --------------------------------------
// TRACK necat parameters:
// Input csv file assemblyID, netcatconf[path], comment[text, optional, if comma - use quotes]
// ------------------ masurca --------------------------------------
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// ------------------------- FILTER_CONTIGS ----------------------------------
// ----------------------------------------------------------------------------
// Note also in option in COMPASS
blastDB = null
ranked_taxo_file = null
positive_filter = null
evalue_min = 1e-20
perc_identity_min = 95
// ----------------------------------------------------------------------------
// ------------------ COMPASS - --------------------------------------
// ----------------------------------------------------------------------------
remove_contaminants = "no"
// --------------- DETECT_ASSEMBLY_CONTAMINANTS subworkflow --------------------
krakenDB = null
// --------------- ASSEMBLY_QUALITY_QUALIMAP subworkflow ------------------------
// --------------- ASSEMBLY_QUALITY_QUAST subworkflow ---------------------------
//provide paths: quast_ref and quast_annot if want to use external ref - set null for ref_asssembly
//provide paths: ref_assembly for using own assembly as reference - set rest to null
which_quast = "ref"
quast_ref = null
quast_annot = null
quast_ref_assembly = null
min_contig = 500
plot_format = "svg"
// --------------- ASSEMBLY_COMPLETENESS_BUSCO subworkflow --------------------
//1. if several lineages separate with coma, no space - "no / at the end of dataset path"
lineage_dataset = null
//2. see also on Saga at: /cluster/shared/databases/BUSCO/latest/
busco_download_path =null
// ----------------------------------------------------------------------------
// ------------------ HAPLOPURGE --------------------------------------
// ----------------------------------------------------------------------------
purge_phase = null //phase1: hist | phase2: cov | phase3: purge | all
purgehaplotigs_maxdepth = 200 // max depth for hist
haplo_junk = 80
haplo_suspect = 80
haplo_align_cov = 70
haplo_max_match = 250
// ----------------------------------------------------------------------------
// ------------------ VARWRRUM --------------------------------------
// ----------------------------------------------------------------------------
// population variant calling (now only for illumina reads)
// PART 1. Preparation reference
phase = null
ref_input = null
// --------------- VAR_PREP_BASE subworkflow --------------------
// reference softmasking
bbmask_entropy = 0.7 // entropy parameter for masking low complexity regions with bbmask
bbmask_maxcov = null // 1000 masking coverage over XX - need to be evaluated and optional
// TRIMMING illumina reads options (Håkons trim_galore)
phred_score = 15
error_rate = 0.1
minlength = 20 // or read or ?=
// BWAMEM
bwamem_args = "-a -M"
// SAMTOOLS Filtering of mapped reads
min_mapq = 30
filterout_tags = "-F 0x0008 -F 0x0100 -F 0x0400 -F 0x0800 -F 0x0004" // filterout reads with those tags
// --------------- VAR_FREEBAYES_SAMPLES_POP subworkflow --------------------
// See: https://github.com/freebayes/freebayes
vcf_ref = null // optional a vcf file that is used to force calling variants at particular alleles
// (eg. previous population analysis ) - ! must have been done using the same reference assem
chunk_size = 100000 // chunks of reference to parallelize the variant calling
freebayes_args = "--min-coverage 10"
filter_args = "-i 'QUAL>=100 && FMT/DP >= 30 && FMT/QA >= 100'"
// check that you have set purgehaplotigs_maxdepth eventually as its used here
// ----------------------------------------------------------------------------
// ------------------ General Nextflow options ----------------------------------------
// ----------------------------------------------------------------------------
publish_dir_mode = "copy"
time_multiplier = 1
}
//conda { createTimeout = "120 min" }
// Profiles
includeConfig 'conf/profiles.config'
// Modules
includeConfig 'conf/base.config'
// I had to split the modules config - was unpractical
includeConfig 'conf/modules_compass.config'
includeConfig 'conf/modules_varwrrum.config'
// Manifest
manifest {
name = 'NorwegianVeterinaryInstitute/Saprolegnia'
author = 'Eve Fiskebeck, Thomas Haverkamp, Håkon Pdersen Kaspersen'
homePage = ''
description = ''
mainScript = 'main.nf'
nextflowVersion = '!>=23.04.4'
version = ''
}
// Define variables to prevent local R libraries from conflicting with the container
/*
env {
R_PROFILE_USER = "/.Rprofile"
R_ENVIRON_USER = "/.Renviron"
}
*/
// 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
}
}
}