def test_popsizes_over_time(self): """ Fully sample an ARG from stratch using API """ k = 20 rho = 1.5e-8 * 20 mu = 2.5e-8 * 20 length = int(1e6) / 20 times = arghmm.get_time_points(ntimes=30, maxtime=160000) a = 60. b = 15 #popsizes = [1e4 * (a - b + abs(i-b))/a for i in range(len(times))] popsizes = [1e4 * (a - i)/a for i in range(len(times))] #popsizes = [1e4 for i in range(len(times))] refine = 0 util.tic("sim ARG") #arg = arglib.sample_arg_smc(k, 2 * popsizes[0], # rho, start=0, end=length) arg = arghmm.sample_arg_dsmc(k, [2*p for p in popsizes], rho, start=0, end=length, times=times) util.toc() util.tic("estimate popsizes") popsizes2 = arghmm.est_arg_popsizes(arg, times=times) util.toc() print(popsizes2) p = plot(times, popsizes, xlog=10, xmin=10, ymin=0, ymax=20000) p.plot(times[1:], popsizes2) pause()
def test_popsizes_over_time(self): """ Fully sample an ARG from stratch using API """ k = 20 rho = 1.5e-8 * 20 mu = 2.5e-8 * 20 length = int(1e6) / 20 times = arghmm.get_time_points(ntimes=30, maxtime=160000) a = 60. b = 15 #popsizes = [1e4 * (a - b + abs(i-b))/a for i in range(len(times))] popsizes = [1e4 * (a - i)/a for i in range(len(times))] #popsizes = [1e4 for i in range(len(times))] refine = 0 util.tic("sim ARG") #arg = arglib.sample_arg_smc(k, 2 * popsizes[0], # rho, start=0, end=length) arg = arghmm.sample_arg_dsmc(k, [2*p for p in popsizes], rho, start=0, end=length, times=times) util.toc() util.tic("estimate popsizes") popsizes2 = arghmm.est_arg_popsizes(arg, times=times) util.toc() print popsizes2 p = plot(times, popsizes, xlog=10, xmin=10, ymin=0, ymax=20000) p.plot(times[1:], popsizes2) pause()
def test_sample_arg_popsizes_infer(self): """ Fully sample an ARG from stratch using API """ k = 2 rho = 1.5e-8 * 20 mu = 2.5e-8 * 20 length = int(100e6) / 20 times = arghmm.get_time_points(ntimes=30, maxtime=160000) popsizes = [1e4 * (61.-i)/60. for i in range(len(times))] refine = 0 util.tic("sim ARG") #arg = arglib.sample_arg_smc(k, 2 * popsizes[0], # rho, start=0, end=length) arg = arghmm.sample_arg_dsmc(k, [2*p for p in popsizes], rho, start=0, end=length, times=times) util.toc() muts = arghmm.sample_arg_mutations(arg, mu, times=times) seqs = arglib.make_alignment(arg, muts) popsizes2 = [0] * (len(times) - 1) nsamples = 1 for i in range(nsamples): arg2 = arghmm.sample_arg(seqs, rho=rho, mu=mu, times=times, popsizes=popsizes, refine=0, verbose=True) popsizes3 = arghmm.est_arg_popsizes(arg2, times=times) #popsizes3 = arghmm.est_popsizes_trees(arg2, times, length/200) print(popsizes3) popsizes2 = vadd(popsizes2, popsizes3) popsizes2 = vdivs(popsizes2, float(nsamples)) print(popsizes2) p = plot(times, popsizes, xlog=10, xmin=10) p.plot(times[1:], popsizes2) pause()
def test_sample_arg_popsizes_infer(self): """ Fully sample an ARG from stratch using API """ k = 2 rho = 1.5e-8 * 20 mu = 2.5e-8 * 20 length = int(100e6) / 20 times = arghmm.get_time_points(ntimes=30, maxtime=160000) popsizes = [1e4 * (61.-i)/60. for i in range(len(times))] refine = 0 util.tic("sim ARG") #arg = arglib.sample_arg_smc(k, 2 * popsizes[0], # rho, start=0, end=length) arg = arghmm.sample_arg_dsmc(k, [2*p for p in popsizes], rho, start=0, end=length, times=times) util.toc() muts = arghmm.sample_arg_mutations(arg, mu, times=times) seqs = arglib.make_alignment(arg, muts) popsizes2 = [0] * (len(times) - 1) nsamples = 1 for i in range(nsamples): arg2 = arghmm.sample_arg(seqs, rho=rho, mu=mu, times=times, popsizes=popsizes, refine=0, verbose=True) popsizes3 = arghmm.est_arg_popsizes(arg2, times=times) #popsizes3 = arghmm.est_popsizes_trees(arg2, times, length/200) print popsizes3 popsizes2 = vadd(popsizes2, popsizes3) popsizes2 = vdivs(popsizes2, float(nsamples)) print popsizes2 p = plot(times, popsizes, xlog=10, xmin=10) p.plot(times[1:], popsizes2) pause()