Spaces:
Running
Running
import gradio as gr | |
from rdkit_utils import plot_mol | |
from chemicalconverters import NamesConverter | |
def convert(chemical_name, style, validate, plot): | |
# Initialize the ChemicalConverter | |
converter = NamesConverter("knowledgator/SMILES2IUPAC-canonical-base") | |
converted_name = "" | |
validation_score = "" | |
plot_image = None | |
style_prefix = "<" + style[:4] + ">" | |
if validate: | |
converted_name, validation_score = converter.smiles_to_iupac(style_prefix + chemical_name, validate=True) | |
else: | |
converted_name = converter.smiles_to_iupac(style_prefix + chemical_name) | |
if plot: | |
plot_image = plot_mol(chemical_name) | |
return converted_name[0], validation_score, plot_image | |
smiles2iupac = gr.Interface( | |
fn=convert, | |
allow_flagging='auto', | |
inputs=[ | |
gr.Textbox(label="Enter your SMILES name", placeholder="Enter your SMILES name here"), | |
gr.Radio( | |
choices=["BASE", "SYSTEMATIC", "TRADITIONAL"], | |
label="Choose desired IUPAC style", | |
), | |
gr.Checkbox(label="Validate with molecular similarity", value=False), | |
gr.Checkbox(label="Plot molecule", value=True) | |
], | |
outputs=[gr.Text(label="Converted Name"), | |
gr.Text(label="Input-Target similarity score"), | |
gr.Image(type='pil', label="Molecule Plot", height=170, width=890)], | |
examples=[ | |
["CCO", "BASE", True, True] | |
], | |
) |