-
Notifications
You must be signed in to change notification settings - Fork 6
/
bb-template.nf
148 lines (97 loc) · 2.69 KB
/
bb-template.nf
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
#!/usr/bin/env nextflow
params.metadata = "datalist.txt"
params.datadir = "rubendata"
params.outdir = "bc-results"
Channel.fromPath(params.metadata)
.flatMap{ it.readLines() }
.view()
.set { ch_datalist }
process get_datasets {
tag "$datasetname"
input:
val datasetname from ch_datalist
output:
set val(datasetname), file('*.h5ad') into ch_bbknn, ch_scanorama
set val(datasetname), file('*.rds') into ch_R_harmony, ch_R_mnn
shell:
'''
pyfile="!{params.datadir}/!{datasetname}.h5ad"
Rfile="!{params.datadir}/!{datasetname}.rds"
if [[ ! -e $pyfile || ! -e $Rfile ]]; then
echo "Please check existence of $pyfile and $Rfile"
false
fi
ln -s $pyfile .
ln -s $Rfile .
'''
}
process py_bbknn {
tag "bbknn (py) $datasetname"
input:
set val(datasetname), file(datain) from ch_bbknn
output:
set val(datasetname), val('bbknn'), file('scana.*.h5ad') into ch_bbknn_entryopy
shell:
'''
cat !{datain} > scana.!{datasetname}.h5ad
'''
}
process py_scanorama {
tag "scanaorama (py) $datasetname"
input:
set val(datasetname), file(datain) from ch_scanorama
output:
set val(datasetname), val('scanorama'), file('scana.*.h5ad') into ch_scanorama_entropy
shell:
'''
cat !{datain} > scana.!{datasetname}.h5ad
'''
}
ch_bbknn_entryopy.mix(ch_scanorama_entropy).set{ch_py_entropy}
process R_harmony {
tag "harmony (R) $datasetname"
input:
set val(datasetname), file(datain) from ch_R_harmony
output:
set val(datasetname), val('harmony'), file('harmony.*.rds') into ch_R_entropy1
shell:
'''
cat !{datain} > harmony.!{datasetname}.rds
'''
}
process R_mnn {
tag "mnn (R) $datasetname"
input:
set val(datasetname), file(datain) from ch_R_mnn
output:
set val(datasetname), val('mnn'), file('mnn.*.rds') into ch_R_entropy2
shell:
'''
cat !{datain} > mnn.!{datasetname}.rds
'''
}
ch_R_entropy1.mix(ch_R_entropy2).set{ch_R_entropy}
process R_entroy {
tag "entropy (R) $datain $method $datasetname"
publishDir "${params.outdir}", mode: 'copy'
input:
set val(datasetname), val(method), file(datain) from ch_R_entropy
output:
file('*.epy')
shell:
'''
echo "!{datasetname} !{method} !{datain}" > "!{method}.!{datasetname}.epy"
'''
}
process py_entroy {
tag "entropy (python) $datain $method $datasetname"
publishDir "${params.outdir}", mode: 'copy'
input:
set val(datasetname), val(method), file(datain) from ch_py_entropy
output:
file('*.epy')
shell:
'''
echo "!{datasetname} !{method} !{datain}" > "!{method}.!{datasetname}.epy"
'''
}