Update app.py
Browse files
app.py
CHANGED
@@ -16,18 +16,20 @@ def drug_discovery(disease, symptoms):
|
|
16 |
prompt = f"Recent treatments for {disease} with symptoms: {symptoms}."
|
17 |
literature = bio_gpt(prompt, max_length=200)[0]['generated_text']
|
18 |
|
19 |
-
# Generate SMILES using BioGPT
|
20 |
-
molecule_prompt = f"
|
21 |
-
smiles_result = bio_gpt(molecule_prompt, max_length=
|
22 |
-
|
|
|
|
|
23 |
smiles = None
|
24 |
-
for match in
|
25 |
mol_test = Chem.MolFromSmiles(match)
|
26 |
if mol_test:
|
27 |
smiles = match
|
28 |
break
|
29 |
if not smiles:
|
30 |
-
smiles = "CC
|
31 |
|
32 |
# Generate RDKit molecule
|
33 |
mol = Chem.MolFromSmiles(smiles)
|
@@ -124,4 +126,3 @@ iface = gr.Interface(
|
|
124 |
)
|
125 |
|
126 |
iface.launch(share=True)
|
127 |
-
|
|
|
16 |
prompt = f"Recent treatments for {disease} with symptoms: {symptoms}."
|
17 |
literature = bio_gpt(prompt, max_length=200)[0]['generated_text']
|
18 |
|
19 |
+
# Generate SMILES using BioGPT with stricter filtering
|
20 |
+
molecule_prompt = f"List 5 different valid drug-like SMILES strings that can treat {disease} with symptoms {symptoms}. Only list SMILES separated by spaces."
|
21 |
+
smiles_result = bio_gpt(molecule_prompt, max_length=100)[0]['generated_text']
|
22 |
+
|
23 |
+
# Extract and validate SMILES strings
|
24 |
+
smiles_matches = re.findall(r"(?<![A-Za-z0-9])[A-Za-z0-9@+\-\[\]\(\)=#$]{5,}(?![A-Za-z0-9])", smiles_result)
|
25 |
smiles = None
|
26 |
+
for match in smiles_matches:
|
27 |
mol_test = Chem.MolFromSmiles(match)
|
28 |
if mol_test:
|
29 |
smiles = match
|
30 |
break
|
31 |
if not smiles:
|
32 |
+
smiles = "C1=CC=CC=C1" # fallback to benzene if all fail
|
33 |
|
34 |
# Generate RDKit molecule
|
35 |
mol = Chem.MolFromSmiles(smiles)
|
|
|
126 |
)
|
127 |
|
128 |
iface.launch(share=True)
|
|