Classificação de Sequências de DNA com base no Milvus
Autor: Mengjia Gu, engenheira de dados na Zilliz, formou-se na McGill University com mestrado em Estudos da Informação. Seus interesses incluem aplicações de IA e busca por similaridade com bancos de dados vetoriais. Como membro da comunidade do projeto open-source Milvus, ela forneceu e aprimorou várias soluções, como sistema de recomendação e modelo de classificação de sequências de DNA. Ela gosta de desafios e nunca desiste!
Introdução
Sequência de DNA é um conceito popular tanto na pesquisa acadêmica quanto em aplicações práticas, como rastreabilidade genética, identificação de espécies e diagnóstico de doenças. Enquanto todos os setores anseiam por um método de pesquisa mais inteligente e eficiente, a inteligência artificial tem atraído muita atenção, especialmente das áreas biológica e médica. Cada vez mais cientistas e pesquisadores estão contribuindo para machine learning e deep learning em bioinformática. Para tornar os resultados experimentais mais convincentes, uma opção comum é aumentar o tamanho da amostra. A colaboração com big data em genômica também traz mais possibilidades de casos de uso na realidade. No entanto, o alinhamento tradicional de sequências tem limitações, que o tornam inadequado para grandes volumes de dados. Para fazer menos concessões na prática, a vetorização é uma boa escolha para um grande conjunto de dados de sequências de DNA.
O banco de dados vetorial open source Milvus é adequado para dados massivos. Ele é capaz de armazenar vetores de sequências de ácidos nucleicos e realizar recuperação de alta eficiência. Também pode ajudar a reduzir o custo de produção ou pesquisa. O sistema de classificação de sequências de DNA baseado no Milvus leva apenas milissegundos para realizar a classificação genética. Além disso, apresenta uma precisão maior do que outros classificadores comuns em machine learning.
Processamento de Dados
Um gene que codifica informações genéticas é composto por uma pequena seção de sequências de DNA, que consiste em 4 bases nucleotídicas [A, C, G, T]. Existem cerca de 30.000 genes no genoma humano, quase 3 bilhões de pares de bases de DNA, e cada par de bases tem 2 bases correspondentes. Para oferecer suporte a usos diversos, as sequências de DNA podem ser classificadas em várias categorias. Para reduzir o custo e facilitar o uso de dados de sequências longas de DNA, k-mer é introduzido no pré-processamento de dados. Ao mesmo tempo, ele torna os dados de sequência de DNA mais semelhantes a texto simples. Além disso, dados vetorizados podem acelerar cálculos na análise de dados ou em machine learning.
Figura 1.
k-mer
O método k-mer é comumente usado no pré-processamento de sequências de DNA. Ele extrai uma pequena seção de comprimento k a partir de cada base da sequência original, convertendo assim uma sequência longa de comprimento s em (s-k+1) sequências curtas de comprimento k. Ajustar o valor de k melhora o desempenho do modelo. Listas de sequências curtas são mais fáceis para leitura de dados, extração de características e vetorização.
Vetorização
As sequências de DNA são vetorizadas na forma de texto. Uma sequência transformada por k-mer torna-se uma lista de sequências curtas, que se parece com uma lista de palavras individuais em uma frase. Portanto, a maioria dos modelos de processamento de linguagem natural também deve funcionar para dados de sequência de DNA. Metodologias semelhantes podem ser aplicadas ao treinamento de modelos, extração de características e codificação. Como cada modelo tem suas próprias vantagens e desvantagens, a seleção de modelos depende da característica dos dados e do objetivo da pesquisa. Por exemplo, CountVectorizer, um modelo bag-of-words, implementa a extração de características por meio de tokenização direta. Ele não impõe limite ao comprimento dos dados, mas o resultado retornado é menos evidente em termos de comparação de similaridade.
Demo do Milvus
O Milvus pode gerenciar facilmente dados não estruturados e recuperar os resultados mais semelhantes entre trilhões de vetores dentro de uma latência média de milissegundos. Sua busca por similaridade é baseada no algoritmo de busca Approximate Nearest Neighbor (ANN). Esses destaques fazem do Milvus uma ótima opção para gerenciar vetores de sequências de DNA, promovendo assim o desenvolvimento e as aplicações da bioinformática.
Aqui está uma demonstração mostrando como criar um sistema de classificação de sequências de DNA com o Milvus. O conjunto de dados experimental inclui 3 organismos e 7 famílias de genes. Todos os dados são convertidos em listas de sequências curtas por k-mers. Com um modelo CountVectorizer pré-treinado, o sistema então codifica os dados de sequência em vetores. O fluxograma abaixo descreve a estrutura do sistema e os processos de inserção e busca.
Figura 2.
Experimente esta demonstração no Milvus bootcamp.
No Milvus, o sistema cria uma coleção e insere vetores correspondentes de sequências de DNA na coleção (ou partição, se habilitada). Ao receber uma solicitação de consulta, o Milvus retornará distâncias entre o vetor da sequência de DNA de entrada e os resultados mais semelhantes no banco de dados. A classe da sequência de entrada e a similaridade entre sequências de DNA podem ser determinadas pelas distâncias vetoriais nos resultados.
# 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
Classificação de Sequências de DNA Buscar as sequências de DNA mais semelhantes no Milvus poderia indicar a família gênica de uma amostra desconhecida, permitindo assim aprender sobre sua possível funcionalidade. Se uma sequência for classificada como GPCRs, então ela provavelmente tem influência nas funções corporais. Nesta demonstração, o Milvus permitiu com sucesso que o sistema identificasse as famílias de genes das sequências de DNA humano pesquisadas.
Figura 3.
Figura 4.
Similaridade Genética
A similaridade média de sequências de DNA entre organismos ilustra o quão próximos são seus genomas. A demonstração busca, nos dados humanos, as sequências de DNA mais semelhantes às de chimpanzé e cachorro, respectivamente. Em seguida, calcula e compara as distâncias médias de produto interno (0,97 para chimpanzé e 0,70 para cachorro), o que prova que o chimpanzé compartilha genes mais semelhantes com o humano do que o cachorro. Com dados e design de sistema mais complexos, o Milvus é capaz de apoiar pesquisas genéticas até mesmo em um nível mais elevado.
search_params = {"metric_type": "IP", "params": {"nprobe": 20}}
Desempenho
A demonstração treina o modelo de classificação com 80% dos dados de amostras humanas (3629 no total) e usa o restante como dados de teste. Ela compara o desempenho do modelo de classificação de sequências de DNA que usa o Milvus com aquele impulsionado por Mysql e 5 classificadores populares de aprendizado de máquina. O modelo baseado no Milvus supera seus equivalentes em precisão.
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)
Figura 5.
Exploração Adicional
Com o desenvolvimento da tecnologia de big data, a vetorização de sequências de DNA desempenhará um papel mais importante na pesquisa e prática genética. Combinados com conhecimento profissional em bioinformática, estudos relacionados podem se beneficiar ainda mais do envolvimento da vetorização de sequências de DNA. Portanto, Milvus pode apresentar melhores resultados na prática. De acordo com diferentes cenários e necessidades dos usuários, a busca por similaridade e o cálculo de distância impulsionados por Milvus mostram grande potencial e muitas possibilidades.
- Estudar sequências desconhecidas: De acordo com alguns pesquisadores, a vetorização pode comprimir dados de sequências de DNA. Ao mesmo tempo, exige menos esforço para estudar a estrutura, a função e a evolução de sequências de DNA desconhecidas. Milvus pode armazenar e recuperar um enorme número de vetores de sequências de DNA sem perder precisão.
- Adaptar dispositivos: Limitada por algoritmos tradicionais de alinhamento de sequências, a busca por similaridade mal consegue se beneficiar de melhorias em dispositivos (CPU/GPU). Milvus, que suporta tanto computação regular em CPU quanto aceleração por GPU, resolve esse problema com algoritmo de vizinho mais próximo aproximado.
- Detectar vírus e rastrear origens: Cientistas compararam sequências genômicas e relataram que o vírus COVID19, de provável origem em morcegos, pertence ao SARS-COV. Com base nessa conclusão, pesquisadores podem expandir o tamanho da amostra para obter mais evidências e padrões.
- Diagnosticar doenças: Clinicamente, médicos poderiam comparar sequências de DNA entre pacientes e um grupo saudável para identificar genes variantes que causam doenças. É possível extrair características e codificar esses dados usando algoritmos apropriados. Milvus é capaz de retornar distâncias entre vetores, que podem estar relacionadas a dados de doenças. Além de auxiliar no diagnóstico de doenças, esta aplicação também pode ajudar a inspirar o estudo de terapia direcionada.
Saiba mais sobre Milvus
Milvus é uma ferramenta poderosa capaz de impulsionar uma vasta gama de aplicações de inteligência artificial e busca por similaridade vetorial. Para saber mais sobre o projeto, confira os seguintes recursos:
Continue lendo

Introducing Loon: A New Storage Engine for Vector Data That Never Stops Changing
Loon is a new storage engine for Milvus 3.0 and Zilliz Vector Lakebase, built to manage evolving vector datasets with ColumnGroups, row ID alignment, and Manifests.

Introducing Zilliz MCP Server: Natural Language Access to Your Vector Database
Developers can easily manage and query vector databases with natural language via Zilliz MCP Server in AI-native environments.

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.



