Exemple #1
0
    def test_blank_records(self):
        blank_no_pfams = DummyRecord()
        blank_no_ids = Record(Seq("ATGTTATGAGGGTCATAACAT", generic_dna))
        fake_pfam = DummyPFAMDomain(identifier="PF00000")
        blank_no_ids.add_pfam_domain(fake_pfam)

        assert not pfam2go.get_gos_for_pfams(blank_no_pfams)
        assert not pfam2go.get_gos_for_pfams(blank_no_ids)
Exemple #2
0
 def test_get_gos_id_handling(self):
     pfams = {
         'PF00015.42': FeatureLocation(0, 3),
         'PF0015.42': FeatureLocation(0, 3)
     }
     fake_record = set_dummy_with_pfams(pfams)
     with self.assertRaisesRegex(ValueError,
                                 'Pfam id PF0015 is not a valid Pfam id'):
         pfam2go.get_gos_for_pfams(fake_record)
Exemple #3
0
    def test_blank_records(self):
        blank_no_pfams = DummyRecord()
        blank_no_ids = Record(Seq("ATGTTATGAGGGTCATAACAT", generic_dna))
        fake_pfam_location = FeatureLocation(0, 12)
        fake_pfam = PFAMDomain(location=fake_pfam_location,
                               description='MCPsignal',
                               protein_start=0,
                               protein_end=5,
                               identifier="PF00000",
                               tool="test")
        fake_pfam.domain_id = 'BLANK'
        blank_no_ids.add_pfam_domain(fake_pfam)

        assert not pfam2go.get_gos_for_pfams(blank_no_pfams)
        assert not pfam2go.get_gos_for_pfams(blank_no_ids)
Exemple #4
0
 def test_to_json(self):
     fake_pfam_location = FeatureLocation(0, 12)
     pfams = {'PF00015': fake_pfam_location, 'PF00351': fake_pfam_location}
     fake_record = set_dummy_with_pfams(pfams)
     gos_for_fake_pfam = pfam2go.get_gos_for_pfams(fake_record)
     fake_results = pfam2go.Pfam2GoResults(fake_record.id,
                                           gos_for_fake_pfam)
     result_json = fake_results.to_json()
     expected_result = {
         "pfams": {
             "PF00015": {
                 "GO:0004871": "signal transducer activity",
                 "GO:0007165": "signal transduction",
                 "GO:0016020": "membrane"
             },
             "PF00351": {
                 "GO:0016714":
                 ("oxidoreductase activity, acting on paired donors, "
                  "with incorporation or reduction of molecular oxygen, "
                  "reduced pteridine as one donor, and incorporation of "
                  "one atom of oxygen"),
                 "GO:0055114":
                 "oxidation-reduction process"
             }
         },
         "record_id": fake_record.id,
         "schema_version": 1
     }
     assert result_json["record_id"] == expected_result["record_id"]
     assert result_json["schema_version"] == 1
     for pfam in expected_result["pfams"]:
         assert expected_result["pfams"][pfam] == result_json["pfams"][pfam]
Exemple #5
0
 def test_add_results_to_record(self):
     pfams = {
         'PF00015.2': FeatureLocation(0, 3),
         'PF00351.1': FeatureLocation(0, 3),
         'PF00015.27': FeatureLocation(3, 6)
     }
     fake_record = set_dummy_with_pfams(pfams)
     fake_duplicate_pfam = PFAMDomain(location=FeatureLocation(6, 9),
                                      description='DUPLICATE',
                                      protein_start=0,
                                      protein_end=5,
                                      identifier="PF00015.2",
                                      tool="test")
     fake_duplicate_pfam.domain_id = 'DUPLICATE'
     fake_record.add_pfam_domain(fake_duplicate_pfam)
     assert fake_duplicate_pfam in fake_record.get_pfam_domains()
     gos_for_fake_pfam = pfam2go.get_gos_for_pfams(fake_record)
     fake_results = pfam2go.Pfam2GoResults(fake_record.id,
                                           gos_for_fake_pfam)
     fake_results.add_to_record(fake_record)
     assert fake_duplicate_pfam.full_identifier == 'PF00015.2'
     for pfam in fake_record.get_pfam_domains():
         assert sorted(pfam.gene_ontologies.ids) == sorted(
             fake_results.get_all_gos(pfam))
         # make sure identical pfams (with different version numbers) all have the same gene ontologies
         if pfam.identifier == "PF00015":
             assert pfam.version in [2, 27]
             assert sorted(pfam.gene_ontologies.ids) == sorted(
                 fake_results.get_all_gos(fake_duplicate_pfam))
Exemple #6
0
 def test_blank_records(self):
     blank_no_pfams = DummyRecord()
     blank_no_ids = Record(Seq("ATGTTATGAGGGTCATAACAT", generic_dna))
     fake_pfam_location = FeatureLocation(0, 12)
     fake_pfam = PFAMDomain(location=fake_pfam_location,
                            description='MCPsignal',
                            protein_start=0,
                            protein_end=5)
     fake_pfam.domain_id = 'BLANK'
     blank_no_ids.add_pfam_domain(fake_pfam)
     with self.assertLogs(level='DEBUG') as log_cm:
         gos_for_no_pfams = pfam2go.get_gos_for_pfams(blank_no_pfams)
         assert 'No Pfam domains found' in str(log_cm.output)
         assert not gos_for_no_pfams
         gos_for_no_ids = pfam2go.get_gos_for_pfams(blank_no_ids)
         assert 'No Pfam ids found' in str(log_cm.output)
         assert not gos_for_no_ids
Exemple #7
0
 def test_adding_to_wrong_record(self):
     pfams = {'PF00015': FeatureLocation(0, 3)}
     fake_record = set_dummy_with_pfams(pfams)
     gos_for_fake_pfam = pfam2go.get_gos_for_pfams(fake_record)
     fake_results = pfam2go.Pfam2GoResults('FAKEID', gos_for_fake_pfam)
     with self.assertRaisesRegex(
             ValueError,
             "Record to store in and record analysed don't match"):
         fake_results.add_to_record(fake_record)
Exemple #8
0
 def test_results(self):
     pfams = {'PF00015': FeatureLocation(0, 3)}
     fake_record = set_dummy_with_pfams(pfams)
     gos_for_fake_pfam = pfam2go.get_gos_for_pfams(fake_record)
     fake_results = pfam2go.Pfam2GoResults(fake_record.id,
                                           gos_for_fake_pfam)
     assert gos_for_fake_pfam == fake_results.pfam_domains_with_gos
     assert fake_record.id == fake_results.record_id
     for pfam, all_ontologies in fake_results.pfam_domains_with_gos.items():
         for ontologies in all_ontologies:
             assert ontologies.pfam == pfam.identifier
Exemple #9
0
 def test_get_gos(self):
     pfams = {
         'PF00015': FeatureLocation(0, 3),
         'PF00351.42': FeatureLocation(6, 12)
     }
     fake_record = set_dummy_with_pfams(pfams)
     gos_for_fake_pfam = pfam2go.get_gos_for_pfams(fake_record)
     for all_ontologies in gos_for_fake_pfam.values():
         for ontologies in all_ontologies:
             go_ids = [str(go_entry) for go_entry in ontologies.go_entries]
             for go_id in go_ids:
                 assert go_id in self.known_connections[ontologies.pfam]
Exemple #10
0
 def test_results(self):
     pfams = {'PF00015': FeatureLocation(0, 3)}
     fake_record = set_dummy_with_pfams(pfams)
     gos_for_fake_pfam = pfam2go.get_gos_for_pfams(fake_record)
     fake_results = pfam2go.Pfam2GoResults(fake_record.id,
                                           gos_for_fake_pfam)
     assert gos_for_fake_pfam == fake_results.pfam_domains_with_gos
     assert fake_record.id == fake_results.record_id
     for pfam, all_ontologies in fake_results.pfam_domains_with_gos.items():
         pfam_ids_without_versions = [
             pfam_id.partition('.')[0] for pfam_id in pfam.db_xref
         ]
         for ontologies in all_ontologies:
             assert ontologies.pfam in pfam_ids_without_versions
Exemple #11
0
 def test_from_json(self):
     fake_pfam_location = FeatureLocation(0, 12)
     pfams = {
         'PF00015': fake_pfam_location,
         'PF00351': fake_pfam_location,
         'PF05147': fake_pfam_location
     }
     fake_record = set_dummy_with_pfams(pfams)
     gos_for_fake_pfam = pfam2go.get_gos_for_pfams(fake_record)
     fake_results = pfam2go.Pfam2GoResults(fake_record.id,
                                           gos_for_fake_pfam)
     result_json = fake_results.to_json()
     results_from_json = pfam2go.Pfam2GoResults.from_json(
         result_json, fake_record)
     assert 'PF05147' not in result_json["pfams"]
     for pfam in results_from_json.pfam_domains_with_gos:
         assert pfam.identifier in result_json["pfams"]
     from_json_to_json = results_from_json.to_json()
     assert result_json == from_json_to_json
     assert from_json_to_json["schema_version"] == 1