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

milvus-logo
LFAI

Introdução

  • Scenarios
February 06, 2020
Shiyu Chen

Introdução

A descoberta de medicamentos, enquanto fonte de inovação na medicina, é uma parte importante da investigação e desenvolvimento de novos medicamentos. A descoberta de medicamentos é implementada através da seleção e confirmação de alvos. Quando são descobertos fragmentos ou compostos principais, os compostos semelhantes são normalmente pesquisados em bibliotecas de compostos internas ou comerciais, a fim de descobrir a relação estrutura-atividade (SAR) e a disponibilidade de compostos, avaliando assim o potencial dos compostos principais para serem optimizados em compostos candidatos.

Para descobrir compostos disponíveis no espaço de fragmentos de bibliotecas de compostos à escala de milhares de milhões, a impressão digital química é normalmente recuperada para pesquisa de subestruturas e pesquisa de semelhanças. No entanto, a solução tradicional é morosa e propensa a erros quando se trata de impressões digitais químicas de elevada dimensão e em milhares de milhões de dimensões. Alguns compostos potenciais podem também perder-se no processo. Este artigo aborda a utilização do Milvus, um motor de pesquisa de semelhanças para vectores de grande escala, com o RDKit para criar um sistema de pesquisa de semelhanças de estruturas químicas de elevado desempenho.

Em comparação com os métodos tradicionais, o Milvus tem uma velocidade de pesquisa mais rápida e uma cobertura mais alargada. Ao processar impressões digitais químicas, o Milvus pode efetuar pesquisa de subestruturas, pesquisa de semelhanças e pesquisa exacta em bibliotecas de estruturas químicas, a fim de descobrir medicamentos potencialmente disponíveis.

Descrição geral do sistema

O sistema utiliza o RDKit para gerar impressões digitais químicas e o Milvus para efetuar a pesquisa por semelhança de estruturas químicas. Consulte https://github.com/milvus-io/bootcamp/tree/master/solutions/molecular_similarity_search para saber mais sobre o sistema.

1-system-overview.png 1-system-overview.png

1. Geração de impressões digitais químicas

As impressões digitais químicas são normalmente utilizadas para pesquisa de subestruturas e pesquisa de semelhanças. A imagem seguinte mostra uma lista sequencial representada por bits. Cada dígito representa um elemento, um par de átomos ou um grupo funcional. A estrutura química é C1C(=O)NCO1.

2-identifying-patterns-molecules.png 2-identifying-patterns-molecules.png

Podemos utilizar o RDKit para gerar impressões digitais Morgan, que define um raio a partir de um átomo específico e calcula o número de estruturas químicas dentro do intervalo do raio para gerar uma impressão digital química. Especifique valores diferentes para o raio e os bits para obter as impressões digitais químicas de diferentes estruturas químicas. As estruturas químicas são representadas no formato SMILES.

from rdkit import Chem
mols = Chem.MolFromSmiles(smiles)
mbfp = AllChem.GetMorganFingerprintAsBitVect(mols, radius=2, bits=512)
mvec = DataStructs.BitVectToFPSText(mbfp)

2. Pesquisa de estruturas químicas

Podemos então importar as impressões digitais de Morgan para o Milvus para criar uma base de dados de estruturas químicas. Com diferentes impressões digitais químicas, o Milvus pode efetuar uma pesquisa de subestruturas, uma pesquisa de semelhanças e uma pesquisa exacta.

from milvus import Milvus
Milvus.add_vectors(table_name=MILVUS_TABLE, records=mvecs)
Milvus.search_vectors(table_name=MILVUS_TABLE, query_records=query_mvec, top_k=topk)

Verifica se uma estrutura química contém outra estrutura química.

Procura estruturas químicas semelhantes. A distância de Tanimoto é utilizada como métrica por defeito.

Verifica se existe uma estrutura química especificada. Este tipo de pesquisa requer uma correspondência exacta.

Computação de impressões digitais químicas

A distância de Tanimoto é frequentemente utilizada como uma métrica para impressões digitais químicas. Em Milvus, a distância de Jaccard corresponde à distância de Tanimoto.

3-computing-chem-fingerprings-table-1.png 3-computing-chem-fingerprings-table-1.png

Com base nos parâmetros anteriores, o cálculo das impressões digitais químicas pode ser descrito da seguinte forma

4-computing-chem-fingerprings-table-2.png 4-computing-chem-fingerprings-table-2.png

Podemos ver que 1- Jaccard = Tanimoto. Aqui utilizamos Jaccard em Milvus para calcular a impressão digital química, o que é de facto consistente com a distância de Tanimoto.

Demonstração do sistema

Para demonstrar melhor o funcionamento do sistema, criámos uma demonstração que utiliza o Milvus para pesquisar mais de 90 milhões de impressões digitais químicas. Os dados utilizados provêm de ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. A interface inicial tem o seguinte aspeto:

5-system-demo-1.jpg 5-system-demo-1.jpg

Podemos pesquisar estruturas químicas específicas no sistema e obter estruturas químicas semelhantes:

6-system-demo-2.gif 6-system-demo-2.gif

Conclusão

A pesquisa por semelhança é indispensável numa série de domínios, como as imagens e os vídeos. Para a descoberta de medicamentos, a pesquisa por semelhança pode ser aplicada a bases de dados de estruturas químicas para descobrir compostos potencialmente disponíveis, que são depois convertidos em sementes para síntese prática e testes no local de tratamento. O Milvus, enquanto motor de pesquisa por semelhança de código aberto para vectores de caraterísticas em grande escala, foi concebido com uma arquitetura de computação heterogénea para obter a melhor relação custo-eficácia. As pesquisas em vectores à escala de milhares de milhões demoram apenas milissegundos com recursos computacionais mínimos. Assim, Milvus pode ajudar a implementar uma pesquisa precisa e rápida de estruturas químicas em domínios como a biologia e a química.

Pode aceder à demonstração visitando http://40.117.75.127:8002/, e não se esqueça de visitar também o nosso GitHub https://github.com/milvus-io/milvus para saber mais!

Like the article? Spread the word

Continue Lendo