コード例 #1
0
ファイル: selector_test.py プロジェクト: skumagai/migselsim
 def testSingleLocusChromosomeX(self):
     sel = MySelectorProvider(self.pop, [1], [0], [self.fs], [self.ms])
     selectors = sel.setSelector()
     for s in selectors:
         s.apply(self.pop)
     for i in range(2):
         if i == 0:
             f = [1.0, self.fs, self.fs**2]
             m = [1.0, self.ms]
         else:
             f = [self.fs**2, self.fs, 1.0]
             m = [self.ms, 1.0]
         for ind in self.pop.individuals(subPop=[i]):
             if ind.sex() == sim.FEMALE:
                 genotype = tuple(ind.allele(0, ploidy=p, chrom=1)
                                  for p in range(2))
                 if genotype == (0, 0):
                     self.assertAlmostEqual(ind.fitness, f[0])
                 elif genotype == (0, 1) or genotype == (1, 0):
                     self.assertAlmostEqual(ind.fitness, f[1])
                 else:
                     self.assertAlmostEqual(ind.fitness, f[2])
             else:
                 genotype = tuple(ind.allele(0, ploidy=0, chrom=1)
                                  for p in range(1))
                 if genotype == (0,):
                     self.assertAlmostEqual(ind.fitness, m[0])
                 else:
                     self.assertAlmostEqual(ind.fitness, m[1])
コード例 #2
0
ファイル: selector_test.py プロジェクト: skumagai/migselsim
 def testSingleLocusMitochondria(self):
     sel = MySelectorProvider(self.pop, [3], [0], [self.fs], [self.ms])
     selectors = sel.setSelector()
     for s in selectors:
         s.apply(self.pop)
     for i in range(2):
         if i == 0:
             f = [1.0, self.fs]
             m = [1.0, self.ms]
         else:
             f = [self.fs, 1.0]
             m = [self.ms, 1.0]
         for ind in self.pop.individuals(subPop=[i]):
             genotype = tuple(ind.allele(0, ploidy=p, chrom=3)
                              for p in range(2))
             if ind.sex() == sim.FEMALE:
                 if genotype == (0, 0):
                     self.assertAlmostEqual(ind.fitness, f[0])
                 else:
                     self.assertAlmostEqual(ind.fitness, f[1])
             if ind.sex() == sim.MALE:
                 if genotype == (0, 0):
                     self.assertAlmostEqual(ind.fitness, m[0])
                 else:
                     self.assertAlmostEqual(ind.fitness, m[1])
コード例 #3
0
ファイル: selector_test.py プロジェクト: skumagai/migselsim
 def testTwoLociYMt(self):
     sel = MySelectorProvider(self.pop,
                              [2, 3], [0, 0],
                              [self.fs, self.fs],
                              [self.ms, self.ms])
     selectors = sel.setSelector()
     for s in selectors:
         s.apply(self.pop)
     for i in range(2):
         if i == 0:
             # # of "1" alleles
             f = [1.0, self.fs]
             m = [1.0, self.ms, self.ms**2]
         else:
             f = [self.fs, 1.0]
             m = [self.ms**2, self.ms, 1.0]
         for ind in self.pop.individuals(subPop=[i]):
             # Mitochondria
             genotype = len([1 for i in
                             ind.genotype(chroms = [3],
                                          ploidy = 0)
                             if i == 1])
             if ind.sex() == sim.FEMALE:
                 self.assertAlmostEqual(ind.fitness, f[genotype])
             else:
                 # Chromosome Y
                 genotype += len([1 for i in
                                  ind.genotype(chroms = [2],
                                               ploidy = 1)
                                  if i == 1])
                 self.assertAlmostEqual(ind.fitness, m[genotype])
コード例 #4
0
ファイル: selector_test.py プロジェクト: skumagai/migselsim
 def testSingleLocusChromosomeY(self):
     sel = MySelectorProvider(self.pop, [2], [0], [self.fs], [self.ms])
     selectors = sel.setSelector()
     for s in selectors:
         s.apply(self.pop)
     for i in range(2):
         if i == 0:
             m = [1.0, self.ms]
         else:
             m = [self.ms, 1.0]
         for ind in self.pop.individuals(subPop=[i]):
             if ind.sex() == sim.MALE:
                 genotype = tuple(ind.allele(0, ploidy=1, chrom=2)
                                  for p in range(1))
                 if genotype == (0,):
                     self.assertAlmostEqual(ind.fitness, m[0])
                 else:
                     self.assertAlmostEqual(ind.fitness, m[1])
コード例 #5
0
ファイル: selector_test.py プロジェクト: skumagai/migselsim
    def testThreeLociAXY(self):
        sel = MySelectorProvider(self.pop,
                                 [0, 1, 2], [0, 0, 0],
                                 [self.fs, self.fs, self.fs],
                                 [self.ms, self.ms, self.ms])
        selectors = sel.setSelector()
        for s in selectors:
            s.apply(self.pop)
        for i in range(2):
            if i == 0:
                # # of "1" alleles
                f = [1.0, self.fs, self.fs**2, self.fs**3, self.fs**4]
                m = [1.0, self.ms, self.ms**2, self.ms**3, self.ms**4]
            else:
                f = [self.fs**4, self.fs**3, self.fs**2, self.fs, 1.0]
                m = [self.ms**4, self.ms**3, self.ms**2, self.ms, 1.0]
            for ind in self.pop.individuals(subPop=[i]):
                # Autosome
                genotype = len([1 for p in range(2) for i in
                                ind.genotype(chroms = [0],
                                             ploidy = p)
                                if i == 1])
                if ind.sex() == sim.FEMALE:
                    # Chromosome X
                    genotype += len([1 for p in range(2) for i in
                                     ind.genotype(chroms = [1],
                                                  ploidy = p)
                                     if i == 1])

                    self.assertAlmostEqual(ind.fitness, f[genotype])
                else:
                    # Chromosome X
                    genotype += len([1 for i in
                                     ind.genotype(chroms = [1],
                                                  ploidy = 0)
                                     if i == 1])
                    # Chromosome Y
                    genotype += len([1 for i in
                                     ind.genotype(chroms = [2],
                                                  ploidy = 1)
                                     if i == 1])
                    self.assertAlmostEqual(ind.fitness, m[genotype])