From f9dede09b827c75718f6df786d27c54158b18c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr> Date: Tue, 28 Mar 2017 22:23:20 +0200 Subject: [PATCH] add pfam information service client --- ippisite/ippidb/ws.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ippisite/ippidb/ws.py b/ippisite/ippidb/ws.py index 768d0afb..2c178fc1 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} -- GitLab