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