示例#1
0
    def test_run_on_record_skips_work(self):
        record = create_fake_record()
        record.id = "real"
        results = cassis.CassisResults(record.id)

        mock("cassis.detect", returns=cassis.CassisResults("fake"))
        assert cassis.run_on_record(record, results, None).record_id == "real"
        assert cassis.run_on_record(record, None, None).record_id == "fake"
示例#2
0
    def test_run_on_record_skips_work(self):
        record = create_fake_record()
        record.id = "real"
        results = cassis.CassisResults(record.id)

        with patch.object(cassis,
                          "detect",
                          return_value=cassis.CassisResults("fake")):
            assert cassis.run_on_record(record, results,
                                        None).record_id == "real"
            assert cassis.run_on_record(record, None, None).record_id == "fake"
示例#3
0
    def test_regeneration(self):
        record = create_fake_record()
        results = cassis.CassisResults(record.id)
        # create a prediction, since it will generate a border with many extra qualifiers
        start_marker = ClusterMarker("gene1", Motif(3, 3, score=1))
        start_marker.promoter = "gene1"
        start_marker.abundance = 2
        end_marker = ClusterMarker("gene4", Motif(3, 3, score=1))
        end_marker.promoter = "gene3+gene4"
        assert end_marker.abundance == 1
        cluster = cassis.ClusterPrediction(start_marker, end_marker)
        results.subregions = cassis.create_subregions("gene1", [cluster],
                                                      record)
        assert results.subregions

        results.promoters = [
            Promoter("gene1", 10, 20, seq=Seq("cgtacgtacgt")),
            Promoter("gene2", 30, 40, seq=Seq("cgtacgtacgt")),
            CombinedPromoter("gene3", "gene4", 50, 60, seq=Seq("cgtacgtacgt"))
        ]

        round_trip = cassis.regenerate_previous_results(
            results.to_json(), record, None)
        assert isinstance(round_trip, cassis.CassisResults)
        assert len(results.subregions) == len(round_trip.subregions)
        for old, new in zip(results.subregions, round_trip.subregions):
            assert old.location == new.location
            assert old.to_biopython()[0].qualifiers == new.to_biopython(
            )[0].qualifiers
        assert round_trip.promoters == results.promoters
示例#4
0
 def test_changed_max_gap_length(self):
     record = create_fake_record()
     json = cassis.CassisResults(record.id).to_json()
     assert isinstance(cassis.regenerate_previous_results(json, record, None),
                       cassis.CassisResults)
     cassis.MAX_GAP_LENGTH += 1
     assert cassis.regenerate_previous_results(json, record, None) is None
示例#5
0
 def test_changed_max_percentage(self):
     record = create_fake_record()
     json = cassis.CassisResults(record.id).to_json()
     assert isinstance(cassis.regenerate_previous_results(json, record, None),
                       cassis.CassisResults)
     cassis.MAX_PERCENTAGE += 5
     assert cassis.regenerate_previous_results(json, record, None) is None
示例#6
0
 def test_not_same_record(self):
     record = create_fake_record()
     record.id = "A"
     other = create_fake_record()
     other.id = "B"
     json = cassis.CassisResults(record.id).to_json()
     assert isinstance(cassis.regenerate_previous_results(json, record, None),
                       cassis.CassisResults)
     assert cassis.regenerate_previous_results(json, other, None) is None
示例#7
0
 def test_base(self):
     results = cassis.CassisResults("test")
     assert results.record_id == "test"
     assert results.subregions == []
     assert results.promoters == []