diff cummeRbund.R @ 0:587c425b4e76 draft

Initial commit with version 1.0.0 of the cummeRbund wrapper.
author devteam
date Tue, 23 Dec 2014 15:58:27 -0500
parents
children 78fcfc04fcfe
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cummeRbund.R	Tue Dec 23 15:58:27 2014 -0500
@@ -0,0 +1,146 @@
+## Feature Selection ##
+get_features <- function(myGenes, f="gene") {
+    if (f == "isoforms")
+        return(isoforms(myGenes))
+    else if (f == "tss")
+        return(TSS(myGenes))
+    else if (f == "cds")
+        return(CDS(myGenes))
+    else
+        return(myGenes)
+}
+
+## Main Function ##
+
+library(argparse)
+
+parser <- ArgumentParser(description='Create a plot with cummeRbund')
+
+parser$add_argument('--type', dest='plotType', default='Density', required=TRUE)
+parser$add_argument('--height', dest='height', type='integer', default=960, required=TRUE)
+parser$add_argument('--width', dest='width', type='integer', default=1280, required=TRUE)
+parser$add_argument('--outfile', dest='filename', default="plot-unknown-0.png", required=TRUE)
+parser$add_argument('--input', dest='input_database', default="cuffData.db", required=TRUE)
+parser$add_argument('--smooth', dest='smooth', action="store_true", default=FALSE)
+parser$add_argument('--gene_selector', dest='gene_selector', action="store_true", default=FALSE)
+parser$add_argument('--replicates', dest='replicates', action="store_true", default=FALSE)
+parser$add_argument('--labcol', dest='labcol', action="store_true", default=FALSE)
+parser$add_argument('--labrow', dest='labrow', action="store_true", default=FALSE)
+parser$add_argument('--border', dest='border', action="store_true", default=FALSE)
+parser$add_argument('--summary', dest='summary', action="store_true", default=FALSE)
+parser$add_argument('--count', dest='count', action="store_true", default=FALSE)
+parser$add_argument('--error_bars', dest='error_bars', action="store_true", default=FALSE)
+parser$add_argument('--log10', dest='log10', action="store_true", default=FALSE)
+parser$add_argument('--features', dest='features', action="store", default="genes")
+parser$add_argument('--clustering', dest='clustering', action="store", default="both")
+parser$add_argument('--iter_max', dest='iter_max', action="store")
+parser$add_argument('--genes', dest='genes', action="append")
+parser$add_argument('--k', dest='k', action="store")
+parser$add_argument('--x', dest='x', action="store")
+parser$add_argument('--y', dest='y', action="store")
+
+args <- parser$parse_args()
+
+## Load cummeRbund library
+library("cummeRbund")
+
+## Initialize cuff object
+cuff <- readCufflinks(dir = "", dbFile = args$input_database, rebuild = FALSE)
+
+## Print out info
+print(cuff)
+sink("cuffdb_info.txt")
+print(cuff)
+print("SAMPLES:")
+samples(cuff)
+print("REPLICATES:")
+replicates(cuff)
+print("FEATURES:")
+print(annotation(genes(cuff)))
+cat(annotation(genes(cuff))[[1]],sep=",")
+sink()
+
+png(filename = args$filename, width = args$width, height = args$height, type=c('cairo-png'))
+tryCatch({
+    if (args$plotType == 'density') {
+        csDensity(genes(cuff), replicates=args$replicates, logMode=args$log10)
+    }
+    else if (args$plotType == 'boxplot') {
+        csBoxplot(genes(cuff), replicates=args$replicates, logMode=args$log10)
+    }
+    else if (args$plotType == 'mds') {
+        MDSplot(genes(cuff), replicates=args$replicates)
+    }
+    else if (args$plotType == 'pca') {
+        PCAplot(genes(cuff), "PC1", "PC2", replicates=args$replicates)
+    }
+    else if (args$plotType == 'dendrogram') {
+        csDendro(genes(cuff), replicates=args$replicates)
+    }
+    else if (args$plotType == 'scatter') {
+        if (args$gene_selector) {
+            myGenes <- getGenes(cuff, args$genes)
+            csScatter(get_features(myGenes, args$features), args$x, args$y, smooth=args$smooth, logMode=args$log10)
+        }
+        else {
+            csScatter(genes(cuff), args$x, args$y, smooth=args$smooth, logMode=args$log10)
+        }
+    }
+    else if (args$plotType == 'volcano') {
+        if (args$gene_selector) {
+            myGenes <- get_features(getGenes(cuff, args$genes), args$features)
+        }
+        else {
+            myGenes <- genes(cuff)
+        }
+        csVolcano(myGenes, args$x, args$y)
+    }
+    else if (args$plotType == 'heatmap') {
+        if (args$gene_selector) {
+            myGenes <- getGenes(cuff, args$genes)
+        }
+        else {
+            myGenes <- getGenes(cuff,annotation(genes(cuff))[[1]])
+        }
+        csHeatmap(get_features(myGenes, args$features), clustering=args$clustering, labCol=args$labcol, labRow=args$labrow, border=args$border, logMode=args$log10)
+    }
+    else if (args$plotType == 'cluster') {
+        myGenes <- getGenes(cuff, args$genes)
+        csCluster(get_features(myGenes, args$features), k=args$k)
+    }
+    else if (args$plotType == 'dispersion') {
+        dispersionPlot(genes(cuff))
+    }
+    else if (args$plotType == 'fpkmSCV') {
+        fpkmSCVPlot(genes(cuff))
+    }
+    else if (args$plotType == 'scatterMatrix') {
+        csScatterMatrix(genes(cuff))
+    }
+    else if (args$plotType == 'expressionplot') {
+        myGenes <- getGenes(cuff, args$genes)
+        expressionPlot(get_features(myGenes, args$features), drawSummary=args$summary, showErrorbars=args$error_bars, replicates=args$replicates)
+    }
+    else if (args$plotType == 'expressionbarplot') {
+        myGeneId <- args$genes
+        myGenes <- getGenes(cuff, myGeneId)
+        expressionBarplot(get_features(myGenes, args$features), showErrorbars=args$error_bars, replicates=args$replicates)
+    }
+    else if (args$plotType == 'mds') {
+        MDSplot(genes(cuff),replicates=args$replicates)
+    }
+    else if (args$plotType == 'pca') {
+        PCAplot(genes(cuff),"PC1","PC2", replicates=args$replicates)
+    }
+    else if (args$plotType == 'maplot') {
+        MAplot(genes(cuff), args$x, args$y, useCount=args$count)
+    }
+    else if (args$plotType == 'genetrack') {
+        myGene <- getGene(cuff, args$genes)
+        plotTracks(makeGeneRegionTrack(myGene))
+    }
+},error = function(e) {
+    write(paste("Failed:", e, sep=" "), stderr())
+    q("no", 1, TRUE)
+})
+devname = dev.off()