Mercurial > repos > azomics > ggcyto_1d_density_plots
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)