def multipleLocus(X, initHaps, N,r,times,pos): start_time=time() h0=np.zeros(initHaps.shape); h0[:int(h0.shape[0]*X[0,0,0]),0]=1 lik = Likelihood(X[times!=0], initHaps, times[times!=0], pos, pos[0], None) fit = lik.maxlik_s(N=N, log10r=np.log10(r), h=0.5, bounds=(-.15, .15)) ml = -fit.fun ml0 = lik.likelihood(N, r, 0.5, 0.0) if abs(ml0) == np.inf: ml0=np.sign(ml0)*1000 lr = 2 * (ml - ml0) s=float(fit.x)*1.0 pyexp.reset() # print pos,time()-start_time return pd.Series({'LR':lr ,'s':s, 'SLR':lr*s, 'pos':pos, 'Time':time()-start_time})