Классификация последовательностей ДНК на основе Milvus
Автор: Мэнцзя Гу, инженер данных в Zilliz, окончила Университет Макгилла со степенью магистра в области информационных исследований. В сферу её интересов входят приложения ИИ и поиск сходства с использованием векторных баз данных. Как участница сообщества open-source проекта Milvus, она предоставила и улучшила различные решения, такие как рекомендательная система и модель классификации последовательностей ДНК. Она любит вызовы и никогда не сдаётся!
Введение
Последовательность ДНК — популярная концепция как в академических исследованиях, так и в практических приложениях, таких как отслеживаемость генов, идентификация видов и диагностика заболеваний. Поскольку все отрасли остро нуждаются в более интеллектуальном и эффективном методе исследований, искусственный интеллект привлёк большое внимание, особенно со стороны биологической и медицинской областей. Всё больше учёных и исследователей вносят вклад в машинное обучение и глубокое обучение в биоинформатике. Чтобы сделать экспериментальные результаты более убедительными, один из распространённых вариантов — увеличение размера выборки. Сотрудничество с большими данными в геномике также приносит больше возможностей для реальных вариантов использования. Однако традиционное выравнивание последовательностей имеет ограничения, которые делают его неподходящим для больших данных. Чтобы в реальности приходилось идти на меньшие компромиссы, векторизация является хорошим выбором для большого набора данных последовательностей ДНК.
Open source векторная база данных Milvus удобна для массивных данных. Она способна хранить векторы последовательностей нуклеиновых кислот и выполнять высокоэффективный поиск. Она также может помочь снизить стоимость производства или исследований. Система классификации последовательностей ДНК на основе Milvus занимает всего миллисекунды для выполнения классификации генов. Более того, она демонстрирует более высокую точность, чем другие распространённые классификаторы в машинном обучении.
Обработка данных
Ген, кодирующий генетическую информацию, состоит из небольшого участка последовательностей ДНК, который включает 4 нуклеотидных основания [A, C, G, T]. В геноме человека около 30 000 генов, почти 3 миллиарда пар оснований ДНК, и каждая пара оснований имеет 2 соответствующих основания. Для поддержки разнообразных применений последовательности ДНК могут быть классифицированы по различным категориям. Чтобы снизить стоимость и упростить использование данных длинных последовательностей ДНК, k-mer вводится в предварительную обработку данных. В то же время это делает данные последовательностей ДНК более похожими на обычный текст. Кроме того, векторизованные данные могут ускорить вычисления при анализе данных или машинном обучении.
Рисунок 1.
k-mer
Метод k-mer обычно используется при предварительной обработке последовательностей ДНК. Он извлекает небольшой участок длиной k, начиная с каждого основания исходной последовательности, тем самым преобразуя длинную последовательность длиной s в (s-k+1) коротких последовательностей длиной k. Настройка значения k улучшит производительность модели. Списки коротких последовательностей проще для чтения данных, извлечения признаков и векторизации.
Векторизация
Последовательности ДНК векторизуются в форме текста. Последовательность, преобразованная с помощью k-mer, становится списком коротких последовательностей, который выглядит как список отдельных слов в предложении. Поэтому большинство моделей обработки естественного языка также должны работать с данными последовательностей ДНК. Похожие методологии могут применяться к обучению моделей, извлечению признаков и кодированию. Поскольку каждая модель имеет свои преимущества и недостатки, выбор моделей зависит от особенностей данных и цели исследования. Например, CountVectorizer, модель «мешок слов», выполняет извлечение признаков посредством простой токенизации. Она не устанавливает ограничений на длину данных, но возвращаемый результат менее очевиден с точки зрения сравнения сходства.
Демо Milvus
Milvus может легко управлять неструктурированными данными и находить наиболее похожие результаты среди триллионов векторов со средней задержкой в миллисекунды. Его поиск сходства основан на алгоритме поиска приближённого ближайшего соседа (Approximate Nearest Neighbor, ANN). Эти преимущества делают Milvus отличным вариантом для управления векторами последовательностей ДНК, тем самым способствуя развитию и применению биоинформатики.
Ниже представлена демонстрация того, как построить систему классификации последовательностей ДНК с помощью Milvus. Экспериментальный набор данных включает 3 организма и 7 семейств генов. Все данные преобразуются в списки коротких последовательностей с помощью k-mers. Затем с помощью предварительно обученной модели CountVectorizer система кодирует данные последовательностей в векторы. Блок-схема ниже показывает структуру системы и процессы вставки и поиска.
Рисунок 2.
Попробуйте эту демонстрацию в Milvus bootcamp.
В Milvus система создаёт коллекцию и вставляет соответствующие векторы последовательностей ДНК в коллекцию (или раздел, если он включён). При получении запроса Milvus возвращает расстояния между вектором входной последовательности ДНК и наиболее похожими результатами в базе данных. Класс входной последовательности и сходство между последовательностями ДНК можно определить по векторным расстояниям в результатах.
# Insert vectors to Milvus collection (partition "human")
DNA_human = collection.insert([human_ids, human_vectors], partition_name='human')
# Search topK results (in partition "human") for test vectors
res = collection.search(test_vectors, "vector_field", search_params, limit=topK, partition_names=['human'])
for results in res:
res_ids = results.ids # primary keys of topK results
res_distances = results.distances # distances between topK results & search input
Классификация последовательностей ДНК Поиск наиболее похожих последовательностей ДНК в Milvus может указать на семейство генов неизвестного образца и тем самым помочь узнать о его возможной функциональности. Если последовательность классифицирована как GPCRs, то она, вероятно, влияет на функции организма. В этой демонстрации Milvus успешно позволил системе определить семейства генов человеческих последовательностей ДНК, по которым выполнялся поиск.
Рисунок 3.
Рисунок 4.
Генетическое сходство
Среднее сходство последовательностей ДНК между организмами показывает, насколько близки их геномы. В демонстрации выполняется поиск в данных человека наиболее похожих последовательностей ДНК по сравнению с последовательностями шимпанзе и собаки соответственно. Затем она вычисляет и сравнивает средние расстояния внутреннего произведения (0,97 для шимпанзе и 0,70 для собаки), что доказывает, что у шимпанзе больше генов, похожих на человеческие, чем у собаки. Благодаря более сложным данным и архитектуре системы Milvus способен поддерживать генетические исследования даже на более высоком уровне.
search_params = {"metric_type": "IP", "params": {"nprobe": 20}}
Производительность
В демонстрации модель классификации обучается на 80% данных образцов человека (всего 3629) и использует оставшиеся данные в качестве тестовых. Она сравнивает производительность модели классификации последовательностей ДНК, использующей Milvus, с моделью на базе Mysql и 5 популярными классификаторами машинного обучения. Модель на основе Milvus превосходит аналоги по точности.
from sklearn.model_selection import train_test_split
X, y = human_sequence_kmers, human_labels
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Рисунок 5.
Дальнейшее изучение
С развитием технологий больших данных векторизация последовательностей ДНК будет играть более важную роль в генетических исследованиях и практике. В сочетании с профессиональными знаниями в области биоинформатики соответствующие исследования могут получить дополнительную пользу от применения векторизации последовательностей ДНК. Поэтому Milvus может демонстрировать лучшие результаты на практике. В зависимости от различных сценариев и потребностей пользователей поиск сходства и вычисление расстояний на базе Milvus показывают большой потенциал и множество возможностей.
- Изучение неизвестных последовательностей: По мнению некоторых исследователей, векторизация может сжимать данные последовательностей ДНК. В то же время для изучения структуры, функции и эволюции неизвестных последовательностей ДНК требуется меньше усилий. Milvus может хранить и извлекать огромное количество векторов последовательностей ДНК без потери точности.
- Адаптация устройств: Ограниченный традиционными алгоритмами выравнивания последовательностей, поиск сходства почти не получает преимуществ от улучшения устройств (CPU/GPU). Milvus, поддерживающий как обычные вычисления на CPU, так и ускорение на GPU, решает эту проблему с помощью алгоритма приближённого ближайшего соседа.
- Обнаружение вирусов и отслеживание происхождения: Учёные сравнили последовательности геномов и сообщили, что вирус COVID19, вероятно имеющий происхождение от летучих мышей, относится к SARS-COV. На основе этого вывода исследователи могут расширить размер выборки для получения дополнительных доказательств и выявления закономерностей.
- Диагностика заболеваний: В клинической практике врачи могли бы сравнивать последовательности ДНК пациентов и здоровой группы, чтобы выявлять варианты генов, вызывающие заболевания. Можно извлекать признаки и кодировать эти данные с помощью подходящих алгоритмов. Milvus способен возвращать расстояния между векторами, которые могут быть связаны с данными о заболеваниях. Помимо помощи в диагностике заболеваний, это приложение также может способствовать исследованиям таргетной терапии.
Узнайте больше о Milvus
Milvus — это мощный инструмент, способный обеспечивать работу широкого спектра приложений искусственного интеллекта и поиска векторного сходства. Чтобы узнать больше о проекте, ознакомьтесь со следующими ресурсами:
Читать далее

Zilliz Cloud Update: Smarter Autoscaling for Cost Savings, Stronger Compliance with Audit Logs, and More
What's new in Zilliz Cloud? Smarter autoscaling with scale-down, audit logs GA, enhanced SSO, and Milvus 2.6 in Private Preview.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.

Selecting the Right ETL Tools for Unstructured Data to Prepare for AI
Learn the right ETL tools for unstructured data to power AI. Explore key challenges, tool comparisons, and integrations with Milvus for vector search.



