Este repositório é a implementação oficial do DRughive , um profundo autoencoder variacional hierárquico desenvolvido para o design de medicamentos baseado em estrutura. Papel jcim.


O código foi testado no ambiente a seguir:
| Software | Versão |
|---|---|
| Python | 3.9.16 |
| CUDA | 11.6 |
| OpenBabel | 3.1.1 |
| Pytorch | 1.12.1 |
| Pytorch Lightning | 2.0.0 |
| Rdkit | 2021.09.5 |
Instale dependências usando os requisitos listados nos requirements.txt :
conda create -n drughive -c conda-forge -c pytorch -c nvidia -c rdkit --file requirements.txtgit clone https://github.com/jssweller/DrugHIVEOs pesos do modelo pré-treinado podem ser baixados de Zenodo:
wget -P model_checkpoints/ https://zenodo.org/records/12668687/files/drughive_model_ch9.ckpt Para amostrar do DRughive, primeiro ajuste os parâmetros no arquivo de configuração de exemplo generate.yml . Em seguida, execute o seguinte comando:
python generate_molecules.py config/generate.yml Para amostrar do anterior, defina zbetas: 1. No arquivo de configuração.
Para amostrar do posterior, defina zbetas: 0. No arquivo de configuração.
Para amostrar entre o anterior e o posterior, defina os valores de zbetas entre 0. E 1. .
Para gerar moléculas com modificação da subestrutura, primeiro ajuste os parâmetros no arquivo de configuração de exemplo generate_spatial.yml . Em seguida, execute o seguinte comando:
python generate_molecules.py config/generate_spatial.ymlAntes de executar o processo de otimização, a ferramenta de encaixe do Quickvina 2 deve ser instalada:
qvina2.1 em DrugHIVE/ ou em um diretório listado na sua variável PATH (por exemplo, /usr/bin/ ) Para otimizar as moléculas com o DRughive, primeiro ajuste os parâmetros no arquivo de configuração de exemplo generate_optimize.yml . Em seguida, execute o seguinte comando:
python generate_optimize.py config/generate_optimize.ymlFaça o download e extraia o conjunto de dados refinado do PDBBind em http://www.pdbind.org.cn/
Faça o download de moléculas de zinco de https://zinc20.docking.org/ no formato SDF ou Mol2. Coloque -os em um único diretório.
Para processar o conjunto de dados PDBBind, execute:
python process_pdbbind_data.py < path/to/PDBbind/directory >Para processar o conjunto de dados de zinco, execute:
python process_zinc_data.py < path/to/ZINC/directory > -o data/zinc_data/zinc_data.h5 -ext < file_extension > Aqui, <file_extension> pode ser um de sdf ou mol2 .
Primeiro, ajuste os parâmetros de treinamento no arquivo de configuração de exemplo config/train.yml . Certifique -se de definir data_path_pdb e data_path_zinc para os locais dos seus conjuntos de dados. Em seguida, execute o seguinte comando:
python train.py config/train.yml