From 5f840e3fee7929cbc85e2fd0bfe962f6bd460ed5 Mon Sep 17 00:00:00 2001 From: Martijn Vermaat <martijn@vermaat.name> Date: Thu, 16 Feb 2012 13:07:49 +0000 Subject: [PATCH] Entrez dbSNP api suddenly returns other XML structure git-svn-id: https://humgenprojects.lumc.nl/svn/mutalyzer/trunk@478 eb6bd6ab-9ccd-42b9-aceb-e2899b4a52f1 --- mutalyzer/Retriever.py | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/mutalyzer/Retriever.py b/mutalyzer/Retriever.py index 8ce25d43..3124c8f3 100644 --- a/mutalyzer/Retriever.py +++ b/mutalyzer/Retriever.py @@ -278,11 +278,17 @@ class Retriever(object) : response_text = response.read() + if response_text == '\n': + # This is apparently what dbSNP returns for non-existing dbSNP id + self._output.addMessage(__file__, 4, 'EENTREZ', + 'ID rs%s could not be found in dbSNP.' \ + % id) + return [] + try: # Parse the output. doc = minidom.parseString(response_text) - exchange_set = doc.getElementsByTagName('ExchangeSet') - rs = exchange_set[0].getElementsByTagName('Rs') + rs = doc.getElementsByTagName('Rs')[0] except expat.ExpatError as e: # Could not parse XML. self._output.addMessage(__file__, 4, 'EENTREZ', 'Unknown dbSNP ' \ @@ -300,29 +306,8 @@ class Retriever(object) : 'Result from dbSNP: %s' % response_text) return [] - if len(rs) < 1: - # No Rs result element. - text = [] - for node in exchange_set[0].childNodes: - if node.nodeType == node.TEXT_NODE: - text.append(node.data) - message = ''.join(text) - if message.find('cannot get document summary') != -1: - # Entrez does not have this rs ID. - self._output.addMessage(__file__, 4, 'EENTREZ', - 'ID rs%s could not be found in dbSNP.' \ - % id) - else: - # Something else was wrong (print {message} to see more). - self._output.addMessage(__file__, 4, 'EENTREZ', - 'Unkown dbSNP error. Got no result ' \ - 'from dbSNP.') - self._output.addMessage(__file__, -1, 'INFO', - 'Message from dbSNP: %s' % message) - return [] - snps = [] - for i in rs[0].getElementsByTagName('hgvs'): + for i in rs.getElementsByTagName('hgvs'): snps.append(i.lastChild.data.encode('utf8')) return snps -- GitLab