def test_convert(self):
     """Basic conversion test.
     """
     for i in range(len(self.handles)):
         gp_rec = GenePop.parse(self.handles[i])
         fd_rec = convert_genepop_to_fdist(gp_rec)
         assert(fd_rec.num_loci == 3)
         assert(fd_rec.num_pops == 3)
 def test_convert(self):
     """Basic conversion test.
     """
     for i in range(len(self.handles)):
         gp_rec = GenePop.parse(self.handles[i])
         fd_rec = convert_genepop_to_fdist(gp_rec)
         assert (fd_rec.num_loci == 3)
         assert (fd_rec.num_pops == 3)
 def test_wrong_file_parser(self):
     """Testing the ability to deal with wrongly formatted files
     """
     f = open(os.path.join("PopGen", "fdist1"))
     try:
         rec = GenePop.parse(f)
         raise Error("Should have raised exception")
     except ValueError:
         pass
     f.close()
예제 #4
0
 def test_wrong_file_parser(self):
     """Testing the ability to deal with wrongly formatted files
     """
     f = open(os.path.join("PopGen", "fdist1"))
     try:
         rec = GenePop.parse(f)
         raise Error("Should have raised exception")
     except ValueError:
         pass
     f.close()
예제 #5
0
 def test_record_parser(self):
     """Basic operation of the Record Parser.
     """
     for index in range(len(self.handles)):
         handle = self.handles[index]
         rec = GenePop.parse(handle)
         assert isinstance(rec, GenePop.Record)
         assert len(rec.loci_list) == self.num_loci[index]
         assert rec.marker_len == self.marker_len[index]
         assert len(rec.populations) == self.pops_indivs[index][0]
         for i in range(self.pops_indivs[index][0]):
             assert len(rec.populations[i]) == \
                        self.pops_indivs[index][1][i]
예제 #6
0
 def test_record_parser(self):
     """Basic operation of the Record Parser.
     """
     for index in range(len(self.handles)):
         handle = self.handles[index]
         rec = GenePop.parse(handle)
         assert isinstance(rec, GenePop.Record)
         assert len(rec.loci_list) == self.num_loci[index]
         assert rec.marker_len == self.marker_len[index]
         assert len(rec.populations) == self.pops_indivs[index][0]
         for i in range(self.pops_indivs[index][0]):
             assert len(rec.populations[i]) == \
                        self.pops_indivs[index][1][i]
예제 #7
0
def getRefs(expr, gen, numReps):
    refs = []
    for rep in range(numReps):
        fname = eval(expr)
        fi = open(fname)
        rec = GenePop.parse(fi)
        fi.close()
        csld = GenePop.Record()
        csld.loci_list = deepcopy(rec.loci_list)
        csld.populations=[[]]
        for pop in rec.populations:
            csld.populations[0].extend(pop)
        refs.append(csld)
    return refs
 def test_utils(self):
     """Basic operation of GenePop Utils.
     """
     for index in range(len(self.handles)):
         handle = self.handles[index]
         rec = GenePop.parse(handle)
     initial_pops = len(rec.populations)
     initial_loci = len(rec.loci_list)
     first_loci = rec.loci_list[0]
     rec.remove_population(0)
     assert len(rec.populations) == initial_pops - 1
     rec.remove_locus_by_name(first_loci)
     assert len(rec.loci_list) == initial_loci - 1
     assert rec.loci_list[0] != first_loci
     rec.remove_locus_by_position(0)
     assert len(rec.loci_list) == initial_loci - 2
예제 #9
0
 def test_utils(self):
     """Basic operation of GenePop Utils.
     """
     for index in range(len(self.handles)):
         handle = self.handles[index]
         rec = GenePop.parse(handle)
     initial_pops = len(rec.populations)
     initial_loci = len(rec.loci_list)
     first_loci = rec.loci_list[0]
     rec.remove_population(0)
     assert len(rec.populations) == initial_pops - 1
     rec.remove_locus_by_name(first_loci)
     assert len(rec.loci_list) == initial_loci - 1
     assert rec.loci_list[0] != first_loci
     rec.remove_locus_by_position(0)
     assert len(rec.loci_list) == initial_loci - 2
예제 #10
0
def calcFs(expr, numReps, gpRefs, gen, refGen):
    for rep in range(numReps):
        fname = eval(expr)
        gpRef = gpRefs[rep]
        fi = open(fname)
        rec = GenePop.parse(fi)
        fi.close()
        Nes = []
        NesP = []
        for pop in rec.populations:
            F = calcF(gpRef.populations[0], pop, len(gpRef.loci_list))
            Mes = calcNe(F, gen-refGen, len(gpRef.populations[0]), len(pop))
            Ne = Mes[0]
            NeP = Mes[1:]
            #print Ne
            #print "F", F, 100.0*F/129.0, 100*F/74.0
            #Ne = (1.0*(gen-refGen))/ (2*F)
            NesP.append(str(min(NeP))+"#"+str(max(NeP)))
            Nes.append(Ne)
        print gen, rep, "NeF", " ".join(map(lambda x: str(x), Nes))
        print gen, rep, "NeFPow", " ".join(map(lambda x: str(x), NesP))
예제 #11
0
 def get_basic_info(self):
     f = open(self._fname)
     rec = GenePop.parse(f)
     f.close()
     return rec.pop_list, rec.loci_list