annotate metacyto_autocluster.R @ 0:c744db871f90 draft default tip

"planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
author azomics
date Tue, 27 Jul 2021 23:00:49 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
1 #!/usr/bin/env Rscript
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
2 ######################################################################
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
3 # Copyright (c) 2018 Northrop Grumman.
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
4 # All rights reserved.
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
5 ######################################################################
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
6 #
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
7 # Version 1 - January 2018
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
8 # Author: Cristel Thomas
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
9 #
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
10 #
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
11
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
12 library(flowCore)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
13 library(MetaCyto)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
14
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
15 check_cluster_def <- function(cl_def) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
16 if (cl_def == "" || cl_def == "None") {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
17 quit(save = "no", status = 14, runLast = FALSE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
18 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
19 tmp <- gsub(" ", "", cl_def, fixed = TRUE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
20 clean_def <- gsub(",", "|", tmp, fixed = TRUE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
21 return(toupper(clean_def))
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
22 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
23 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
24
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
25 path_to_group_file <- function(path_to_result) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
26 grp <- basename(dirname(path_to_result))
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
27 return(paste(grp, "fcs", sep = ".", collapse = NULL))
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
28 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
29
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
30 group_file_to_group_name <- function(result_file) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
31 return(strsplit(result_file, ".", fixed = TRUE)[[1]][1])
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
32 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
33
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
34 auto_cluster_panels <- function(params, df, fcspaths, fcsnames, quant=0.95,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
35 events=0.05, cluster_algorithm="FlowSOM",
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
36 clusters=vector(), outdir="", list_clust="",
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
37 metacluster=40, xdim=10, ydim=10, seed=42, uc="") {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
38
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
39 working_dir <- "tmp_metacyto"
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
40 working_out <- "tmp_metacyto_out"
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
41 dir.create(working_dir)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
42 dir.create(outdir)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
43
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
44 # get nb of groups
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
45 nb_groups <- length(fcsnames)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
46
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
47 # reformat summary -- expects csv + 'fcs_names' && 'fcs_files'
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
48 new_df <- file.path(working_dir, "processed_sample_summary.csv")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
49 df$fcs_names <- df$filenames
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
50 df$fcs_files <- df$filenames
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
51 write.csv(df, file = new_df, row.names = F)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
52
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
53 # move && rename FCS files to same directory
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
54 for (i in seq_len(length(fcspaths))) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
55 new_file <- file.path(working_dir, fcsnames[[i]])
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
56 if (!grepl(".fcs$", new_file)) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
57 new_file <- paste0(new_file, ".fcs")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
58 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
59 file.copy(fcspaths[[i]], new_file)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
60 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
61
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
62 #### will need to add other parameters when Zicheng has them working.
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
63 if (cluster_algorithm == "FlowSOM") {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
64 cluster_label <- autoCluster.batch(preprocessOutputFolder = working_dir,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
65 excludeClusterParameters = params,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
66 labelQuantile = quant,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
67 clusterFunction = flowSOM.MC,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
68 minPercent = events,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
69 k = metacluster,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
70 xdim = xdim,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
71 ydim = ydim,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
72 seed = seed)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
73
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
74 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
75 cluster_label <- autoCluster.batch(preprocessOutputFolder = working_dir,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
76 excludeClusterParameters = params,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
77 labelQuantile = quant,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
78 clusterFunction = flowHC,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
79 minPercent = events)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
80 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
81
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
82
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
83 # Add potential user-defined label to cluster definitions
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
84 if (length(clusters) > 1) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
85 cluster_label <- c(cluster_label, clusters)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
86 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
87 write.table(cluster_label, list_clust, quote = F, row.names = F, col.names = F)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
88
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
89 # Derive summary statistics for the clusters
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
90 # Result will be written out to the directory speficied by the "outpath" argument
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
91 searchCluster.batch(preprocessOutputFolder = working_dir,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
92 outpath = working_out,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
93 clusterLabel = cluster_label)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
94
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
95 result_files <- list.files(working_out,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
96 pattern = "cluster_stats_in_each_sample",
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
97 recursive = T,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
98 full.names = T)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
99 no_results <- vector()
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
100 if (length(result_files) != nb_groups) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
101 groups_with_results <- sapply(result_files, path_to_group_file)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
102 ## one or more groups with no results, figure out which
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
103 no_results <- setdiff(fcsnames, groups_with_results)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
104 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
105
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
106 if (length(no_results) == nb_groups) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
107 sink(uc)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
108 cat("No clusters were found in none of the groups.")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
109 sink()
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
110 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
111 unused_clrs <- list()
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
112 if (length(no_results > 0)) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
113 grp_no_results <- sapply(no_results, group_file_to_group_name)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
114 unused_clrs <- data.frame("cluster_label" = "any", "not_found_in" = grp_no_results)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
115 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
116 for (result in result_files) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
117 group_name <- strsplit(result, .Platform$file.sep)[[1]][2]
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
118 new_filename <- paste(c(group_name, "cluster_stats.txt"), collapse = "_")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
119 new_path <- file.path(outdir, new_filename)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
120 tmp_df <- read.csv(result)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
121
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
122 used_clr <- as.character(unique(tmp_df$label))
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
123 if (length(used_clr) != length(cluster_label)) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
124 unused <- setdiff(cluster_label, used_clr)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
125 tmp_udf <- data.frame("cluster_label" = unused, "not_found_in" = group_name)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
126 unused_clrs <- rbind(unused_clrs, tmp_udf)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
127 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
128 colnames(tmp_df)[[1]] <- "group_name"
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
129 write.table(tmp_df, new_path, quote = F, row.names = F, col.names = T, sep = "\t")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
130 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
131
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
132 if (is.null(dim(unused_clrs))) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
133 sink(uc)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
134 cat("All provided cluster definition were found in provided FCS files.")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
135 sink()
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
136 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
137 write.table(unused_clrs, uc, quote = F, row.names = F, col.names = T, sep = "\t")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
138 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
139 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
140 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
141
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
142 check_input <- function(params = vector(), report = "", fcs_files = list(),
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
143 grp_names = list(), quant = 0.95, events = 0.05,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
144 cluster_algorithm = "FlowSOM", clusters = vector(), outdir = "",
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
145 list_clust = "", metacluster = 40, xdim = 10, ydim = 10,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
146 seed = 42, unused = "") {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
147 # check FCS files
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
148 fcspaths <- unlist(fcs_files)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
149 fcsnames <- unlist(grp_names)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
150 ct_files <- 0
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
151 some_pb <- FALSE
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
152 for (i in seq_len(length(fcspaths))) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
153 is_file_valid <- FALSE
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
154 tryCatch({
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
155 fcs <- read.FCS(fcspaths[[i]], transformation = FALSE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
156 is_file_valid <- TRUE
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
157 }, error = function(ex) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
158 print(paste("File is not a valid FCS file:", fcsnames[[i]], ex))
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
159 })
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
160 if (is_file_valid) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
161 metacyto_pp_check <- if ("sample_id" %in% colnames(fcs)) TRUE else FALSE
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
162 if (metacyto_pp_check) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
163 idx <- length(colnames(fcs))
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
164 ct_files <- ct_files + max(fcs@exprs[, idx])
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
165 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
166 quit(save = "no", status = 11, runLast = FALSE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
167 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
168 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
169 some_pb <- TRUE
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
170 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
171 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
172 # check summary file format
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
173 df <- read.table(report, sep = "\t", header = T, colClasses = "character")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
174 nm <- colnames(df)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
175 check_ab <- if ("antibodies" %in% nm) TRUE else FALSE
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
176 check_sdy <- if ("study_id" %in% nm) TRUE else FALSE
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
177
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
178 if (check_sdy && check_ab) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
179 # check that summary index compatible with FCSs in collection - by number of files == index nb?
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
180 if (ct_files != length(df$antibodies)) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
181 quit(save = "no", status = 12, runLast = FALSE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
182 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
183 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
184 quit(save = "no", status = 13, runLast = FALSE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
185 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
186
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
187 if (some_pb) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
188 quit(save = "no", status = 10, runLast = FALSE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
189 } else {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
190 auto_cluster_panels(params, df, fcspaths, fcsnames, quant, events,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
191 cluster_algorithm, clusters, outdir, list_clust,
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
192 metacluster, xdim, ydim, seed, unused)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
193 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
194 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
195
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
196 ################################################################################
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
197 ################################################################################
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
198 args <- commandArgs(trailingOnly = TRUE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
199
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
200 ex_param <- c("FSC-A", "FSC-W", "FSC-H", "FSC", "SSC", "SSC-A", "SSC-W",
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
201 "SSC-H", "Time", "Cell_length", "cell_length", "CELL_LENGTH")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
202
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
203 if (args[5] != "" && args[5] != "None") {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
204 tmp <- gsub(" ", "", args[5], fixed = TRUE)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
205 eparam <- unlist(strsplit(tmp, ","))
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
206 ex_param <- toupper(eparam)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
207 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
208
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
209 i <- grep(args, pattern = "PARAM")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
210 ii <- grep(args, pattern = "FCS_FILES")
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
211
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
212 cluster_def <- vector()
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
213 if (i > 8) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
214 id <- i - 1
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
215 cl_df <- args[8:id]
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
216 cluster_def <- sapply(cl_df, check_cluster_def)
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
217 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
218
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
219 metacluster <- 40
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
220 xdim <- 10
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
221 ydim <- 10
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
222 seed <- 42
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
223 if (i + 1 != ii) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
224 metacluster <- as.numeric(args[i + 1])
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
225 xdim <- as.numeric(args[i + 2])
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
226 ydim <- as.numeric(args[i + 3])
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
227 seed <- as.numeric(args[i + 4])
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
228 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
229
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
230 fcs_files <- list()
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
231 fcs_names <- list()
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
232 j <- 1
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
233 m <- ii + 1
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
234 n <- length(args) - 1
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
235 tmp_fcs <- args[m:n]
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
236
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
237 for (k in seq_len(length(tmp_fcs))) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
238 if (k %% 2) {
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
239 fcs_files[[j]] <- tmp_fcs[[k]]
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
240 fcs_names[[j]] <- tmp_fcs[[k + 1]]
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
241 j <- j + 1
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
242 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
243 }
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
244
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
245 check_input(ex_param, args[1], fcs_files, fcs_names, as.numeric(args[3]),
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
246 as.numeric(args[4]), args[2], cluster_def, args[6], args[7],
c744db871f90 "planemo upload for repository https://github.com/AstraZeneca-Omics/immport-galaxy-tools/tree/master/flowtools/metacyto_autocluster commit 3cc1083d473530ed4f7439d590568baa51a46857"
azomics
parents:
diff changeset
247 metacluster, xdim, ydim, seed, args[length(args)])