Всем привет! Меня зовут Дима и здесь я хочу поделиться своим небольшим проектом. Речь идет о внедрении инструмента глубокого обучения в предсказание структуры белка. Наслаждаться!

Эта небольшая научно-техническая статья должна начинаться с краткого рассказа о моей первой стажировке

В конце декабря 2021 года мне посчастливилось найти онлайн-стажировку в области биоинформатики. Это была стажировка NyBerMan Merit Internship от LLBio-IT School, и основное внимание было уделено, как ни удивительно (но не), расследованию Covid. После нескольких технических собеседований и огромного конкурса (около 1000 участников на 20 мест) я планировал следующие недели обучения и работы.

Вся стажировка была разделена на 5 разных частей:

  • Обзор литературы
  • Анализ структуры белка
  • Сравнение результатов классического моделиста с AlphaFold
  • Стыковка
  • Написание отчета

К сожалению, наш наставник пропустил эту часть AlphaFold из-за ограничений по времени нашей стажировки, но я был слишком взволнован, чтобы просто удалить часть конвейера. Таким образом, я сосредоточился на поиске в Интернете и нашел несколько учебных пособий для выполнения моего анализа.

Поиск и результаты в Интернете

Первое, что я нашел, это репозиторий deepmind/alphafold на гитхабе, где в Readme были инструкции по скачиванию и использованию программы. Но на самом деле мне не хватило памяти, чтобы скачать все реквизиты, поэтому я решил попробовать погуглить еще.

Наконец-то я нашел полезную статью на Medium с похожей задачей: Prediction of Corona-virus Spike protein. Это была просто победа, потому что все было достаточно ясно, что и как мне делать. С помощью GitHub репозиторий подобных исследований и простого учебника Azure-ML я начал проводить свое личное расследование.

Этапы трубопровода

Прежде всего мне нужно было собрать данные для построения модели. Это был решающий шаг, потому что входные данные влияют на все последующие этапы любого проекта. Я нашел данные о полиморфизме шиповидных белков разных штаммов вирусов, и позже я обнаружил, что не следует брать всю последовательность белка в качестве исходных данных, потому что имеют значение только мутации в области связывания. Поэтому я нашел информацию об участке в белке, соответствующем этому связыванию. Исследователи из Гарвардской справочной лаборатории по ВИЧ в Ботсване (регистрационный номер: EPI_ISL_6752027) описали «мегамутированный» вариант: B.1.1.529. Он содержит 60 мутаций аминокислот из эталонного генома, 37 из которых находятся в белке Spike. Более того, рецепторсвязывающий домен (RBD) белка Spike удерживался примерно на остатках с 335 по 525.

Затем соберите несколько последовательностей, содержащих полиморфизмы, и сохраните их в формате fasta. Итак, у нас есть файл sequences.fasta с 4 аминокислотными последовательностями домена, связывающего рецептор SARS-CoV-2.

Начиная

Я использовал блокнот Jupyter для написания сценариев и Машинное обучение Azure для создания программы. В основном вам нужно установить оба этих кадра, поэтому я опустил здесь один и два.

Совет: вы можете просто клонировать мою полную записную книжку из репозитория GitHub, указанного в разделе "Ресурсы" ниже, и открыть ее в JupyterLab.

Прежде всего, загрузите конфигурации рабочей области.

Файл config.json необходимо установить в рабочий каталог из вашей рабочей области в Azure.

Следующий шаг — написание нашего сценария запуска. В этой части я не стал изобретать велосипед, а просто скопировал сценарий из Colby T.Ford Jupyter Notebook.

На этом шаге мы можем перейти к следующему этапу, а именно к построению кластера и определению конфигураций запуска скрипта. Эти части используются по умолчанию в любом эксперименте машинного обучения в рабочей области Azure, поэтому я использовал примеры кода из блокнота.

В каждом эксперименте используются специальные инструменты, библиотеки и т. д. И в данном случае нам нужно было определить эти зависимости. Я просто скопировал с них Docker-образ и не стал изобретать ничего нового.

Следующим шагом является создание правильных конфигураций для эксперимента. Это важно, потому что параметры определяют скорость, правильность и совместимость. Только при подходящих параметрах весь эксперимент будет работать, иначе будут проблемы.

Идея использовать HyperDrive пришла ко мне после пары сбоев в сценарии. Собственно, HyperDrive — хорошее решение для настройки специальных моделей машинного обучения.

Конфигурация HyperDrive включает информацию о выборке пространства гиперпараметров, политике завершения, основной метрике, возобновлении из конфигурации, оценщике и целевом объекте вычислений для выполнения эксперимента.

И, наконец, запуск эксперимента. После отправки этой части кода журналы и метрики Azure появятся на вкладке в записной книжке.

После проведения эксперимента мы можем скачать результаты. В результатах есть несколько выходных форматов, но наиболее важным для моего исследования являются макромолекулы .pdb. Хорошая идея — визуализировать эти белки, и именно это я и сделал.

С помощью следующего кода можно запустить визуализатор 3Dmol в python.

Заключение

Инструменты глубокого обучения оказывают огромное влияние на прогнозирование структуры белков. Такие алгоритмы, как AlphaFold2, могут помочь понять и визуализировать белковые структуры, которые не представлены в Protein Data Bank. Также этот достаточный метод позволяет генерировать тонны новых данных с относительно небольшими затратами.

Службы облачных вычислений, такие как машинное обучение Microsoft Azure, значительно упрощают и ускоряют отправку экспериментов. В двух словах, эти сервисы предоставляют исследователям мощный инструмент для решения очень сложных задач, таких как предсказание структуры белка.

Таким образом, мой эксперимент дал удовлетворительные результаты для полноценной стажировки. Эта работа может быть использована в аналогичных дальнейших исследованиях и разработках.

Справочник и ресурс

🔔 Понравилась эта статья и хотите больше?
📩 Не стесняйтесь следить и подписываться на мою рассылку.

🔍 Впервые в Medium?
📌 Присоединяйтесь к самому большому сообществу!

🔍 Интересуетесь наукой и биоинформатикой в ​​частности?
📌 Посмотрите другие мои статьи.

❓ Есть вопросы?
✅ Не стесняйтесь обращаться ко мне:
🔘 Linkedin
🔘 Twitter