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()
예제 #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()
예제 #3
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_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
예제 #5
0
 def test_convert(self):
     """Basic conversion test.
     """
     for i in range(len(self.handles)):
         gp_rec = GenePop.read(self.handles[i])
         fd_rec = convert_genepop_to_fdist(gp_rec)
         assert(fd_rec.num_loci == 3)
         assert(fd_rec.num_pops == 3)
예제 #6
0
 def test_convert(self):
     """Basic conversion test.
     """
     for i in range(len(self.names)):
         handle = self.handles[i]
         gp_rec = GenePop.read(handle)
         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.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.read(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]
         assert rec.pop_list == self.pop_names
         for i in range(self.pops_indivs[index][0]):
             assert len(rec.populations[i]) == \
                        self.pops_indivs[index][1][i]
 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)
예제 #10
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])
예제 #13
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])
예제 #14
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
예제 #15
0
 def get_basic_info(self):
     f = open(self._fname)
     rec = GenePop.read(f)
     f.close()
     return rec.pop_list, rec.loci_list
예제 #16
0
 def get_basic_info(self):
     with open(self._fname) as f:
         rec = GenePop.read(f)
     return rec.pop_list, rec.loci_list
예제 #17
0
 def get_basic_info(self):
     with open(self._fname) as f:
         rec = GenePop.read(f)
     return rec.pop_list, rec.loci_list
예제 #18
0
 def get_basic_info(self):
     f=open(self._fname)
     rec = GenePop.read(f)
     f.close()
     return rec.pop_list, rec.loci_list
예제 #19
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