In [1]:
import numpy as np
import pandas as pd
import pickle as pickle
import statsmodels.api as sm
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt
%matplotlib inline
%load_ext autoreload
%autoreload 2

In [57]:
import sys
sys.path.append('/home/jfear/devel/GalaxyTools')
from runOrderRegression import *

In [3]:
%qtconsole

In [5]:
trans = pickle.load(open('/home/jfear/tmp/trans.pkl', 'rb'))

In [54]:
result = trans.apply(runOrder, axis=0)

In [71]:
row = result[11]
name, x, y, res = row
fitted = res.fittedvalues

# Get slope and p-value
slope = res.params['run']
pval = res.pvalues['run']
rsq = res.rsquared

# Make Flag based on p-value
flag_runOrder_pval_05 = flagPval(pval, 0.05)
flag_runOrder_pval_01 = flagPval(pval, 0.01)

# Make scatter plot if p-pvalue is less than 0.05
if flag_runOrder_pval_05 == 1:
    # Get 95% CI
    prstd, lower, upper = wls_prediction_std(res)

    # Sort CIs for Plotting
    toPlot = pd.DataFrame({'x': x, 'lower': lower, 'upper': upper})
    toPlot.sort(columns='x', inplace=True)

    # Plot
    fig, ax = plt.subplots(1, 1, figsize=(8, 5))
    ax.scatter(x, y)
    ax.set_ylim(18, 23)
    ax.plot(toPlot['x'], toPlot['lower'], 'r-')
    ax.plot(x, fitted, 'c-')
    ax.plot(toPlot['x'], toPlot['upper'], 'r-')
    ax.set_xlabel('Run Order')
    ax.set_ylabel('Value')
    ax.set_title(u'Tyrosine\nScatter plot')
    ax.text(.7, .8, u'Slope: {0:.4f}\n(p-value = {1:.4f})\nR^2: {2:4f}'.format(slope, pval, rsq),
            transform=ax.transAxes, fontsize=12)

    fig.savefig('/home/jfear/devel/GalaxyTools/images/runOrder_plot.png')



In [ ]: