smilesdrawer / app.py
simonduerr's picture
Update app.py
94216aa
import gradio as gr
def update(smiles):
x = (
f"""<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link
href="https://fonts.googleapis.com/css?family=Droid+Sans:400,700"
rel="stylesheet"
/>
</head>
<body>
<svg style="height:380px;width:100%" data-smiles="{smiles}" />
<script type="text/javascript" src="https://unpkg.com/smiles-drawer@2.0.1/dist/smiles-drawer.min.js"></script>
<script>
SmiDrawer.apply();
</script>
</body>
</html>
"""
)
return f"""<iframe style="width: 100%; height: 400px;margin:0 auto" name="result" allow="midi; geolocation; microphone; camera;
display-capture; encrypted-media;" sandbox="allow-modals allow-forms
allow-scripts allow-same-origin allow-popups
allow-top-navigation-by-user-activation allow-downloads" allowfullscreen=""
allowpaymentrequest="" frameborder="0" srcdoc='{x}'></iframe>"""
with gr.Blocks() as demo:
gr.Markdown("# Smilesviewer")
gr.Markdown("Using for academic work? Please cite: 10.1021/acs.jcim.7b00425")
with gr.Column():
inp = gr.Textbox(label="SMILES string", placeholder="CCCC")
out = gr.HTML()
btn = gr.Button("Run")
gr.Examples(["CCCCC", "OC(C(=O)O[C@H]1C[N+]2(CCCOC3=CC=CC=C3)CCC1CC2)(C1=CC=CS1)C1=CC=CS1"], inp, out, update)
btn.click(fn=update, inputs=inp, outputs=out)
demo.launch()