Skip to content

Commit 2d0375e

Browse files
authored
Improve MeSH xref processing (#464)
Motivated by #463 This adds a try/except for invalid identifiers to support older versions of MeSH (e.g., from 2018) that result in a few issues like: ``` [C437863] invalid identifier for ec: 3.4.-21 [C056074] invalid identifier for ec: 3.4.23.20-30 ```
1 parent 2419daa commit 2d0375e

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

src/pyobo/sources/mesh.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,14 @@ def get_terms(version: str, *, force: bool = False) -> Iterable[Term]:
131131
for term in concept["terms"]:
132132
synonyms.add(term["name"])
133133
for xref_prefix, xref_identifier in concept.get("xrefs", []):
134-
xrefs.append(Reference(prefix=xref_prefix, identifier=xref_identifier))
134+
try:
135+
xref = Reference(prefix=xref_prefix, identifier=xref_identifier)
136+
except ValueError:
137+
tqdm.write(
138+
f"[mesh:{identifier}] has invalid xref {xref_prefix}:{xref_identifier}"
139+
)
140+
else:
141+
xrefs.append(xref)
135142

136143
mesh_id_to_term[identifier] = Term(
137144
definition=definition,

0 commit comments

Comments
 (0)