FuYn666 commited on
Commit
f73af29
·
verified ·
1 Parent(s): 8bbb585

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -5
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
- outdir = "outputs"
 
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
- return f"运行完成!结果保存在 {outdir} 文件夹下。"
 
 
 
 
 
 
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
- output = gr.Textbox(label="输出信息")
 
24
 
25
- run_btn.click(fn=run_bioemu, inputs=[seq, num_samples], outputs=output)
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()