Exemplo n.º 1
0
 def setUp(self):
     self.test_indices1 = [3734, 4034]
     self.extra_indices = [[4092, 4332], [4399, 5185], [5249, 6565],
                           [6630, 7436]]
     test_identifier1 = 8
     self.extra_identifiers = [9, 10, 11, 12]
     self.test_phase1 = 0
     self.extra_phases = [2, 1, 0, 0]
     test_parent_id1 = 2
     self.test_cds0 = CDS(identifier=test_identifier1,
                          indices=self.test_indices1,
                          score=None,
                          phase=self.test_phase1,
                          strand='-',
                          parent_id=test_parent_id1)
     self.test_cds1 = CDS(identifier=test_identifier1,
                          indices=self.test_indices1,
                          score=None,
                          phase=self.test_phase1,
                          strand='+',
                          parent_id=test_parent_id1)
     for ind_pair in self.extra_indices:
         self.test_cds1.add_indices(ind_pair)
     for ident in self.extra_identifiers:
         self.test_cds1.add_identifier(ident)
     for phase in self.extra_phases:
         self.test_cds1.add_phase(phase)
Exemplo n.º 2
0
 def test_sort_attributes(self):
     cds = CDS()
     cds.indices = [[25, 30], [5, 10]]  # out of order!
     cds.identifier = ["cds2", "cds1"]
     cds.phase = [1, 0]
     self.assertEquals("cds1", cds.identifier[1])
     self.assertEquals([25, 30], cds.indices[0])
     self.assertEquals(1, cds.phase[0])
     cds.sort_attributes()
     self.assertEquals("cds1", cds.identifier[0])
     self.assertEquals([5, 10], cds.indices[0])
     self.assertEquals(0, cds.phase[0])
Exemplo n.º 3
0
 def process_cds_line(self, line):
     """Extracts arguments from a line and adds them to a CDS, or makes a new one."""
     kwargs = self.extract_cds_args(line)
     if not kwargs:
         return
     parent_id = kwargs['parent_id']
     if parent_id not in self.mrnas:
         self.orphans.append(line)
         return
     parent_mrna = self.mrnas[parent_id]
     if parent_mrna.cds:
         self.update_cds(line, parent_mrna.cds)
     else:
         parent_mrna.cds = CDS(**kwargs)
Exemplo n.º 4
0
 def test_to_gff(self):
     expected1 = "sctg_0080_0020\tmaker\tCDS\t3734\t4034\t.\t+\t0\tID=8;Parent=2;foo=dog\n"
     expected2 = "sctg_0080_0020\tmaker\tCDS\t4092\t4332\t.\t+\t2\tID=9;Parent=2;foo=dog\n"
     expected3 = "sctg_0080_0020\tmaker\tCDS\t4399\t5185\t.\t+\t1\tID=10;Parent=2;foo=dog\n"
     expected4 = "sctg_0080_0020\tmaker\tCDS\t5249\t6565\t.\t+\t0\tID=11;Parent=2;foo=dog\n"
     expected5 = "sctg_0080_0020\tmaker\tCDS\t6630\t7436\t.\t+\t0\tID=12;Parent=2;foo=dog\n"
     expected = expected1 + expected2 + expected3 + expected4 + expected5
     self.test_cds1.add_annotation(
         'foo', 'dog')  # Make sure our annotations are working
     actual = self.test_cds1.to_gff(seq_name="sctg_0080_0020",
                                    source="maker")
     self.assertEquals(expected, actual)
     # what if identifier, parent_id are strings? does it matter?
     test_cds2 = CDS(identifier='foo1',
                     indices=self.test_indices1,
                     score=None,
                     strand='+',
                     phase=self.test_phase1,
                     parent_id='bar7')
     extra_identifiers2 = ['foo2', 'foo3', 'foo4', 'foo5']
     for ind_pair in self.extra_indices:
         test_cds2.add_indices(ind_pair)
     for ident in extra_identifiers2:
         test_cds2.add_identifier(ident)
     for phase in self.extra_phases:
         test_cds2.add_phase(phase)
     expected1 = "sctg_0080_0020\tmaker\tCDS\t3734\t4034\t.\t+\t0\tID=foo1;Parent=bar7\n"
     expected2 = "sctg_0080_0020\tmaker\tCDS\t4092\t4332\t.\t+\t2\tID=foo2;Parent=bar7\n"
     expected3 = "sctg_0080_0020\tmaker\tCDS\t4399\t5185\t.\t+\t1\tID=foo3;Parent=bar7\n"
     expected4 = "sctg_0080_0020\tmaker\tCDS\t5249\t6565\t.\t+\t0\tID=foo4;Parent=bar7\n"
     expected5 = "sctg_0080_0020\tmaker\tCDS\t6630\t7436\t.\t+\t0\tID=foo5;Parent=bar7\n"
     expected = expected1 + expected2 + expected3 + expected4 + expected5
     actual = test_cds2.to_gff(seq_name="sctg_0080_0020", source="maker")
     self.assertEquals(expected, actual)
     expected1 = "sctg_0080_0020\tmaker\tCDS\t3734\t4034\t.\t+\t0\tID=foo1;Parent=bar7\n"
     expected2 = "sctg_0080_0020\tmaker\tCDS\t4092\t4332\t.\t+\t2\tID=foo2;Parent=bar7\n"
     expected3 = "sctg_0080_0020\tmaker\tCDS\t4399\t5185\t.\t+\t1\tID=foo3;Parent=bar7\n"
     expected4 = "sctg_0080_0020\tmaker\tCDS\t5249\t6565\t.\t+\t0\tID=foo4;Parent=bar7\n"
     expected5 = "sctg_0080_0020\tmaker\tCDS\t6630\t7436\t.\t+\t0\tID=foo5;Parent=bar7\n"
     expected = expected1 + expected2 + expected3 + expected4 + expected5
     actual = test_cds2.to_gff(seq_name="sctg_0080_0020", source="maker")
     self.assertEquals(expected, actual)
Exemplo n.º 5
0
 def test_cds_constructor(self):
     self.assertEquals('CDS', self.test_cds0.__class__.__name__)
     # should also be able to construct w/o all the params...
     empty_cds = CDS()
     self.assertEquals('CDS', empty_cds.feature_type)