Mercurial > repos > moheydarian > ggplot_violin_plot
comparison ggplotscriptviolin.R @ 1:c7db13bd4c85 draft
Uploaded
| author | moheydarian |
|---|---|
| date | Wed, 22 Feb 2017 22:36:41 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:74f4588a15e6 | 1:c7db13bd4c85 |
|---|---|
| 1 # Setup R error handling to go to stderr | |
| 2 options(show.error.messages=F, error=function(){cat(geterrmessage(),file=stderr());q("no",1,F)}) | |
| 3 | |
| 4 # We need to not crash galaxy with an UTF8 error on German LC settings. | |
| 5 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") | |
| 6 | |
| 7 | |
| 8 # Import library | |
| 9 library("getopt") | |
| 10 library("reshape2") | |
| 11 library("ggplot2") | |
| 12 options(stringAsfactors = FALSE, useFancyQuotes = FALSE) | |
| 13 # Take in trailing command line arguments | |
| 14 args <- commandArgs(trailingOnly = TRUE) | |
| 15 | |
| 16 | |
| 17 # get options, using the spec as defined by the enclosed list. | |
| 18 # we read the options from the default: commandArgs(TRUE). | |
| 19 option_specification = matrix(c( | |
| 20 'input', 'i', 2, 'character', | |
| 21 'title', 't',2, 'character', | |
| 22 'ggfill', 's', 2, 'character', | |
| 23 'ggcolor', 'z', 2, 'character', | |
| 24 'xlab', 'x', 2, 'character', | |
| 25 'ylab', 'y', 2, 'character', | |
| 26 'drawquartiles', 'a', 2, 'character', | |
| 27 'transform', 'w', 2, 'character', | |
| 28 'xaxismin', 'e', 2, 'integer', | |
| 29 'xaxismax', 'f', 2, 'integer', | |
| 30 'yaxismin', 'g', 2, 'integer', | |
| 31 'yaxismax', 'h', 2, 'integer', | |
| 32 'scaling', 'b', 2, 'character', | |
| 33 'output', 'o', 2, 'character' | |
| 34 ), byrow=TRUE, ncol=4); | |
| 35 | |
| 36 # Parse options | |
| 37 options = getopt(option_specification); | |
| 38 | |
| 39 | |
| 40 | |
| 41 # Print options to see what is going on | |
| 42 cat("\n input: ",options$input) | |
| 43 cat("\n title: ",options$title) | |
| 44 #cat("\n size: ",options$size) | |
| 45 cat("\n xlab: ",options$xlab) | |
| 46 cat("\n ylab: ",options$ylab) | |
| 47 cat("\n output: ",options$output) | |
| 48 | |
| 49 | |
| 50 if(options$scaling == "Automatic"){ | |
| 51 gg_scaley = NULL | |
| 52 } else { | |
| 53 gg_scaley = ylim(options$yaxismin,options$yaxismax) | |
| 54 cat("\n yaxismin: ",options$yaxismin) | |
| 55 cat("\n yaxismax: ",options$yaxismax) | |
| 56 } | |
| 57 | |
| 58 | |
| 59 integrated <- read.csv(options$input,sep='\t',header=TRUE) | |
| 60 input <- melt(integrated) | |
| 61 | |
| 62 | |
| 63 | |
| 64 if(options$transform == "log2"){ | |
| 65 input["value"] <- log2(input["value"]) | |
| 66 }else if(options$transform == "log2plus1"){ | |
| 67 input["value"] <- log2(input["value"]+1) | |
| 68 }else if(options$transform == "log10"){ | |
| 69 input["value"] <- log10(input["value"]) | |
| 70 }else if(options$transform == "log10plus1"){ | |
| 71 input["value"] <- log10(input["value"]+1) | |
| 72 }else{ | |
| 73 } | |
| 74 | |
| 75 if(options$drawquartiles == "none"){ | |
| 76 gg_quartile = NULL | |
| 77 } else { | |
| 78 gg_quartile = c(0.25, 0.5, 0.75) | |
| 79 } | |
| 80 | |
| 81 | |
| 82 | |
| 83 ggplot(input,aes(variable,value)) +geom_violin(scale = "area", colour = options$ggcolor, fill = options$ggfill, draw_quantiles = gg_quartile) + | |
| 84 gg_scaley+theme_bw()+xlab(options$xlab)+ylab(options$ylab)+ggtitle(options$title) | |
| 85 | |
| 86 ggsave(file=options$output) |
