-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnextflow.config
More file actions
115 lines (100 loc) · 3.93 KB
/
Copy pathnextflow.config
File metadata and controls
115 lines (100 loc) · 3.93 KB
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
// EXECUTION DEFAULTS A PROJECT MAY REPLACE, and they are above the include below for that
// reason: Nextflow is later-wins, so the same assignment placed after parameters.config was
// read would beat whatever the project asked for, silently. Anything here reads no parameter,
// which is what lets it sit this high.
conda.enabled = true
docker.enabled = false
// Remove the work/ directory once the run completes successfully.
// `cleanup` is a plain option, not a config scope - do not add a `cleanup { }` block.
cleanup = true
process {
errorStrategy = 'finish' // Options: 'ignore', 'terminate', 'retry'
maxRetries = 3
maxErrors = -1 // -1 means unlimited; set to number to stop after N errors
}
// Your project's settings, read from the directory you launch the run in. `${launchDir}`, not a
// bare name, which would resolve against this file and find only a config inside the
// installation.
//
// This include must stay ABOVE everything that reads a parameter: config interpolation is a
// single forward pass.
includeConfig "${launchDir}/parameters.config"
// Guarantees the `cores` scope exists as a map. parameters.config carries the block with every
// key commented out, and a scope containing only comments creates nothing; a module cannot make
// a top-level params key that processes can see, so it is made here, at config time.
//
// A ternary and not an `if`: the strict parser rejects `if` statements in config.
params.cores = params.containsKey('cores') && params.cores != null ? params.cores : [:]
// A dry run checks and previews instead of computing. Set by `./PoolSeqFlow dryrun`, which also
// runs dryrun.nf: the entry script stops the pipeline, this flag stops step 0 recording anything.
params.dryRun = false
// Where the preview goes: the project directory, beside parameters.config, out of both storage
// roots. `./PoolSeqFlow dryclean` asks this same value where to look.
params.dryRunDir = "${launchDir}/dryrun"
// Pipeline identity. `version` is what Nextflow reports and what step 0 records in each project.
// One of three places the version lives, with `VERSION=` and the `# Version:` header in
// ./PoolSeqFlow; dev/scripts/bump-version.sh updates all three.
manifest {
name = 'PoolSeqFlow'
author = 'Ozan L. Z. Kiratli'
description = 'Allele frequency analysis from pooled Illumina sequencing data'
homePage = 'https://ozankiratli.github.io/PoolSeqFlow/'
mainScript = 'poolseqflow.nf'
license = 'Apache-2.0'
doi = '10.5281/zenodo.19245611'
version = '3.2.0'
// Advisory: Nextflow warns and carries on. Prefixing with `!` would make it abort.
nextflowVersion = '>=26.04.0'
}
// Below the include, because it reads two parameters. A project cannot replace this block and
// does not need to: both numbers in it are its own.
process {
// Ceiling for what a task may request. Clamps; does not allocate.
resourceLimits = [
memory: params.memory,
cpus: params.threads
]
}
dag {
enabled = true
file = "${params.dir.sessionReports}/PoolSeqFlow_pipeline_dag.html"
overwrite = true
}
trace {
enabled = true
file = "${params.dir.sessionReports}/PoolSeqFlow_pipeline_trace.txt"
sep = '\t'
raw = true
fields = [
'status',
'task_id',
'hash',
'name',
'exit',
'start',
'complete',
'duration',
'realtime',
'cpus',
'memory',
'%cpu',
'%mem',
'attempt'
]
overwrite = true
}
timeline {
enabled = true
file = "${params.dir.sessionReports}/PoolSeqFlow_pipeline_timeline.html"
overwrite = true
}
report {
enabled = true
file = "${params.dir.sessionReports}/PoolSeqFlow_pipeline_report.html"
overwrite = true
}
// Under mainDir; a relative path would resolve against the launch directory.
workDir = "${params.mainDir}/work"
env {
PATH="${params.dir.bin}:\$PATH"
}