Beispiel #1
0
    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]))
Beispiel #2
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)
Beispiel #3
0
    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]))