def test_nisin(self):
        "Test lanthipeptide prediction for nisin A"
        rec = Record.from_biopython(seqio.read(
            helpers.get_path_to_nisin_with_detection()),
                                    taxon="bacteria")
        assert not rec.get_cds_motifs()
        result = run_specific_analysis(rec)
        assert len(result.clusters) == 1
        motifs = self.gather_all_motifs(result)
        assert len(motifs) == 1
        assert not rec.get_cds_motifs()
        result.add_to_record(rec)
        assert len(rec.get_cds_motifs()) == 1
        prepeptide = motifs[0]
        # real monoisotopic mass is 3351.51, but we overpredict a Dha
        self.assertAlmostEqual(3333.6,
                               prepeptide.monoisotopic_mass,
                               delta=0.05)
        # real mw is 3354.5, see above
        self.assertAlmostEqual(3336.0, prepeptide.molecular_weight, delta=0.05)
        for expected, calculated in zip([3354.0, 3372.1, 3390.1, 3408.1],
                                        prepeptide.alternative_weights):
            self.assertAlmostEqual(expected, calculated, delta=0.05)
        assert prepeptide.lan_bridges == 5
        self.assertEqual("MSTKDFNLDLVSVSKKDSGASPR", prepeptide.leader)
        self.assertEqual("ITSISLCTPGCKTGALMGCNMKTATCHCSIHVSK", prepeptide.core)
        self.assertEqual('Class I', prepeptide.peptide_subclass)

        initial_json = result.to_json()
        regenerated = LanthiResults.from_json(initial_json, rec)
        assert list(result.motifs_by_locus) == ["nisB"]
        assert str(result.motifs_by_locus) == str(regenerated.motifs_by_locus)
        assert result.clusters == regenerated.clusters
        assert initial_json == regenerated.to_json()
示例#2
0
    def setUp(self):
        options = build_config(self.get_args(),
                               isolated=True,
                               modules=antismash.get_all_modules())
        self.old_config = get_config().__dict__
        self.options = update_config(options)

        self.record = self.build_record(
            helpers.get_path_to_nisin_with_detection())

        prepare_data()
示例#3
0
 def test_result_conversion(self):
     nisin = Record.from_genbank(helpers.get_path_to_nisin_with_detection())[0]
     with open(path.get_full_path(__file__, "data", "nisin.out")) as handle:
         trimmed_output = handle.read()
     with patch.object(subprocessing, "run_diamond_search", return_value=trimmed_output):
         results = cluster_compare.run_on_record(nisin, None, self.options)
     assert results.by_database["MIBiG"].by_region[1]
     # ensure JSON conversion of results gives the same result
     raw = json.loads(json.dumps(results.to_json()))
     regenerated = cluster_compare.regenerate_previous_results(raw, nisin, self.options)
     regen_raw = json.loads(json.dumps(regenerated.to_json()))
     assert regen_raw == raw
 def test_nisin(self):
     genbank = helpers.get_path_to_nisin_with_detection()
     results = helpers.run_and_regenerate_results_for_module(genbank, rrefinder, self.options)
     assert isinstance(results, rrefinder.RREFinderResults)
     assert results.bitscore_cutoff == self.options.rre_cutoff
     assert results.min_length == self.options.rre_min_length
     assert results.record_id == 'HM219853.1'
     assert len(results.features) == 1
     feature = results.features[0]
     assert feature.locus_tag == 'nisB'
     assert feature.score == 34.9
     assert feature.protein_location == FeatureLocation(141, 228)
     assert feature.domain == 'Lanthipeptide_RRE'
     assert feature.translation == 'FTRNNANYKFGDRVFQVYTINSSELEEVNIKYTNVYQIISEFC' +
                                   'ENDYQKYEDICETVTLCYGDEYRELSEQYLGSLIVNHYLISNLQK'
示例#5
0
    def test_nisin(self):
        record = parse_input_sequence(helpers.get_path_to_nisin_with_detection())[0]
        clusters = record.get_clusters()
        assert clusters
        for cluster in clusters:
            assert cluster.cds_children
        assert record.get_cds_features_within_clusters()
        before_count = record.get_feature_count()

        assert tta.check_prereqs() == []
        assert tta.check_options(self.options) == []
        assert tta.is_enabled(self.options)
        prior_results = None
        results = tta.run_on_record(record, prior_results, self.options)
        assert isinstance(results, ModuleResults)
        assert len(results.features) == 174
        assert record.get_feature_count() == before_count
        results.add_to_record(record)
        assert record.get_feature_count() == before_count + 174
示例#6
0
    def setUp(self):
        self.old_config = get_config().__dict__
        options = build_config(self.get_args(),
                               isolated=True,
                               modules=antismash.get_all_modules())
        self.options = update_config(options)
        update_config({"cpus": 1})
        # prevent multiprocess testing from taking place, to stop signals
        # being caught awkwardly in the test itself

        # as smcogs_trees depends on genefunctions.smcogs' data, ensure that's ready to go
        assert genefunctions.prepare_data() == []

        assert smcog_trees.check_prereqs() == []
        assert smcog_trees.check_options(self.options) == []
        assert smcog_trees.is_enabled(self.options)

        self.record = self.build_record(
            helpers.get_path_to_nisin_with_detection())
示例#7
0
    def test_nisin(self):
        record = Record.from_genbank(
            helpers.get_path_to_nisin_with_detection(), taxon="bacteria")[0]
        regions = record.get_regions()
        assert regions
        for region in regions:
            assert region.cds_children
        assert record.get_cds_features_within_regions()
        before_count = record.get_feature_count()

        assert tta.check_prereqs() == []
        assert tta.check_options(self.options) == []
        assert tta.is_enabled(self.options)
        prior_results = None
        results = tta.run_on_record(record, prior_results, self.options)
        assert isinstance(results, ModuleResults)
        assert len(results.features) == 174
        assert record.get_feature_count() == before_count
        results.add_to_record(record)
        assert record.get_feature_count() == before_count + 174
示例#8
0
    def setUp(self):
        options = build_config(self.get_args(),
                               isolated=True,
                               modules=antismash.get_all_modules())
        self.old_config = get_config().__dict__
        self.options = update_config(options)

        assert smcogs.check_prereqs() == []
        assert smcogs.check_options(self.options) == []
        assert smcogs.is_enabled(self.options)

        self.record = self.build_record(
            helpers.get_path_to_nisin_with_detection())

        def serial_run_func(function, arg_sets, _timeout=None):
            for arg_set in arg_sets:
                function(*arg_set)

        self.old_parallel = subprocessing.parallel_function
        subprocessing.parallel_function = serial_run_func