Spaces:
Sleeping
Sleeping
| import requests, sys | |
| import xml.dom.minidom | |
| def get_protein_location(accession=None, gene=None, protein=None, organism=None): | |
| requestURL = 'https://www.ebi.ac.uk/proteins/api/proteins?offset=0&size=-1' | |
| if (accession is not None): | |
| requestURL = f'{requestURL}&accession={accession}' | |
| else: | |
| if (gene is not None): | |
| requestURL = f'{requestURL}&gene={gene}' | |
| elif (protein is not None): | |
| requestURL = f'{requestURL}&protein={protein}' | |
| else: | |
| raise ValueError('Either accession, gene, or protein must be specified in the search parameters') | |
| if organism is not None: | |
| requestURL = f'{requestURL}&organism={organism}' | |
| r = requests.get(requestURL, headers={"Accept": "application/xml"}) | |
| if not r.ok: | |
| r.raise_for_status() | |
| sys.exit() | |
| xml_doc = xml.dom.minidom.parseString(r.text) | |
| packages = xml_doc.getElementsByTagName('subcellularLocation') | |
| locations = [] | |
| for package in packages: | |
| locations.append(package.getElementsByTagName('location')[0].childNodes[0].data) | |
| return list(set(locations)) | |
| #def is_transcription_factor(accession=None, gene=None, protein=None, organism=None): | |