def test_get_ensembl_id_non_matching_isoform(self):
     fetcher = dba.UniprotFetcher()
     xml_soup = fetcher.fetch('Q9UJ41', 'xml')
     parser = dba.UniprotParser(xml_soup, None)
     exp = '*ENSG00000154710'
     res = parser.get_ensembl_references(isoform_number=3)
     self.assertEqual(res, exp)
 def test_get_ensembl_id_isoform1(self):
     fetcher = dba.UniprotFetcher()
     xml_soup = fetcher.fetch('Q9NWV8', 'xml')
     parser = dba.UniprotParser(xml_soup, None)
     exp = 'ENSG00000105393'
     res = parser.get_ensembl_references()
     self.assertEqual(res, exp)
 def test_get_ensembl_id_single_isoform(self):
     fetcher = dba.UniprotFetcher()
     xml_soup = fetcher.fetch('P61258', 'xml')
     parser = dba.UniprotParser(xml_soup, None)
     exp = 'ENSMFAG00000036845'
     res = parser.get_ensembl_references()
     self.assertEqual(res, exp)
 def test_get_pdb_constructs(self):
     entry = '''
     <entry>
         <accession>P00698</accession>
         <dbReference type="PDB" id="132L">
             <property type="method" value="X-ray" />
             <property type="resolution" value="1.80" />
             <property type="chains" value="A=19-147" />
         </dbReference>
         <dbReference type="PDB" id="4WL6">
             <property type="method" value="X-ray" />
             <property type="resolution" value="1.85" />
             <property type="chains" value="A=1-147" />
         </dbReference>
         <dbReference type="PDB" id="2X89">
             <property type="method" value="X-ray" />
             <property type="resolution" value="2.16" />
             <property type="chains" value="D/E/F/G=27-119" />
         </dbReference>
         <evidence ...>
             <source><dbReference id="1IEE" type="PDB"/></source>
         </evidence>   
     </entry>
     '''
     # the pdb code in evidence must be ignored
     exp = [
         PdbCrossref('P00698', '132L', 19, 147, ['A']),
         PdbCrossref('P00698', '4WL6', 1, 147, ['A']),
         PdbCrossref('P00698', '2X89', 27, 119, ['D', 'E', 'F', 'G'])
     ]
     parser = dba.UniprotParser(BeautifulSoup(entry, 'xml'), None)
     res = parser.get_pdb_constructs()
     self.assertEqual(sorted(res), sorted(exp))
 def test_get_uniprot_id(self):
     entry = '''
     <entry dataset="x" created="x" modified="x" version="1">
     <accession>P00698</accession>
     <accession>Q90884</accession>
     </entry>
     '''
     parser = dba.UniprotParser(BeautifulSoup(entry, 'xml'), None)
     exp = 'P00698'
     self.assertEqual(exp, parser.get_uniprot_id())
 def test_match_entry_to_id(self):
     id_list = ['Q9NWV8', 'notreally', 'noteither']
     parser = dba.UniprotParser(self.xml_soup, self.html_soup)
     exp = ['Q9NWV8']
     res = parser.match_entry_to_id(id_list)
     self.assertEqual(res, exp)
     id_list = ['notreally', 'noteither']
     exp = []
     res = parser.match_entry_to_id(id_list)
     self.assertEqual(res, exp)
 def test_get_crossreferences(self):
     parser = dba.UniprotParser(self.xml_soup, self.html_soup)
     exp = {
         'CCDS': ['CCDS46012.1'],
         'RefSeq': [
             'NM_001033549.2', 'NM_001288756.1', 'NM_001288757.1',
             'NM_014173.3'
         ],
         'EMBL': [
             'AF161491', 'AL136692', 'AK000578', 'AK299493', 'AK301193',
             'CR533526', 'BC000788', 'BC006244', 'BC091491'
         ]
     }
     self.assertEqual(exp, parser.get_crossreferences())
 def test_get_pdb_construct_uniprot_id_given(self):
     entry = '''
     <entry>
         <accession>P00698</accession>
         <dbReference type="PDB" id="132L">
             <property type="method" value="X-ray" />
             <property type="resolution" value="1.80" />
             <property type="chains" value="A=19-147" />
         </dbReference>
     </entry>
     '''
     exp = [PdbCrossref('override', '132L', 19, 147, ['A'])]
     parser = dba.UniprotParser(BeautifulSoup(entry, 'xml'), None)
     res = parser.get_pdb_constructs('override')
     self.assertEqual(sorted(res), sorted(exp))
     self.assertEqual(res[0].parent_entry_id, 'override')
 def test_get_pdb_construct_double_chain_notation(self):
     entry = '''
     <entry>
         <accession>P00698</accession>
         <dbReference type="PDB" id="132L">
             <property type="method" value="X-ray" />
             <property type="resolution" value="1.80" />
             <property type="chains" value="A=19-88, B=90-147" />
         </dbReference>
     </entry>
     '''
     exp = [
         PdbCrossref('P00698', '132L', 19, 88, ['A']),
         PdbCrossref('P00698', '132L', 90, 147, ['B'])
     ]
     parser = dba.UniprotParser(BeautifulSoup(entry, 'xml'), None)
     res = parser.get_pdb_constructs()
     self.assertEqual(sorted(res), sorted(exp))
 def test_get_pdb_construct_none_present(self):
     exp = []  # should return empty list
     entry = '''<entry><accession>P18181</accession></entry>'''
     parser = dba.UniprotParser(BeautifulSoup(entry, 'xml'), None)
     res = parser.get_pdb_constructs()
     self.assertEqual(res, exp)
 def test_get_protein_sequence(self):
     parser = dba.UniprotParser(self.xml_soup, self.html_soup)
     exp = self.protein_seq
     res = parser.get_protein_sequence()
     self.assertEqual(res, exp)
 def setUp(self):
     self.parser = dba.UniprotParser(self.xml_soup, self.html_soup)