Update app.py
Browse files
app.py
CHANGED
|
@@ -1,27 +1,39 @@
|
|
| 1 |
import gradio as gr
|
| 2 |
from bioemu.sample import main as sample
|
| 3 |
import os
|
|
|
|
| 4 |
|
| 5 |
-
def run_bioemu(seq, num_samples):
|
| 6 |
-
|
|
|
|
| 7 |
os.makedirs(outdir, exist_ok=True)
|
| 8 |
|
|
|
|
| 9 |
sample(
|
| 10 |
sequence=seq,
|
| 11 |
num_samples=int(num_samples),
|
| 12 |
output_dir=outdir
|
| 13 |
)
|
| 14 |
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
with gr.Blocks() as demo:
|
| 18 |
gr.Markdown("## 🧬 BioEmu Demo: 生成蛋白质结构集合")
|
| 19 |
|
| 20 |
seq = gr.Textbox(label="输入蛋白质序列", value="GYDPETGTWG")
|
| 21 |
num_samples = gr.Slider(1, 20, value=5, step=1, label="采样数量")
|
|
|
|
|
|
|
| 22 |
run_btn = gr.Button("运行 BioEmu")
|
| 23 |
-
|
|
|
|
| 24 |
|
| 25 |
-
run_btn.click(fn=run_bioemu, inputs=[seq, num_samples], outputs=
|
| 26 |
|
| 27 |
demo.launch()
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
from bioemu.sample import main as sample
|
| 3 |
import os
|
| 4 |
+
import shutil
|
| 5 |
|
| 6 |
+
def run_bioemu(seq, num_samples, outdir):
|
| 7 |
+
if not outdir.strip():
|
| 8 |
+
outdir = "outputs" # 默认目录
|
| 9 |
os.makedirs(outdir, exist_ok=True)
|
| 10 |
|
| 11 |
+
# 运行 BioEmu 采样
|
| 12 |
sample(
|
| 13 |
sequence=seq,
|
| 14 |
num_samples=int(num_samples),
|
| 15 |
output_dir=outdir
|
| 16 |
)
|
| 17 |
|
| 18 |
+
# 打包结果为 zip
|
| 19 |
+
zip_path = f"{outdir}.zip"
|
| 20 |
+
if os.path.exists(zip_path):
|
| 21 |
+
os.remove(zip_path) # 避免覆盖错误
|
| 22 |
+
shutil.make_archive(outdir, 'zip', outdir)
|
| 23 |
+
|
| 24 |
+
return f"运行完成!结果保存在 {outdir} 文件夹下。", zip_path
|
| 25 |
|
| 26 |
with gr.Blocks() as demo:
|
| 27 |
gr.Markdown("## 🧬 BioEmu Demo: 生成蛋白质结构集合")
|
| 28 |
|
| 29 |
seq = gr.Textbox(label="输入蛋白质序列", value="GYDPETGTWG")
|
| 30 |
num_samples = gr.Slider(1, 20, value=5, step=1, label="采样数量")
|
| 31 |
+
outdir = gr.Textbox(label="输出目录", value="outputs", placeholder="比如:results/chignolin")
|
| 32 |
+
|
| 33 |
run_btn = gr.Button("运行 BioEmu")
|
| 34 |
+
output_info = gr.Textbox(label="运行信息")
|
| 35 |
+
output_file = gr.File(label="下载结果(zip 格式)")
|
| 36 |
|
| 37 |
+
run_btn.click(fn=run_bioemu, inputs=[seq, num_samples, outdir], outputs=[output_info, output_file])
|
| 38 |
|
| 39 |
demo.launch()
|