import gradio as gr import os def molecule(input_pdb): mol = read_mol(input_pdb) x = ("""
""") return f"""""" def get_pdb(pdb_code="", filepath=""): if pdb_code is None or pdb_code == "": try: return filepath.name except AttributeError as e: return None else: os.system(f"wget -qnc https://files.rcsb.org/view/{pdb_code}.pdb") return f"{pdb_code}.pdb" def read_mol(molpath): with open(molpath, "r") as fp: lines = fp.readlines() mol = "" for l in lines: mol += l return mol def update(fastaName='', fastaContent=''): if (fastaName == ''): return None else: return molecule(fastaName + "_pred.pdb") demo = gr.Blocks() with demo: gr.Markdown("# PP-HelixFold Demo") with gr.Row(): with gr.Box(): fastaName = gr.Textbox(interactive=False, label='Fasta label') fastaContent = gr.Textbox(interactive=False, label='Fasta content') gr.Examples([["T1026", read_mol("T1026.fasta")], ["T1037", read_mol("T1037.fasta")]], [fastaName, fastaContent]) btn = gr.Button("Predict") mol = gr.HTML() btn.click(fn=update, inputs=[fastaName, fastaContent], outputs=mol) demo.launch()