Mercurial > repos > immport-devteam > fcs_gate_trans
annotate FCSGateTrans.R @ 2:66a54e77aa33 draft default tip
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit 88c38ff89e9e7acff592b84e0e53a8bac58623cf"
author | azomics |
---|---|
date | Mon, 06 Jul 2020 19:39:35 -0400 |
parents | c28c2e680bf5 |
children |
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) |