view heatmap2.R @ 4:d61d62699e5c draft

Uploaded
author moheydarian
date Tue, 14 Mar 2017 14:20:49 -0400
parents f4e9535003ad
children 84935e121609
line wrap: on
line source

# Setup R error handling to go to stderr
options(show.error.messages=F, error=function(){cat(geterrmessage(),file=stderr());q("no",1,F)})

# We need to not crash galaxy with an UTF8 error on German LC settings.
loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")


# Import library
library("getopt")
library("RColorBrewer")
library("gplots")
options(stringAsfactors = FALSE, useFancyQuotes = FALSE)
# Take in trailing command line arguments
args <- commandArgs(trailingOnly = TRUE)


# get options, using the spec as defined by the enclosed list.
# we read the options from the default: commandArgs(TRUE).
option_specification = matrix(c(
  'input', 'i', 2, 'character',
  'title', 't',2, 'character',
  'transform', 'c', 2, 'character',
  'keylabel', 'k',2, 'character',
  'output', 'o', 2, 'character'
  ), byrow=TRUE, ncol=4);

# Parse options
options = getopt(option_specification);



# Print options to see what is going on
cat("\n input: ",options$input)
cat("\n title: ",options$title)
cat("\n output: ",options$output)

input <- read.delim(options$input,sep='\t',header=TRUE)

mat_input <- data.matrix(input[,2:ncol(input)])  


if(options$transform == "none"){
    linput <- mat_input
}else if(options$transform == "log2"){
    linput <- log2(mat_input)
}else if(options$transform == "log2plus1"){
    linput <- log2(mat_input+1)
}else if(options$transform == "log10"){
    linput <- log10(mat_input)
}else if(options$transform == "log10plus1"){
    linput <- log10(mat_input+1)
    }else{
}



hclust_fun = function(x) hclust(x, method="complete")
dist_fun = function(x) dist(x, method="maximum")

pdf(file="Rplot.pdf")
colfunc <- colorRampPalette(c("white", "red"))
heatmap.2(linput,
          distfun=dist_fun, hclustfun=hclust_fun, scale = "none",
          col=colfunc(50), trace="none", density.info = "none",labRow=FALSE, margins=c(8,2),
          main = options$title, key.xlab= options$keylabel, keysize=1)
dev.off()