AI-Bind
AI-Bind — это конвейер глубокого обучения, который обеспечивает интерпретируемые прогнозы связывания ранее не встречавшихся белков и лигандов. AI-Bind способен быстро проверять большие химические библиотеки и управлять дорогостоящим в вычислительном отношении моделированием автоматической стыковки, отдавая приоритет парам белок-лиганд для проверки. Конвейер требует в качестве входных данных простых химических характеристик, таких как аминокислотная последовательность белка и изомерный SMILE лиганда, что помогает преодолеть ограничения, связанные с отсутствием доступных трехмерных белковых структур.
Препринт доступен по адресу: https://arxiv.org/abs/2112.13168.
Почему AI-Bind?
Недостатки существующих моделей ML в прогнозировании связывания белок-лиганд
Наш интерес к предсказанию связывания ранее не встречавшихся белков и лигандов подтолкнул нас к разделению тестовых характеристик существующих моделей машинного обучения (например, DeepPurpose) на три компонента:
(а) Трансдуктивный тест: когда в обучающих данных присутствуют и белки, и лиганды из набора тестовых данных,
(б) Полуиндуктивный тест: когда в обучающих данных присутствуют только лиганды из набора тестовых данных, и
(c) Индуктивный тест: когда в обучающих данных отсутствуют белки и лиганды из набора тестовых данных.
Мы узнаем, что только производительность индуктивного теста является надежным показателем для оценки того, насколько хорошо модель машинного обучения усвоила связывание, исходя из структурных особенностей белков и лигандов. Мы отмечаем, что большинство моделей в основном демонстрируют эффективность трансдуктивного теста, который связан с предсказанием невидимых связей в сети взаимодействия белок-лиганд, используемой при обучении. Мы исследуем, как модели ML достигают трансдуктивных характеристик, сравнимых с гораздо более простыми алгоритмами (а именно, моделями конфигурации сети), которые полностью игнорируют молекулярные структуры и используют информацию о степени для прогнозирования связывания.
Что предлагает AI-Bind?
Конвейер AI-Bind максимизирует производительность индуктивного теста за счет включения в обучающие данные отрицательных значений, полученных из сети, и введения неконтролируемого предварительного обучения для молекулярных встраиваний. Конвейер проверяется с помощью трех различных нейронных архитектур: VecNet, VAENet и сиамской модели. Наиболее эффективной архитектурой в AI-Bind является VecNet, которая использует Mol2vec и ProtVec для внедрения белков и лигандов соответственно. Эти внедрения передаются в декодер (многослойный персептрон), прогнозирующий вероятность связывания.
Интерпретируемость AI-Bind и идентификация активных сайтов связывания
Мы мутируем определенные строительные блоки (триграммы аминокислот) структуры белка, чтобы распознать области, наиболее влияющие на прогнозы связывания, и идентифицировать их как потенциальные сайты связывания. Ниже мы проверяем предсказанные AI-Bind активные сайты связывания на человеческом белке TRIM59, визуализируя результаты моделирования автостыковки и сопоставляя предсказанные сайты с аминокислотными остатками, с которыми связываются лиганды. Прогнозируемые места привязки AI-Bind могут помочь пользователям создать оптимальную сетку для моделирования автоматической стыковки, что еще больше сокращает время моделирования.
Настройка AI-Bind и прогнозирование связывания белок-лиганд (руководство для конечных пользователей)
Настройка оборудования для AI-Bind
Мы обучали и тестировали все наши модели через сервер на облачной платформе Google с процессором Intel Broadwell и графическими процессорами NVIDIA Tesla T4. Версия Python, используемая в AI-Bind, — 3.6.6. Используемая версия CUDA — 9.0.
Использование Докера
Используйте этот докер для запуска AI-Bind: https://hub.docker.com/r/omairs/foodome2.
Использование файла требований
Все модули Python и соответствующие версии, необходимые для AI-Bind, перечислены здесь: require.txt.
Используйте pip install -r require.txt для установки связанных пакетов.
Версия rdkit, используемая в AI-Bind: «2017.09.1» (для установки ознакомьтесь с документацией здесь: https://www.rdkit.org/docs/Install.html, команда: conda install -c rdkit rdkit)
Убедитесь, что записная книжка VecNet-User-Frontend.ipynb и три файла в папке AIBind (AIBind.py, init.py и import_modules.py) находятся в одной папке.
Загрузите и сохраните файлы данных в папке /data. Ссылка для скачивания: https://zenodo.org/record/7226641
Альтернативная установка с использованием Docker
- Загрузите файл Docker с именем «Predictions.dockerfile».
- На своем терминале перейдите в каталог с файлом docker и запустите: docker build -t aibindpred -f ./Predictions.dockerfile ./
- Чтобы запустить образ как контейнер: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 aibindpred Вы можете клонировать репозиторий git внутри контейнера или подключить локальный том во время запуска контейнера: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 -v ./local_directory:/home Айбиндпред
- Чтобы выполнить дополнительные оболочки внутри контейнера, выполните: docker exec -it aibindpredcontainer /bin/bash.
- Чтобы запустить экземпляр блокнота Jupyter внутри контейнера, выполните: jupyter Notebook --ip=0.0.0.0 --port=8888 --allow-root. Вышеуказанные шаги установят все необходимые пакеты и создадут среду для запуска прогнозов привязки с использованием AI- Связывать.
Запуск прогнозов из внешнего интерфейса
- Организуйте свой файл данных в формате фрейма данных с помощью столбцов «InChiKey», «SMILE» и «target_aa_code». Сохраните этот фрейм данных в файле .csv.
- Запустите блокнот под названием VecNet-User-Frontend.ipynb, чтобы сделать прогнозы привязки. Прогнозируемые вероятности связывания будут доступны в заголовке столбца «Усредненные прогнозы».
Код и данные
Файлы данных
Все файлы данных доступны здесь: https://zenodo.org/record/7226641.
- /data/sars-busters-consolidated/Файлы базы данных: содержат данные о связывании белков с лигандами, полученные из DrugBank, BindingDB и DTC (Drug Target Commons).
- /data/sars-busters-consolidated/chemicals: содержит лиганды, используемые при обучении и тестировании AI-Bind с встраиваниями.
- /data/sars-busters-consolidated/GitData/DeepPurpose и модель конфигурации: данные тестирования поезда, относящиеся к 5-кратной перекрестной проверке Transformer-CNN (DeepPurpose) и модели дуплексной конфигурации.
- /data/sars-busters-consolidated/GitData/interactions: содержит полученный из сети набор отрицательных данных, используемый при обучении нейронных сетей AI-Bind.
- /data/sars-busters-consolidated/GitData: содержит обученную модель VecNet, прогнозы связывания вирусных и человеческих белков, связанных с COVID-19, а также сводку результатов моделирования автоматической стыковки.
- /data/sars-busters-consolidated/master_files: содержит абсолютно отрицательные (несвязывающие) пары белок-лиганд, использованные при тестировании AI-Bind.
- /data/sars-busters-consolidated/targets: содержит белки, используемые при обучении и тестировании AI-Bind с соответствующими встраиваниями.
- /data/sars-busters-consolidated/interactions: содержит положительные (связывающие) пары белок-лиганд, полученные из DrugBank, NCFD (база данных натуральных соединений в пищевых продуктах), BindingDB и DTC.
- /data/sars-busters-consolidated/Auto Docking: Содержит все файлы и результаты проверки AI-Bind на вирусных и человеческих белках, связанных с COVID-19.
- /data/sars-busters-consolidated/Проверка профиля вероятности связывания: содержит файлы, визуализирующие активные сайты связывания из моделирования автоматического коксования.
- /data/sars-busters/Mol2vec: здесь доступны предварительно обученные модели Mol2vec и ProtVec.
- /data/sars-busters-consolidated/s4pred: включает код и файлы для прогнозирования вторичной структуры TRIM59.
Код
Здесь мы описываем блокноты Jupyter, модули Python и сценарии MATLAB, используемые в AI-Bind.
АИБинд
- AIBind.py: содержит класс Python для AI-Bind. Включает все нейронные архитектуры: VecNet, VAENet и Siamese Model.
- import_modules.py: содержит все необходимые модули Python для запуска AI-Bind.
Конфигурация-Модель-5-кратная
- Модель конфигурации — Cross-Validation.ipynb: вычисляет 5-кратную производительность перекрестной проверки модели конфигурации дуплекса для данных BindingDB, используемых в DeepPurpose.
- Configuration_bipartite.m: Содержит реализацию MATLAB модели дуплексной конфигурации.
- runscriptposneg.m: запускает модель конфигурации дуплекса, используя последовательность степеней лигандов и белков. Выходные файлы summat10.csv и summat01.csv используются при расчете производительности модели конфигурации.
DeepPurpose-5-кратный
- Deep Purpose — окончательный набор данных — невидимые цели.ipynb: мы выполняем 5-кратную перекрестную проверку невидимых целей (полуиндуктивный тест) в DeepPurpose, используя негативы, полученные из сети.
- Deep Purpose — Final DataSet — Unseen Nodes.ipynb: мы выполняем 5-кратную перекрестную проверку невидимых узлов (индуктивный тест) в DeepPurpose, используя отрицательные значения, полученные из сети.
МолТранс
- example_inductive_AI_Bind_data.py: Мы проводим индуктивный тест на MolTrans, используя полученные из сети отрицательные образцы, которые используются при обучении AI-Bind.
- example_inductive_BindingDB.py: Мы проводим индуктивный тест на MolTrans, используя данные BindingDB, которые используются в документе MolTrans.
- example_semi_inductive.py: Этот скрипт можно использовать для запуска полуиндуктивных тестов на MolTrans.
- example_transductive.py: Этот скрипт можно использовать для запуска трансдуктивных тестов на MolTrans.
Модель глубокой цели и конфигурации
- Повторный запуск DeepPurpose — Transformer CNN.ipynb: мы обучаем DeepPurpose, используя эталонные данные BindingDB. Здесь было проведено множество экспериментов с DeepPurpose, которые включают в себя случайное перетасовывание химических структур и анализ степени производительности DeepPurpose.
- Модели конфигурации в DeepPurpose data.ipynb: мы исследуем производительность дуплексной модели конфигурации в наборе данных BindingDB, используемом в DeepPurpose.
ЭйгенСпицы
- Eigen Spokes Analysis.ipynb — здесь мы запускаем анализ EigenSpokes на комбинированной матрице смежности (квадратная матрица смежности с лигандами и мишенями как в строках, так и в столбцах).
Появление ярлыков
- Without_and_with_constant_fluctuations_p_bind=0.16.ipynb: Создает и запускает модель конфигурации в игрушечной одночастной сети на основе образца белка в BindingDB. Здесь мы исследуем два сценария, связанных с связью между степенью и константой диссоциации - без каких-либо колебаний и постоянных колебаний значений константы диссоциации.
- With_varying_fluctuations.ipynb: Создает и запускает модель конфигурации в игрушечной одночастной сети на основе образца белка в BindingDB, где колебания значений констант диссоциации следуют тем же тенденциям, что и в данных BindingDB.
Инженерные характеристики
- Понимание инженерных функций.ipynb: Мы исследуем объяснимость инженерных функций (простых функций, представляющих молекулы лиганда и белка).
- Инженерные функции VecNet — важные размеры Mol2vec и Protvec.ipynb: определяет наиболее важные аспекты встраивания Mol2vec и ProtVec с точки зрения связывания белка с лигандом.
- VecNet Engineered Features Concat Original Features.ipynb: исследует производительность VecNet после объединения исходного белка и встраивания лигандов.
- VecNet Engineered Features.ipynb: заменяет встраивания Mol2vec и ProtVec простыми инженерными функциями в архитектуре VecNet и исследует ее производительность.
Идентификация активных сайтов связывания
- VecNet-Protein-Trigrams-Study-GitHub.ipynb: Мы мутируем триграммы аминокислот в белке и наблюдаем колебания в предсказаниях VecNet. Этот процесс помогает нам идентифицировать потенциальные активные сайты связывания в аминокислотной последовательности.
Случайные входные тесты
- VecNet-Unseen_Nodes-RANDOM.ipynb: запускает VecNet на невидимых узлах (индуктивный тест), где лиганд и встраивание белка заменяются гауссовскими случайными входными данными.
- VecNet-Unseen_Nodes-T-RANDOM-Only.ipynb: запускает VecNet на невидимых узлах (индуктивный тест), где встраивания белков заменяются гауссовскими случайными входными данными.
- VecNet-Unseen_Targets-RANDOM.ipynb: запускает VecNet на невидимых целях (полуиндуктивный тест), где лиганд и встраивание белка заменяются гауссовскими случайными входными данными.
- VecNet-Unseen_Targets-T-RANDOM-Only.ipynb: запускает VecNet на невидимых целях (полуиндуктивный тест), где встраивания белков заменяются гауссовыми случайными входными данными.
Сиамский
- Siamese_Unseen_Nodes.ipynb: Здесь мы создаем набор отрицательных данных, полученных из сети, и выполняем 5-кратную перекрестную проверку на невидимых узлах (индуктивный тест).
- Siamese_Unseen_Targets.ipynb: Здесь мы выполняем 5-кратную перекрестную проверку невидимых целей (полуиндуктивный тест).
ВАЕНет
- VAENet-Unseen_Nodes.ipynb: здесь мы создаем отрицательные значения, полученные из сети, и выполняем 5-кратную перекрестную проверку на невидимых узлах (индуктивный тест).
- VAENet-Unseen_Targets.ipynb: Здесь мы выполняем 5-кратную перекрестную проверку невидимых целей (полуиндуктивный тест).
Валидация
- Анализ прогнозов SARS-CoV-2 VecNet.ipynb: автоматическая проверка 100 верхних и нижних прогнозов, сделанных VecNet в отношении вирусных белков SARS-CoV-2 и белков человека, связанных с COVID-19.
- Binding_Probability_Profile_Golden_Standar_Validation.py: проверка местоположений связывания, полученных AI-Bind, с данными связывания белков золотого стандарта.
ВекНет
- VecNet-Unseen_Nodes.ipynb: мы создаем полученные из сети отрицательные значения, выполняем 5-кратную перекрестную проверку на невидимых узлах (индуктивный тест) и делаем прогнозы по вирусным белкам SARS-CoV-2 и человеческим белкам, связанным с COVID-19.
- VecNet-Unseen_Targets.ipynb: Здесь мы выполняем 5-кратную перекрестную проверку невидимых целей (полуиндуктивный тест).
Внешние ресурсы
- Научитесь автоматической стыковке с помощью Autodock Vina: https://www.youtube.com/watch?v=BLbXkhqbebs
- Научитесь визуализировать активные сайты привязки с помощью PyMOL: https://www.youtube.com/watch?v=mBlMI82JRfI.
Цитируйте AI-Bind
Если вы считаете, что AI-Bind полезен в вашем исследовании, добавьте следующую цитату:
@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}
}