Spaces:
Running
Running
| import streamlit as st | |
| from trainer import Trainer | |
| class DrugGENConfig: | |
| submodel='CrossLoss' | |
| act='relu' | |
| z_dim=16 | |
| max_atom=45 | |
| lambda_gp=1 | |
| dim=128 | |
| depth=1 | |
| heads=8 | |
| dec_depth=1 | |
| dec_heads=8 | |
| dec_dim=128 | |
| mlp_ratio=3 | |
| warm_up_steps=0 | |
| dis_select='mlp' | |
| init_type='normal' | |
| batch_size=128 | |
| epoch=50 | |
| g_lr=0.00001 | |
| d_lr=0.00001 | |
| g2_lr=0.00001 | |
| d2_lr=0.00001 | |
| dropout=0. | |
| dec_dropout=0. | |
| n_critic=1 | |
| beta1=0.9 | |
| beta2=0.999 | |
| resume_iters=None | |
| clipping_value=2 | |
| features=False | |
| test_iters=10_000 | |
| num_test_epoch=30_000 | |
| inference_sample_num=1000 | |
| num_workers=1 | |
| mode="inference" | |
| inference_iterations=100 | |
| inf_batch_size=1 | |
| protein_data_dir='data/akt' | |
| drug_index='data/drug_smiles.index' | |
| drug_data_dir='data/akt' | |
| mol_data_dir='data' | |
| log_dir='experiments/logs' | |
| model_save_dir='experiments/models' | |
| # inference_model="" | |
| sample_dir='experiments/samples' | |
| result_dir="experiments/tboard_output" | |
| dataset_file="chembl45_train.pt" | |
| drug_dataset_file="akt_train.pt" | |
| raw_file='data/chembl_train.smi' | |
| drug_raw_file="data/akt_train.smi" | |
| inf_dataset_file="chembl45_test.pt" | |
| inf_drug_dataset_file='akt_test.pt' | |
| inf_raw_file='data/chembl_test.smi' | |
| inf_drug_raw_file="data/akt_test.smi" | |
| log_sample_step=1000 | |
| set_seed=False | |
| seed=1 | |
| resume=False | |
| resume_epoch=None | |
| resume_iter=None | |
| resume_directory=None | |
| class ProtConfig(DrugGENConfig): | |
| submodel="Prot" | |
| inference_model="experiments/models/Prot" | |
| class CrossLossConfig(DrugGENConfig): | |
| submodel="CrossLoss" | |
| inference_model="experiments/models/CrossLoss" | |
| class NoTargetConfig(DrugGENConfig): | |
| submodel="NoTarget" | |
| inference_model="experiments/models/NoTarget" | |
| model_configs = { | |
| "Prot": ProtConfig(), | |
| "CrossLoss": CrossLossConfig(), | |
| "NoTarget": NoTargetConfig(), | |
| } | |
| with st.sidebar: | |
| st.title("DrugGEN: Target Centric De Novo Design of Drug Candidate Molecules with Graph Generative Deep Adversarial Networks") | |
| st.write("[](https://arxiv.org/abs/2302.07868) [](https://github.com/HUBioDataLab/DrugGEN)") | |
| with st.form("model_selection_from"): | |
| model_name = st.radio( | |
| "Select a model to make inference", | |
| ('Prot', 'CrossLoss', 'NoTarget')) | |
| submitted = st.form_submit_button("Start Computing") | |
| if submitted: | |
| with st.spinner(f'Creating the trainer class instance for {model_name}...'): | |
| trainer = Trainer(model_configs[model_name]) | |
| with st.spinner(f'Running inference function of {model_name} (this may take a while) ...'): | |
| trainer.inference() | |
| st.success(f"Success with the inference of {model_name}") | |
| with open(f'experiments/inference/{model_name}/inference_drugs.txt') as f: | |
| inference_drugs = f.read() | |
| st.download_button(label="Click to download generated molecules", data=inference_drugs, file_name=f'{model_name}_inference.smi', mime="text/plain") | |
| else: | |
| st.warning("Please select a model to make inference") | |