Mercurial > repos > ynewton > plot_distribution
comparison plot_distribution.r @ 0:f91478b63ec6 draft
Uploaded
| author | ynewton |
|---|---|
| date | Thu, 13 Dec 2012 11:25:09 -0500 |
| parents | |
| children | cf8d0d54bc78 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f91478b63ec6 |
|---|---|
| 1 #!/usr/bin/Rscript | |
| 2 | |
| 3 #usage, options and doc goes here | |
| 4 argspec <- c("normalize.r - takes any flat file and normalizes the rows or the columns using various normalizations (median_shift, mean_shift, t_statistic (z-score), exp_fit, normal_fit, weibull_0.5_fit, weibull_1_fit, weibull_1.5_fit, weibull_5_fit). Requires a single header line and a single cloumn of annotation. | |
| 5 Usage: | |
| 6 normalize.r input.tab norm_type norm_by > output.tab | |
| 7 Example: | |
| 8 Rscript normalize.r test_matrix.tab median_shift column > output.tab | |
| 9 Rscript normalize.r test_matrix.tab mean_shift row normals.tab > output.tab | |
| 10 Options: | |
| 11 input matrix (annotated by row and column names) | |
| 12 normalization type; available options: | |
| 13 median_shift - shifts all values by the median or the row/column if no normals are specified, otherwise shifts by the median of normals | |
| 14 mean_shift - shifts all values by the mean or the row/column if no normals are specified, otherwise shifts by the mean of normals | |
| 15 t_statistic - converts all values to z-scores; if normals are specified then converts to z-scores within normal and non-normal classes separately | |
| 16 exp_fit - (only by column) ranks data and transforms exponential CDF | |
| 17 normal_fit - (only by column) ranks data and transforms normal CDF | |
| 18 weibull_0.5_fit - (only by column) ranks data and transforms Weibull CDF with scale parameter = 1 and shape parameter = 0.5 | |
| 19 weibull_1_fit - (only by column) ranks data and transforms Weibull CDF with scale parameter = 1 and shape parameter = 1 | |
| 20 weibull_1.5_fit - (only by column) ranks data and transforms Weibull CDF with scale parameter = 1 and shape parameter = 1.5 | |
| 21 weibull_5_fit - (only by column) ranks data and transforms Weibull CDF with scale parameter = 1 and shape parameter = 5 | |
| 22 normalization by: | |
| 23 row | |
| 24 column | |
| 25 normals_file is an optional parameter which contains a list of column headers from the input matrix, which should be considered as normals | |
| 26 output file is specified through redirect character >") | |
| 27 | |
| 28 read_matrix <- function(in_file){ | |
| 29 header <- strsplit(readLines(con=in_file, n=1), "\t")[[1]] | |
| 30 cl.cols<- 1:length(header) > 1 | |
| 31 data_matrix.df <- read.delim(in_file, header=TRUE, row.names=NULL, stringsAsFactors=FALSE, na.strings="NA", check.names=FALSE) | |
| 32 data_matrix <- as.matrix(data_matrix.df[,cl.cols]) | |
| 33 rownames(data_matrix) <- data_matrix.df[,1] | |
| 34 return(data_matrix) | |
| 35 } | |
| 36 | |
| 37 main <- function(argv) { | |
| 38 in_file <- argv[1] | |
| 39 out_file <- argv[2] | |
| 40 sink('/dev/null') | |
| 41 | |
| 42 input_data <- read_matrix(in_file) | |
| 43 | |
| 44 pdf(out_file, bg="white") | |
| 45 par(mfrow=c(1,1)) | |
| 46 hist(input_data, col="lightblue", labels=TRUE, main="Histogram", xlab="") | |
| 47 plot(density(input_data), type="l", col="blue", main="Density") | |
| 48 dev.off() | |
| 49 } | |
| 50 | |
| 51 main(commandArgs(TRUE)) |
