import gradio as gr import os import sys HTML_TEMPLATE = """
""" IFRAME_TEMPLATE = """""" def read_molecule(path): with open(path, "r") as f: return "".join(f.readlines()) def generate(input_file): try: path = input_file.name molecule = read_molecule(path) fmt = path.split('.')[-1] except: return 'Error: could not open the provided file' html = HTML_TEMPLATE.format(molecule=molecule, fmt=fmt) return IFRAME_TEMPLATE.format(html=html) demo = gr.Blocks() with demo: gr.Markdown('# DiffLinker: Equivariant 3D-Conditional Diffusion Model for Molecular Linker Design') with gr.Box(): with gr.Row(): with gr.Column(): gr.Markdown('## Input Fragments') gr.Markdown('Upload the file with 3D-coordinates of the input fragments in .pdb, .mol2 or .sdf format') input_file = gr.File(file_count='single', label='Input fragments') button = gr.Button('Generate Linker!') gr.Markdown('') visualization = gr.HTML() button.click( fn=generate, inputs=[input_file], outputs=[visualization], ) demo.launch()