Acelerando a descoberta de novos medicamentos
Introdução
A descoberta de fármacos, como fonte de inovação em medicamentos, é uma parte importante da pesquisa e desenvolvimento de novos medicamentos. A descoberta de fármacos é implementada por meio da seleção e confirmação de alvos. Quando fragmentos ou compostos líderes são descobertos, compostos semelhantes geralmente são pesquisados em bibliotecas internas ou comerciais de compostos para descobrir a relação estrutura-atividade (SAR), a disponibilidade dos compostos e, assim, avaliar o potencial dos compostos líderes para serem otimizados em compostos candidatos.
Para descobrir compostos disponíveis no espaço de fragmentos a partir de bibliotecas de compostos em escala de bilhões, impressões digitais químicas geralmente são recuperadas para busca por subestrutura e busca por similaridade. No entanto, a solução tradicional é demorada e propensa a erros quando se trata de impressões digitais químicas de alta dimensionalidade em escala de bilhões. Alguns compostos potenciais também podem ser perdidos no processo. Este artigo discute o uso do Milvus, um mecanismo de busca por similaridade para vetores em escala massiva, com RDKit para criar um sistema de busca por similaridade de estruturas químicas de alto desempenho.
Em comparação com os métodos tradicionais, o Milvus tem maior velocidade de busca e cobertura mais ampla. Ao processar impressões digitais químicas, o Milvus pode realizar busca por subestrutura, busca por similaridade e busca exata em bibliotecas de estruturas químicas para descobrir medicamentos potencialmente disponíveis.
Visão geral do sistema
O sistema usa RDKit para gerar impressões digitais químicas e Milvus para realizar busca por similaridade de estruturas químicas. Consulte https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/mols_search/README.md para saber mais sobre o sistema.
Visão geral do sistema
1. Gerando impressões digitais químicas
Impressões digitais químicas geralmente são usadas para busca por subestrutura e busca por similaridade. A imagem a seguir mostra uma lista sequencial representada por bits. Cada dígito representa um elemento, par de átomos ou grupos funcionais. A estrutura química é C1C(=O)NCO1.
Identificando padrões de moléculas.
Podemos usar 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. Pesquisando estruturas químicas
Podemos então importar as impressões digitais Morgan para o Milvus para criar um banco de dados de estruturas químicas. Com diferentes impressões digitais químicas, o Milvus pode realizar busca por subestrutura, busca por similaridade e busca exata.
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)
Busca por subestrutura
Verifica se uma estrutura química contém outra estrutura química.
Busca por similaridade
Pesquisa estruturas químicas semelhantes. A distância de Tanimoto é usada como métrica por padrão.
Busca exata
Verifica se uma estrutura química especificada existe. Esse tipo de busca requer correspondência exata.
Calculando impressões digitais químicas
A distância de Tanimoto é frequentemente usada como métrica para impressões digitais químicas. No Milvus, a distância de Jaccard corresponde à distância de Tanimoto.
Tabela de cálculo de impressões digitais químicas-1.
Com base nos parâmetros anteriores, o cálculo de impressões digitais químicas pode ser descrito como:
Tabela de cálculo de impressões digitais químicas-2.
Podemos ver que 1- Jaccard = Tanimoto. Aqui usamos Jaccard no Milvus para calcular a impressão digital química, o que é, na verdade, consistente com a distância de Tanimoto.
Demonstração do sistema
Para demonstrar melhor como o sistema funciona, criamos uma demonstração que usa o Milvus para pesquisar mais de 90 milhões de impressões digitais químicas. Os dados usados vêm de ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. A interface inicial é a seguinte:
Demonstração do sistema 1.
Podemos pesquisar estruturas químicas especificadas no sistema e retornar estruturas químicas semelhantes:
Demonstração do sistema 2.
Conclusão
A busca por similaridade é indispensável em diversos campos, como imagens e vídeos. Para a descoberta de medicamentos, a busca por similaridade pode ser aplicada a bancos de dados de estruturas químicas para descobrir compostos potencialmente disponíveis, que são então convertidos em sementes para síntese prática e testes no local de atendimento. O Milvus, como um mecanismo de busca por similaridade de código aberto para vetores de características em escala massiva, é construído com uma arquitetura de computação heterogênea para a melhor eficiência de custo. Buscas em vetores na escala de bilhões levam apenas milissegundos com recursos computacionais mínimos. Assim, o Milvus pode ajudar a implementar uma busca de estruturas químicas precisa e rápida em áreas como biologia e química.
Você pode acessar a demonstração visitando http://40.117.75.127:8002/, e não se esqueça de também visitar nosso GitHub https://github.com/milvus-io/milvus para saber mais!
Continue lendo

Introducing Functions and Model Inference on Zilliz Cloud: Automatic Embedding and Reranking with Hosted Models
Zilliz Cloud Functions auto-generate embeddings via OpenAI, Voyage AI, Cohere, or Zilliz Hosted Models. Built-in reranking — just insert text and search.

How to Choose the Best Embedding Model for RAG in 2026: 10 Models Benchmarked
We benchmarked 10 embedding models on cross-modal, cross-lingual, long-document, and dimension compression tasks. See which one fits your RAG pipeline.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.



