|
1 | 1 | import os |
| 2 | +import string |
2 | 3 | from pathlib import Path |
3 | 4 | import numpy as np |
4 | 5 | from matchms.Spectrum import Spectrum |
5 | 6 | from ms2deepscore.models import load_model |
| 7 | +from ms2query.benchmarking.Fingerprints import Fingerprints |
6 | 8 |
|
7 | 9 |
|
8 | 10 | TEST_RESOURCES_PATH = Path(__file__).parent / "test_data" |
@@ -76,15 +78,54 @@ def get_inchikey_inchi_pairs(number_of_pairs): |
76 | 78 | "MWOOGOJBHIARFG-UHFFFAOYSA-N", |
77 | 79 | "InChI=1S/C8H8O3/c1-11-8-4-6(5-9)2-3-7(8)10/h2-5,10H,1H3", |
78 | 80 | "COC1=C(C=CC(=C1)C=O)O", |
79 | | - "vanillin" |
| 81 | + "vanillin", |
80 | 82 | ), |
81 | 83 | ( |
82 | 84 | "ROHFNLRQFUQHCH-YFKPBYRVSA-N", |
83 | 85 | "InChI=1S/C6H13NO2/c1-4(2)3-5(7)6(8)9/h4-5H,3,7H2,1-2H3,(H,8,9)/t5-/m0/s1", |
84 | 86 | "CC(C)C[C@@H](C(=O)O)N", |
85 | | - "L-Leucine" |
86 | | - ) |
| 87 | + "L-Leucine", |
| 88 | + ), |
87 | 89 | ) |
88 | 90 | if number_of_pairs > len(inchikey_inchi_pairs): |
89 | 91 | raise ValueError("Not enough example compounds, add some in conftest") |
90 | 92 | 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