![Logotipo](https://images.downcodes.com/uploads/20241127/img_67460d554ac6b30.png)
Ligação AI
AI-Bind é um pipeline de aprendizado profundo que fornece previsões de ligação interpretáveis para proteínas e ligantes nunca antes vistos. O AI-Bind é capaz de rastrear rapidamente grandes bibliotecas químicas e orientar simulações de auto-docking computacionalmente caras, priorizando pares proteína-ligante para validação. O pipeline requer como entrada recursos químicos simples, como a sequência de aminoácidos de uma proteína e o SMILE isomérico de um ligante, o que ajuda a superar as limitações associadas à falta de estruturas proteicas 3D disponíveis.
Pré-impressão disponível em: https://arxiv.org/abs/2112.13168
Por que AI-Bind?
Deficiências dos modelos de ML existentes na previsão da ligação proteína-ligante
Nosso interesse em prever a ligação de proteínas e ligantes nunca antes vistos nos levou a dividir os desempenhos de teste dos modelos de aprendizado de máquina existentes (por exemplo, DeepPurpose) em três componentes:
(a) Teste transdutivo: quando proteínas e ligantes do conjunto de dados de teste estão presentes nos dados de treinamento,
(b) Teste semi-indutivo: quando apenas os ligantes do conjunto de dados de teste estão presentes nos dados de treinamento, e
(c) Teste indutivo: quando proteínas e ligantes do conjunto de dados de teste estão ausentes nos dados de treinamento.
Aprendemos que apenas o desempenho do teste indutivo é uma métrica confiável para avaliar quão bem um modelo de aprendizado de máquina aprendeu a ligação com as características estruturais de proteínas e ligantes. Notamos que a maioria dos modelos apresenta principalmente desempenho de teste transdutivo, que está relacionado à previsão de ligações invisíveis na rede de interação proteína-ligante utilizada no treinamento. Exploramos como os modelos de ML alcançam desempenhos transdutivos comparáveis a algoritmos muito mais simples (ou seja, modelos de configuração de rede), que ignoram completamente as estruturas moleculares e usam as informações de grau para fazer previsões de ligação.
O que o AI-Bind oferece?
O pipeline AI-Bind maximiza o desempenho do teste indutivo, incluindo negativos derivados da rede nos dados de treinamento e introduzindo pré-treinamento não supervisionado para incorporações moleculares. O pipeline é validado por meio de três arquiteturas neurais diferentes: VecNet, VAENet e modelo Siamês. A arquitetura de melhor desempenho no AI-Bind é a VecNet, que usa Mol2vec e ProtVec para incorporar proteínas e ligantes, respectivamente. Essas incorporações são alimentadas em um decodificador (Multi-layer Perceptron), prevendo a probabilidade de ligação. ![VecNet](https://images.downcodes.com/uploads/20241127/img_67460d554d7a231.png)
Interpretabilidade do AI-Bind e identificação de sites de ligação ativa
Nós mutamos certos blocos de construção (trigramas de aminoácidos) da estrutura da proteína para reconhecer as regiões que mais influenciam as previsões de ligação e identificá-las como os potenciais locais de ligação. Abaixo, validamos os locais de ligação ativa previstos pelo AI-Bind na proteína humana TRIM59, visualizando os resultados das simulações de auto-docking e mapeando os locais previstos para os resíduos de aminoácidos onde os ligantes se ligam. Os locais de ligação previstos pelo AI-Bind podem orientar os usuários na criação de uma grade ideal para as simulações de acoplamento automático, reduzindo ainda mais o tempo de simulação.
![estudo de trigrama](https://images.downcodes.com/uploads/20241127/img_67460d554e3af32.png)
Configurando o AI-Bind e prevendo a ligação proteína-ligante (diretrizes para usuários finais)
Configuração de hardware para AI-Bind
Treinamos e testamos todos os nossos modelos por meio de um servidor no Google Cloud Platform com CPU Intel Broadwell e GPU(s) NVIDIA Tesla T4. A versão Python usada no AI-Bind é 3.6.6. A versão CUDA usada é 9.0.
Usando Docker
Use esta janela de encaixe para executar o AI-Bind: https://hub.docker.com/r/omairs/foodome2
Usando arquivo de requisitos
Todos os módulos Python e versões correspondentes necessárias para AI-Bind estão listados aqui: requisitos.txt
Use pip install -r requisitos.txt para instalar os pacotes relacionados.
Versão do rdkit usada no AI-Bind: '2017.09.1' (Para instalação, verifique a documentação aqui: https://www.rdkit.org/docs/Install.html, comando: conda install -c rdkit rdkit)
Certifique-se de que o notebook VecNet-User-Frontend.ipynb e os três arquivos na pasta AIBind (AIBind.py, init .py e import_modules.py) estejam na mesma pasta.
Baixe e salve os arquivos de dados em /data. Link para download: https://zenodo.org/record/7226641
Instalação alternativa usando Docker
- Baixe o arquivo docker denominado "Predictions.dockerfile".
- Em seu terminal, vá para o diretório com o dockerfile e execute: docker build -t aibindpred -f ./Predictions.dockerfile ./
- Para executar a imagem como um contêiner: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 aibindpred Você pode clonar o repositório git dentro do contêiner ou anexar seu volume local enquanto executa o contêiner: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 -v ./local_directory:/home aibindpred
- Para executar shells adicionais dentro do contêiner, execute: docker exec -it aibindpredcontainer /bin/bash
- Para executar uma instância de notebook Jupyter dentro do contêiner, execute: jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root As etapas acima instalarão todos os pacotes necessários e criarão o ambiente para executar previsões de ligação usando AI- Vincular.
Executando previsões do frontend
- Organize seu arquivo de dados em formato dataframe com as colunas 'InChiKey', 'SMILE' e 'target_aa_code'. Salve este dataframe em um arquivo .csv.
- Execute o notebook intitulado VecNet-User-Frontend.ipynb para fazer as previsões de ligação. As probabilidades de ligação previstas estarão disponíveis no cabeçalho da coluna 'Previsões Médias'.
Código e dados
Arquivos de dados
Todos os arquivos de dados estão disponíveis aqui: https://zenodo.org/record/7226641
- /data/sars-busters-consolidated/Arquivos de banco de dados: Contém dados de ligação de proteína-ligante derivados de DrugBank, BindingDB e DTC (Drug Target Commons).
- /data/sars-busters-consolidated/chemicals: Contém ligantes usados no treinamento e teste do AI-Bind com embeddings.
- /data/sars-busters-consolidated/GitData/DeepPurpose e modelo de configuração: dados de teste de treinamento relacionados à validação cruzada 5 vezes do Transformer-CNN (DeepPurpose) e do modelo de configuração Duplex.
- /data/sars-busters-consolidated/GitData/interactions: Contém o conjunto de dados negativos derivados da rede usado no treinamento de redes neurais AI-Bind.
- /data/sars-busters-consolidated/GitData: Contém modelo VecNet treinado, previsões vinculativas sobre proteínas virais e humanas associadas ao COVID-19 e um resumo dos resultados das simulações de acoplamento automático.
- /data/sars-busters-consolidated/master_files: Contém os pares proteína-ligante absolutamente negativos (sem ligação) usados no teste do AI-Bind.
- /data/sars-busters-consolidated/targets: Contém as proteínas usadas no treinamento e teste do AI-Bind com incorporações associadas.
- /data/sars-busters-consolidated/interactions: Contém os pares proteína-ligante positivos (de ligação) derivados de DrugBank, NCFD (Natural Compounds in Food Database), BindingDB e DTC.
- /data/sars-busters-consolidated/Auto Docking: Contém todos os arquivos e resultados da validação do AI-Bind em proteínas virais e humanas relacionadas ao COVID-19.
- /data/sars-busters-consolidated/Validação do perfil de probabilidade de ligação: Contém os arquivos que visualizam os locais de ligação ativos a partir de simulações de auto-dcoking.
- /data/sars-busters/Mol2vec: Modelos Mol2vec e ProtVec pré-treinados estão disponíveis aqui.
- /data/sars-busters-consolidated/s4pred: Inclui o código e arquivos para prever a estrutura secundária do TRIM59.
Código
Aqui descrevemos os Jupyter Notebooks, módulos Python e scripts MATLAB usados no AI-Bind.
AIBind
- AIBind.py: Contém a classe Python para AI-Bind. Inclui todas as arquiteturas neurais: VecNet, VAENet e Siamese Model.
- import_modules.py: Contém todos os módulos Python necessários para executar o AI-Bind.
Modelo de configuração 5 vezes
- Modelo de configuração - Cross-Validation.ipynb: calcula o desempenho de validação cruzada 5 vezes maior do modelo de configuração duplex em dados BindingDB usados no DeepPurpose.
- configuration_bipartite.m: Contém a implementação MATLAB do modelo de configuração duplex.
- runscriptposneg.m: Executa o modelo de configuração duplex usando as sequências de grau dos ligantes e das proteínas. Os arquivos de saída summat10.csv e summat01.csv são usados no cálculo do desempenho do modelo de configuração.
DeepPurpose-5 vezes
- Deep Purpose - Final DataSet - Unseen Targets.ipynb: Executamos uma validação cruzada de 5 vezes sobre alvos invisíveis (teste semi-indutivo) no DeepPurpose usando os negativos derivados da rede.
- Deep Purpose - Final DataSet - Unseen Nodes.ipynb: Executamos uma validação cruzada de 5 vezes sobre nós invisíveis (teste indutivo) no DeepPurpose usando os negativos derivados da rede.
MolTrans
- exemplo_indutivo_AI_Bind_data.py: Executamos testes indutivos no MolTrans usando amostras negativas derivadas da rede que são usadas no treinamento do AI-Bind.
- exemplo_indutivo_BindingDB.py: Executamos testes indutivos no MolTrans usando os dados do BindingDB que são usados no artigo MolTrans.
- exemplo_semi_indutivo.py: Este script pode ser usado para executar testes semi-indutivos no MolTrans.
- example_transduce.py: Este script pode ser usado para executar testes transdutivos no MolTrans.
Modelo DeepPurpose e Configuração
- DeepPurpose Rerun - Transformer CNN.ipynb: Treinamos e testamos o DeepPurpose usando os dados de benchmark BindingDB. Vários experimentos no DeepPurpose foram realizados aqui, o que inclui embaralhar aleatoriamente as estruturas químicas e analisar o grau de desempenho do DeepPurpose.
- Modelos de configuração no DeepPurpose data.ipynb: exploramos o desempenho do modelo de configuração Duplex no conjunto de dados BindingDB usado no DeepPurpose.
EigenSpokes
- Eigen Spokes Analysis.ipynb - Executamos a análise EigenSpokes aqui na matriz de adjacência combinada (matriz de adjacência quadrada com ligantes e alvos em linhas e colunas).
Surgimento de atalhos
- Without_and_with_constant_fluctuations_p_bind=0.16.ipynb: Cria e executa o modelo de configuração na rede unipartite de brinquedo com base na amostra de proteína em BindingDB. Aqui exploramos dois cenários relacionados à associação entre grau e constante de dissociação - sem qualquer flutuação e flutuações constantes sobre os valores da constante de dissociação.
- With_varying_fluctuations.ipynb: Cria e executa o modelo de configuração na rede unipartite de brinquedo com base na amostra de proteína no BindingDB, onde as flutuações sobre os valores constantes de dissociação seguem tendências semelhantes às dos dados do BindingDB.
Recursos de engenharia
- Compreendendo os recursos de engenharia.ipynb: Exploramos a explicabilidade dos recursos de engenharia (recursos simples que representam as moléculas de ligante e proteína.
- Recursos de engenharia do VecNet - Mol2vec e Protvec Important Dimensions.ipynb: Identifica as dimensões mais importantes nos embeddings Mol2vec e ProtVec, em termos de ligação proteína-ligante.
- VecNet Engineered Features Concat Original Features.ipynb: Explora o desempenho do VecNet após concatenar a proteína original e os embeddings de ligantes.
- VecNet Engineered Features.ipynb: Substitui os embeddings Mol2vec e ProtVec por recursos de engenharia simples na arquitetura VecNet e explora seu desempenho.
Identificando sites de ligação ativa
- VecNet-Protein-Trigrams-Study-GitHub.ipynb: Mudamos os trigramas de aminoácidos na proteína e observamos as flutuações nas previsões do VecNet. Este processo nos ajuda a identificar os potenciais locais de ligação ativa na sequência de aminoácidos.
Testes de entrada aleatória
- VecNet-Unseen_Nodes-RANDOM.ipynb: Executa VecNet em nós invisíveis (teste indutivo) onde o ligante e os embeddings de proteínas são substituídos por entradas aleatórias gaussianas.
- VecNet-Unseen_Nodes-T-RANDOM-Only.ipynb: Executa VecNet em nós invisíveis (teste indutivo) onde os embeddings de proteínas são substituídos por entradas aleatórias gaussianas.
- VecNet-Unseen_Targets-RANDOM.ipynb: Executa VecNet em alvos invisíveis (teste semi-indutivo) onde o ligante e os embeddings de proteínas são substituídos por entradas aleatórias gaussianas.
- VecNet-Unseen_Targets-T-RANDOM-Only.ipynb: Executa VecNet em alvos invisíveis (teste semi-indutivo) onde os embeddings de proteínas são substituídos por entradas aleatórias gaussianas.
Siamês
- Siamese_Unseen_Nodes.ipynb: Criamos o conjunto de dados negativos derivados da rede e executamos uma validação cruzada de 5 vezes em nós invisíveis (teste indutivo) aqui.
- Siamese_Unseen_Targets.ipynb: Executamos uma validação cruzada de 5 vezes em alvos não vistos (teste semi-indutivo) aqui.
VAENet
- VAENet-Unseen_Nodes.ipynb: Criamos os negativos derivados da rede e executamos uma validação cruzada de 5 vezes em nós invisíveis (teste indutivo) aqui.
- VAENet-Unseen_Targets.ipynb: Executamos uma validação cruzada de 5 vezes em alvos não vistos (teste semi-indutivo) aqui.
Validação
- Análise de previsões de SARS-CoV-2 VecNet.ipynb: Validação de acoplamento automático das 100 melhores e mais baixas previsões feitas pela VecNet sobre proteínas virais de SARS-CoV-2 e proteínas humanas associadas ao COVID-19.
- Binding_Probability_Profile_Golden_Standar_Validation.py: Validação dos locais de ligação derivados do AI-Bind com dados de ligação de proteínas padrão ouro.
VecNet
- VecNet-Unseen_Nodes.ipynb: Criamos os negativos derivados da rede, executamos uma validação cruzada de 5 vezes em nós invisíveis (teste indutivo) e fazemos previsões sobre proteínas virais SARS-CoV-2 e proteínas humanas associadas ao COVID-19.
- VecNet-Unseen_Targets.ipynb: Executamos uma validação cruzada de 5 vezes em alvos não vistos (teste semi-indutivo) aqui.
Recursos Externos
- Aprenda o encaixe automático usando o Autodock Vina: https://www.youtube.com/watch?v=BLbXkhqbebs
- Aprenda a visualizar sites de ligação ativos usando PyMOL: https://www.youtube.com/watch?v=mBlMI82JRfI
Citar AI-Bind
Se você achar o AI-Bind útil em sua pesquisa, adicione a seguinte citação:
@article{Chatterjee2023,
doi = {10.1038/s41467-023-37572-z},
url = {https://doi.org/10.1038/s41467-023-37572-z},
year = {2023},
month = apr,
publisher = {Springer Science and Business Media {LLC}},
volume = {14},
number = {1},
author = {Ayan Chatterjee and Robin Walters and Zohair Shafi and Omair Shafi Ahmed and Michael Sebek and Deisy Gysi and Rose Yu and Tina Eliassi-Rad and Albert-L{'{a}}szl{'{o}} Barab{'{a}}si and Giulia Menichetti},
title = {Improving the generalizability of protein-ligand binding predictions with {AI}-Bind},
journal = {Nature Communications}
}