Exemple #1
0
    def test_spanning_hit_lenient(self):

        self.transcript.blast_hits = [self.get_spanning_hit()]
        self.transcript.json_conf["pick"]["chimera_split"][
            "blast_check"] = True

        self.transcript.json_conf["pick"]["chimera_split"]["blast_params"][
            "leniency"] = "LENIENT"

        self.assertEqual(1, len(list(splitting.split_by_cds(self.transcript))))
Exemple #2
0
    def test_lenient_split_twohits(self):

        hit2 = self.get_second_hit()
        self.transcript.blast_hits.append(hit2)
        self.transcript.json_conf["pick"]["chimera_split"][
            "blast_check"] = True

        self.transcript.json_conf["pick"]["chimera_split"]["blast_params"][
            "leniency"] = "LENIENT"

        self.assertEqual(2, len(list(splitting.split_by_cds(self.transcript))))
Exemple #3
0
    def test_spanning_hit_nocheck(self):
        self.transcript.blast_hits = [self.get_spanning_hit()]
        self.transcript.json_conf["pick"]["chimera_split"][
            "blast_check"] = False
        cds_boundaries = SortedDict()
        for orf in sorted(self.transcript.loaded_bed12,
                          key=operator.attrgetter("thick_start", "thick_end")):
            cds_boundaries[(orf.thick_start, orf.thick_end)] = [orf]

        self.assertEqual(len(cds_boundaries), 2)
        self.assertEqual(self.transcript.number_internal_orfs, 2)
        self.assertEqual(2, len(list(splitting.split_by_cds(self.transcript))))
Exemple #4
0
    def test_deleted_hits(self):

        delattr(self.transcript, "blast_hits")
        self.transcript.json_conf["pick"]["chimera_split"][
            "blast_check"] = True
        self.transcript.json_conf["pick"]["chimera_split"]["blast_params"][
            "leniency"] = "LENIENT"
        self.transcript.logger = self.logger
        with self.assertLogs("null", level="WARNING") as log_split:
            self.assertEqual(
                2, len(list(splitting.split_by_cds(self.transcript))))

        self.assertIn(
            "WARNING:null:BLAST hits store lost for transcript1! Creating a mock one to avoid a crash",
            log_split.output)
Exemple #5
0
    def test_simple_split(self):
        """
        Check that the original transcript can be split in two
        :return:
        """

        self.assertIsNotNone(self.transcript.json_conf)
        self.assertIn("pick", self.transcript.json_conf)

        self.transcript.json_conf["pick"]["chimera_split"][
            "blast_check"] = False

        # with self.assertLogs("test_mono", level="DEBUG") as log_split:
        new_transcripts = list(splitting.split_by_cds(self.transcript))

        # print(log_split.output)

        # self.assertIn("DEBUG:test_mono:",
        #               log_split.output)
        self.assertEqual(len(new_transcripts), 2,
                         "\n".join(str(_) for _ in new_transcripts))
        self.assertEqual(new_transcripts[0].start, self.transcript.start)
        self.assertEqual(new_transcripts[1].end, self.transcript.end)