Skip to content

Commit efd335f

Browse files
committed
Use environment variables for configuration.
1 parent d98e46d commit efd335f

File tree

2 files changed

+16
-24
lines changed

2 files changed

+16
-24
lines changed
Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
1+
import os
12
import psycopg
2-
33
from matchms import set_matchms_logger_level, Spectrum
44
import numpy as np
55

6-
# TODO: Move either consts or postgresql url to env file
7-
DB_PORT = 5432
8-
DB_USER = "massbank3"
9-
DB_PASSWORD = "massbank3password"
10-
DB_NAME = "massbank3"
11-
DB_HOST = "localhost"
12-
6+
DB_PORT = os.environ.get('DB_PORT', 5432)
7+
DB_USER = os.environ.get('DB_USER', "massbank3")
8+
DB_PASSWORD = os.environ.get('DB_PASSWORD', "massbank3password")
9+
DB_HOST = os.environ.get('DB_HOST', "localhost")
10+
DB_NAME = os.environ.get('DB_NAME', "massbank3")
1311
spectra = []
1412

13+
1514
# Load all (non-deprecated) spectra from the database for faster lookup
1615
def load_spectra():
1716
global spectra
18-
17+
1918
spectra = []
2019

2120
# Prevent matchms from complaining about spectra not having a precursor_mz
2221
set_matchms_logger_level("ERROR")
2322

2423
with psycopg.connect(f"postgresql://{DB_NAME}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}") as conn:
2524
with conn.cursor() as cur:
26-
cur.execute("select document->'accession', document->'peak' from massbank where document->>'deprecated' is null;")
25+
cur.execute(
26+
"select document->'accession', document->'peak' from massbank where document->>'deprecated' is null;")
2727

2828
for spectrum in cur:
29-
id = spectrum[0]
29+
accession = spectrum[0]
3030
peak = spectrum[1]["peak"]
3131

3232
mz = peak["mz"]
3333
intensities = peak["rel"]
3434

35-
spectra += [Spectrum(mz=np.array(mz).astype(float), intensities=np.array(intensities).astype(float), metadata={"id": id})]
35+
#metadata key "accession" gets silently converted to spectrum_id, so we can use spectrum_id right away
36+
spectra += [Spectrum(mz=np.array(mz).astype(float), intensities=np.array(intensities).astype(float),
37+
metadata={'spectrum_id': accession})]

api-similarity-score/similarity-score-impl/similarity-score-controller.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def similarity_post(similarity_calculation): # noqa: E501
3333

3434
if len(request.reference_spectra_list) > 0:
3535
def filter_fn(spectrum):
36-
return spectrum.metadata['id'] in request.reference_spectra_list
36+
return spectrum.metadata['spectrum_id'] in request.reference_spectra_list
3737

3838
references = list(filter(filter_fn, spectra))
3939

@@ -44,7 +44,7 @@ def filter_fn(spectrum):
4444
match_list = SimilarityScoreList([])
4545

4646
for match in matches:
47-
match_list.similarity_score_list.append(SimilarityScore(match[0].metadata['id'], match[1][0]))
47+
match_list.similarity_score_list.append(SimilarityScore(match[0].metadata['spectrum_id'], match[1][0]))
4848

4949
return match_list
5050

@@ -58,13 +58,3 @@ def version_get(): # noqa: E501
5858
:rtype: Union[str, Tuple[str, int], Tuple[str, int, Dict[str, str]]
5959
"""
6060
return 'cosine similarity 1.0.0'
61-
62-
import db
63-
64-
def main():
65-
print("Loading spectra... ", end='', flush=True)
66-
db.load_spectra()
67-
print("Finished")
68-
69-
if __name__ == '__main__':
70-
main()

0 commit comments

Comments
 (0)