Skip to content

Commit

Permalink
FIX issue #1: fixing psicquic registry and retry if connection fails
Browse files Browse the repository at this point in the history
  • Loading branch information
patflick committed Feb 18, 2016
1 parent 233f831 commit 5ba15e1
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 4 deletions.
6 changes: 3 additions & 3 deletions data/PSICQUIC_registry_imex.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
IntAct=https://www.ebi.ac.uk/Tools/webservices/psicquic/intact/webservices/psicquic
DIP=https://imex.mbi.ucla.edu/psicquic-ws/webservices/psicquic
MatrixDB=https://matrixdb.ibcp.fr:8080/webservices/psicquic
MINT=https://mint.bio.uniroma2.it/mint/psicquic/webservices/psicquic
MatrixDB=https://matrixdb.ibcp.fr:8080/psicquic/webservices
MINT=https://www.ebi.ac.uk/Tools/webservices/psicquic/mint/webservices/psicquic
I2D-IMEx=https://www.ebi.ac.uk/Tools/webservices/psicquic/i2d/webservices/psicquic
InnateDB-IMEx=https://www.ebi.ac.uk/Tools/webservices/psicquic/innatedb/webservices/psicquic
MolCon=https://www.ebi.ac.uk/Tools/webservices/psicquic/molcon/webservices/psicquic
UniProt=https://www.ebi.ac.uk/Tools/webservices/psicquic/uniprot/webservices/psicquic
MBInfo=https://www.ebi.ac.uk/Tools/webservices/psicquic/mbinfo/webservices/psicquic
MPIDB=https://www.ebi.ac.uk/Tools/webservices/psicquic/mpidb/webservices/psicquic
MPIDB=https://www.ebi.ac.uk/Tools/webservices/psicquic/mpidb/webservices/psicquic
28 changes: 27 additions & 1 deletion data/download_psicquic.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
import urllib.request
import time
import os.path
import re

Expand All @@ -23,6 +24,22 @@ def get_psicquic_services(filename):
return services


def urlopen_retry(url, retry = 3, delay = 1):
print("opening " + url)
i = 0
while (i < retry):
try:
cf = urllib.request.urlopen(url)
return cf
except urllib.error.HTTPError as e:
# try again
print("Failed to connect, retrying...")
time.sleep(delay)
i = i+1
if (i == retry):
return e


def download_all_ppis(folder, basename):
"""
Downloads all PPIs provided by the PSICQUIC registry
Expand All @@ -49,8 +66,17 @@ def download_all_ppis(folder, basename):
# first get row count
count_url = service_url + '/' + psicquic_query_url + '?format=count'
tab25_url = service_url + '/' + psicquic_query_url + '?format=tab25'
with urllib.request.urlopen(count_url) as cf:

# try opening URL
#with urllib.request.urlopen(count_url) as cf:
# count = int(cf.read())
try:
cf = urlopen_retry(count_url)
count = int(cf.read())
cf.close()
except:
print("[ERROR] Failed to download PPI " + service_name + ", skipping...")
continue

print("Downloading from '" + service_name + "': " + str(count)
+ " rows ...")
Expand Down

0 comments on commit 5ba15e1

Please sign in to comment.