Skip to content

Commit 17462ad

Browse files
committed
Prior to this change,
This change
1 parent 578c697 commit 17462ad

File tree

1 file changed

+64
-34
lines changed

1 file changed

+64
-34
lines changed

pyard/load.py

Lines changed: 64 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import sys
22
from typing import Dict, List
3-
from urllib.error import HTTPError
3+
from urllib.error import URLError
44

55
from pyard.misc import get_G_name, get_2field_allele, get_3field_allele, get_P_name
66

@@ -21,14 +21,18 @@ def load_serology_broad_split_mapping(imgt_version: str) -> Dict:
2121
import pandas as pd
2222

2323
ser_ser_url = f"{IMGT_HLA_URL}{imgt_version}/wmda/rel_ser_ser.txt"
24-
df_p = pd.read_csv(
25-
ser_ser_url,
26-
skiprows=6,
27-
names=["Locus", "A", "Splits", "Associated"],
28-
usecols=[0, 1, 2],
29-
dtype="string",
30-
sep=";",
31-
).dropna()
24+
try:
25+
df_p = pd.read_csv(
26+
ser_ser_url,
27+
skiprows=6,
28+
names=["Locus", "A", "Splits", "Associated"],
29+
usecols=[0, 1, 2],
30+
dtype="string",
31+
sep=";",
32+
).dropna()
33+
except URLError as e:
34+
print(f"Error downloading {ser_ser_url}", e, file=sys.stderr)
35+
sys.exit(1)
3236

3337
df_p["Sero"] = df_p["Locus"] + df_p["A"]
3438
df_p["Splits"] = df_p[["Locus", "Splits"]].apply(
@@ -44,7 +48,14 @@ def load_g_group(imgt_version):
4448

4549
# load the hla_nom_g.txt
4650
ars_g_url = f"{IMGT_HLA_URL}{imgt_version}/wmda/hla_nom_g.txt"
47-
df = pd.read_csv(ars_g_url, skiprows=6, names=["Locus", "A", "G"], sep=";").dropna()
51+
try:
52+
df = pd.read_csv(
53+
ars_g_url, skiprows=6, names=["Locus", "A", "G"], sep=";"
54+
).dropna()
55+
except URLError as e:
56+
print(f"Error downloading {ars_g_url}", e, file=sys.stderr)
57+
sys.exit(1)
58+
4859
# the G-group is named for its first allele
4960
df["G"] = df["A"].apply(get_G_name)
5061
# convert slash delimited string to a list
@@ -69,9 +80,14 @@ def load_p_group(imgt_version):
6980
# load the hla_nom_p.txt
7081
ars_p_url = f"{IMGT_HLA_URL}{imgt_version}/wmda/hla_nom_p.txt"
7182
# example: C*;06:06:01:01/06:06:01:02/06:271;06:06P
72-
df_p = pd.read_csv(
73-
ars_p_url, skiprows=6, names=["Locus", "A", "P"], sep=";"
74-
).dropna()
83+
try:
84+
df_p = pd.read_csv(
85+
ars_p_url, skiprows=6, names=["Locus", "A", "P"], sep=";"
86+
).dropna()
87+
except URLError as e:
88+
print(f"Error downloading {ars_p_url}", e, file=sys.stderr)
89+
sys.exit(1)
90+
7591
# the P-group is named for its first allele
7692
df_p["P"] = df_p["A"].apply(get_P_name)
7793
# convert slash delimited string to a list
@@ -131,12 +147,10 @@ def load_allele_list(imgt_version):
131147

132148
try:
133149
allele_df = pd.read_csv(allele_list_url, header=6, usecols=["Allele"])
134-
except HTTPError as e:
135-
print(
136-
f"Failed importing alleles for version {imgt_version} from {allele_list_url}",
137-
file=sys.stderr,
138-
)
150+
except URLError as e:
151+
print(f"Error downloading {allele_list_url}", e, file=sys.stderr)
139152
sys.exit(1)
153+
140154
return allele_df
141155

142156

@@ -158,13 +172,18 @@ def load_serology_mappings(imgt_version):
158172
# Load WMDA serology mapping data from URL
159173
import pandas as pd
160174

161-
df_sero = pd.read_csv(
162-
rel_dna_ser_url,
163-
sep=";",
164-
skiprows=6,
165-
names=["Locus", "Allele", "USA", "PSA", "ASA", "EAE"],
166-
index_col=False,
167-
)
175+
try:
176+
df_sero = pd.read_csv(
177+
rel_dna_ser_url,
178+
sep=";",
179+
skiprows=6,
180+
names=["Locus", "Allele", "USA", "PSA", "ASA", "EAE"],
181+
index_col=False,
182+
)
183+
except URLError as e:
184+
print(f"Error downloading {rel_dna_ser_url}", e, file=sys.stderr)
185+
sys.exit(1)
186+
168187
return df_sero
169188

170189

@@ -214,23 +233,34 @@ def load_mac_codes():
214233
mac_url = "https://hml.nmdp.org/mac/files/numer.v3.zip"
215234
import pandas as pd
216235

217-
df_mac = pd.read_csv(
218-
mac_url,
219-
sep="\t",
220-
compression="zip",
221-
skiprows=3,
222-
names=["Code", "Alleles"],
223-
keep_default_na=False,
224-
)
236+
try:
237+
df_mac = pd.read_csv(
238+
mac_url,
239+
sep="\t",
240+
compression="zip",
241+
skiprows=3,
242+
names=["Code", "Alleles"],
243+
keep_default_na=False,
244+
)
245+
except URLError as e:
246+
print(f"Error downloading {mac_url}", e, file=sys.stderr)
247+
sys.exit(1)
248+
225249
return df_mac
226250

227251

228252
def load_latest_version():
229253
from urllib.request import urlopen
230254

231-
response = urlopen(
255+
version_txt = (
232256
"https://raw.githubusercontent.com/ANHIG/IMGTHLA/Latest/release_version.txt"
233257
)
258+
try:
259+
response = urlopen(version_txt)
260+
except URLError as e:
261+
print(f"Error downloading {version_txt}", e, file=sys.stderr)
262+
sys.exit(1)
263+
234264
version = 0
235265
for line in response:
236266
l = line.decode("utf-8")

0 commit comments

Comments
 (0)