Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,10 +1,3 @@
|
|
| 1 |
-
# -*- coding: utf-8 -*-
|
| 2 |
-
"""
|
| 3 |
-
Created on Thu Oct 10 16:46:36 2024
|
| 4 |
-
|
| 5 |
-
@author: ZNDX002
|
| 6 |
-
"""
|
| 7 |
-
|
| 8 |
from __future__ import annotations
|
| 9 |
import sqlite3
|
| 10 |
import gradio as gr
|
|
@@ -32,7 +25,6 @@ from gradio.themes.base import Base
|
|
| 32 |
from gradio.themes.utils import colors, fonts, sizes
|
| 33 |
from huggingface_hub import hf_hub_download
|
| 34 |
import time
|
| 35 |
-
import concurrent.futures
|
| 36 |
|
| 37 |
class Seafoam(Base):
|
| 38 |
def __init__(
|
|
@@ -107,7 +99,6 @@ custom_css = """
|
|
| 107 |
height: 480px !important;
|
| 108 |
}
|
| 109 |
</style>
|
| 110 |
-
|
| 111 |
"""
|
| 112 |
def spectrum_processing(s):
|
| 113 |
"""This is how one would typically design a desired pre- and post-
|
|
@@ -261,48 +252,40 @@ def retrieve_similarity_scores( table_name, target_mass,collision_energy, ms2_em
|
|
| 261 |
filtered_smiles = cur.fetchall()
|
| 262 |
similarity_scores = []
|
| 263 |
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
)
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
|
| 294 |
-
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
[0.4, 0.3, 0.3] if collision_energy <= 15 else
|
| 299 |
-
[0.3, 0.4, 0.3] if collision_energy <= 25 else
|
| 300 |
-
[0.2, 0.3, 0.5]
|
| 301 |
-
])
|
| 302 |
-
|
| 303 |
-
similarity_array = np.array([[low, median, high] for _, low, median, high in similarity_scores])
|
| 304 |
-
weighted_similarities = similarity_array @ collision_weights.T # 矩阵乘法
|
| 305 |
-
weighted_similarity_scores = [(smile, weighted) for (smile, _low, _med, _high), weighted in zip(similarity_scores, weighted_similarities)]
|
| 306 |
|
| 307 |
weighted_similarity_scores.sort(key=lambda x: x[1], reverse=True)
|
| 308 |
|
|
@@ -493,3 +476,4 @@ with gr.Blocks(theme=seafoam) as demo:
|
|
| 493 |
demo.launch(share=True)
|
| 494 |
|
| 495 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from __future__ import annotations
|
| 2 |
import sqlite3
|
| 3 |
import gradio as gr
|
|
|
|
| 25 |
from gradio.themes.utils import colors, fonts, sizes
|
| 26 |
from huggingface_hub import hf_hub_download
|
| 27 |
import time
|
|
|
|
| 28 |
|
| 29 |
class Seafoam(Base):
|
| 30 |
def __init__(
|
|
|
|
| 99 |
height: 480px !important;
|
| 100 |
}
|
| 101 |
</style>
|
|
|
|
| 102 |
"""
|
| 103 |
def spectrum_processing(s):
|
| 104 |
"""This is how one would typically design a desired pre- and post-
|
|
|
|
| 252 |
filtered_smiles = cur.fetchall()
|
| 253 |
similarity_scores = []
|
| 254 |
|
| 255 |
+
for smile in filtered_smiles:
|
| 256 |
+
query = f"""
|
| 257 |
+
SELECT low_energy_embedding, median_energy_embedding, high_energy_embedding
|
| 258 |
+
FROM {table_name}
|
| 259 |
+
WHERE SMILES = ?
|
| 260 |
+
"""
|
| 261 |
+
cur.execute(query, (smile[0],))
|
| 262 |
+
row = cur.fetchone()
|
| 263 |
+
if row is None:
|
| 264 |
+
return None
|
| 265 |
+
low_energy_embedding_db = np.array(pickle.loads(row[0]), dtype=np.float64)
|
| 266 |
+
median_energy_embedding_db = np.array(pickle.loads(row[1]), dtype=np.float64)
|
| 267 |
+
high_energy_embedding_db = np.array(pickle.loads(row[2]), dtype=np.float64)
|
| 268 |
+
low_energy_embedding_db,median_energy_embedding_db,high_energy_embedding_db = torch.tensor(low_energy_embedding_db).float(),torch.tensor(median_energy_embedding_db).float(),torch.tensor(high_energy_embedding_db).float()
|
| 269 |
+
low_similarity =(ms2_embedding_low @ low_energy_embedding_db.t()).item()
|
| 270 |
+
median_similarity = (ms2_embedding_median @ median_energy_embedding_db.t()).item()
|
| 271 |
+
high_similarity = (ms2_embedding_high @ high_energy_embedding_db.t()).item()
|
| 272 |
+
'''
|
| 273 |
+
low_similarity = calculate_cosine_similarity(ms2_embedding_low, low_energy_embedding_db)
|
| 274 |
+
median_similarity = calculate_cosine_similarity(ms2_embedding_median, median_energy_embedding_db)
|
| 275 |
+
high_similarity = calculate_cosine_similarity(ms2_embedding_high, high_energy_embedding_db)'''
|
| 276 |
+
similarity_scores.append((smile, low_similarity, median_similarity, high_similarity))
|
| 277 |
+
|
| 278 |
+
weighted_similarity_scores = []
|
| 279 |
+
for smile, low_similarity, median_similarity, high_similarity in similarity_scores:
|
| 280 |
+
if collision_energy <=15:
|
| 281 |
+
weighted_similarity = 0.4 * low_similarity + 0.3 * median_similarity + 0.3 * high_similarity
|
| 282 |
+
weighted_similarity_scores.append((smile, weighted_similarity))
|
| 283 |
+
elif collision_energy >15 and collision_energy <= 25:
|
| 284 |
+
weighted_similarity = 0.3 * low_similarity + 0.4 * median_similarity + 0.3 * high_similarity
|
| 285 |
+
weighted_similarity_scores.append((smile, weighted_similarity))
|
| 286 |
+
elif collision_energy > 25:
|
| 287 |
+
weighted_similarity = 0.2 * low_similarity + 0.3 * median_similarity + 0.5 * high_similarity
|
| 288 |
+
weighted_similarity_scores.append((smile, weighted_similarity))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 289 |
|
| 290 |
weighted_similarity_scores.sort(key=lambda x: x[1], reverse=True)
|
| 291 |
|
|
|
|
| 476 |
demo.launch(share=True)
|
| 477 |
|
| 478 |
|
| 479 |
+
|