Классификация последовательностей ДНК на основе Milvus
Автор: Менгджиа Гу, инженер по данным в Zilliz, окончила Университет Макгилла со степенью магистра в области информационных исследований. В сферу ее интересов входят приложения ИИ и поиск сходства в векторных базах данных. В качестве члена сообщества открытого проекта Milvus она предоставляла и улучшала различные решения, такие как рекомендательная система и модель классификации последовательностей ДНК. Ей нравятся сложные задачи, и она никогда не сдается!
Последовательность ДНК - популярное понятие как в академических исследованиях, так и в практических приложениях, таких как отслеживание генов, идентификация видов и диагностика заболеваний. В то время как все отрасли изголодались по более интеллектуальным и эффективным методам исследования, искусственный интеллект привлек большое внимание, особенно в биологической и медицинской области. Все больше ученых и исследователей вносят свой вклад в машинное обучение и глубокое обучение в биоинформатике. Чтобы сделать экспериментальные результаты более убедительными, одним из распространенных вариантов является увеличение размера выборки. Взаимодействие с большими данными в геномике также дает больше возможностей для использования в реальности. Однако традиционное выравнивание последовательностей имеет ограничения, которые делают его непригодным для больших данных. Для того чтобы сделать меньший компромисс в реальности, векторизация является хорошим выбором для больших наборов данных последовательностей ДНК.
Векторная база данных Milvus с открытым исходным кодом подходит для массивных данных. Она способна хранить векторы последовательностей нуклеиновых кислот и выполнять высокоэффективный поиск. Она также может помочь снизить стоимость производства или исследований. Система классификации последовательностей ДНК, основанная на Milvus, выполняет классификацию генов всего за миллисекунды. Кроме того, она показывает более высокую точность, чем другие распространенные классификаторы машинного обучения.
Ген, кодирующий генетическую информацию, состоит из небольшого участка последовательности ДНК, состоящей из 4 нуклеотидных оснований [A, C, G, T]. В геноме человека насчитывается около 30 000 генов, почти 3 миллиарда пар оснований ДНК, и каждая пара оснований имеет 2 соответствующих основания. Чтобы обеспечить разнообразное использование, последовательности ДНК можно разделить на различные категории. Чтобы снизить стоимость и упростить использование данных о длинных последовательностях ДНК, в предварительную обработку данных вводится к-мер . При этом данные последовательности ДНК становятся более похожими на обычный текст. Кроме того, векторизованные данные могут ускорить вычисления при анализе данных или машинном обучении.
1.png
k-mer
Метод k-mer широко используется при предварительной обработке последовательностей ДНК. Он выделяет небольшой участок длины k, начиная с каждого основания исходной последовательности, тем самым преобразуя длинную последовательность длины s в (s-k+1) коротких последовательностей длины k. Регулировка значения k улучшает работу модели. Списки коротких последовательностей удобнее для чтения данных, извлечения признаков и векторизации.
Векторизация
Последовательности ДНК векторизуются в виде текста. Последовательность, преобразованная с помощью k-mer, превращается в список коротких последовательностей, который выглядит как список отдельных слов в предложении. Поэтому большинство моделей обработки естественного языка должны работать и для данных о последовательностях ДНК. Аналогичные методики можно применить к обучению моделей, извлечению признаков и кодированию. Поскольку у каждой модели есть свои преимущества и недостатки, выбор моделей зависит от особенностей данных и цели исследования. Например, CountVectorizer, модель мешка слов, реализует извлечение признаков через простую токенизацию. Она не устанавливает ограничений на длину данных, но получаемый результат менее очевиден с точки зрения сравнения сходства.
Milvus может легко управлять неструктурированными данными и находить наиболее похожие результаты среди триллионов векторов за среднюю задержку в миллисекунды. Поиск сходства основан на алгоритме приближенного поиска ближайших соседей (ANN). Эти особенности делают Milvus отличным вариантом для управления векторами последовательностей ДНК, а значит, способствуют развитию и применению биоинформатики.
Ниже представлен демонстрационный пример построения системы классификации последовательностей ДНК с помощью Milvus. Экспериментальный набор данных включает 3 организма и 7 семейств генов. Все данные преобразуются в списки коротких последовательностей по k-мерам. С помощью предварительно обученной модели CountVectorizer система кодирует данные о последовательностях в векторы. На блок-схеме ниже показана структура системы и процессы вставки и поиска.
1.png
Попробуйте эту демонстрацию в 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.png
4.png
Генетическое сходство
Среднее сходство последовательностей ДНК между организмами показывает, насколько близки их геномы. Демонстрация ищет в человеческих данных наиболее похожие последовательности ДНК шимпанзе и собаки соответственно. Затем вычисляется и сравнивается среднее внутреннее произведение расстояний (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)
1.png
С развитием технологий больших данных векторизация последовательности ДНК будет играть все более важную роль в генетических исследованиях и практике. В сочетании с профессиональными знаниями в области биоинформатики, соответствующие исследования могут получить дополнительную выгоду от участия в векторизации последовательности ДНК. Таким образом, Milvus может дать лучшие результаты на практике. В соответствии с различными сценариями и потребностями пользователей, поиск сходства и расчет расстояния с помощью Milvus демонстрируют большой потенциал и множество возможностей.
- Изучение неизвестных последовательностей: По мнению некоторых исследователей, векторизация позволяет сжимать данные о последовательностях ДНК. В то же время она требует меньше усилий для изучения структуры, функции и эволюции неизвестных последовательностей ДНК. Milvus может хранить и извлекать огромное количество векторов последовательностей ДНК без потери точности.
- Адаптируемые устройства: Ограниченный традиционными алгоритмами выравнивания последовательностей, поиск по сходству едва ли может выиграть от совершенствования устройств(CPU/GPU). Milvus, поддерживающий как обычные вычисления на CPU, так и ускорение на GPU, решает эту проблему с помощью алгоритма приближенного ближайшего соседа.
- Обнаружение вирусов и отслеживание их происхождения: Ученые сравнили геномные последовательности и сообщили, что вирус COVID19 вероятного происхождения от летучей мыши принадлежит к SARS-COV. Основываясь на этом заключении, исследователи могут увеличить размер выборки для получения дополнительных доказательств и закономерностей.
- Диагностика заболеваний: В клинических условиях врачи могут сравнивать последовательности ДНК пациентов и здоровых людей, чтобы выявить варианты генов, вызывающих заболевания. Можно извлечь особенности и закодировать эти данные с помощью соответствующих алгоритмов. Milvus способен возвращать расстояния между векторами, которые могут быть связаны с данными о заболеваниях. Помимо помощи в диагностике заболеваний, это приложение также может вдохновить на изучение целевой терапии.
Milvus - это мощный инструмент, способный обеспечить работу огромного количества приложений для искусственного интеллекта и поиска векторного сходства. Чтобы узнать больше о проекте, ознакомьтесь со следующими ресурсами:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word