-
Notifications
You must be signed in to change notification settings - Fork 43
/
nextflow.config
129 lines (111 loc) · 3.41 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
// old paramters
params {
/*
User setting options (mandatory)
*/
// input file and genome reference()
species="human"// mouse , zebrafish, fly
fastq_ext = '*_{1,2}.fq.gz'
fasta_ref = '/data/database/hg38/genome.fa'
design = 'design.file' // or null
hisat2_index = '/data/database/hg38/hisatIndex/grch38_snp_tran/genome_snp_tran'
cpatpath='/opt/CPAT-1.2.3'
//human gtf only
gencode_annotation_gtf = "/data/database/hg38/Annotation/gencode.v24.annotation.gtf"
lncipedia_gtf = "/data/database/hg38/Annotation/lncipedia_4_0_hg38.gtf" // set "null" if you are going to perform analysis on other species
// additional options for non-human species
known_coding_gtf=""
known_lncRNA_gtf=""
/*
User setting options (optional)
*/
// tools settings
hisat_strand = 'RF'
star_index = ''//set if star used
bowtie2_index = ''//set if tophat used
aligner = "hisat" // or "star","tophat"
sam_processor="sambamba"//or "samtools(deprecated)"
qctools ="fastp" // or "afterqc","fastp","fastqc","none" to skip qc step
detools = "edger"//or "deseq2"
quant = "kallisto"// or 'htseq'
//other settings
singleEnd = false
unstrand = false
skip_combine = false
lncRep_Output = 'reporter.html'
lncRep_theme = 'npg'
lncRep_cdf_percent = 10
lncRep_max_lnc_len = 10000
lncRep_min_expressed_sample = 50
mem = 60
cpus = 30
}
manifest {
homePage = 'https//github.com/likelet/LncPipe'
description = 'LncPipe:a Nextflow-based Long non-coding RNA analysis PIPELINE'
mainScript = 'LncRNAanalysisPipe.nf'
}
// individual process setting
process.cache = 'deep'
process {
withLabel: para {
maxForks = 6
}
withLabel: 'qc' {
maxForks = 6
}
}
// use profile
profiles {
standard {
includeConfig 'conf/base.config'
}
docker {
includeConfig 'conf/base.config'
includeConfig 'conf/docker.config'
}
singularity {
includeConfig 'conf/base.config'
includeConfig 'conf/sing.config'
}
test {
includeConfig 'conf/base.config'
includeConfig 'conf/test.config'
}
debug { process.beforeScript = 'echo $HOSTNAME' }
none {
// Don't load any config (for use with custom home configs)
}
}
// 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
}
}
}