Acelerando el descubrimiento de nuevos fármacos
Introducción
El descubrimiento de fármacos, como fuente de innovación en medicina, es una parte importante de la investigación y el desarrollo de nuevos medicamentos. El descubrimiento de fármacos se implementa mediante la selección y confirmación de dianas. Cuando se descubren fragmentos o compuestos líderes, normalmente se buscan compuestos similares en bibliotecas de compuestos internas o comerciales con el fin de descubrir la relación estructura-actividad (SAR), la disponibilidad de compuestos, evaluando así el potencial de los compuestos líderes para optimizarse hasta convertirse en compuestos candidatos.
Para descubrir compuestos disponibles en el espacio de fragmentos a partir de bibliotecas de compuestos a escala de miles de millones, normalmente se recupera la huella química para la búsqueda de subestructuras y la búsqueda por similitud. Sin embargo, la solución tradicional requiere mucho tiempo y es propensa a errores cuando se trata de huellas químicas de alta dimensionalidad a escala de miles de millones. Algunos compuestos potenciales también pueden perderse en el proceso. Este artículo analiza el uso de Milvus, un motor de búsqueda por similitud para vectores a escala masiva, con RDKit para construir un sistema de búsqueda de similitud de estructuras químicas de alto rendimiento.
En comparación con los métodos tradicionales, Milvus tiene una velocidad de búsqueda más rápida y una cobertura más amplia. Al procesar huellas químicas, Milvus puede realizar búsqueda de subestructuras, búsqueda por similitud y búsqueda exacta en bibliotecas de estructuras químicas con el fin de descubrir medicamentos potencialmente disponibles.
Descripción general del sistema
El sistema utiliza RDKit para generar huellas químicas, y Milvus para realizar búsquedas de similitud de estructuras químicas. Consulte https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/mols_search/README.md para obtener más información sobre el sistema.
Descripción general del sistema
1. Generación de huellas químicas
Las huellas químicas normalmente se utilizan para la búsqueda de subestructuras y la búsqueda por similitud. La siguiente imagen muestra una lista secuencial representada por bits. Cada dígito representa un elemento, par de átomos o grupos funcionales. La estructura química es C1C(=O)NCO1.
Identificación de patrones moleculares.
Podemos usar RDKit para generar huellas Morgan, que definen un radio desde un átomo específico y calculan el número de estructuras químicas dentro del rango del radio para generar una huella química. Especifique diferentes valores para el radio y los bits para adquirir las huellas químicas de diferentes estructuras químicas. Las estructuras químicas se representan en formato SMILES.
from rdkit import Chem
mols = Chem.MolFromSmiles(smiles)
mbfp = AllChem.GetMorganFingerprintAsBitVect(mols, radius=2, bits=512)
mvec = DataStructs.BitVectToFPSText(mbfp)
2. Búsqueda de estructuras químicas
Luego podemos importar las huellas Morgan en Milvus para crear una base de datos de estructuras químicas. Con diferentes huellas químicas, Milvus puede realizar búsqueda de subestructuras, búsqueda por similitud y búsqueda 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)
Búsqueda de subestructuras
Comprueba si una estructura química contiene otra estructura química.
Búsqueda por similitud
Busca estructuras químicas similares. La distancia de Tanimoto se utiliza como métrica de forma predeterminada.
Búsqueda exacta
Comprueba si existe una estructura química especificada. Este tipo de búsqueda requiere una coincidencia exacta.
Cálculo de huellas químicas
La distancia de Tanimoto se utiliza a menudo como métrica para las huellas químicas. En Milvus, la distancia de Jaccard se corresponde con la distancia de Tanimoto.
Tabla 1 de cálculo de huellas químicas.
Basándose en los parámetros anteriores, el cálculo de huellas químicas puede describirse como:
Tabla 2 de cálculo de huellas químicas.
Podemos ver que 1- Jaccard = Tanimoto. Aquí usamos Jaccard en Milvus para calcular la huella química, lo cual en realidad es coherente con la distancia de Tanimoto.
Demostración del sistema
Para demostrar mejor cómo funciona el sistema, hemos creado una demostración que utiliza Milvus para buscar en más de 90 millones de huellas químicas. Los datos utilizados provienen de ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. La interfaz inicial se ve de la siguiente manera:
Demostración del sistema 1.
Podemos buscar estructuras químicas especificadas en el sistema y devuelve estructuras químicas similares:
Demostración del sistema 2.
Conclusión
La búsqueda por similitud es indispensable en varios campos, como imágenes y videos. Para el descubrimiento de fármacos, la búsqueda por similitud puede aplicarse a bases de datos de estructuras químicas para descubrir compuestos potencialmente disponibles, que luego se convierten en semillas para la síntesis práctica y las pruebas en el punto de atención. Milvus, como motor de búsqueda por similitud de código abierto para vectores de características a escala masiva, está construido con una arquitectura de computación heterogénea para lograr la mejor eficiencia de costos. Las búsquedas en vectores a escala de miles de millones tardan solo milisegundos con recursos informáticos mínimos. Por lo tanto, Milvus puede ayudar a implementar una búsqueda de estructuras químicas precisa y rápida en campos como la biología y la química.
Puedes acceder a la demostración visitando http://40.117.75.127:8002/, y no olvides visitar también nuestro GitHub https://github.com/milvus-io/milvus para obtener más información!
Sigue leyendo

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.

Selecting the Right ETL Tools for Unstructured Data to Prepare for AI
Learn the right ETL tools for unstructured data to power AI. Explore key challenges, tool comparisons, and integrations with Milvus for vector search.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.



