import numpy as np import models import matplotlib.pyplot as plt from matplotlib.patches import Rectangle from matplotlib.gridspec import GridSpec from corner import hist2d import data from data import molarConv import sympy as sp # Long PRL model, blockSize = models.exclusiveActinModelRuleFactory(0, 4, sides='left') act = models.actin(model, [0,1], sp.symbols('a b c'), blockSize=blockSize) # Read samples samples = np.loadtxt('Output/d_0_4_exclusive_left') # Cut out J samples = samples[:,(0,1)] # Make convention match PRL. samples *= -1 # Make corner plot fig = plt.figure(figsize=(5,7))
modelSTR = 'Output/' + fname # Threads threads = int(sys.argv[4]) # Build the model if s2 == 'inclusive': fname = fname + '_inclusive' modelSTR = modelSTR + '_inclusive' model, blockSize = models.actinModelRuleFactory(left, right) elif s2 == 'exclusive': s3 = sys.argv[6] fname = fname + '_exclusive_' + s3 modelSTR = modelSTR + '_exclusive_' + s3 model, blockSize = models.exclusiveActinModelRuleFactory(left, right, sides=s3) act = models.actin(model, [0, 1], sp.symbols('a b c'), blockSize=blockSize) def evaluate(theta, x, y, c): bindingF = x q, w, j = theta pVals = np.zeros(bindingF.shape) fVals = np.zeros(bindingF.shape) for i, bf in enumerate(bindingF): p, _, _ = act.bindingFinder((0, q, w), bf) pVals[i] = p fVals[i] = act.fN((p, q, w))[1] model = models.meanL(c, fVals, j)
# Can specify s = 'h' or 'd' for the two kinds of actin # The models we use are: # short - eFuncTwoPlaneVeryShortActinModel # medium - eFuncTwoPlaneShortActinModel # long - eFuncTwoPlaneActinModel s = 'b' lefts = [-1,-2,-1,0,-4] rights = [1,1,3,2,0] # Build the models acts = [] for i in range(len(lefts)): model, blockSize = models.exclusiveActinModelRuleFactory(lefts[i], rights[i], sides='left') act = models.actin(model, [0,1], sp.symbols('a b c'), blockSize=blockSize) acts.append(act) strs = ['Output/' + s + '_' + str(l) + '_' + str(r) for l,r in zip(*(lefts,rights))] labels = [str(r) + ',' + str(l) for l,r in zip(*(lefts,rights))] fits = [] for st in strs: f = np.loadtxt(st + '_inclusive_summary.txt') q = f[0][0] w = f[1][0] j = f[2][0] fits.append((q,w,j)) c,bindingF,length,dl,name = data(s)