silterra's picture
Add ability to upload a YAML file with other arguments (all passed to inference.py).
0303515
raw
history blame
1.92 kB
import logging
import os.path
import gradio as gr
import run_utils
def run_wrapper(protein_file, ligand_file, other_args_file, *args, **kwargs) -> str:
if other_args_file is not None:
kwargs["other_arg_file"] = other_args_file.name
return run_utils.run_cli_command(
protein_file.name, ligand_file.name, *args, **kwargs
)
def run():
iface = gr.Interface(
fn=run_wrapper,
inputs=[
gr.File(label="Protein PDB", file_types=[".pdb"]),
gr.File(label="Ligand SDF", file_types=[".sdf"]),
gr.File(label="Other arguments (Optional, YML)", file_types=[".yml", ".yaml"], value=None),
gr.Number(
label="Samples Per Complex",
value=1,
minimum=1,
maximum=100,
precision=0,
),
gr.Checkbox(label="Keep Local Structures", value=True),
gr.Checkbox(label="Save Visualisation", value=True),
],
outputs=gr.File(label="Result"),
title="DiffDock-Pocket",
description="""
Run [DiffDock-Pocket](https://github.com/plainerman/DiffDock-Pocket) for a single protein and ligand.
We have provided the most important inputs as UI elements.
Additional values can be included in "Other arguments", and will be passed
to [inference.py](https://github.com/plainerman/DiffDock-Pocket/blob/main/inference.py).
Must be a YAML file without any nesting.
For example, to specify a pocket of (0.0, 1.0, 2.0), the YAML file should contain:
```
pocket_center_x: 0.0
pocket_center_y: 1.0
pocket_center_z: 2.0
```
"""
)
iface.launch(server_name="0.0.0.0", server_port=7860, share=False)
if __name__ == "__main__":
run_utils.set_env_variables()
run_utils.configure_logging()
run()