diff FCS1Dplotggcyto.R @ 0:b73fc4860906 draft default tip

"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/ggcyto_1d_density_plots commit b32c86c02e138aa291c869b31351c4970300fbb4"
author azomics
date Mon, 22 Jun 2020 17:53:11 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FCS1Dplotggcyto.R	Mon Jun 22 17:53:11 2020 -0400
@@ -0,0 +1,88 @@
+#!/usr/bin/Rscript
+# 1D Density Plot Module for Galaxy
+# ggcyto
+######################################################################
+#                  Copyright (c) 2016 Northrop Grumman.
+#                          All rights reserved.
+######################################################################
+#
+# Version 1
+# Cristel Thomas
+#
+#
+
+library(ggcyto)
+
+generate1Dplot <- function(input, output, flag_pdf=FALSE, trans_method="None",
+                           factor="", log_w=0.5, log_t=262144, log_m=4.5) {
+  fcsfs <- read.flowSet(input, transformation=F)
+  h <- 800
+  w <- 1200
+  if ("colnames" %in% names(attributes(fcsfs)) && length(fcsfs@colnames)>12){
+    h <- 1200
+    w <- 1600
+  }
+  p <- autoplot(fcsfs[[1]])
+  if (trans_method == "arcsinh") {
+    p <- p + scale_x_flowCore_fasinh(a = 0, b = factor, c = 0) + geom_density(fill="steelblue", alpha=0.5)
+  } else if (trans_method == "logicle") {
+    p <- p + scale_x_logicle(w=log_w, t=log_t, m=log_m) + geom_density(fill="paleturquoise", alpha=0.5)
+  }
+
+  if (flag_pdf) {
+    pdf(output, useDingbats=FALSE, onefile=TRUE)
+    print({
+      p
+    })
+    dev.off()
+  } else {
+    png(output, type="cairo", height=h, width=w)
+    print({
+      p
+    })
+    dev.off()
+  }
+}
+
+checkFCS <- function(input_file, output_file, flag_pdf=FALSE, trans_met="None",
+                     factor="", w=0.5, t=262144, m=4.5) {
+  isValid <- F
+  # Check file beginning matches FCS standard
+  tryCatch({
+    isValid <- isFCSfile(input_file)
+  }, error = function(ex) {
+    print (paste("    ! Error in isFCSfile", ex))
+  })
+
+  if (isValid) {
+    generate1Dplot(input_file, output_file, flag_pdf, trans_met,
+                   factor, w, t, m)
+  } else {
+    print (paste(input_file, "does not meet FCS standard"))
+  }
+}
+
+args <- commandArgs(trailingOnly = TRUE)
+flag_pdf <- FALSE
+trans_method <- "None"
+scaling_factor <- 1 / 150
+w <- 0.5
+t <- 262144
+m <- 4.5
+
+if (args[3] == "PDF"){
+  flag_pdf <- TRUE
+}
+
+if (args[4]!="None"){
+  trans_method <- args[4]
+  if (args[4] == "arcsinh"){
+    scaling_factor <- 1 / as.numeric(args[5])
+  } else if (args[4] == "logicle"){
+    w <- args[5]
+    t <- args[6]
+    m <- args[7]
+  }
+}
+
+checkFCS(args[1], args[2], flag_pdf, trans_method, scaling_factor, w, t, m)