Skip to content

Commit 3b32bbd

Browse files
authored
Merge pull request #301 from Wang-Bioinformatics-Lab/norman
supporting norman
2 parents 331f5df + f28e060 commit 3b32bbd

File tree

4 files changed

+27
-2
lines changed

4 files changed

+27
-2
lines changed

download.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from download_workbench import _resolve_metabolomicsworkbench_usi
1212
import download_zenodo
1313
import download_glycopost
14+
import download_norman
1415

1516
try:
1617
import utils_conversion
@@ -69,6 +70,9 @@ def _usi_to_local_filename(usi):
6970
converted_local_filename = werkzeug.utils.secure_filename(":".join(usi_splits[:3])) + ".mzML"
7071
converted_local_filename = converted_local_filename.replace(".mzML.mzML", ".mzML")
7172

73+
elif "NORMAN" in usi_splits[1]:
74+
converted_local_filename = werkzeug.utils.secure_filename(":".join(usi_splits[:3]).split("?")[0]) + ".mzML"
75+
7276
# Cleaning it up
7377
if len(converted_local_filename) > 250:
7478
converted_local_filename = "convertedfile_" + str(hash(converted_local_filename)) + "_" + converted_local_filename[-150:]
@@ -220,6 +224,9 @@ def _resolve_usi_remotelink(usi):
220224
elif "ZENODO" in usi_splits[1]:
221225
remote_link = download_zenodo._resolve_zenodo_usi(usi)
222226
resource = "ZENODO"
227+
elif "NORMAN" in usi_splits[1]:
228+
remote_link = download_norman._resolve_norman_usi(usi)
229+
resource = "NORMAN"
223230
elif "PXD" in usi_splits[1]:
224231
# First lets try resolving it at MSV
225232
remote_link = ""
@@ -348,7 +355,12 @@ def _resolve_usi(usi, temp_folder="temp", cleanup=True):
348355
print("DEBUG: Remote Link", remote_link, file=sys.stderr, flush=True)
349356

350357
# Getting Data Local, TODO: likely should serialize it
351-
local_filename = os.path.join(temp_folder, "temp_" + str(uuid.uuid4()) + "_" + werkzeug.utils.secure_filename(remote_link)[-150:])
358+
if "NORMAN" in usi_splits[1]:
359+
# remove all the url parmaeters from url
360+
remote_link_stripped = remote_link.split("?")[0]
361+
local_filename = os.path.join(temp_folder, "temp_" + str(uuid.uuid4()) + "_" + werkzeug.utils.secure_filename(remote_link_stripped)[-150:])
362+
else:
363+
local_filename = os.path.join(temp_folder, "temp_" + str(uuid.uuid4()) + "_" + werkzeug.utils.secure_filename(remote_link)[-150:])
352364
filename, file_extension = os.path.splitext(local_filename)
353365

354366
# This is the download temporary filename
@@ -372,6 +384,7 @@ def _resolve_usi(usi, temp_folder="temp", cleanup=True):
372384
os.system(wget_cmd)
373385

374386
temp_msconvert_filename = os.path.join(temp_folder, "msconvert_out_" + str(uuid.uuid4()) + ".mzML")
387+
375388
# Lets do a conversion
376389
# TODO: Setting timeouts to kill child processes
377390
if file_extension.lower() == ".cdf":

download_msv.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def _resolve_msv_usi(usi, force_massive=False):
2222
msv_usi = "{}:scan:1".format(usi)
2323

2424
lookup_url = f'https://massive.ucsd.edu/ProteoSAFe/QuerySpectrum?id={msv_usi}'
25-
lookup_request = requests.get(lookup_url)
25+
lookup_request = requests.get(lookup_url, verify=False) # we don't verify because massive always goes down on TLS
2626

2727
try:
2828
resolution_json = lookup_request.json()

download_norman.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import requests
2+
3+
def _resolve_norman_usi(usi):
4+
# mzspec:NORMAN-27df0a3e-3578-4a30-b9e4-1505f9da010d:webform/sample/52/uoa_pos_25_lc-esi-qtof_life_apex_16_roach_muscle_from_river_thames_shepperton-sunbury_london_uk_01.01.2016_life_apex_34794.mzml?VersionId=dHajIPC5bwhZM1gzQPvtfR8HNfqkstJL
5+
usi_splits = usi.split(':')
6+
7+
# First looking
8+
dataset_accession = usi_splits[1].replace("NORMAN-", "")
9+
filename = usi_splits[2]
10+
11+
return "https://files.dsfp.norman-data.eu/{}".format(filename)

tasks_conversion.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def _download_convert_file(usi, temp_folder="temp"):
3333
"""
3434

3535
return_val = download._resolve_usi(usi, temp_folder=temp_folder)
36+
3637
_convert_file_feather.delay(usi, temp_folder=temp_folder)
3738

3839
return return_val

0 commit comments

Comments
 (0)