Exemple #1
0
    def compute(x0, y0, x1, y1):
        # Selected square
        sel = 255 - average(img[y0:y1,x0:x1],2)
        # Average across x’s
        ysel = average(sel,1)
        line = ysel
        xs = mgrid[0:line.shape[0]]

        # Pass the data to R
        rxs = robjects.FloatVector(xs)
        rys = robjects.FloatVector(line)
        rdf = robjects.DataFrame({'x': rxs, 'y': rys})
        robjects.globalenv['xs'] = rxs
        robjects.globalenv['df'] = rdf
        #print(rys.r_repr())

        # Fir an R model
        robjects.r('''fit <- nls(y ~ (off + c1 * exp(-(x-mu1)**2/(2*sg1**2))
                                    + c2 * exp(-(x-mu2)**2/(2*sg2**2))),
                               data=df,
                               start=list(off = 90, c1=120, mu1=30, sg1=10,
                                   c2=120, mu2=60, sg2=10),
                               algorithm='port')''')

        # Get fit results
        robjects.r('''k <- coef(fit)
                      fitdat <- data.frame(x=xs)
                      fitdat$y <- predict(fit, newdata=fitdat)
                      ## Independent Gaussians
                      fitg1 <- data.frame(x=xs)
                      fitg1$y <- k[['off']] + k[['c1']] * exp(-(xs-k[['mu1']])**2/(2*k[['sg1']]**2))
                      fitg2 <- data.frame(x=xs)
                      fitg2$y <- k[['off']] + k[['c2']] * exp(-(xs-k[['mu2']])**2/(2*k[['sg2']]**2))''')
        
        # Plot R fits
        fitdat = robjects.globalenv['fitdat']
        fitg1 = robjects.globalenv['fitg1']
        fitg2 = robjects.globalenv['fitg2']
        pp = ggplot2.ggplot(rdf) \
             + ggplot2.aes_string(x='x', y='y') \
             + ggplot2.geom_point() \
             + ggplot2.geom_smooth(data=fitdat, stat="identity", size=1.5) \
             + ggplot2.geom_smooth(data=fitg1, stat="identity") \
             + ggplot2.geom_smooth(data=fitg2, stat="identity")
        pp.plot()

        # Compute the ratio of the gaussian integrals
        ratio = robjects.r('''k[['c1']]*k[['sg1']]/(k[['c1']]*k[['sg1']]+k[['c2']]*k[['sg2']])''')
        
        title('ratio='+str(ratio))
        show()
Exemple #2
0
def main():
    usage = 'usage: %prog [options] <raw file>'
    parser = OptionParser(usage)
    parser.add_option('-d', dest='downstream', default=2000, type='int', help='TSS downstream [Default: %default]')
    parser.add_option('-o', dest='out_prefix', default='tss', help='Output prefix [Default: %default]')
    parser.add_option('-u', dest='upstream', default=5000, type='int', help='TSS upstream [Default: %default]')
    parser.add_option('--ymax', dest='ymax', default=None, type='float', help='Y-coordinate limit [Default: %default]')
    (options,args) = parser.parse_args()
    
    if len(args) != 1:
        parser.error('Must provide raw file')
    else:
        raw_file = args[0]

    # collect data
    coords = []
    main_cov = []
    control_cov = []
    for line in open(raw_file):
        a = line.split()
        coords.append(int(a[0]))
        main_cov.append(float(a[1]))
        control_cov.append(float(a[2]))

    # data structures
    tss_i = ro.IntVector(range(-options.upstream,options.downstream+1))
    labels = ro.StrVector(['Main']*(options.upstream+options.downstream+1)+['Control']*(options.upstream+options.downstream+1))
    cov = ro.FloatVector(main_cov + control_cov)

    df = ro.DataFrame({'tss_i':tss_i, 'cov':cov, 'label':labels})

    # plot
    '''
    gp = ggplot2.ggplot(df) + \
        ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \
        ggplot2.geom_point() + \
        ggplot2.scale_x_continuous('TSS index') + \
        ggplot2.scale_colour_discrete('')
    '''
    gp = ggplot2.ggplot(df) + \
        ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \
        ggplot2.geom_smooth(method='loess', size=1, span=0.2, se=False) + \
        ggplot2.scale_x_continuous('TSS Position') + \
        ggplot2.scale_colour_discrete('') + \
        ggplot2.theme_bw()

    if options.ymax == None:
        gp += ggplot2.scale_y_continuous('Coverage')
    else:
        gp += ggplot2.scale_y_continuous('Coverage', limits=ro.FloatVector([0,options.ymax]))

    # save to file
    grdevices.pdf(file='%s_and.pdf' % options.out_prefix)
    gp.plot()
    grdevices.dev_off()
Exemple #3
0
     ggplot2.stat_smooth(method = 'lm', fill = 'blue',
                         color = 'red', size = 3)
pp.plot()
#-- ggplot2smoothblue-end
grdevices.dev_off()

grdevices.png('../../_static/graphics_ggplot2smoothbycyl.png',
              width=612,
              height=612,
              antialias="subpixel",
              type="cairo")
#-- ggplot2smoothbycyl-begin
pp = gp + \
     ggplot2.aes_string(x='wt', y='mpg') + \
     ggplot2.geom_point() + \
     ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'),
                         method = 'lm')
pp.plot()
#-- ggplot2smoothbycyl-end
grdevices.dev_off()

grdevices.png('../../_static/graphics_ggplot2_smoothbycylwithcolours.png',
              width=612,
              height=612,
              antialias="subpixel",
              type="cairo")
#-- ggplot2smoothbycylwithcolours-begin
pp = ggplot2.ggplot(mtcars) + \
     ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + \
     ggplot2.geom_point() + \
     ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'),
                         method = 'lm')
Exemple #4
0
              type="cairo")
#-- ggplot2smoothblue-begin
pp = (gp + ggplot2.aes_string(x='wt', y='mpg') + ggplot2.geom_point() +
      ggplot2.stat_smooth(method='lm', fill='blue', color='red', size=3))
pp.plot()
#-- ggplot2smoothblue-end
grdevices.dev_off()

grdevices.png('../../_static/graphics_ggplot2smoothbycyl.png',
              width=612,
              height=612,
              antialias=ANTIALIAS,
              type="cairo")
#-- ggplot2smoothbycyl-begin
pp = (gp + ggplot2.aes_string(x='wt', y='mpg') + ggplot2.geom_point() +
      ggplot2.geom_smooth(ggplot2.aes_string(group='cyl'), method='lm'))
pp.plot()
#-- ggplot2smoothbycyl-end
grdevices.dev_off()

grdevices.png('../../_static/graphics_ggplot2_smoothbycylwithcolours.png',
              width=612,
              height=612,
              antialias=ANTIALIAS,
              type="cairo")
#-- ggplot2smoothbycylwithcolours-begin
pp = (ggplot2.ggplot(mtcars) +
      ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') +
      ggplot2.geom_point() +
      ggplot2.geom_smooth(ggplot2.aes_string(group='cyl'), method='lm'))
pp.plot()
Exemple #5
0
import math, datetime
import time
import rpy2.robjects.lib.ggplot2 as ggplot2
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
from rpy2.interactive import process_revents
grdevices = importr('grDevices')
process_revents.start()

base = importr('base')
datasets= importr('datasets')

mtcars = datasets.__rdata__.fetch('mtcars')['mtcars']
pp = ggplot2.ggplot(mtcars) +  ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') +  ggplot2.geom_point() +  ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'), method = 'lm') 
#pp.plot()
#process_revents.start()
print(pp)
process_revents.process_revents()

while True:
    time.sleep(1)
process_revents.stop()
Exemple #6
0
pp = gp + \
     ggplot2.aes_string(x='wt', y='mpg') + \
     ggplot2.geom_point() + \
     ggplot2.stat_smooth(method = 'lm', fill = 'blue',
                         color = 'red', size = 3)
pp.plot()
#-- ggplot2smoothblue-end
grdevices.dev_off()

grdevices.png('../../_static/graphics_ggplot2smoothbycyl.png',
              width = 612, height = 612, antialias="subpixel", type="cairo")
#-- ggplot2smoothbycyl-begin
pp = gp + \
     ggplot2.aes_string(x='wt', y='mpg') + \
     ggplot2.geom_point() + \
     ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'),
                         method = 'lm')
pp.plot()
#-- ggplot2smoothbycyl-end
grdevices.dev_off()

grdevices.png('../../_static/graphics_ggplot2_smoothbycylwithcolours.png',
              width = 612, height = 612, antialias="subpixel", type="cairo")
#-- ggplot2smoothbycylwithcolours-begin
pp = ggplot2.ggplot(mtcars) + \
     ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + \
     ggplot2.geom_point() + \
     ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'),
                         method = 'lm')
pp.plot()
#-- ggplot2smoothbycylwithcolours-end
grdevices.dev_off()
Exemple #7
0
def main():
    usage = 'usage: %prog [options] <raw file>'
    parser = OptionParser(usage)
    parser.add_option('-d',
                      dest='downstream',
                      default=2000,
                      type='int',
                      help='TSS downstream [Default: %default]')
    parser.add_option('-o',
                      dest='out_prefix',
                      default='tss',
                      help='Output prefix [Default: %default]')
    parser.add_option('-u',
                      dest='upstream',
                      default=5000,
                      type='int',
                      help='TSS upstream [Default: %default]')
    parser.add_option('--ymax',
                      dest='ymax',
                      default=None,
                      type='float',
                      help='Y-coordinate limit [Default: %default]')
    (options, args) = parser.parse_args()

    if len(args) != 1:
        parser.error('Must provide raw file')
    else:
        raw_file = args[0]

    # collect data
    coords = []
    main_cov = []
    control_cov = []
    for line in open(raw_file):
        a = line.split()
        coords.append(int(a[0]))
        main_cov.append(float(a[1]))
        control_cov.append(float(a[2]))

    # data structures
    tss_i = ro.IntVector(range(-options.upstream, options.downstream + 1))
    labels = ro.StrVector(['Main'] *
                          (options.upstream + options.downstream + 1) +
                          ['Control'] *
                          (options.upstream + options.downstream + 1))
    cov = ro.FloatVector(main_cov + control_cov)

    df = ro.DataFrame({'tss_i': tss_i, 'cov': cov, 'label': labels})

    # plot
    '''
    gp = ggplot2.ggplot(df) + \
        ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \
        ggplot2.geom_point() + \
        ggplot2.scale_x_continuous('TSS index') + \
        ggplot2.scale_colour_discrete('')
    '''
    gp = ggplot2.ggplot(df) + \
        ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \
        ggplot2.geom_smooth(method='loess', size=1, span=0.2, se=False) + \
        ggplot2.scale_x_continuous('TSS Position') + \
        ggplot2.scale_colour_discrete('') + \
        ggplot2.theme_bw()

    if options.ymax == None:
        gp += ggplot2.scale_y_continuous('Coverage')
    else:
        gp += ggplot2.scale_y_continuous('Coverage',
                                         limits=ro.FloatVector(
                                             [0, options.ymax]))

    # save to file
    grdevices.pdf(file='%s_and.pdf' % options.out_prefix)
    gp.plot()
    grdevices.dev_off()
Exemple #8
0
import math, datetime
import rpy2.robjects.lib.ggplot2 as ggplot2
import rpy2.robjects as ro
from rpy2.robjects.packages import importr

base = importr("base")

datasets = importr("datasets")
mtcars = datasets.data.fetch("mtcars")["mtcars"]

pp = (
    ggplot2.ggplot(mtcars)
    + ggplot2.aes_string(x="wt", y="mpg", col="factor(cyl)")
    + ggplot2.geom_point()
    + ggplot2.geom_smooth(ggplot2.aes_string(group="cyl"), method="lm")
)
pp.plot()
Exemple #9
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2013-09-21 22:43:00
# @Author  : Fengce [email protected]

'''
python 调用 R语言,并使用 ggplot2
'''
import rpy2.robjects.lib.ggplot2 as ggplot2
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
datasets = importr('datasets')
mtcars = datasets.__rdata__.fetch('mtcars')['mtcars']
gp = ggplot2.ggplot(mtcars)
pp = ggplot2.ggplot(mtcars) + \
     ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + \
     ggplot2.geom_point() + \
     ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'),
                         method = 'lm')
#pp.plot()
ro.r.pdf('ggplot2inPython.pdf')
pp.plot()
ro.r('dev.off')
Exemple #10
0
import numpy as np
import pandas as pd
import rpy2.robjects.packages as packages
import rpy2.robjects.lib.ggplot2 as ggplot2
import rpy2.robjects as ro
# Importando o dataset do R, o mtcars
R = ro.r
datasets = packages.importr('datasets')
mtcars = packages.data(datasets).fetch('mtcars')['mtcars']
# Gerando o gráfico com ggplot
gp = ggplot2.ggplot(mtcars)
pyplot = (gp
      + ggplot2.aes_string(x = 'wt', y = 'mpg')
      + ggplot2.geom_point(ggplot2.aes_string(colour = 'qsec'))
      + ggplot2.scale_colour_gradient(low = "yellow", high = "red")
      + ggplot2.geom_smooth(method = 'auto')
      + ggplot2.labs(title = "mtcars", x = 'wt', y = 'mpg'))

pyplot.plot()

print("\nAnálise de Variância")
print("--------------------")
import rpy2.robjects as robjects

r = robjects.r

controle = robjects.FloatVector([4.17,5.58,5.18,6.11,4.50,4.61,
                                 5.17,4.53,5.33,5.14])
tratamento = robjects.FloatVector([4.81,4.17,4.41,3.59,5.87,3.83,
                                   6.03,4.89,4.32,4.69])
Exemple #11
0
import math, datetime
import time
import rpy2.robjects.lib.ggplot2 as ggplot2
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
from rpy2.interactive import process_revents
grdevices = importr('grDevices')
process_revents.start()

base = importr('base')
datasets = importr('datasets')

mtcars = datasets.__rdata__.fetch('mtcars')['mtcars']
pp = ggplot2.ggplot(mtcars) + ggplot2.aes_string(
    x='wt', y='mpg',
    col='factor(cyl)') + ggplot2.geom_point() + ggplot2.geom_smooth(
        ggplot2.aes_string(group='cyl'), method='lm')
#pp.plot()
#process_revents.start()
print(pp)
process_revents.process_revents()

while True:
    time.sleep(1)
process_revents.stop()
Exemple #12
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2013-09-21 22:43:00
# @Author  : Fengce [email protected]
'''
python 调用 R语言,并使用 ggplot2
'''
import rpy2.robjects.lib.ggplot2 as ggplot2
import rpy2.robjects as ro
from rpy2.robjects.packages import importr

datasets = importr('datasets')
mtcars = datasets.__rdata__.fetch('mtcars')['mtcars']
gp = ggplot2.ggplot(mtcars)
pp = ggplot2.ggplot(mtcars) + \
     ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + \
     ggplot2.geom_point() + \
     ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'),
                         method = 'lm')
#pp.plot()
ro.r.pdf('ggplot2inPython.pdf')
pp.plot()
ro.r('dev.off')
Exemple #13
0
# Restructure date data
# TODO: make this less hacky
start = base.as_Date(min(date_hits.elements()))
end = base.as_Date(max(date_hits.elements()))
dates = base.seq(start, end, by='day')
hits_arr = [0] * len(dates)
for date in date_hits:
    hits_arr[int(base.as_Date(date)[0]) - int(start[0])] = date_hits[date]
hits = IntVector(hits_arr)

grdevices.png('analytics_out/hits_by_date.png')
df = robjects.DataFrame({'date': dates, 'hits': hits})
pp = ggplot.ggplot(df) + \
    ggplot.aes_string(x = 'date', y = 'hits') + \
    ggplot.geom_point() + \
    ggplot.geom_smooth(method = 'loess')
pp.plot()
grdevices.dev_off()

# Restructure hour data
hour_arr = []
hits_arr = []
for hour in hour_hits:
    hour_arr.append(datetime.min + timedelta(hours=int(hour[0:2])))
    hits_arr.append(hour_hits[hour])
hour = POSIXct(hour_arr)
hits = IntVector(hits_arr)

grdevices.png('analytics_out/hits_by_time.png')
df = robjects.DataFrame({'hour': POSIXct(hour), 'hits': IntVector(hits)})
pp = ggplot.ggplot(df) + \