-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnextflow.config
More file actions
167 lines (148 loc) · 4.85 KB
/
nextflow.config
File metadata and controls
167 lines (148 loc) · 4.85 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
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
/*
* -------------------------------------------------
* PEARS Pipeline Configuration
* -------------------------------------------------
* Single-cell fusion detection pipeline
*
* Required inputs:
* - FASTQ files (R1 and R2)
* - Genome version (e.g., GRCh38+GENCODE44)
* - Known fusions list (CSV, e.g., from JAFFA output)
*
* Usage:
* nextflow run main.nf -profile <local|slurm>
*
* Override parameters via command line:
* nextflow run main.nf --fastq_r1 '/path/to/*_R1.fastq.gz' --out_dir './results'
*/
params {
// ----- Input files -----
fastq_r1 = null
fastq_r2 = null
known_fusions_list = null
// ----- Whether to search for new fusions in addition to those in known_fusions_list -----
// and the minimum number of reads support required for discovered fusions
discover_fusions = false
min_arriba_support = 2
// ----- 10x Protocol -----
// Select your 10x Chromium chemistry. This sets the correct barcode whitelist and UMI length.
// Available presets:
// 3' Gene Expression: 10x-3prime-v2, 10x-3prime-v3, 10x-3prime-v4
// 5' Gene Expression: 10x-5prime-v2, 10x-5prime-v3
protocol = null
// ----- Read structure (auto-set by protocol, or override manually) -----
umi_len = null // 10bp for v2 chemistries, 12bp for v3+
barcode_include_list = null // Path to custom barcode whitelist (overrides protocol)
// ----- Reference genome -----
genome_version = "GRCh38+GENCODE44" // See --help for available options
star_genome_index = null // Optional: provide pre-built index to skip download/build
ref_fasta = null // Optional: provide pre-built FASTA reference
ref_gtf = null // Optional: provide pre-built GTF annotation
// ----- Output -----
out_dir = "pears_output"
// ----- Resource limits -----
cpus = 16
memory = '128 GB'
time = '48h'
// ----- Flexiplex parameters -----
// Barcode demultiplexing (see Davidson et al. 2023)
flexiplex_searchlen = 20 // Search length for fusion sequence (2x actual length)
flexiplex_demultiplex_options = null // Auto-generates: -b "????????????????" -u "<umi_pattern>" -e 1 -f 0
// ----- FUSCIA parameters -----
// Fusion read extraction and annotation
fuscia_mapqual = 30 // Minimum mapping quality
fuscia_up = 1000 // Upstream search distance (bp) when no gene annotation
fuscia_down = 1000 // Downstream search distance (bp) when no gene annotation
}
/*
* -------------------------------------------------
* Parameter Validation
* -------------------------------------------------
*/
plugins {
id 'nf-schema@2.3.0'
}
validation {
help {
enabled = true
showHidden = false
}
parametersSchema = 'nextflow_schema.json'
monochromeLogs = false
failUnrecognisedParams = true
lenientMode = false
}
/*
* -------------------------------------------------
* Conda Environment
* -------------------------------------------------
*/
conda {
enabled = true
createOptions = '--yes'
}
process.conda = "${projectDir}/env/pears_env.yml"
/*
* -------------------------------------------------
* Process Resource Allocation
* -------------------------------------------------
* Assign resources using process labels:
* label 'process_high' - STAR alignment, intensive tasks
* label 'process_medium' - Moderate memory/CPU tasks
* label 'process_low' - Light processing
* label 'process_tiny' - File operations, parsing
*/
process {
withLabel: 'process_high' {
cpus = params.cpus
memory = params.memory
time = params.time
}
withLabel: 'process_medium' {
cpus = params.cpus
memory = params.memory
time = params.time
}
withLabel: 'process_low' {
cpus = params.cpus
memory = params.memory
time = params.time
}
withLabel: 'process_tiny' {
cpus = params.cpus
memory = params.memory
time = params.time
}
}
/*
* -------------------------------------------------
* Execution Profiles
* -------------------------------------------------
* Select with: -profile <name>
* local - Run on local machine
* slurm - Submit to SLURM cluster
*/
profiles {
local {
process.executor = 'local'
}
slurm {
process.executor = 'slurm'
}
}
/*
* -------------------------------------------------
* Trace and Reporting
* -------------------------------------------------
*/
trace {
enabled = true
file = "${params.out_dir}/nextflow_trace.txt"
overwrite = true
}
report {
enabled = true
file = "${params.out_dir}/nextflow_report.html"
overwrite = true
}
manifest.defaultBranch = "main"