def test_remove_features(self):
        """Testing the ability to remove population/loci via class methods."""
        for index in range(len(self.files)):
            fname = self.files[index]
            ftemp = tempfile.NamedTemporaryFile(mode="w+", delete=False)
            ftemp.close()
            rec = FileParser.read(fname)
            rec.remove_loci_by_position([0], ftemp.name)
            with open(ftemp.name, 'r') as ft:
                ft.seek(0)
                rec2 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec2.loci_list)

            rec.remove_locus_by_position(0, ftemp.name)
            with open(ftemp.name, 'r') as ft:
                ft.seek(0)
                rec3 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec3.loci_list)

            rec.remove_locus_by_name(rec.loci_list[0], ftemp.name)
            with open(ftemp.name, 'r') as ft:
                ft.seek(0)
                rec4 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec4.loci_list)

            rec.remove_loci_by_name([rec.loci_list[0]], ftemp.name)
            with open(ftemp.name, 'r') as ft:
                ft.seek(0)
                rec5 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec5.loci_list)

            os.remove(ftemp.name)
            rec._handle.close()
Exemple #2
0
    def test_remove_features(self):
        """Testing the ability to remove population/loci via class methods."""
        for index in range(len(self.files)):
            fname = self.files[index]
            ftemp = tempfile.NamedTemporaryFile(mode="w+", delete=False)
            ftemp.close()
            rec = FileParser.read(fname)
            rec.remove_loci_by_position([0], ftemp.name)
            with open(ftemp.name, "r") as ft:
                ft.seek(0)
                rec2 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec2.loci_list)

            rec.remove_locus_by_position(0, ftemp.name)
            with open(ftemp.name, "r") as ft:
                ft.seek(0)
                rec3 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec3.loci_list)

            rec.remove_locus_by_name(rec.loci_list[0], ftemp.name)
            with open(ftemp.name, "r") as ft:
                ft.seek(0)
                rec4 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec4.loci_list)

            rec.remove_loci_by_name([rec.loci_list[0]], ftemp.name)
            with open(ftemp.name, "r") as ft:
                ft.seek(0)
                rec5 = GenePop.read(iter(ft))
            self.assertEqual(rec.loci_list[1:], rec5.loci_list)

            os.remove(ftemp.name)
            rec._handle.close()
Exemple #3
0
 def test_record_basic(self):
     """Basic test on Record."""
     r = GenePop.Record()
     self.assertIsInstance(r.marker_len, int)
     self.assertIsInstance(r.comment_line, str)
     self.assertIsInstance(r.loci_list, list)
     self.assertIsInstance(r.populations, list)
 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."""
     with open(os.path.join("PopGen", "README")) as f:
         try:
             rec = GenePop.read(f)
             raise Exception("Should have raised exception")
         except ValueError:
             pass
Exemple #6
0
 def test_wrong_file_parser(self):
     """Testing the ability to deal with wrongly formatted files."""
     with open(os.path.join("PopGen", "README")) as f:
         try:
             rec = GenePop.read(f)
             raise Exception("Should have raised exception")
         except ValueError:
             pass
 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_record_basic(self):
        """Basic test on Record
        """

        r = GenePop.Record()
        assert type(r.marker_len)   == int
        assert type(r.comment_line) == str
        assert type(r.loci_list)    == list
        assert type(r.populations)  == list
 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.read(f)
         raise Error("Should have raised exception")
     except ValueError:
         pass
     f.close()
 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]
 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]
Exemple #12
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.read(handle)
     initial_pops = len(rec.populations)
     initial_loci = len(rec.loci_list)
     first_loci = rec.loci_list[0]
     rec.remove_population(0)
     self.assertEqual(len(rec.populations), initial_pops - 1)
     rec.remove_locus_by_name(first_loci)
     self.assertEqual(len(rec.loci_list), initial_loci - 1)
     self.assertNotEqual(rec.loci_list[0], first_loci)
     rec.remove_locus_by_position(0)
     self.assertEqual(len(rec.loci_list), initial_loci - 2)
Exemple #14
0
 def test_utils(self):
     """Basic operation of GenePop Utils."""
     for index in range(len(self.handles)):
         handle = self.handles[index]
         rec = GenePop.read(handle)
     initial_pops = len(rec.populations)
     initial_loci = len(rec.loci_list)
     first_loci = rec.loci_list[0]
     rec.remove_population(0)
     self.assertEqual(len(rec.populations), initial_pops - 1)
     rec.remove_locus_by_name(first_loci)
     self.assertEqual(len(rec.loci_list), initial_loci - 1)
     self.assertNotEqual(rec.loci_list[0], first_loci)
     rec.remove_locus_by_position(0)
     self.assertEqual(len(rec.loci_list), initial_loci - 2)
 def test_utils(self):
     """Basic operation of GenePop Utils.
     """
     for index in range(len(self.handles)):
         handle = self.handles[index]
         rec = GenePop.read(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
 def test_record_parser(self):
     """Basic operation of the Record Parser."""
     for index in range(len(self.handles)):
         handle = self.handles[index]
         rec = GenePop.read(handle)
         self.assertTrue(str(rec).startswith(
                 "Generated by createGenePop.py - (C) Tiago Antao\n"
                 "136255903\n"
                 "136257048\n"
                 "136257636\n"
                 "Pop\n"), "Did not expect this:\n%s" % rec)
         self.assertIsInstance(rec, GenePop.Record)
         self.assertEqual(len(rec.loci_list), self.num_loci[index])
         self.assertEqual(rec.marker_len, self.marker_len[index])
         self.assertEqual(len(rec.populations), self.pops_indivs[index][0])
         self.assertEqual(rec.pop_list, self.pop_names)
         for i in range(self.pops_indivs[index][0]):
             self.assertEqual(len(rec.populations[i]),
                              self.pops_indivs[index][1][i])
Exemple #17
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.read(handle)
         self.assertTrue(str(rec).startswith(
             "Generated by createGenePop.py - (C) Tiago Antao\n"
             "136255903\n"
             "136257048\n"
             "136257636\n"
             "Pop\n"), "Did not expect this:\n%s" % rec)
         self.assertIsInstance(rec, GenePop.Record)
         self.assertEqual(len(rec.loci_list), self.num_loci[index])
         self.assertEqual(rec.marker_len, self.marker_len[index])
         self.assertEqual(len(rec.populations), self.pops_indivs[index][0])
         self.assertEqual(rec.pop_list, self.pop_names)
         for i in range(self.pops_indivs[index][0]):
             self.assertEqual(len(rec.populations[i]),
                              self.pops_indivs[index][1][i])
Exemple #18
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))
 def get_basic_info(self):
     f = open(self._fname)
     rec = GenePop.read(f)
     f.close()
     return rec.pop_list, rec.loci_list
Exemple #20
0
 def get_basic_info(self):
     with open(self._fname) as f:
         rec = GenePop.read(f)
     return rec.pop_list, rec.loci_list
Exemple #21
0
 def get_basic_info(self):
     with open(self._fname) as f:
         rec = GenePop.read(f)
     return rec.pop_list, rec.loci_list
Exemple #22
0
# Copyright 2007 by Tiago Antao.  All rights reserved.
# This file is part of the Biopython distribution and governed by your
# choice of the "Biopython License Agreement" or the "BSD 3-Clause License".
# Please see the LICENSE file that should have been included as part of this
# package.

from Bio.PopGen import GenePop
"""
Utility functions to deal with GenePop files

This had some functions that where moved to
GenePop.Record (now methods of that class).

This file is maintained as it is believed it will have
utility functions in the future again.
"""
 def get_basic_info(self):
     f = open(self._fname)
     rec = GenePop.parse(f)
     f.close()
     return rec.pop_list, rec.loci_list
Exemple #24
0
 def get_basic_info(self):
     """Obtain the population list and loci list from the file."""
     with open(self._fname) as f:
         rec = GenePop.read(f)
     return rec.pop_list, rec.loci_list
Exemple #25
0
 def get_basic_info(self):
     """Obtain the population list and loci list from the file."""
     with open(self._fname) as f:
         rec = GenePop.read(f)
     return rec.pop_list, rec.loci_list