Spaces:
Sleeping
Sleeping
| from pathlib import Path | |
| import gradio as gr | |
| # Use this in a notebook | |
| root = Path.cwd() | |
| drug_encoder_list = [f.stem for f in root.parent.joinpath("configs/model/drug_encoder").iterdir() if f.suffix == ".yaml"] | |
| drug_featurizer_list = [f.stem for f in root.parent.joinpath("configs/model/drug_featurizer").iterdir() if f.suffix == ".yaml"] | |
| protein_encoder_list = [f.stem for f in root.parent.joinpath("configs/model/protein_encoder").iterdir() if f.suffix == ".yaml"] | |
| protein_featurizer_list = [f.stem for f in root.parent.joinpath("configs/model/protein_featurizer").iterdir() if f.suffix == ".yaml"] | |
| classifier_list = [f.stem for f in root.parent.joinpath("configs/model/classifier").iterdir() if f.suffix == ".yaml"] | |
| preset_list = [f.stem for f in root.parent.joinpath("configs/model/preset").iterdir() if f.suffix == ".yaml"] | |
| from typing import Optional | |
| def drug_target_interaction( | |
| binary: bool, | |
| drug_encoder, | |
| drug_featurizer, | |
| protein_encoder, | |
| protein_featurizer, | |
| classifier, | |
| preset,) -> Optional[float]: | |
| return 1 | |
| def drug_encoder( | |
| binary: bool, | |
| drug_encoder, | |
| drug_featurizer, | |
| protein_encoder, | |
| protein_featurizer, | |
| classifier, | |
| preset,): | |
| return | |
| def protein_encoder( | |
| binary: bool, | |
| drug_encoder, | |
| drug_featurizer, | |
| protein_encoder, | |
| protein_featurizer, | |
| classifier, | |
| preset,): | |
| return | |
| # demo = gr.Interface( | |
| # fn=drug_target_interaction, | |
| # inputs=[ | |
| # gr.Radio(["True", "False"]), | |
| # gr.Dropdown(drug_encoder_list), | |
| # gr.Dropdown(drug_featurizer_list), | |
| # gr.Dropdown(protein_encoder_list), | |
| # gr.Dropdown(protein_featurizer_list), | |
| # gr.Dropdown(classifier_list), | |
| # gr.Dropdown(preset_list), | |
| # ], | |
| # outputs=["number"], | |
| # show_error=True, | |
| # | |
| # ) | |
| # | |
| # demo.launch() | |
| from omegaconf import DictConfig, OmegaConf | |
| type_to_component_map = {list: gr.Text, int: gr.Number, float: gr.Number} | |
| def get_config_choices(config_path: str): | |
| return [f.stem for f in Path("../../configs/", config_path).iterdir() if f.suffix == ".yaml"] | |
| def create_blocks_from_config(cfg: DictConfig): | |
| with gr.Blocks() as blocks: | |
| for key, value in cfg.items(): | |
| if type(value) in [int, float]: | |
| component = gr.Number(value=value, label=key, interactive=True) | |
| if type(value) in [dict, DictConfig]: | |
| with gr.Tab(label=key): | |
| component = create_blocks_from_config(value) | |
| else: | |
| component = gr.Text(value=value, label=key, interactive=True) | |
| return blocks | |
| def create_interface_from_config(fn: callable, cfg: DictConfig): | |
| inputs = [] | |
| for key, value in OmegaConf.to_object(cfg).items(): | |
| component = type_to_component_map.get(type(value), gr.Text) | |
| inputs.append(component(value=value, label=key, interactive=True)) | |
| interface = gr.Interface(fn=fn, inputs=inputs, outputs="label") | |
| return interface | |
| import hydra | |
| with hydra.initialize(version_base=None, config_path="../../configs/"): | |
| cfg = hydra.compose("train") |