Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -25,7 +25,7 @@ import torch
|
|
| 25 |
from torch.utils.data import DataLoader
|
| 26 |
|
| 27 |
import selfies
|
| 28 |
-
from rdkit import Chem
|
| 29 |
|
| 30 |
import matplotlib
|
| 31 |
matplotlib.use("Agg")
|
|
@@ -91,17 +91,28 @@ def simple_seq_from_structure(path: str) -> str:
|
|
| 91 |
return "".join(three2one.get(res.get_resname().upper(), "X") for res in chain)
|
| 92 |
|
| 93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
def smiles_to_selfies(smiles_text: str) -> Optional[str]:
|
| 95 |
-
"""Validate and convert SMILES to SELFIES; return None if invalid."""
|
| 96 |
try:
|
| 97 |
-
|
| 98 |
-
|
|
|
|
| 99 |
return None
|
| 100 |
-
return
|
| 101 |
except Exception:
|
| 102 |
return None
|
| 103 |
|
| 104 |
|
|
|
|
| 105 |
def detect_protein_type(seq: str) -> str:
|
| 106 |
"""
|
| 107 |
Heuristic for protein input:
|
|
@@ -624,7 +635,7 @@ def visualize_attention_and_ranges(
|
|
| 624 |
|
| 625 |
# βββββ Gradio callbacks βββββββββββββββββββββββββββββββββββββββββ
|
| 626 |
ROOT = os.path.dirname(os.path.abspath(__file__))
|
| 627 |
-
FOLDSEEK_BIN = os.path.join(ROOT, "
|
| 628 |
|
| 629 |
def extract_sequence_cb(structure_file, drug_text, protein_text):
|
| 630 |
"""
|
|
|
|
| 25 |
from torch.utils.data import DataLoader
|
| 26 |
|
| 27 |
import selfies
|
| 28 |
+
# from rdkit import Chem
|
| 29 |
|
| 30 |
import matplotlib
|
| 31 |
matplotlib.use("Agg")
|
|
|
|
| 91 |
return "".join(three2one.get(res.get_resname().upper(), "X") for res in chain)
|
| 92 |
|
| 93 |
|
| 94 |
+
# def smiles_to_selfies(smiles_text: str) -> Optional[str]:
|
| 95 |
+
# """Validate and convert SMILES to SELFIES; return None if invalid."""
|
| 96 |
+
# try:
|
| 97 |
+
# mol = Chem.MolFromSmiles(smiles_text)
|
| 98 |
+
# if mol is None:
|
| 99 |
+
# return None
|
| 100 |
+
# return selfies.encoder(smiles_text)
|
| 101 |
+
# except Exception:
|
| 102 |
+
# return None
|
| 103 |
+
|
| 104 |
def smiles_to_selfies(smiles_text: str) -> Optional[str]:
|
|
|
|
| 105 |
try:
|
| 106 |
+
sf = selfies.encoder(smiles_text)
|
| 107 |
+
smiles_back = selfies.decoder(sf)
|
| 108 |
+
if not smiles_back:
|
| 109 |
return None
|
| 110 |
+
return sf
|
| 111 |
except Exception:
|
| 112 |
return None
|
| 113 |
|
| 114 |
|
| 115 |
+
|
| 116 |
def detect_protein_type(seq: str) -> str:
|
| 117 |
"""
|
| 118 |
Heuristic for protein input:
|
|
|
|
| 635 |
|
| 636 |
# βββββ Gradio callbacks βββββββββββββββββββββββββββββββββββββββββ
|
| 637 |
ROOT = os.path.dirname(os.path.abspath(__file__))
|
| 638 |
+
FOLDSEEK_BIN = os.path.join(ROOT, "utils", "foldseek")
|
| 639 |
|
| 640 |
def extract_sequence_cb(structure_file, drug_text, protein_text):
|
| 641 |
"""
|