comparison retrieve_fasta_from_NCBI.py @ 8:cc43a7a11324 draft

planemo upload for repository https://bitbucket.org/drosofff/gedtools/
author drosofff
date Sun, 31 May 2015 06:59:26 -0400
parents cd7de2d6c716
children 2c5375809c03
comparison
equal deleted inserted replaced
7:cd7de2d6c716 8:cc43a7a11324
131 except: # catch *all* exceptions 131 except: # catch *all* exceptions
132 e = sys.exc_info()[0] 132 e = sys.exc_info()[0]
133 self.logger.info( "Catched Error: %s" % e ) 133 self.logger.info( "Catched Error: %s" % e )
134 self.logger.info( "Retrying in 10 sec") 134 self.logger.info( "Retrying in 10 sec")
135 time.sleep(10) 135 time.sleep(10)
136 # except urllib2.HTTPError as e:
137 # serverResponse = False
138 # self.logger.info("epost error:%s, %s" % (e.code, e.read() ) )
139 querylog = response.readlines() 136 querylog = response.readlines()
140 self.logger.debug("query response:") 137 self.logger.debug("query response:")
141 for line in querylog: 138 for line in querylog:
142 self.logger.debug(line.rstrip()) 139 self.logger.debug(line.rstrip())
143 if '</QueryKey>' in line: 140 if '</QueryKey>' in line:
159 'retmode': "text"} 156 'retmode': "text"}
160 data = urllib.urlencode(values) 157 data = urllib.urlencode(values)
161 req = urllib2.Request(url, data) 158 req = urllib2.Request(url, data)
162 self.logger.debug("data: %s" % str(data)) 159 self.logger.debug("data: %s" % str(data))
163 req = urllib2.Request(url, data) 160 req = urllib2.Request(url, data)
164 serverResponse = False 161 serverTransaction = False
165 while not serverResponse: 162 counter = 0
163 while not serverTransaction:
164 counter += 1
165 self.logger.info("Server Transaction Trial: %s" % ( counter ) )
166 try: 166 try:
167 response = urllib2.urlopen(req) 167 response = urllib2.urlopen(req)
168 serverResponse = True 168 fasta = response.read()
169 if "Resource temporarily unavailable" in fasta:
170 serverTransaction = False
171 else:
172 serverTransaction = True
169 except urllib2.HTTPError as e: 173 except urllib2.HTTPError as e:
170 serverResponse = False 174 serverTransaction = False
171 self.logger.info("urlopen error:%s, %s" % (e.code, e.read() ) ) 175 self.logger.info("urlopen error:%s, %s" % (e.code, e.read() ) )
172 try: 176 except httplib.IncompleteRead as e:
173 fasta = response.read() 177 serverTransaction = False
174 except httplib.IncompleteRead as e: 178 self.logger.info("IncompleteRead error: %s" % ( e.partial ) )
175 fasta = e.partial
176 if "Resource temporarily unavailable" in fasta:
177 return '' # to reiterate the failed download
178 if self.dbname != "pubmed": 179 if self.dbname != "pubmed":
179 assert fasta.startswith(">"), fasta 180 assert fasta.startswith(">"), fasta
180 fasta = self.sanitiser(self.dbname, fasta) # 181 fasta = self.sanitiser(self.dbname, fasta) #
181 time.sleep(1) 182 time.sleep(1)
182 return fasta 183 return fasta