Enlace AI
AI-Bind es un proceso de aprendizaje profundo que proporciona predicciones de unión interpretables para proteínas y ligandos nunca antes vistos. AI-Bind es capaz de realizar una detección rápida de grandes bibliotecas químicas y guiar simulaciones de acoplamiento automático computacionalmente costosas al priorizar los pares proteína-ligando para su validación. La tubería requiere como entrada características químicas simples, como la secuencia de aminoácidos de una proteína y el SMILE isomérico de un ligando, lo que ayuda a superar las limitaciones asociadas con la falta de estructuras de proteínas 3D disponibles.
Preimpresión disponible en: https://arxiv.org/abs/2112.13168
¿Por qué AI-Bind?
Deficiencias de los modelos de aprendizaje automático existentes para predecir la unión de proteína-ligando
Nuestro interés en predecir la unión de proteínas y ligandos nunca antes vistos nos impulsó a dividir el rendimiento de las pruebas de los modelos de aprendizaje automático existentes (por ejemplo, DeepPurpose) en tres componentes:
(a) Prueba transductiva: cuando tanto las proteínas como los ligandos del conjunto de datos de prueba están presentes en los datos de entrenamiento,
(b) Prueba semiinductiva: cuando solo los ligandos del conjunto de datos de prueba están presentes en los datos de entrenamiento, y
(c) Prueba inductiva: cuando tanto las proteínas como los ligandos del conjunto de datos de prueba están ausentes en los datos de entrenamiento.
Aprendemos que sólo el rendimiento de las pruebas inductivas es una métrica confiable para evaluar qué tan bien un modelo de aprendizaje automático ha aprendido la unión de las características estructurales de proteínas y ligandos. Observamos que la mayoría de los modelos presentan principalmente el rendimiento de la prueba transductiva, que está relacionado con la predicción de enlaces invisibles en la red de interacción proteína-ligando utilizada en el entrenamiento. Exploramos cómo los modelos ML logran rendimientos transductivos comparables a algoritmos mucho más simples (es decir, modelos de configuración de redes), que ignoran por completo las estructuras moleculares y utilizan la información de grado para realizar predicciones vinculantes.
¿Qué ofrece AI-Bind?
La canalización AI-Bind maximiza el rendimiento de las pruebas inductivas al incluir negativos derivados de la red en los datos de entrenamiento e introducir un entrenamiento previo no supervisado para las incorporaciones moleculares. La canalización se valida mediante tres arquitecturas neuronales diferentes: VecNet, VAENet y modelo siamés. La arquitectura con mejor rendimiento en AI-Bind es VecNet, que utiliza Mol2vec y ProtVec para incorporar proteínas y ligandos, respectivamente. Estas incorporaciones se introducen en un decodificador (perceptrón multicapa), que predice la probabilidad de vinculación.
Interpretabilidad de AI-Bind e identificación de sitios de unión activos
Mutamos ciertos componentes básicos (trigramas de aminoácidos) de la estructura de la proteína para reconocer las regiones que más influyen en las predicciones de unión e identificarlas como sitios de unión potenciales. A continuación, validamos los sitios de unión activa predichos por AI-Bind en la proteína humana TRIM59 visualizando los resultados de las simulaciones de acoplamiento automático y mapeando los sitios predichos en los residuos de aminoácidos donde se unen los ligandos. Los sitios de enlace previstos por AI-Bind pueden guiar a los usuarios en la creación de una cuadrícula óptima para las simulaciones de acoplamiento automático, lo que reduce aún más el tiempo de simulación.
Configuración de AI-Bind y predicción de la unión de proteínas y ligandos (directrices para usuarios finales)
Configuración de hardware para AI-Bind
Entrenamos y probamos todos nuestros modelos a través de un servidor en Google Cloud Platform con una CPU Intel Broadwell y GPU NVIDIA Tesla T4. La versión de Python utilizada en AI-Bind es 3.6.6. La versión CUDA utilizada es 9.0.
Usando ventana acoplable
Utilice esta ventana acoplable para ejecutar AI-Bind: https://hub.docker.com/r/omairs/foodome2
Usando el archivo de requisitos
Todos los módulos de Python y las versiones correspondientes necesarias para AI-Bind se enumeran aquí: requisitos.txt
Utilice pip install -r requisitos.txt para instalar los paquetes relacionados.
Versión de rdkit utilizada en AI-Bind: '2017.09.1' (Para la instalación, consulte la documentación aquí: https://www.rdkit.org/docs/Install.html, comando: conda install -c rdkit rdkit)
Asegúrese de que el cuaderno VecNet-User-Frontend.ipynb y los tres archivos en la carpeta AIBind (AIBind.py, init .py e import_modules.py) estén en la misma carpeta.
Descargue y guarde los archivos de datos en /data. Enlace de descarga: https://zenodo.org/record/7226641
Instalación alternativa usando Docker
- Descargue el archivo acoplable llamado "Predictions.dockerfile".
- En su terminal, vaya al directorio con el dockerfile y ejecute: docker build -t aibindpred -f ./Predictions.dockerfile ./
- Para ejecutar la imagen como contenedor: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 aibindpred Puede clonar el repositorio git dentro del contenedor o adjuntar su volumen local mientras ejecuta el contenedor: docker run -it --gpus todo --name aibindpredcontainer -p 8888:8888 -v ./local_directory:/home aibindpred
- Para ejecutar shells adicionales dentro del contenedor, ejecute: docker exec -it aibindpredcontainer /bin/bash
- Para ejecutar una instancia de Jupyter Notebook dentro del contenedor, ejecute: jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root Los pasos anteriores instalarán todos los paquetes necesarios y crearán el entorno para ejecutar predicciones vinculantes usando AI- Unir.
Ejecución de predicciones desde el frontend
- Organice su archivo de datos en un formato de marco de datos con las columnas 'InChiKey', 'SMILE' y 'target_aa_code'. Guarde este marco de datos en un archivo .csv.
- Ejecute el cuaderno titulado VecNet-User-Frontend.ipynb para realizar las predicciones vinculantes. Las probabilidades vinculantes previstas estarán disponibles en el encabezado de la columna "Predicciones promedio".
Código y datos
Archivos de datos
Todos los archivos de datos están disponibles aquí: https://zenodo.org/record/7226641
- /data/sars-busters-consolidated/Archivos de base de datos: contiene datos de unión de proteína-ligando derivados de DrugBank, BindingDB y DTC (Drug Target Commons).
- /data/sars-busters-consolidated/chemicals: Contiene ligandos utilizados en el entrenamiento y prueba de AI-Bind con incrustaciones.
- /data/sars-busters-consolidated/GitData/DeepPurpose and Configuration Model: datos de prueba de entrenamiento relacionados con la validación cruzada quíntuple de Transformer-CNN (DeepPurpose) y el modelo de configuración dúplex.
- /data/sars-busters-consolidated/GitData/interactions: contiene el conjunto de datos negativos derivados de la red utilizados en el entrenamiento de redes neuronales AI-Bind.
- /data/sars-busters-consolidated/GitData: contiene un modelo VecNet entrenado, predicciones vinculantes sobre proteínas virales y humanas asociadas con COVID-19 y un resumen de los resultados de las simulaciones de acoplamiento automático.
- /data/sars-busters-consolidated/master_files: contiene los pares proteína-ligando absolutamente negativos (no vinculantes) utilizados en las pruebas de AI-Bind.
- /data/sars-busters-consolidated/targets: contiene las proteínas utilizadas en el entrenamiento y las pruebas de AI-Bind con incorporaciones asociadas.
- /data/sars-busters-consolidated/interactions: Contiene los pares proteína-ligando positivos (de unión) derivados de DrugBank, NCFD (Base de datos de compuestos naturales en alimentos), BindingDB y DTC.
- /data/sars-busters-consolidated/Auto Docking: contiene todos los archivos y resultados de la validación de AI-Bind en proteínas humanas y virales relacionadas con COVID-19.
- /data/sars-busters-consolidated/Validación del perfil de probabilidad de unión: contiene los archivos que visualizan los sitios de unión activos a partir de simulaciones de coquización automática.
- /data/sars-busters/Mol2vec: Los modelos Mol2vec y ProtVec previamente entrenados están disponibles aquí.
- /data/sars-busters-consolidated/s4pred: Incluye el código y los archivos para predecir la estructura secundaria de TRIM59.
Código
Aquí describimos los cuadernos Jupyter, los módulos Python y los scripts MATLAB utilizados en AI-Bind.
AIBind
- AIBind.py: contiene la clase Python para AI-Bind. Incluye todas las arquitecturas neuronales: VecNet, VAENet y Siamese Model.
- import_modules.py: contiene todos los módulos de Python necesarios para ejecutar AI-Bind.
Configuración-Modelo-5 veces
- Modelo de configuración: Cross-Validation.ipynb: Calcula el rendimiento de validación cruzada quíntuple del modelo de configuración dúplex en los datos de BindingDB utilizados en DeepPurpose.
- configuración_bipartite.m: Contiene la implementación de MATLAB del modelo de configuración dúplex.
- runscriptposneg.m: ejecuta el modelo de configuración dúplex utilizando las secuencias de grados de los ligandos y las proteínas. Los archivos de salida summat10.csv y summat01.csv se utilizan para calcular el rendimiento del modelo de configuración.
DeepPurpose-5 veces
- Propósito profundo - Conjunto de datos final - Objetivos invisibles.ipynb: Ejecutamos una validación cruzada quíntuple sobre objetivos invisibles (prueba semiinductiva) en DeepPurpose utilizando los negativos derivados de la red.
- Propósito profundo - Conjunto de datos final - Nodos invisibles.ipynb: Ejecutamos una validación cruzada quíntuple sobre nodos invisibles (prueba inductiva) en DeepPurpose utilizando los negativos derivados de la red.
MolTrans
- ejemplo_inductivo_AI_Bind_data.py: ejecutamos pruebas inductivas en MolTrans utilizando muestras negativas derivadas de la red que se utilizan en el entrenamiento de AI-Bind.
- ejemplo_inductivo_BindingDB.py: ejecutamos pruebas inductivas en MolTrans utilizando los datos de BindingDB que se utilizan en el artículo de MolTrans.
- ejemplo_semi_inductivo.py: este script se puede utilizar para ejecutar pruebas semiinductivas en MolTrans.
- ejemplo_transductivo.py: este script se puede utilizar para ejecutar pruebas transductivas en MolTrans.
Modelo de configuración y propósito profundo
- DeepPurpose Rerun - Transformer CNN.ipynb: Entrenamos y probamos DeepPurpose utilizando los datos de referencia de BindingDB. Aquí se han llevado a cabo múltiples experimentos sobre DeepPurpose, que incluyen barajar aleatoriamente las estructuras químicas y análisis de grado del rendimiento de DeepPurpose.
- Modelos de configuración en DeepPurpose data.ipynb: exploramos el rendimiento del modelo de configuración dúplex en el conjunto de datos BindingDB utilizado en DeepPurpose.
Radios propios
- Eigen Spokes Analysis.ipynb: ejecutamos el análisis EigenSpokes aquí en la matriz de adyacencia combinada (matriz de adyacencia cuadrada con ligandos y objetivos tanto en filas como en columnas).
Aparición de atajos
- Without_and_with_constant_fluctuations_p_bind=0.16.ipynb: crea y ejecuta el modelo de configuración en la red unipartita de juguetes según la muestra de proteína en BindingDB. Aquí exploramos dos escenarios relacionados con la asociación entre el grado y la constante de disociación, sin ninguna fluctuación y con fluctuaciones constantes sobre los valores de la constante de disociación.
- With_varying_fluctuations.ipynb: crea y ejecuta el modelo de configuración en la red unipartita de juguetes basada en la muestra de proteína en BindingDB, donde las fluctuaciones sobre los valores constantes de disociación siguen tendencias similares a las de los datos de BindingDB.
Características de ingeniería
- Comprensión de las características de ingeniería.ipynb: exploramos la explicabilidad de las características de ingeniería (características simples que representan el ligando y las moléculas de proteína).
- Funciones de ingeniería de VecNet: dimensiones importantes de Mol2vec y Protvec.ipynb: identifica las dimensiones más importantes en las incorporaciones de Mol2vec y ProtVec, en términos de unión proteína-ligando.
- Funciones de ingeniería de VecNet Funciones originales de Concat.ipynb: explora el rendimiento de VecNet después de concatenar las incorporaciones originales de proteínas y ligandos.
- VecNet Engineered Features.ipynb: reemplaza las incorporaciones de Mol2vec y ProtVec con funciones de ingeniería simples en la arquitectura VecNet y explora su rendimiento.
Identificación-de-sitios-de-unión-activa
- VecNet-Protein-Trigrams-Study-GitHub.ipynb: mutamos los trigramas de aminoácidos en la proteína y observamos las fluctuaciones en las predicciones de VecNet. Este proceso nos ayuda a identificar los posibles sitios de unión activos en la secuencia de aminoácidos.
Pruebas de entrada aleatorias
- VecNet-Unseen_Nodes-RANDOM.ipynb: ejecuta VecNet en nodos invisibles (prueba inductiva) donde el ligando y las incorporaciones de proteínas se reemplazan por entradas aleatorias gaussianas.
- VecNet-Unseen_Nodes-T-RANDOM-Only.ipynb: ejecuta VecNet en nodos invisibles (prueba inductiva) donde las incorporaciones de proteínas se reemplazan por entradas aleatorias gaussianas.
- VecNet-Unseen_Targets-RANDOM.ipynb: ejecuta VecNet en objetivos invisibles (prueba semiinductiva) donde el ligando y las incorporaciones de proteínas se reemplazan por entradas aleatorias gaussianas.
- VecNet-Unseen_Targets-T-RANDOM-Only.ipynb: ejecuta VecNet en objetivos invisibles (prueba semiinductiva) donde las incorporaciones de proteínas se reemplazan por entradas aleatorias gaussianas.
siamés
- Siamese_Unseen_Nodes.ipynb: aquí creamos el conjunto de datos negativos derivados de la red y ejecutamos una validación cruzada quíntuple en nodos invisibles (prueba inductiva).
- Siamese_Unseen_Targets.ipynb: aquí ejecutamos una validación cruzada quíntuple en objetivos invisibles (prueba semiinductiva).
VAENet
- VAENet-Unseen_Nodes.ipynb: aquí creamos los negativos derivados de la red y ejecutamos una validación cruzada quíntuple en nodos invisibles (prueba inductiva).
- VAENet-Unseen_Targets.ipynb: Aquí ejecutamos una validación cruzada quíntuple en objetivos invisibles (prueba semiinductiva).
Validación
- Análisis de predicciones de SARS-CoV-2 VecNet.ipynb: Validación de acoplamiento automático de las 100 predicciones superiores e inferiores realizadas por VecNet sobre las proteínas virales del SARS-CoV-2 y las proteínas humanas asociadas con el COVID-19.
- Binding_Probability_Profile_Golden_Standar_Validation.py: Validación de las ubicaciones de unión derivadas de AI-Bind con datos de unión a proteínas estándar de oro.
Vecnet
- VecNet-Unseen_Nodes.ipynb: Creamos los negativos derivados de la red, ejecutamos una validación cruzada de 5 veces en nodos invisibles (prueba inductiva) y hacemos predicciones sobre las proteínas virales del SARS-CoV-2 y las proteínas humanas asociadas con el COVID-19.
- VecNet-Unseen_Targets.ipynb: Aquí ejecutamos una validación cruzada quíntuple en objetivos invisibles (prueba semiinductiva).
Recursos externos
- Aprenda el acoplamiento automático con Autodock Vina: https://www.youtube.com/watch?v=BLbXkhqbebs
- Aprenda a visualizar sitios de enlace activos usando PyMOL: https://www.youtube.com/watch?v=mBlMI82JRfI
Citar AI-Bind
Si encuentra útil AI-Bind en su investigación, agregue la siguiente cita:
@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}
}