Introducción
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 lleva a cabo mediante la selección y confirmación de dianas. Cuando se descubren fragmentos o compuestos principales, se suelen buscar 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 principales para ser optimizados como compuestos candidatos.
Para descubrir compuestos disponibles en el espacio de fragmentos de bibliotecas de compuestos a escala de miles de millones, se suele recuperar la huella química para la búsqueda de subestructuras y similitudes. Sin embargo, la solución tradicional requiere mucho tiempo y es propensa a errores cuando se trata de huellas químicas de alta dimensión a escala de miles de millones. Además, algunos compuestos potenciales pueden perderse en el proceso. Este artículo analiza el uso de Milvus, un motor de búsqueda de similitudes para vectores a gran escala, con RDKit para construir un sistema de búsqueda de similitudes 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úsquedas de subestructuras, similitudes y búsquedas exactas en bibliotecas de estructuras químicas para descubrir medicamentos potencialmente disponibles.
Visión general del sistema
El sistema utiliza RDKit para generar huellas químicas y Milvus para realizar búsquedas por similitud de estructuras químicas. Consulte https://github.com/milvus-io/bootcamp/tree/master/solutions/molecular_similarity_search para obtener más información sobre el sistema.
1-system-overview.png
1. Generación de huellas químicas
Las huellas químicas suelen utilizarse para la búsqueda de subestructuras y la búsqueda de similitudes. La siguiente imagen muestra una lista secuencial representada por bits. Cada dígito representa un elemento, un par de átomos o un grupo funcional. La estructura química es C1C(=O)NCO1
.
2-identificación-patrones-moléculas.png
Podemos utilizar RDKit para generar huellas Morgan, que define un radio a partir de un átomo específico y calcula 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 obtener 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
A continuación, podemos importar las huellas Morgan en Milvus para construir una base de datos de estructuras químicas. Con diferentes huellas químicas, Milvus puede realizar búsquedas de subestructuras, búsquedas de similitudes y búsquedas exactas.
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 por subestructura
Comprueba si una estructura química contiene otra estructura química.
Búsqueda por similitud
Busca estructuras químicas similares. Por defecto, se utiliza la distancia de Tanimoto como métrica.
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.
3-computing-chem-fingerprings-table-1.png
Basándose en los parámetros anteriores, el cálculo de huellas dactilares químicas puede describirse como:
4-computing-chem-fingerprings-table-2.png
Podemos ver que 1- Jaccard = Tanimoto
. Aquí utilizamos Jaccard en Milvus para calcular la huella química, que en realidad es coherente con la distancia de Tanimoto.
Demostración del sistema
Para demostrar mejor cómo funciona el sistema, hemos construido una demo que utiliza Milvus para buscar más de 90 millones de huellas químicas. Los datos utilizados proceden de ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. La interfaz inicial tiene el siguiente aspecto:
5-sistema-demo-1.jpg
Podemos buscar estructuras químicas especificadas en el sistema y nos devuelve estructuras químicas similares:
6-sistema-demo-2.gif
Conclusión
La búsqueda por similitud es indispensable en numerosos campos, como las imágenes y los vídeos. En 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 de similitudes de código abierto para vectores de características a escala masiva, está construido con una arquitectura informática heterogénea para obtener la mejor rentabilidad. Las búsquedas en vectores a escala de miles de millones sólo tardan milisegundos con recursos informáticos mínimos. De este modo, Milvus puede ayudar a implementar búsquedas precisas y rápidas de estructuras químicas en campos como la biología y la química.
Puede acceder a la demo visitando http://40.117.75.127:8002/, ¡y no olvide visitar también nuestro GitHub https://github.com/milvus-io/milvus para obtener más información!
- Visión general del sistema
- 1. Generación de huellas químicas
- 2. Búsqueda de estructuras químicas
- Cálculo de huellas químicas
- Demostración del sistema
- Conclusión
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word