Skip to content

Commit 2e643b4

Browse files
committed
Add create fingerprint functionality to test helper functions
1 parent f40f781 commit 2e643b4

File tree

1 file changed

+44
-3
lines changed

1 file changed

+44
-3
lines changed

tests/helper_functions.py

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import os
2+
import string
23
from pathlib import Path
34
import numpy as np
45
from matchms.Spectrum import Spectrum
56
from ms2deepscore.models import load_model
7+
from ms2query.benchmarking.Fingerprints import Fingerprints
68

79

810
TEST_RESOURCES_PATH = Path(__file__).parent / "test_data"
@@ -76,15 +78,54 @@ def get_inchikey_inchi_pairs(number_of_pairs):
7678
"MWOOGOJBHIARFG-UHFFFAOYSA-N",
7779
"InChI=1S/C8H8O3/c1-11-8-4-6(5-9)2-3-7(8)10/h2-5,10H,1H3",
7880
"COC1=C(C=CC(=C1)C=O)O",
79-
"vanillin"
81+
"vanillin",
8082
),
8183
(
8284
"ROHFNLRQFUQHCH-YFKPBYRVSA-N",
8385
"InChI=1S/C6H13NO2/c1-4(2)3-5(7)6(8)9/h4-5H,3,7H2,1-2H3,(H,8,9)/t5-/m0/s1",
8486
"CC(C)C[C@@H](C(=O)O)N",
85-
"L-Leucine"
86-
)
87+
"L-Leucine",
88+
),
8789
)
8890
if number_of_pairs > len(inchikey_inchi_pairs):
8991
raise ValueError("Not enough example compounds, add some in conftest")
9092
return inchikey_inchi_pairs[:number_of_pairs]
93+
94+
95+
def get_dummy_inchikeys(nr_of_inchikeys):
96+
"""Creates dummy inchikeys like AAAAAAAAAAAAA, AAAAAAAAAAAAB etc."""
97+
letters = string.ascii_uppercase
98+
base = len(letters)
99+
list_of_inchikeys = []
100+
counter = 0
101+
for i in range(nr_of_inchikeys):
102+
n = counter
103+
code = []
104+
for _ in range(14):
105+
n, rem = divmod(n, base)
106+
code.append(letters[rem])
107+
list_of_inchikeys.append("".join(reversed(code)))
108+
counter += 1
109+
return list_of_inchikeys
110+
111+
112+
def create_fingerprints(nbits, nr_of_fingerprints):
113+
"""Creates dummy fingerprints"""
114+
fingerprints = []
115+
for i in range(nr_of_fingerprints):
116+
fingerprint = []
117+
for bit in range(nbits):
118+
if bit % (i + 1) == 0:
119+
fingerprint.append(0)
120+
else:
121+
fingerprint.append(1)
122+
fingerprints.append(fingerprint)
123+
return np.array(fingerprints)
124+
125+
126+
def make_test_fingerprints(nbits=30, nr_of_inchikeys=20):
127+
inchikeys = get_dummy_inchikeys(nr_of_inchikeys=nr_of_inchikeys)
128+
129+
fingerprints = create_fingerprints(nbits, nr_of_inchikeys)
130+
fingerprints = Fingerprints(fingerprints, tuple(inchikeys), fingerprint_type="daylight")
131+
return fingerprints

0 commit comments

Comments
 (0)