bioemu / app.py
FuYn666's picture
Update app.py
f73af29 verified
import gradio as gr
from bioemu.sample import main as sample
import os
import shutil
def run_bioemu(seq, num_samples, outdir):
if not outdir.strip():
outdir = "outputs" # 默认目录
os.makedirs(outdir, exist_ok=True)
# 运行 BioEmu 采样
sample(
sequence=seq,
num_samples=int(num_samples),
output_dir=outdir
)
# 打包结果为 zip
zip_path = f"{outdir}.zip"
if os.path.exists(zip_path):
os.remove(zip_path) # 避免覆盖错误
shutil.make_archive(outdir, 'zip', outdir)
return f"运行完成!结果保存在 {outdir} 文件夹下。", zip_path
with gr.Blocks() as demo:
gr.Markdown("## 🧬 BioEmu Demo: 生成蛋白质结构集合")
seq = gr.Textbox(label="输入蛋白质序列", value="GYDPETGTWG")
num_samples = gr.Slider(1, 20, value=5, step=1, label="采样数量")
outdir = gr.Textbox(label="输出目录", value="outputs", placeholder="比如:results/chignolin")
run_btn = gr.Button("运行 BioEmu")
output_info = gr.Textbox(label="运行信息")
output_file = gr.File(label="下载结果(zip 格式)")
run_btn.click(fn=run_bioemu, inputs=[seq, num_samples, outdir], outputs=[output_info, output_file])
demo.launch()