ChemTransformerX / interfaces /smiles2iupac.py
parvalijaved's picture
Create smiles2iupac.py
c663e94 verified
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]
],
)