Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
    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()
Пример #4
0
    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()