🚀 Experimente o Zilliz Cloud, o Milvus totalmente gerenciado, gratuitamente—experimente um desempenho 10x mais rápido! Experimente Agora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Classificação da sequência de ADN com base em Milvus

Classificação da sequência de ADN com base em Milvus

  • Scenarios
September 06, 2021
Jael Gu

Autora: Mengjia Gu, engenheira de dados na Zilliz, licenciou-se na Universidade McGill com um mestrado em Estudos da Informação. Os seus interesses incluem aplicações de IA e pesquisa de semelhanças em bases de dados vectoriais. Como membro da comunidade do projeto de código aberto Milvus, forneceu e melhorou várias soluções, como o sistema de recomendação e o modelo de classificação de sequências de ADN. Gosta de desafios e nunca desiste!

A sequência de ADN é um conceito popular tanto na investigação académica como em aplicações práticas, como a rastreabilidade de genes, a identificação de espécies e o diagnóstico de doenças. Considerando que todas as indústrias anseiam por um método de investigação mais inteligente e eficiente, a inteligência artificial tem atraído muita atenção, especialmente nos domínios biológico e médico. Cada vez mais cientistas e investigadores estão a contribuir para a aprendizagem automática e a aprendizagem profunda em bioinformática. Para tornar os resultados experimentais mais convincentes, uma opção comum é aumentar o tamanho da amostra. A colaboração com grandes volumes de dados no domínio da genómica também traz mais possibilidades de casos de utilização na realidade. No entanto, o alinhamento tradicional de sequências tem limitações que o tornam inadequado para grandes volumes de dados. Para reduzir as desvantagens na realidade, a vectorização é uma boa opção para um grande conjunto de dados de sequências de ADN.

A base de dados de vectores de código aberto Milvus é adequada para dados maciços. É capaz de armazenar vectores de sequências de ácidos nucleicos e efetuar uma recuperação altamente eficiente. Pode também ajudar a reduzir o custo de produção ou de investigação. O sistema de classificação de sequências de ADN baseado no Milvus demora apenas milissegundos a efetuar a classificação dos genes. Além disso, apresenta uma maior precisão do que outros classificadores comuns na aprendizagem automática.

Um gene que codifica informação genética é constituído por uma pequena secção de sequências de ADN, que consiste em 4 bases de nucleótidos [A, C, G, T]. Existem cerca de 30.000 genes no genoma humano, quase 3 mil milhões de pares de bases de ADN, e cada par de bases tem 2 bases correspondentes. Para poderem ser utilizadas para diversos fins, as sequências de ADN podem ser classificadas em várias categorias. Para reduzir o custo e facilitar a utilização de dados de sequências de ADN longas, o k-mer é introduzido no pré-processamento de dados. Entretanto, torna os dados de sequências de ADN mais semelhantes a texto simples. Além disso, os dados vectorizados podem acelerar o cálculo na análise de dados ou na aprendizagem automática.

1.png 1.png

k-mer

O método k-mer é normalmente utilizado no pré-processamento de sequências de ADN. Extrai uma pequena secçã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 melhorará o desempenho do modelo. As listas de sequências curtas são mais fáceis para a leitura de dados, extração de caraterísticas e vectorização.

Vectorização

As sequências de ADN são vectorizadas sob a forma de texto. Uma sequência transformada por k-mer torna-se uma lista de sequências curtas, que se assemelha a uma lista de palavras individuais numa frase. Por conseguinte, a maioria dos modelos de processamento de linguagem natural deve funcionar também para dados de sequências de ADN. Podem ser aplicadas metodologias semelhantes à formação de modelos, à extração de caraterísticas e à codificação. Uma vez que cada modelo tem as suas próprias vantagens e desvantagens, a seleção de modelos depende da caraterística dos dados e do objetivo da investigação. Por exemplo, o CountVectorizer, um modelo de saco de palavras, implementa a extração de caraterísticas através de uma tokenização simples. Não estabelece limites para o comprimento dos dados, mas o resultado obtido é menos óbvio em termos de comparação de semelhanças.

O Milvus pode gerir facilmente dados não estruturados e recuperar os resultados mais semelhantes entre triliões de vectores num prazo médio de milissegundos. A sua pesquisa de semelhanças baseia-se no algoritmo de pesquisa ANN (Approximate Nearest Neighbor). Estas caraterísticas fazem do Milvus uma excelente opção para gerir vectores de sequências de ADN, promovendo assim o desenvolvimento e as aplicações da bioinformática.

Aqui está uma demonstração que mostra como construir um sistema de classificação de sequências de ADN com o Milvus. O conjunto de dados experimentais 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 codifica os dados das sequências em vectores. O fluxograma abaixo mostra a estrutura do sistema e os processos de inserção e pesquisa.

1.png 1.png

Experimente esta demonstração no bootcamp de Milvus.

No Milvus, o sistema cria uma coleção e insere os vectores correspondentes de sequências de ADN na coleção (ou na partição, se esta estiver activada). Quando recebe um pedido de consulta, o Milvus devolve as distâncias entre o vetor da sequência de ADN de entrada e os resultados mais semelhantes na base de dados. A classe da sequência de entrada e a semelhança entre as sequências de ADN podem ser determinadas pelas distâncias dos vectores 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 das sequênciasde ADN A pesquisa das sequências de ADN mais semelhantes no Milvus pode implicar a família de genes de uma amostra desconhecida, permitindo assim conhecer a sua possível funcionalidade. Se uma sequência for classificada como GPCRs, então provavelmente tem influência nas funções do corpo. Nesta demonstração, o Milvus permitiu ao sistema identificar com êxito as famílias de genes das sequências de ADN humano pesquisadas.

3.png 3.png 4.png4.png

Similaridade genética

A similaridade média das sequências de ADN entre organismos ilustra a proximidade entre os seus genomas. A demonstração procura nos dados humanos as sequências de ADN mais semelhantes às do chimpanzé e do cão, respetivamente. Em seguida, calcula e compara as distâncias médias do produto interno (0,97 para o chimpanzé e 0,70 para o cão), o que prova que o chimpanzé partilha mais genes semelhantes com o ser humano do que o cão. Com dados mais complexos e conceção de sistema, o Milvus é capaz de apoiar a investigação genética mesmo a 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% de dados de amostras humanas (3629 no total) e utiliza os restantes como dados de teste. Compara o desempenho do modelo de classificação da sequência de ADN que utiliza o Milvus com o modelo alimentado por Mysql e 5 classificadores populares de aprendizagem automática. O modelo baseado no Milvus supera os seus homólogos em termos de 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)

1.png 1.png

Com o desenvolvimento da tecnologia de grandes volumes de dados, a vectorização da sequência de ADN desempenhará um papel mais importante na investigação e na prática genéticas. Em combinação com os conhecimentos profissionais em bioinformática, os estudos relacionados podem beneficiar ainda mais do envolvimento da vectorização da sequência de ADN. Por conseguinte, o Milvus pode apresentar melhores resultados na prática. De acordo com diferentes cenários e necessidades dos utilizadores, a pesquisa de semelhanças e o cálculo de distâncias com Milvus apresentam um grande potencial e muitas possibilidades.

  • Estudar sequências desconhecidas: De acordo com alguns investigadores, a vectorização pode comprimir dados de sequências de ADN. Ao mesmo tempo, requer menos esforço para estudar a estrutura, função e evolução de sequências de ADN desconhecidas. O Milvus pode armazenar e recuperar um grande número de vectores de sequências de ADN sem perder a precisão.
  • Adaptar dispositivos: Limitada pelos algoritmos tradicionais de alinhamento de sequências, a pesquisa por semelhança mal pode beneficiar da melhoria dos dispositivos(CPU/GPU). O Milvus, que suporta tanto a computação regular da CPU como a aceleração da GPU, resolve este problema com o algoritmo do vizinho mais próximo aproximado.
  • Detetar vírus e rastrear origens: Os cientistas compararam as sequências genómicas e indicaram que o vírus COVID19, provavelmente originário de morcegos, pertence ao SARS-COV. Com base nesta conclusão, os investigadores podem expandir o tamanho da amostra para obter mais provas e padrões.
  • Diagnosticar doenças: Em termos clínicos, os médicos podem comparar sequências de ADN entre pacientes e grupos saudáveis para identificar genes variantes que causam doenças. É possível extrair caraterísticas e codificar estes dados utilizando algoritmos adequados. O Milvus é capaz de devolver distâncias entre vectores, que podem ser relacionadas com dados de doenças. Para além de ajudar no diagnóstico de doenças, esta aplicação pode também ajudar a inspirar o estudo de terapias específicas.

O Milvus é uma ferramenta poderosa capaz de alimentar um vasto conjunto de aplicações de inteligência artificial e de pesquisa de semelhanças vectoriais. Para saber mais sobre o projeto, consulte os seguintes recursos:

  • Leia o nosso blogue.
  • Interagir com a nossa comunidade de código aberto no Slack.
  • Utilize ou contribua para a base de dados de vectores mais popular do mundo no GitHub.
  • Teste e implemente rapidamente aplicações de IA com o nosso novo bootcamp.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Continue Lendo