Как обрабатывать тысячи результатов анализов в облаке ежедневно: опыт «ТестГен»

Компания «ТестГен» выпустила 10 млн тестов для лабораторной диагностики, из них 300 тысяч — для онкологических заболеваний. Советник по науке «ТестГен» Алексей Никитин рассказывает, как компания перенесла свою платформу в Yandex Cloud и обрабатывает тысячи результатов анализов в день.

Алексей Никитин
Советник по науке «ТестГен»

«ТестГен» занимается молекулярной диагностикой, биотехнологиями и биоинформатикой. Разрабатывает продукты для диагностики онкологических заболеваний, инфекций, пренатальной диагностики, а также для выявления мутаций генов.

Как связаны тесты на онкологию и большие данные

Наши наборы для диагностики используют около 80% онкологических диспансеров России. Тесты помогают подобрать оптимальную схему лечения и выявить наследственную предрасположенность к онкозаболеваниям.

К развитию опухолей приводят генетические мутации. Для их определения в медицине всё чаще применяют метод массового параллельного анализа ДНК, или по-научному — секвенирование нового поколения. Он позволяет одновременно проанализировать сотни миллионов молекул ДНК и определить все мутации в генах.

Данные, полученные в результате секвенирования, — это терабайты информации. Для их хранения и обработки нужны специальные биоинформационные платформы. Объёмы на них огромные: например, институт Броуда — он занимается биомедицинскими и геномными исследованиями в составе Массачусетского технологического института, США — генерирует 20 ТБ данных в день. По прогнозу, к 2024 году объём геномных данных в мире превысит объёмы данных Twitter, YouTube и других крупных соцсетей вместе взятых.

Один из флагманских продуктов «ТестГена» — набор для секвенирования NGS. Результаты анализов интерпретируются на платформе XplainBio, тоже разработанной компанией.

Загруженные образцы для анализа на платформе XplainBio
Загруженные образцы для анализа на платформе XplainBio

Почему в медицине не обойтись без облаков

Основная проблема в работе XplainBio — высокие требования к вычислительным ресурсам. При небольшом количестве анализов обрабатывать результаты можно и на локальном сервере. Но когда их число превышает десятки и сотни, то время ожидания затягивается. В медицине это недопустимо — нужно ускорять процесс.

Есть два варианта решения проблемы: более быстрые, но менее точные алгоритмы или аренда необходимого количества серверов у облачного провайдера. Большинство медицинских учреждений не могут позволить себе собственный дата-центр. Плюс у нас довольно специфичные нагрузки: 100% мощности требуется один-два раза в неделю на несколько часов.

В 2017 году на отечественном рынке ещё не было нужного нам уровня технологий, поэтому тогда мы выбрали Google Cloud. Но во время разработки и тестовой эксплуатации системы продолжали следить за развитием российских облачных систем. Необходимость переезда диктовалась ещё и изменениями законодательства в области обработки персональных данных.

На что мы обращали внимание при выборе облака:

  • Масштабируемость. Когда ресурсов для обработки много — стоимость работы с данными снижается.
  • Мощность виртуальных машин. Большое количество серверов дают нам нужную скорость обработки сырых данных и интерпретации результатов.
  • Надёжность и отказоустойчивость. Для быстрой обработки данных важно не зависеть от неполадок конкретного сервера или оборудования.
  • Соблюдение 152-ФЗ. Любые результаты генетических исследований, даже обезличенные, — это персональные данные. По закону передавать такую информацию в другие страны без специального разрешения нельзя.
  • Поддержка разных источников данных. XplainBio использует международные базы данных генетических вариантов — более 80 различных источников, которые позволяют максимально полно описывать гены и мутации.

В 2020 году, оценив предложения на российском рынке, мы выбрали Yandex Cloud.

Как разворачивали собственную платформу XplainBio

Этапы обработки геномных данных предъявляют разные требования к вычислительной платформе. На начальных шагах нам важны центральные процессоры (CPU), от количества которых зависит скорость вычислений. На этапах сортировки — оперативная память (RAM), а при сборке финальной структуры данных — высокопроизводительная аналитическая база данных. Она должна быстро агрегировать более 80 источников общим размером 10 ТБ в итоговую таблицу — а это около 15 млн строк и 900 столбцов с различными типами данных.

Yandex Cloud предоставляет мощные виртуальные машины: до 96 vCPU и до 576 ГБ RAM. Это позволяет хранить огромные массивы данных и быстро их обрабатывать.

В Yandex Compute Cloud можно использовать столько же CPU, что и у Google Cloud, — 3600 процессорных ядер. Благодаря этому к 2022 году мы перенесли практически все вычисления на новую облачную платформу.

Но переезд самого ответственного этапа — сборки финальной структуры данных — затягивался. Мы боялись несовместимости диалектов SQL или несовпадения результатов на двух платформах. Однако эта проблема решилась за два дня. В 600 строках SQL-запроса пришлось поменять только названия нескольких функций — вся остальная структура и логика остались без изменений.

Yandex Managed Service for ClickHouse выполнял запрос абсолютно идентично продуктам Google Storage, а в некоторых случаях и быстрее. После окончательной миграции XplainBio стала платформой, где все этапы хранения и обработки данных происходят исключительно внутри российских дата-центров. При этом не пришлось жертвовать скоростью или точностью анализа.

Как облака помогли в пандемию

<p>Результаты анализа мутаций на платформе XplainBio </p>

Результаты анализа мутаций на платформе XplainBio

В моменты пиковой нагрузки система XplainBio использует до 200 виртуальных машин Yandex Cloud и до 3600 процессоров одновременно. Влияние человеческого фактора на обработку тестов при этом максимально снижено. Платформа автоматически распознаёт мутации, которые были обнаружены ранее, и определяет, какие из них являются патогенными.

Поле «Флаги» отображает характеристики вариантов мутаций, на которые стоит обращать внимание при интерпретации результатов. Например, HIGH означает, что вариант может сильно влиять на функцию белка, LoF – что вариант может приводить к потере функции белка
Поле «Флаги» отображает характеристики вариантов мутаций, на которые стоит обращать внимание при интерпретации результатов. Например, HIGH означает, что вариант может сильно влиять на функцию белка, LoF – что вариант может приводить к потере функции белка

По объёму используемых ресурсов «ТестГен» входит в топ-50 из более чем 30 тысяч клиентов Yandex Cloud. С помощью облачных мощностей уже обработано более 50 тысяч образцов тестов. Надёжность системы была проверена даже пандемией: компания должна была анализировать тысячи геномов SARS-CoV-2 в рамках эпидемиологического мониторинга новых штаммов. Платформа легко справилась с анализом 1536 образцов в сутки и подтвердила правильность заложенных архитектурных решений.

Выход за пределы компании

Облачная платформа XplainBio, созданная на основе Yandex Cloud, адаптирована не только под продукты «ТестГена». Xplain Bio активно используется уже в нескольких медицинских учреждениях Москвы и позволяет экономить ресурсы: не нужно покупать специальное оборудование, привлекать биоинформатиков и нанимать специалистов для обслуживания системы.

Подписывайтесь на блог Yandex Cloud, чтобы узнавать еще больше новостей и историй об IT и бизнесе.

Другие истории наших партнеров и клиентов, которые активно читают наши подписчики:

44
Начать дискуссию