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