-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.nf
More file actions
88 lines (63 loc) · 3.7 KB
/
main.nf
File metadata and controls
88 lines (63 loc) · 3.7 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
#!/usr/bin/env nextflow
params.celesta_prior_matrix = "${projectDir}/celesta_prior_matrix.csv"
params.qcscript = "${projectDir}/scripts/QC.Rmd"
params.collect_bin_density_script= "${projectDir}/scripts/collect_bin_density.Rmd"
params.collect_sigsum_script= "${projectDir}/scripts/collect_sigsum.Rmd"
params.seuratscript = "${projectDir}/scripts/seurat_clustering.Rmd"
params.celestascript = "${projectDir}/scripts/CELESTA_clustering.Rmd"
params.scimapscript = "${projectDir}/scripts/scimap_clustering.py"
params.scimap_report_script = "${projectDir}/scripts/scimap_report.Rmd"
params.seurat_metacluster_script = "${projectDir}/scripts/seurat_metaclustering.Rmd"
params.seurat_vs_celesta_script = "${projectDir}/scripts/seurat_vs_celesta.Rmd"
params.seurat_vs_scimap_script = "${projectDir}/scripts/seurat_vs_scimap.Rmd"
// Load modules
include { WRITECONFIGFILE; WRITEMARKERFILE } from './modules/prep_config.nf'
include { RUNQC; COLLECTBINDENSITY; COLLECTSIGSUM } from './modules/qc.nf'
include { RUNSEURAT; RUNCELESTA; RUNSCIMAP; SCIMAPREPORT } from './modules/clustering.nf'
include {RUNMETACLUSTERS; SEURATVCELESTA; SEURATVSCIMAP } from './modules/post_clustering.nf'
workflow {
file_ch = Channel.fromPath(params.data_pattern)
WRITEMARKERFILE(params.markers)
WRITECONFIGFILE(params.sigsum_quantile_high,params.sigsum_quantile_low,
params.bin_size,params.density_cutoff,params.cluster_metric,
params.clustering_res,params.min_clusters,params.min_res,params.max_res,
params.res_step,params.scimap_resolution,params.min_metaclusters,params.max_metaclusters)
RUNQC(file_ch, params.qcscript, WRITECONFIGFILE.output.configfile, params.filter_column)
COLLECTBINDENSITY(params.collect_bin_density_script, RUNQC.output.bin_density.collect())
COLLECTSIGSUM(params.collect_sigsum_script, RUNQC.output.sigsum.collect())
// Print a message if there are NAs in the dataset
RUNQC.output.NACHECK
.branch { v ->
nacheck_ok: v == "0"
nacheck_warn: v == "1"
}
.set { result }
result.nacheck_warn.view { v -> "***WARNING: Rows containing NaN values have been removed from your dataset. Please double-check your quantification files.***" }
if (!params.qc_only) {
if (params.run_seurat) {
// Run Seurat with metaclustering
RUNSEURAT(params.seuratscript, RUNQC.output.all_markers, WRITECONFIGFILE.output.configfile, WRITEMARKERFILE.output.markerconfigfile)
RUNMETACLUSTERS(params.seurat_metacluster_script, WRITECONFIGFILE.output.configfile, WRITEMARKERFILE.output.markerconfigfile, RUNQC.output.all_markers.collect(), RUNSEURAT.output.seurat_clusters_noid.collect())
}
if (params.run_celesta) {
// Run CELESTA
RUNCELESTA(params.celestascript, RUNQC.output.all_markers, WRITECONFIGFILE.output.configfile, params.celesta_prior_matrix)
if(params.run_seurat) { // combine seurat and CELESTA output for comparison
combined_output = RUNSEURAT.output.seurat_clusters \
| combine(RUNCELESTA.output.celesta_classes, by:0)
SEURATVCELESTA(params.seurat_vs_celesta_script, combined_output)
}
}
if (params.run_scimap) {
// Run Scimap and build report
RUNSCIMAP(params.scimapscript, RUNQC.output.all_markers, WRITECONFIGFILE.output.configfile, WRITEMARKERFILE.output.markerconfigfile)
SCIMAPREPORT(params.scimap_report_script, RUNSCIMAP.output.matrixplot, RUNSCIMAP.output.spatialplot, RUNSCIMAP.output.umap)
if(params.run_seurat) {
// Combine seurat and scimap output for comparison
combined_output_seurat_scimap = RUNSEURAT.output.seurat_clusters \
| combine(RUNSCIMAP.output.scimap_clusters, by:0)
SEURATVSCIMAP(params.seurat_vs_scimap_script, combined_output_seurat_scimap)
}
}
}
}