-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathnextflow.config
114 lines (97 loc) · 3.39 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
// Singularity params
singularity.enabled = true
singularity.autoMounts = true
// You can change this to a directory to cache your singularity containers
// Whether to remove working dir files after successful execution
cleanup = false
// Add default github branch
manifest.defaultBranch = 'main'
// AWS anonymous
aws {
client {
anonymous = true
}
}
// Global default params
params {
// input directory
indir = "null"
// output directory
outdir = "null"
// Paired end sequencing
paired = false
// ACAST.sc parameters (CNA calling parameters)
min_ploidy = 1.5
max_ploidy = 5
min_purity = 1 // 1 or single-cell data
max_purity = 1 // 1 for single-cell data
sex = "female"
// Segmentation
multipcf = true // Only use this when the fastq files (cells) are from the same patient 'true' or 'false'
// The following parameters can be lists of values, in which case the pipeline will be run for each combination
binsize = [500000, 250000] // Binsize used for counting reads and subsequent segmentation
segmentation_alpha = [0.01, 0.05] // Segmentation parameters to use in the case of CBS
multipcf_penalty = [5, 10, 20, 40] // Segmentation parameters to use in the case of multipcf
// Sequencing platform (for bamfile tags)
platform = "illumina"
// Reference genome options
genome = null
igenomes_base = "s3://ngi-igenomes/igenomes/"
//igenomes_base = "/mnt/AchTeraD/Documents/igenomes/"
igenomes_ignore = false
validationSkipDuplicateCheck = "true"
validationS3PathCheck = "true"
// Resource options
// Defaults only, expected to be overwritten
max_memory = "8.GB"
max_cpus = 1
max_time = "12.h"
}
// Load base.config by default for all pipelines
includeConfig 'conf/base.config'
// Profiles
profiles {
test { includeConfig 'conf/test.config' }
ht_hpc { includeConfig 'conf/ht_hpc.config' }
uppmax { includeConfig 'conf/uppmax.config' }
sirius { includeConfig 'conf/sirius.config' }
lhpc { includeConfig 'conf/lhpc.config' }
}
// Load igenomes.config if required
if (!params.igenomes_ignore) {
includeConfig 'conf/igenomes.config'
} else {
params.genomes = [:]
}
// 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
}
}
}