diff --git a/ippisite/ippidb/ws.py b/ippisite/ippidb/ws.py index 768d0afb7775f26deba7d7a32b0da3231a776ee3..2c178fc1e80ca0bdb39e41d30571bde6756a9797 100644 --- a/ippisite/ippidb/ws.py +++ b/ippisite/ippidb/ws.py @@ -1,6 +1,6 @@ from bioservices.eutils import EUtils from bioservices.uniprot import UniProt -from xml.etree.ElementTree import register_namespace +import xml.etree.ElementTree as ET import requests def get_pubmed_info(pmid): @@ -66,4 +66,15 @@ def get_taxonomy_info(taxonomy_id): eu = EUtils() r = eu.EFetch('taxonomy', taxonomy_id, retmode='dict') scientific_name = r['TaxaSet']['Taxon']['ScientificName'] - return {'scientific_name': scientific_name} + return {'scientific_name': scientific_name} + +def get_pfam_info(pfam_acc): + resp = requests.get('http://pfam.xfam.org/family/{}?output=xml'.format(pfam_acc)) + root = ET.fromstring(resp.text) + ns = {'pfam': 'http://pfam.xfam.org/'} + entry = root.findall('pfam:entry', ns)[0] + pfam_id = entry.attrib['id'] + description = entry.findall('pfam:description', ns)[0].text.strip() + domain_family = '' + return {'id': pfam_id, + 'description': description}