Spaces:
Sleeping
Sleeping
File size: 5,252 Bytes
40cd93f cf729de 40cd93f d4e347d 40cd93f cf729de 40cd93f d4e347d 40cd93f d4e347d 40cd93f cf729de 40cd93f cf729de 40cd93f d4e347d 40cd93f 8b3f260 40cd93f 8b3f260 40cd93f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
# import os
# import gradio as gr
# from gradio_molecule3d import Molecule3D
# import spaces
# import subprocess
# import glob
# # directory to store cached outputs
# CACHE_DIR = "gradio_cached_examples"
# reps = [
# {
# "model": 0,
# "chain": "",
# "resname": "",
# "style": "stick",
# "color": "whiteCarbon",
# "residue_range": "",
# "around": 0,
# "byres": False,
# "visible": False
# }
# ]
# # Ensure the cache directory exists
# os.makedirs(CACHE_DIR, exist_ok=True)
# # Define example files and precomputed outputs
# example_fasta_files = [
# f"cache_examples/boltz_0.fasta",
# f"cache_examples/Armadillo_6.fasta",
# f"cache_examples/Covid_3.fasta",
# f"cache_examples/Malaria_2.fasta",
# f"cache_examples/MITOCHONDRIAL_9.fasta",
# f"cache_examples/Monkeypox_4.fasta",
# f"cache_examples/Plasmodium_1.fasta",
# f"cache_examples/PROTOCADHERIN_8.fasta",
# f"cache_examples/Vault_5.fasta",
# f"cache_examples/Zipper_7.fasta",
# ]
# # matching `.pdb` files in the `CACHE_DIR`
# example_outputs = [
# os.path.join(CACHE_DIR, os.path.basename(fasta_file).replace(".fasta", ".pdb"))
# for fasta_file in example_fasta_files
# ]
# # must load cached outputs
# def load_cached_example_outputs(fasta_file: str) -> str:
# # Find the corresponding `.pdb` file
# pdb_file = os.path.basename(fasta_file).replace(".fasta", ".pdb")
# cached_pdb_path = os.path.join(CACHE_DIR, pdb_file)
# if os.path.exists(cached_pdb_path):
# return cached_pdb_path
# else:
# raise FileNotFoundError(f"Cached output not found for {pdb_file}")
# # handle example click
# def on_example_click(fasta_file: str) -> str:
# return load_cached_example_outputs(fasta_file)
# # run predictions
# @spaces.GPU(duration=120)
# def predict(data,
# accelerator="gpu", sampling_steps=50,
# diffusion_samples=1):
# print("Arguments passed to `predict` function:")
# print(f" data: {data}")
# print(f" accelerator: {accelerator}")
# print(f" sampling_steps: {sampling_steps}")
# print(f" diffusion_samples: {diffusion_samples}")
# # we construct the base command
# command = [
# "boltz", "predict",
# "--out_dir", "./",
# "--accelerator", accelerator,
# "--sampling_steps", str(sampling_steps),
# "--diffusion_samples", str(diffusion_samples),
# "--output_format", "pdb",
# ]
# command.extend(["--checkpoint", "./ckpt/boltz1.ckpt"])
# command.append(data)
# result = subprocess.run(command, capture_output=True, text=True)
# if result.returncode == 0:
# print("Prediction completed successfully...!")
# print(f"Output saved to: {out_dir}")
# else:
# print("Prediction failed :(")
# print("Error:", result.stderr)
# def run_prediction(input_file, accelerator, sampling_steps,
# diffusion_samples):
# data = input_file.name
# print("the data : ", data)
# predict(
# data=data,
# accelerator=accelerator,
# sampling_steps=sampling_steps,
# diffusion_samples=diffusion_samples
# )
# # search for the latest .pdb file in the predictions folder
# out_dir = "./"
# search_path = os.path.join(out_dir, "boltz_results*/predictions/**/*.pdb")
# pdb_files = glob.glob(search_path, recursive=True)
# if not pdb_files:
# print("No .pdb files found in the predictions folder.")
# return None
# # some manual logic
# # get the latest .pdb file based on modification time
# latest_pdb_file = max(pdb_files, key=os.path.getmtime)
# return latest_pdb_file
# with gr.Blocks() as demo:
# gr.Markdown("# 🔬 Boltz-1: Democratizing Biomolecular Interaction Modeling 🧬")
# with gr.Row():
# with gr.Column(scale=1):
# inp = gr.File(label="Upload a .fasta File", file_types=[".fasta"])
# with gr.Accordion("Advanced Settings", open=False):
# accelerator = gr.Radio(choices=["gpu", "cpu"], value="gpu", label="Accelerator")
# sampling_steps = gr.Slider(minimum=1, maximum=500, value=50, step=1, label="Sampling Steps")
# diffusion_samples = gr.Slider(minimum=1, maximum=10, value=1, step=1, label="Diffusion Samples")
# btn = gr.Button("Predict")
# with gr.Column(scale=3):
# out = Molecule3D(label="Generated Molecule", reps=reps)
# btn.click(
# run_prediction,
# inputs=[inp, accelerator, sampling_steps, diffusion_samples],
# outputs=out
# )
# gr.Examples(
# examples=[[fasta_file] for fasta_file in example_fasta_files],
# inputs=[inp],
# outputs=out,
# fn=lambda fasta_file: on_example_click(fasta_file),
# cache_examples=True
# )
# if __name__ == "__main__":
# demo.launch(share=True, debug=True)
import gradio as gr
import spaces
@spaces.GPU()
def greet(name):
return "Hello " + name + "!!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch() |