annotate FCSGateTrans.R @ 1:c28c2e680bf5 draft

"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
author azomics
date Mon, 22 Jun 2020 20:30:34 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
1 #!/usr/bin/env Rscript
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
2 ######################################################################
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
3 # Copyright (c) 2016 Northrop Grumman.
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
4 # All rights reserved.
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
5 ######################################################################
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
6 # ImmPort FCS conversion program
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
7 # Authors: Yue Liu and Yu "Max" Qian
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
8 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
9 # Reference: FCSTrans: An open source software system for FCS
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
10 # file conversion and data transformation
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
11 # Qian Y, Liu Y, Campbell J, Thomson E, Kong YM,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
12 # Scheuermann RH. 2012 Cytometry Part A. 81A(5)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
13 # doi.org/10.1002/cyto.a.22037
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
14 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
15 # To run in R
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
16 # 1) library(flowCore)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
17 # 2) source("FCSTrans.R")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
18 # 3) transformFCS("filename")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
19 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
20 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
21 # Automated Gating of Lymphocytes with FlowDensity
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
22 # Authors of FlowDensity: Jafar Taghiyar, Mehrnoush Malek
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
23 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
24 # Reference: flowDensity: reproducing manual gating of flow
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
25 # cytometry data by automated density-based cell
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
26 # population identification
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
27 # Malek M, Taghiyar MJ, Chong L, Finak G,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
28 # Gottardo R, Brinkman RR. 2015 Bioinformatics 31(4)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
29 # doi: 10.1093/bioinformatics/btu677
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
30 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
31 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
32 # Version 1.5
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
33 # March 2016 -- added lines to run directly from command line (cristel thomas)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
34 # May 2016 -- added automated gating (cristel thomas)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
35 # August 2016 -- added options for data transformation (cristel thomas)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
36 # April 2017 -- added logicle to transformation options (cristel thomas)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
37 # July 2017 -- added options for outputs (cristel thomas)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
38
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
39 library(flowCore)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
40 library(flowDensity)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
41 library(GEOmap)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
42 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
43 # Set output to 0 when input is less than cutoff value
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
44 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
45 ipfloor <- function (x, cutoff=0, target=0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
46 y <- x
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
47 if (x <= cutoff) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
48 y <- target
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
49 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
50 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
51 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
52 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
53 # Set output to 0 when input is less than cutoff value
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
54 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
55 ipceil <- function (x, cutoff=0, target=0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
56 y <- x
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
57 if (x >= cutoff) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
58 y <- target
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
59 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
60 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
61 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
62 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
63 # Calculation core of iplogicle
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
64 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
65 iplogicore <- function (x, w, r, d, scale) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
66 tol <- .Machine$double.eps^0.8
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
67 maxit <- as.integer(5000)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
68 d <- d * log(10)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
69 scale <- scale / d
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
70 p <- if (w == 0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
71 1
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
72 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
73 uniroot(function(p) -w + 2 * p * log(p)/(p + 1), c(.Machine$double.eps,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
74 2 * (w + d)))$root
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
75 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
76 a <- r * exp(-(d - w))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
77 b <- 1
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
78 c <- r * exp(-(d - w)) * p^2
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
79 d <- 1/p
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
80 f <- a * (p^2 - 1)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
81 y <- .Call("flowCore_biexponential_transform", PACKAGE= 'flowCore',
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
82 as.double(x), a, b, c, d, f, w, tol, maxit)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
83 y <- sapply(y * scale, ipfloor)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
84 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
85 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
86 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
87 # Function for calculating w
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
88 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
89 iplogiclew <- function (w, cutoff=-111, r=262144, d=4.5, scale=1) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
90 if (w > d)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
91 w <- d
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
92 y <- iplogicore(cutoff, w, r, d, scale) - .Machine$double.eps^0.6
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
93 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
94 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
95 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
96 # ImmPort logicle function - convert fluorescent marker values to channel output
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
97 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
98 iplogicle <- function (x, r=262144, d=4.5, range=4096, cutoff=-111, w=-1) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
99 if (w > d) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
100 stop("Negative range decades must be smaller than total number of decades")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
101 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
102 if (w < 0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
103 w = uniroot(iplogiclew, c(0, d), cutoff=cutoff)$root
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
104 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
105 y <- iplogicore(x, w, r, d, range)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
106 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
107 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
108 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
109 # Convert fluorescent values to channel output using log transformation
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
110 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
111 iplog <- function(x) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
112 x <- sapply(x, ipfloor, cutoff=1, target=1)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
113 y <- 1024 * log10(x) - 488.6
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
114 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
115 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
116 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
117 # ImmPort linear function - convert scatter values to channel output
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
118 # linear transformation
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
119 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
120 ipscatter <- function (x, channelrange=262144) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
121 y <- 4095.0 * x / channelrange
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
122 y <- sapply(y, ipfloor)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
123 y <- sapply(y, ipceil, cutoff=4095, target=4095)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
124 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
125 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
126 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
127 # ImmPort time function - convert time values to channel output
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
128 # linear transformation
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
129 iptime <- function (x, channelrange) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
130 # use simple cutoff for now
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
131 y <- sapply(x, ipfloor)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
132 return(y)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
133 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
134 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
135 # Determine the type of marker. Marker type is used
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
136 # to determine type of transformation to apply for this channel.
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
137 # Before 2010 FLUO_AREA type used iplogicile and
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
138 # FLOU_NON_AREA type used iplog. In 2010 Yue, changed code so
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
139 # all fluorescent channels use iplogicle. Below is the note from SVN
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
140 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
141 # Version 1.1
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
142 # 2010-07-02
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
143 # -----------
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
144 # Added data type checking on both FCS version 2 and 3
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
145 # Removed log conversion for non-area fluorescent channel
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
146 # Applied logicle conversion for all fluorescent channels
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
147 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
148 # The GenePattern version uses iplog for FLOU_NON_AREA, rather
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
149 # than iplogicle.
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
150 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
151 getMarkerType <- function(name,debug=FALSE) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
152 type <- ""
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
153 prefix2 <- toupper(substr(name, 1, 2))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
154 prefix3 <- toupper(substr(name, 1, 3))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
155 prefix4 <- toupper(substr(name, 1, 4))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
156 if (prefix2 == "FS" || prefix2 == "SS") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
157 type <- "SCATTER"
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
158 } else if (prefix3 == "FSC" || prefix3 == "SSC") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
159 type <- "SCATTER"
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
160 } else if (prefix4 == "TIME") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
161 type <- "TIME"
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
162 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
163 pieces <- unlist(strsplit(name, "-"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
164 if (toupper(pieces[length(pieces)]) == "A") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
165 type <- "FLUO_AREA"
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
166 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
167 type <- "FLUO_NON_AREA"
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
168 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
169 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
170 if (debug) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
171 print(paste("Marker:", name, ", Type:", type))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
172 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
173 return(type)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
174 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
175 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
176 # Scale data
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
177 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
178 scaleData <- function(data, channelrange=0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
179 datamax <- range(data)[2] # range() returns [min, max]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
180 if (datamax > channelrange) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
181 channelrange <- datamax
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
182 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
183 #if (channelrange == 0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
184 # channelrange = range(data)[2]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
185 #}
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
186 data <- 262144 * data / channelrange
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
187 return(data)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
188 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
189 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
190 # Check if AccuriData. Accuri data needs different conversion
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
191 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
192 isAccuriData <- function(keywords) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
193 isTRUE(as.character(keywords$"$CYT") == "Accuri C6")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
194 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
195 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
196 # Convert FCS file
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
197 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
198 convertFCS <- function(fcs, debug=FALSE) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
199 # Check file type and FCS version
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
200 if (class(fcs)[1] != "flowFrame") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
201 print("convertFCS requires flowFrame object as input")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
202 return(FALSE)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
203 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
204 keywords <- keyword(fcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
205 markers <- colnames(fcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
206 params <- fcs@parameters
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
207 list_description <- fcs@description
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
208
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
209 if (debug) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
210 print("****Inside convertFCS")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
211 print(paste(" FCS version:", keywords$FCSversion))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
212 print(paste(" DATATYPE:", keywords['$DATATYPE']))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
213 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
214 if (keywords$FCSversion == "2" || keywords$FCSversion == "3" ||
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
215 keywords$FCSversion == "3.1" ) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
216 datatype <- unlist(keywords['$DATATYPE'])
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
217 if (datatype == 'F') {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
218 # Process fcs expression data, using transformation
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
219 # based on category of the marker.
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
220 fcs_exprs <- exprs(fcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
221 fcs_channel <- NULL
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
222 for (i in 1:length(markers)){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
223 markertype <- getMarkerType(markers[i], debug)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
224 rangekeyword <- paste("$P", i, "R", sep="")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
225 flowcore_min <- paste("flowCore_", rangekeyword, "min", sep="")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
226 flowcore_max <- paste("flowCore_", rangekeyword, "max", sep="")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
227 channelrange <- as.numeric(keywords[rangekeyword])
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
228 if (debug) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
229 print(paste(" Marker name:", markers[i]))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
230 print(paste(" Marker type:", markertype))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
231 print(paste(" Range value:", keywords[rangekeyword]))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
232 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
233
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
234 if (markertype == "TIME") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
235 channel <- iptime(fcs_exprs[, i])
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
236 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
237 if (markertype == "SCATTER") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
238 channel <- ipscatter(scaleData(fcs_exprs[, i], channelrange))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
239 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
240 # Apply logicle transformation on fluorescent channels
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
241 channel <- iplogicle(scaleData(fcs_exprs[, i], channelrange))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
242 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
243 # adjust range in parameters and list description
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
244 if (params@data$range[i] > 4096){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
245 params@data$range[i] <- 4096
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
246 params@data$minRange[i] <- 0
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
247 params@data$maxRange[i] <- 4096
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
248 list_description[rangekeyword] <- 4096
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
249 list_description[flowcore_min] <- 0
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
250 list_description[flowcore_max] <- 4096
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
251 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
252 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
253 fcs_channel <- cbind(fcs_channel, round(channel))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
254 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
255 colnames(fcs_channel) <- markers
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
256 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
257 if (datatype != 'I') {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
258 print(paste("Data type", datatype, "in FCS 3 is not supported"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
259 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
260 fcs_channel <- exprs(fcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
261 colnames(fcs_channel) <- markers
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
262 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
263 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
264 print(paste("FCS version", keyword(fcs)$FCSversion, "is not supported"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
265 fcs_channel <- exprs(fcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
266 colnames(fcs_channel) <- markers
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
267 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
268 newfcs <- flowFrame(fcs_channel, params, list_description)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
269 return(newfcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
270 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
271 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
272 # Starting function for processing a FCS file
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
273 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
274 processFCSFile <- function(input_file, output_file="", compensate=FALSE,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
275 outformat="flowtext", gate=FALSE,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
276 graph_file="", report="", method="",
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
277 scaling_factor, logicle_w=0.5, logicle_t=262144,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
278 logicle_m=4.5, debug=FALSE) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
279 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
280 # Generate the file names for the output_file
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
281 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
282 pieces <- unlist(strsplit(input_file, .Platform$file.sep))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
283 filename <- pieces[length(pieces)]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
284 if (debug) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
285 print (paste("Converting file: ",input_file))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
286 print (paste("Original file name: ",filename))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
287 print (paste("Output file name: ",output_file))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
288 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
289 fcs <- read.FCS(input_file, transformation=F)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
290 keywords <- keyword(fcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
291 markers <- colnames(fcs)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
292 print_markers <- as.vector(pData(parameters(fcs))$desc)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
293 # Update print_markers if the $P?S not in the FCS file
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
294 for (i in 1:length(print_markers)) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
295 if (is.na(print_markers[i])) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
296 print_markers[[i]] <- markers[i]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
297 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
298 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
299 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
300 # Compensate
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
301 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
302 spill <- keywords$SPILL
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
303
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
304 if (is.null(spill) == FALSE && compensate == TRUE) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
305 if (debug) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
306 print("Attempting compensation")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
307 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
308 tryCatch({fcs = compensate(fcs, spill)},
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
309 error = function(ex) {str(ex); })
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
310 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
311 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
312 # Transform the data
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
313 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
314 transformed_data <- fcs
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
315 channels_to_exclude <- c(grep(colnames(fcs), pattern="FSC"),
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
316 grep(colnames(fcs), pattern="SSC"),
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
317 grep(colnames(fcs), pattern="Time"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
318 list_channels <- colnames(fcs)[-channels_to_exclude]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
319 if (isAccuriData(keywords)) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
320 print("Accuri data is not supported")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
321 } else if (method != "None"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
322 if (method == "fcstrans"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
323 transformed_data <- convertFCS(fcs, debug)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
324 } else if (method == "logicle_auto"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
325 lgcl <- estimateLogicle(fcs, channels = list_channels)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
326 transformed_data <- transform(fcs, lgcl)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
327 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
328 if (method == "arcsinh"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
329 trans <- arcsinhTransform(transformationId="defaultArcsinhTransform",
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
330 a = 0, b = scaling_factor, c = 0)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
331 } else if (method == "logicle"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
332 trans <- logicleTransform(w = logicle_w, t = logicle_t, m = logicle_m)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
333 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
334 translist <- transformList(list_channels, trans)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
335 transformed_data <- transform(fcs, translist)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
336 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
337 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
338 trans_gated_data <- transformed_data
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
339 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
340 # Gate data
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
341 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
342 if (gate){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
343 # check that there are SSC and FSC channels to gate on
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
344 chans <- c(grep(colnames(transformed_data), pattern="FSC"),
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
345 grep(colnames(transformed_data), pattern="SSC"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
346 totalchans <- chans
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
347 if (length(chans) > 2) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
348 #get first FSC and corresponding SSC
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
349 chans <- c(grep(colnames(transformed_data), pattern="FSC-A"),
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
350 grep(colnames(transformed_data), pattern="SSC-A"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
351 if (length(chans) == 0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
352 chans <- c(grep(colnames(transformed_data), pattern="FSC-H"),
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
353 grep(colnames(transformed_data), pattern="SSC-H"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
354 if (length(chans) == 0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
355 chans <- c(grep(colnames(transformed_data), pattern="FSC-W"),
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
356 grep(colnames(transformed_data), pattern="SSC-W"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
357 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
358 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
359 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
360 if (length(chans) == 0) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
361 warning('No forward/side scatter channels found, gating aborted.')
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
362 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
363 # gate lymphocytes
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
364 lymph <- flowDensity(obj=transformed_data, channels=chans,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
365 position=c(TRUE, NA),
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
366 debris.gate=c(TRUE, FALSE))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
367 # gate singlets if A and H/W
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
368 if (length(totalchans) > 2) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
369 trans_gated_data <- getflowFrame(flowDensity(obj=lymph,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
370 singlet.gate=TRUE))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
371 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
372 trans_gated_data <- getflowFrame(lymph)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
373 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
374 # report
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
375 pregating_summary <- capture.output(summary(transformed_data))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
376 pregating_dim <- capture.output(dim(transformed_data))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
377 postgating_summary <- capture.output(summary(trans_gated_data))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
378 postgating_dim <- capture.output(dim(trans_gated_data))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
379 sink(report)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
380 cat("#########################\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
381 cat("## BEFORE GATING ##\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
382 cat("#########################\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
383 cat(pregating_dim, pregating_summary, sep="\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
384 cat("\n#########################\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
385 cat("## AFTER GATING ##\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
386 cat("#########################\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
387 cat(postgating_dim, postgating_summary, sep="\n")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
388 sink()
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
389 # plots
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
390 time_channel <- grep(toupper(colnames(transformed_data)), pattern="TIME")
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
391 nb_markers <- length(colnames(transformed_data)) - length(time_channel)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
392 nb_rows <- ceiling(((nb_markers-1)*nb_markers)/4)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
393 h <- 400 * nb_rows
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
394 maxrange <- transformed_data@parameters@data$range[1]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
395
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
396 png(graph_file, type="cairo", height=h, width=800)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
397 par(mfrow=c(nb_rows,2))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
398 for (m in 1:(nb_markers - 1)) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
399 for (n in (m+1):nb_markers) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
400 plotDens(transformed_data, c(m,n), xlab = print_markers[m],
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
401 ylab = print_markers[n], main = "Before Gating",
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
402 ylim = c(0, maxrange), xlim = c(0, maxrange))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
403 plotDens(trans_gated_data, c(m,n), xlab = print_markers[m],
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
404 ylab = print_markers[n], main = "After Gating",
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
405 ylim = c(0, maxrange), xlim = c(0, maxrange))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
406 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
407 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
408 dev.off()
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
409 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
410 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
411 if (outformat=="FCS") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
412 write.FCS(trans_gated_data, output_file)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
413 } else if (outformat=="flowFrame") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
414 saveRDS(trans_gated_data, file = output_file)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
415 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
416 output_data <- exprs(trans_gated_data)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
417 colnames(output_data) <- print_markers
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
418 write.table(output_data, file=output_file, quote=F,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
419 row.names=F,col.names=T, sep='\t', append=F)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
420 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
421 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
422 # Convert FCS file using FCSTrans logicile transformation
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
423 # @param input_file FCS file to be transformed
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
424 # @param output_file FCS file transformed ".txt" extension
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
425 # @param compensate Flag indicating whether to apply compensation
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
426 # matrix if it exists.
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
427 transformFCS <- function(input_file, output_file, compensate=FALSE,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
428 outformat="flowtext", gate=FALSE, graph_file="",
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
429 report_file="", trans_met="", scaling_factor=1/150,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
430 w=0.5, t=262144, m=4.5, debug=FALSE) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
431 isValid <- F
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
432 # Check file beginning matches FCS standard
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
433 tryCatch({
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
434 isValid <- isFCSfile(input_file)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
435 }, error = function(ex) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
436 print (paste(" ! Error in isFCSfile", ex))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
437 })
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
438 if (isValid) {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
439 processFCSFile(input_file, output_file, compensate, outformat,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
440 gate, graph_file, report_file, trans_met, scaling_factor,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
441 w, t, m)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
442 } else {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
443 print (paste(input_file, "does not meet FCS standard"))
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
444 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
445 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
446 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
447 # Run FCS Gate-Trans
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
448 #
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
449 args <- commandArgs(trailingOnly = TRUE)
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
450 graphs <- ""
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
451 report <- ""
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
452 gate <- FALSE
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
453 trans_method <- "None"
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
454 scaling_factor <- 1 / 150
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
455 w <- 0.5
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
456 t <- 262144
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
457 m <- 4.5
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
458 if (args[5]!="None") {
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
459 gate <- TRUE
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
460 graphs <- args[5]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
461 report <- args[6]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
462 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
463 if (args[7]!="None"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
464 trans_method <- args[7]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
465 if (args[7] == "arcsinh"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
466 scaling_factor <- 1 / as.numeric(args[8])
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
467 } else if (args[7] == "logicle"){
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
468 w <- args[8]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
469 t <- args[9]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
470 m <- args[10]
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
471 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
472 }
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
473 transformFCS(args[1], args[2], args[3], args[4], gate, graphs,
c28c2e680bf5 "planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
azomics
parents:
diff changeset
474 report, trans_method, scaling_factor, w, t, m)