def test_annotate_geneclusters_overlaps(self): "Test clusterfinder.annotate_geneclusters() with overlaps" mock("antismash.utils.get_pfam_features", tracker=self.tt, returns=self.fake_features) self.config.clusternr_offset = 1 seq_record = Mock('seq_record', tracker=self.tt) seq_record.seq = Seq("X" * 2000, IUPAC.protein) seq_record.features = [ _make_fake_feature(10, 40, type_='cluster'), _make_fake_feature(1040, 1050, type_='cluster'), _make_fake_feature(110, 400, type_='cluster'), ] clusterfinder.annotate_geneclusters(seq_record, self.config) self.assertEqual(3, len(seq_record.features)) self.assertEqual(10, int(seq_record.features[0].location.start)) self.assertEqual(120, int(seq_record.features[0].location.end)) self.assertAlmostEqual( 0.6429, float(seq_record.features[0].qualifiers['probability'][0])) self.assertEqual(1030, int(seq_record.features[1].location.start)) self.assertEqual(1120, int(seq_record.features[1].location.end)) self.assertAlmostEqual( 0.6429, float(seq_record.features[1].qualifiers['probability'][0])) self.assertEqual(30, int(seq_record.features[2].location.start)) self.assertEqual(400, int(seq_record.features[2].location.end)) self.assertAlmostEqual( 0.6429, float(seq_record.features[2].qualifiers['probability'][0]))
def test_find_nr_cds(self): "Test clusterfinder.find_nr_cds" seq_record = Mock('seq_record', tracker=self.tt) seq_record.features = [] seq_record.seq = Seq("X" * 2000, IUPAC.protein) left = (0, 5) newpos, num = clusterfinder.find_nr_cds(left, seq_record) self.assertEqual(left, newpos) self.assertEqual(0, num) right = (150, 160) newpos, num = clusterfinder.find_nr_cds(right, seq_record) self.assertEqual(right, newpos) self.assertEqual(0, num) middle = (35, 115) newpos, num = clusterfinder.find_nr_cds(middle, seq_record) self.assertEqual([30, 120], newpos) self.assertEqual(7, num) small = (501, 504) newpos, num = clusterfinder.find_nr_cds(small, seq_record) self.assertEqual([500, 505], newpos) self.assertEqual(1, num)
def test_annotate_geneclusters_no_overlaps(self): "Test clusterfinder.annotate_geneclusters() without overlaps" mock("antismash.utils.get_pfam_features", tracker=self.tt, returns=self.fake_features) self.config.clusternr_offset = 1 self.config.next_clusternr = -5 seq_record = Mock('seq_record', tracker=self.tt) seq_record.features = [] seq_record.seq = Seq("X" * 2000, IUPAC.protein) clusterfinder.annotate_geneclusters(seq_record, self.config) self.assertEqual(3, self.config.next_clusternr) self.assertEqual(2, len(seq_record.features)) cluster1, cluster2 = seq_record.features self.assertIn('probability', cluster1.qualifiers.keys()) self.assertAlmostEqual(0.6429, float(cluster1.qualifiers['probability'][0])) self.assertIn('probability', cluster2.qualifiers.keys()) self.assertAlmostEqual(0.6429, float(cluster2.qualifiers['probability'][0]))