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)