Mercurial > repos > immport-devteam > fcs_gate_trans
annotate FCSGateTrans.R @ 1:c28c2e680bf5 draft
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/fcs_gate_trans commit f34ed6ca8e77b9792a270890262c2936b13e30b9"
| author | azomics | 
|---|---|
| date | Mon, 22 Jun 2020 20:30:34 -0400 | 
| parents | |
| children | 
| 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) | 
