File size: 1,411 Bytes
e8e9336
 
 
 
 
3c6b27e
e8e9336
 
 
 
 
 
 
 
 
0d7cf39
e8e9336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3c6b27e
0d7cf39
e8e9336
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import gradio as gr



def update(smiles):
    x = (
        """<!DOCTYPE html>
        <html>
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">
        </head>
        
        <body>
            <img data-smiles="OC(C(=O)O[C@H]1C[N+]2(CCCOC3=CC=CC=C3)CCC1CC2)(C1=CC=CS1)C1=CC=CS1" 
                    data-smiles-options="{ \'width\': 800, \'height\': 800 }" />
                                        
           
            <script type="text/javascript" src="https://unpkg.com/[email protected]/dist/smiles-drawer.min.js"></script>
            <script>
                SmiDrawer.apply();
            </script>
        </body>
        </html>
        """
    )
    return f"""<iframe style="width: 800px; height: 800px" 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("# Smiles viewer")
    with gr.Column():
        inp = gr.Textbox(label="SMILES string", placeholder="CCCC")
        out = gr.HTML()
    btn = gr.Button("Run")
    btn.click(fn=update, inputs=inp, outputs=out)

demo.launch()