def runOne(args): path = utl.outpath + 'markov/simulations/' utl.mkdir(path) numExp = int(1e5) nu0, s = args print nu0, s for i, batch in enumerate(utl.batch(range(numExp), 10000)): print; print i, batch[0], batch[-1] a = pd.concat(map(lambda x: Simulation.simulateSingleLoci(nu0=nu0, s=s)[[1, 10, 100]], batch), axis=1).T a.to_pickle(path + 'nu{:E}.s{:E}.{}.df'.format(nu0, s, i))
def runFindSForAllMethods(param): pool=None if numThreads >1: pool=Pool(numThreads) param['data'] = Simulation.forwardSimulation(param) X0=param['initHaps'].mean(0) Xt=param['data'].mean(2) naiveS=EstimateS.Naive(param['times'], X0, Xt) df=pd.DataFrame(naiveS,columns=['naive.S'], index=param['positions']) MAXITERs=[100,1000,5000];LR= [ 1e-3,1e-2,1e-1] df=df.join([EstimateS.RNN(data=param['data'],X0=X0, positions=param['positions'], maxIter=maxIter, lr=lr, times=param['times'], pool=pool) for lr in LR for maxIter in MAXITERs ]) GPS=EstimateS.GP(data=param['data'], init_haps= param['initHaps'], positions=param['positions'], N=param['N'], r=param['r'], times=param['times'], pool=pool) df=df.join([GPS]) df['posUnderSelection']=param['posUnderSelection'] if numThreads >1: pool.terminate() return df, param