size=[popsize]*npops, 
        loci=[nloci], 
        lociPos=locus_position,
        infoFields=['ind_id','fitness','migrate_to'])

pop.evolve(
    initOps=[
        sim.InitSex(),
        sim.IdTagger(),
    ]+init_geno,
    preOps=[
        sim.Migrator(
            rate=migr2DSteppingStoneRates(
                migr, m=width, n=width, diagonal=False, circular=False),
            mode=sim.BY_PROBABILITY),
        sim.AcgtMutator(rate=[mut_rate], model='JC69'),
        sim.PyMlSelector(GammaDistributedFitness(alpha, beta),
            output='>>'+selloci_file),
    ],
    matingScheme=sim.RandomMating(
        ops=[
            sim.IdTagger(),
            sim.Recombinator(intensity=recomb_rate,
                output=outfile,
                infoFields="ind_id"),
        ] ),
    postOps=[
        sim.Stat(numOfSegSites=sim.ALL_AVAIL, step=50),
        sim.PyEval(r"'Gen: %2d #seg sites: %d\n' % (gen, numOfSegSites)", step=50)
    ],
    gen = generations
示例#2
0
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#

# This script is an example in the simuPOP user's guide. Please refer to
# the user's guide (http://simupop.sourceforge.net/manual) for a detailed
# description of this example.
#

import simuPOP as sim
pop = sim.Population(size=[2000], loci=1, alleleNames=['A', 'C', 'G', 'T'])
pop.evolve(
    initOps=[sim.InitSex(),
             sim.InitGenotype(freq=[.1, .1, .1, .7])],
    matingScheme=sim.RandomMating(),
    preOps=[
        sim.AcgtMutator(rate=[1e-4, 0.5], model='K80'),
        sim.Stat(alleleFreq=0, step=100),
        sim.PyEval(
            r"', '.join(['%.3f' % alleleFreq[0][x] for x in range(4)]) + '\n'",
            step=100),
    ],
    gen=500)
示例#3
0
import simuOpt

simuOpt.setOptions(alleleType='lineage', quiet=True)
import simuPOP as sim

pop = sim.Population(size=10000, loci=[10] * 10, infoFields='ind_id')
# just to make sure IDs starts from 1
sim.IdTagger().reset(1)
pop.evolve(
    initOps=[
        sim.InitSex(),
        sim.InitGenotype(freq=[0.2, 0.3, 0.4, 0.1]),
        sim.IdTagger(),
        sim.InitLineage(mode=sim.FROM_INFO),
    ],
    # an extremely high mutation rate, just for demonstration
    preOps=sim.AcgtMutator(rate=0.01, model='JC69'),
    matingScheme=sim.RandomMating(ops=[
        sim.IdTagger(),
        sim.MendelianGenoTransmitter(),
    ]),
    gen=10)
lin = pop.lineage()
# Number of alleles from each generation
for gen in range(10):
    id_start = gen * 10000 + 1
    id_end = (gen + 1) * 10000
    num_mut = len([x for x in lin if x >= id_start and x <= id_end])
    print('Gen %d: %5.2f %%' % (gen, num_mut / (2 * 10000 * 100.) * 100))
示例#4
0
                          barrier=True)

pop.evolve(
    initOps=[
        sim.InitSex(),
    ] + init_geno,
    preOps=[
        sim.PyOperator(lambda pop: rc.increment_time() or True),
        sim.Migrator(rate=migr_init,
                     mode=sim.BY_PROBABILITY,
                     begin=0,
                     end=args.switch_time),
        sim.Migrator(rate=migr_change,
                     mode=sim.BY_PROBABILITY,
                     begin=args.switch_time),
        sim.AcgtMutator(rate=[args.sel_mut_rate], model='JC69'),
        sim.PyMlSelector(GammaDistributedFitness(args.gamma_alpha,
                                                 args.gamma_beta),
                         output=">>" + selloci_file),
    ],
    matingScheme=sim.RandomMating(ops=[
        id_tagger,
        sim.Recombinator(intensity=args.recomb_rate,
                         output=rc.collect_recombs,
                         infoFields="ind_id"),
    ]),
    postOps=[
        sim.Stat(numOfSegSites=sim.ALL_AVAIL, step=50),
        sim.PyEval(r"'Gen: %2d #seg sites: %d\n' % (gen, numOfSegSites)",
                   step=50),
        sim.PyOperator(lambda pop: rc.simplify(pop.indInfo("ind_id")) or True,
        if loc in self.coefMap:
            s = self.coefMap[loc]
        else:
            s = random.gammavariate(self.alpha, self.beta)
            self.coefMap[loc] = s
        # print(str(loc)+":"+str(alleles)+"\n")
        # needn't return fitness for alleles=(0,0) as simupop knows that's 1
        if 0 in alleles:
            return 1. - s
        else:
            return 1. - 2. * s


simu.evolve(initOps=[sim.InitSex(), meioser] + init_geno,
            preOps=[
                sim.AcgtMutator(rate=[0.0001], model='JC69'),
                sim.PyMlSelector(GammaDistributedFitness(alpha, beta),
                                 output='>>sel_loci.txt'),
                sim.PyOperator(func=step_gen, param=(1, )),
            ],
            matingScheme=reproduction,
            postOps=[
                sim.Stat(numOfSegSites=sim.ALL_AVAIL, step=50),
                sim.PyEval(
                    r"'Gen: %2d #seg sites: %d\n' % (gen, numOfSegSites)",
                    step=50)
            ],
            gen=generations)

pop = simu.population(0)