예제 #1
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)
     fake_duplicate_pfam.db_xref = ['PF00015.2']
     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.db_xref == ['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
         for pfam_id in pfam.db_xref:
             if pfam_id.startswith('PF00015'):
                 assert sorted(pfam.gene_ontologies.ids) == sorted(
                     fake_results.get_all_gos(fake_duplicate_pfam))
예제 #2
0
def set_dummy_with_pfams(pfam_ids: Dict[str, FeatureLocation]) -> DummyRecord:
    pfam_domains = []
    for pfam_id, pfam_location in pfam_ids.items():
        pfam_domain = PFAMDomain(location=pfam_location,
                                 description='FAKE',
                                 protein_start=0,
                                 protein_end=5)
        pfam_domain.db_xref = [pfam_id]
        pfam_domain.domain_id = '%s.%d.%d' % (pfam_id, pfam_location.start,
                                              pfam_location.end)
        pfam_domains.append(pfam_domain)
    return DummyRecord(features=pfam_domains)