forked from epi2me-labs/wf-basecalling
-
Notifications
You must be signed in to change notification settings - Fork 0
/
nextflow.config
211 lines (185 loc) · 5.97 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
//
// Notes to End Users.
//
// The workflow should run without editing this configuration file,
// however there may be instances in which you wish to edit this
// file for compute performance or other reasons. Please see:
//
// https://nextflow.io/docs/latest/config.html#configuration
//
// for further help editing this file.
params {
help = false
version = false
aws_image_prefix = null
aws_queue = null
disable_ping = false
monochrome_logs = false
validate_params = true
show_hidden_params = false
schema_ignore_params = 'show_hidden_params,validate_params,monochrome_logs,aws_queue,aws_image_prefix,wf'
// I/O
input = null
ref = null
out_dir = "output"
sample_name = "SAMPLE"
// basecalling
experimental = false
/// common
basecaller_chunk_size = 25
basecaller_cfg = null
basecaller_args = null
basecaller_basemod_threads = 2
duplex = false
cuda_device = "cuda:all"
ubam_map_threads = 8
ubam_sort_threads = 3
ubam_bam2fq_threads = 1
merge_threads = 4
stats_threads = 4
basecaller_model_path = null
remora_model_path = null
qscore_filter = 10
/// dorado
remora_cfg = null
dorado_ext = "pod5"
poly_a_config = null
/// bonito
use_bonito = false
bonito_cfg = 'dna_r10.4.1_e8.2_400bps_trns@v5.0.alpha'
/// wf-basecalling
fastq_only = false
output_bam = false
output_pod5 = false
// demuxing
barcode_kit = null
demux_args = null
/// Stream input
watch_path = false
read_limit = null
wf {
basecaller_container = "ontresearch/dorado"
container_sha = "sha58b978562389bd0f1842601fb83cdf1eb2920218"
bonito_container = "ontresearch/bonito"
bonito_sha = "shaea43ca2333f91fa78a823f640ba158e4268f1f98"
common_sha = "sha338caea0a2532dc0ea8f46638ccc322bb8f9af48"
example_cmd = [
"--basecaller_cfg 'dna_r10.4.1_e8.2_400bps_hac@v4.1.0'",
"--dorado_ext 'pod5'",
"--input 'wf-basecalling-demo/input'",
"--ref 'wf-basecalling-demo/GCA_000001405.15_GRCh38_no_alt_analysis_set.fasta'",
"--remora_cfg 'dna_r10.4.1_e8.2_400bps_hac@v4.1.0_5mCG_5hmCG@v2'",
]
agent = null
}
}
manifest {
name = 'epi2me-labs/wf-basecalling'
author = 'Oxford Nanopore Technologies'
homePage = 'https://github.com/epi2me-labs/wf-basecalling'
description = 'Helper workflow for basecalling ONT reads.'
mainScript = 'main.nf'
nextflowVersion = '>=23.04.2'
version = '1.3.0'
}
epi2melabs {
tags = "basecalling,utility"
icon = "faTty"
}
// used by default for "standard" (docker) and singularity profiles,
// other profiles may override.
process {
withLabel:wf_basecalling {
container = "${params.wf.basecaller_container}:${params.wf.container_sha}"
}
withLabel:wf_common {
container = "ontresearch/wf-common:${params.wf.common_sha}"
}
shell = ['/bin/bash', '-euo', 'pipefail']
// by default GPU tasks will run in serial to avoid GPU management.
// cluster and cloud users can remove this with -profile discrete_gpus.
// we use profiles to handle this as maxForks cannot be set dynamically
// see https://github.com/nextflow-io/nextflow/discussions/3806 and CW-1857
withLabel:gpu {
maxForks = 1
}
}
profiles {
// the "standard" profile is used implicitely by nextflow
// if no other profile is given on the CLI
standard {
docker {
enabled = true
// this ensures container is run as host user and group, but
// also adds host user to the within-container group
runOptions = "--user \$(id -u):\$(id -g) --group-add 100"
}
process."withLabel:gpu".containerOptions = "--gpus all"
}
// using singularity instead of docker
singularity {
singularity {
enabled = true
autoMounts = true
//envWhitelist = "" // if your cluster sets a variable to indicate which GPU has been assigned you will want to allow it here
}
process."withLabel:gpu".containerOptions = "--nv"
}
// keep stub conda profile to prevent unknown profile warning so users get a better error
conda {
conda.enabled = true
}
// Using AWS batch.
// May need to set aws.region and aws.batch.cliPath
awsbatch {
process {
executor = 'awsbatch'
queue = "${params.aws_queue}"
memory = "16 GB" // likely not enough!
withLabel:wf_common {
container = "${params.aws_image_prefix}-wf-common:${params.wf.common_sha}"
}
shell = ['/bin/bash', '-euo', 'pipefail']
// lift limit on simultaneous gpu jobs for cloud
// and ensure that the host mounts relevant driver bobbins inside the container
withLabel:gpu {
maxForks = null
containerOptions = "-e NVIDIA_DRIVER_CAPABILITIES=compute,utility --gpus all"
}
withLabel:wf_basecalling {
container = "${params.aws_image_prefix}-dorado:${params.wf.container_sha}"
}
withLabel:wf_bonito {
container = "${params.aws_image_prefix}-bonito:${params.wf.bonito_sha}"
}
}
}
// local profile for simplified development testing
local {
process.executor = 'local'
}
// lift limit on simultaneous gpu jobs
discrete_gpus {
process."withLabel:gpu".maxForks = null
}
}
timeline {
enabled = true
file = "${params.out_dir}/execution/timeline.html"
overwrite = true
}
report {
enabled = true
file = "${params.out_dir}/execution/report.html"
overwrite = true
}
trace {
enabled = true
file = "${params.out_dir}/execution/trace.txt"
overwrite = true
}
env {
PYTHONNOUSERSITE = 1
JAVA_TOOL_OPTIONS = "-Xlog:disable -Xlog:all=warning:stderr"
}
cleanup = true