#!/usr/bin/python from datetime import datetime import sys import subprocess import os import math import rpy2.robjects as robjects robjects.r('library("scales")') import rpy2.robjects.lib.ggplot2 as ggplot2 ggplot2.theme_set(ggplot2.theme_bw()) #print ggplot2.theme_get() from rpy2.robjects.packages import importr from rpy2.robjects import FloatVector, StrVector, IntVector, DataFrame def ggplot2_options(): return ggplot2.opts( **{ 'axis.title.x': ggplot2.theme_blank(), 'axis.title.y': ggplot2.theme_text( family='serif', face='bold', size=15, angle=90, vjust=0.2), 'axis.text.x': ggplot2.theme_text(family='serif', size=15), 'axis.text.y': ggplot2.theme_text(family='serif', size=15), 'legend.title': ggplot2.theme_text(family='serif', face='bold', size=15),
def plot_qc_reads(qc_df): """ Plot number of reads part of a pipeline QC file. """ # Record NA values as 0 qc_df = qc_df.fillna(0)#.set_index("sample") cols = ["sample", "num_reads", "num_mapped", "num_unique_mapped", "num_junctions"] qc_df = qc_df[cols] melted_qc = pandas.melt(qc_df, id_vars=["sample"]) qc_r = conversion_pydataframe(melted_qc) labels = tuple(["num_reads", "num_mapped", "num_unique_mapped", "num_junctions"]) labels = robj.StrVector(labels) variable_i = qc_r.names.index('variable') qc_r[variable_i] = robj.FactorVector(qc_r[variable_i], levels = labels) ggplot2.theme_set(ggplot2.theme_bw(12)) scales = importr("scales") r_opts = r.options(scipen=4) p = ggplot2.ggplot(qc_r) + \ ggplot2.geom_point(aes_string(x="sample", y="value")) + \ ggplot2.scale_y_continuous(trans=scales.log10_trans(), breaks=scales.trans_breaks("log10", robj.r('function(x) 10^x')), labels=scales.trans_format("log10", robj.r('math_format(10^.x)'))) + \ r.xlab("CLIP-Seq samples") + \ r.ylab("No. reads") + \ ggplot2.coord_flip() + \ ggplot2.facet_wrap(Formula("~ variable"), ncol=1) + \ theme(**{"panel.grid.major.x": element_blank(), "panel.grid.minor.x": element_blank(), "panel.grid.major.y": theme_line(size=0.5,colour="grey66",linetype=3)}) p.plot() return r.par(mfrow=np.array([1,2])) num_samples = len(qc_df.num_reads) r.par(bty="n", lwd=1.7, lty=2) r_opts = r.options(scipen=4) r.options(r_opts) r.dotchart(convert_to_r_matrix(qc_df[["num_reads", "num_mapped", "num_unique_mapped"]]), xlab="No. reads", lcolor="black", pch=19, gcolor="darkblue", cex=0.8) r.par(bty="n") r.dotchart(convert_to_r_matrix(qc_df[["num_ribosub_mapped", "num_ribo", "num_junctions"]]), xlab="No. reads", lcolor="black", pch=19, gcolor="darkblue", cex=0.8)
#!/usr/bin/env python from problems import * from utils import * from config import * import sys import rpy2.robjects as robjects robjects.r('library("scales")') import rpy2.robjects.lib.ggplot2 as ggplot2 ggplot2.theme_set(ggplot2.theme_bw ()) from rpy2.robjects.packages import importr from rpy2.robjects import FloatVector, StrVector, IntVector, DataFrame def ggplot2_options (): def normal_text(): return ggplot2.theme_text(family = 'serif', size = 15) def bold_text(): return ggplot2.theme_text(family = 'serif', face = 'bold', size = 15) def rotated_text(): return ggplot2.theme_text(family = 'serif', face = 'bold', size = 15, angle=90, vjust=0.2) return ggplot2.opts (**{'axis.title.x' : ggplot2.theme_blank(), 'axis.title.y' : rotated_text(), 'axis.text.x' : normal_text(), 'axis.text.y' : normal_text(), 'legend.title' : bold_text(), 'legend.text' : normal_text(), 'aspect.ratio' : 0.6180339888, 'strip.text.x' : normal_text(), })
iris_py = pandas.read_csv("/home/yarden/iris.csv") iris_py = iris_py.rename(columns={"Name": "Species"}) corrs = [] from scipy.stats import spearmanr for species in set(iris_py.Species): entries = iris_py[iris_py["Species"] == species] c = spearmanr(entries["SepalLength"], entries["SepalWidth"]) print "c: ", c # compute r.cor(x, y) and divide up by Species # Assume we get a vector of length Species saying what the # correlation is for each Species' Petal Length/Width p = ggplot2.ggplot(iris) + \ ggplot2.geom_point(ggplot2.aes_string(x="Sepal.Length", y="Sepal.Width")) + \ ggplot2.facet_wrap(Formula("~Species")) p.plot() r["dev.off"]() sys.exit(1) grdevices = importr('grDevices') ggplot2.theme_set(ggplot2.theme_bw(12)) p = ggplot2.ggplot(iris) + \ ggplot2.geom_point(ggplot2.aes_string(x="Sepal.Length", y="Sepal.Width")) + \ ggplot2.facet_wrap(Formula('~ Species'), ncol=2, nrow = 2) + \ ggplot2.geom_text(aes_string(x="Sepal.Length", y="Sepal.Width"), label="t") + \ ggplot2.GBaseObject(r('ggplot2::coord_fixed')()) # aspect ratio p.plot()