Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d46de76

Browse files
Merge pull request #759 from Knerten0815/fix/load-from-usi-deprecated-api
Updated `load_from_usi` API call
2 parents 61c837f + 49560a9 commit d46de76

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

matchms/importing/load_from_usi.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
logger = logging.getLogger("matchms")
99

1010

11-
def load_from_usi(usi: str, server: str = "https://metabolomics-usi.ucsd.edu",
11+
def load_from_usi(usi: str, server: str = "https://metabolomics-usi.gnps2.org",
1212
metadata_harmonization: bool = True):
1313
"""Load spectrum from metabolomics USI.
1414
@@ -39,6 +39,10 @@ def load_from_usi(usi: str, server: str = "https://metabolomics-usi.ucsd.edu",
3939

4040
if response.status_code == 404:
4141
return None
42+
43+
if "application/json" not in response.headers.get("Content-Type"):
44+
return None
45+
4246
# Extract data and create Spectrum object
4347
try:
4448
spectral_data = response.json()

tests/importing/test_load_from_usi.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
def test_normal(mock_get):
99
mock_get.return_value = Mock(ok=True)
1010
mock_get.return_value.json.return_value = {"peaks": [[1., 2.], [3., 4.]]}
11+
mock_get.return_value.headers.get = Mock(return_value="application/json")
12+
1113
spec = load_from_usi("something")
12-
expected_metadata = {"usi": "something", "server": "https://metabolomics-usi.ucsd.edu", "precursor_mz": None}
14+
expected_metadata = {"usi": "something", "server": "https://metabolomics-usi.gnps2.org", "precursor_mz": None}
1315
expected = SpectrumBuilder().with_mz(np.array([1., 3.])).with_intensities(
1416
np.array([2., 4.])).with_metadata(expected_metadata,
1517
metadata_harmonization=True).build()
@@ -21,6 +23,8 @@ def test_404(mock_get):
2123
mock_get.return_value = Mock(ok=True)
2224
mock_get.return_value.status_code = 404
2325
mock_get.return_value.json.return_value = None
26+
mock_get.return_value.headers.get = Mock(return_value="application/json")
27+
2428
spec = load_from_usi("something")
2529
expected = None
2630
assert spec == expected
@@ -30,6 +34,20 @@ def test_404(mock_get):
3034
def test_no_peaks(mock_get):
3135
mock_get.return_value = Mock(ok=True)
3236
mock_get.return_value.json.return_value = {"peaks": []}
37+
mock_get.return_value.headers.get = Mock(return_value="application/json")
38+
3339
spec = load_from_usi("something")
3440
expected = None
3541
assert spec == expected
42+
43+
44+
def test_api_call():
45+
usi = "mzspec:MASSBANK::accession:SM858102" # taken from load_from_usi docstring
46+
47+
spec = load_from_usi(usi)
48+
49+
assert spec is not None
50+
assert hasattr(spec, "peaks")
51+
assert len(spec.peaks.mz) > 0
52+
assert "usi" in spec.metadata
53+
assert spec.metadata["usi"] == usi

0 commit comments

Comments
 (0)