Accélérer la découverte de nouveaux médicaments
Introduction
La découverte de médicaments, en tant que source d’innovation médicale, constitue une partie importante de la recherche et du développement de nouveaux médicaments. La découverte de médicaments est mise en œuvre par la sélection et la confirmation des cibles. Lorsque des fragments ou des composés têtes de série sont découverts, des composés similaires sont généralement recherchés dans des bibliothèques de composés internes ou commerciales afin de découvrir la relation structure-activité (SAR) et la disponibilité des composés, évaluant ainsi le potentiel des composés têtes de série à être optimisés en composés candidats.
Afin de découvrir des composés disponibles dans l’espace des fragments à partir de bibliothèques de composés à l’échelle du milliard, les empreintes chimiques sont généralement récupérées pour la recherche de sous-structures et la recherche de similarité. Cependant, la solution traditionnelle est chronophage et sujette aux erreurs lorsqu’il s’agit d’empreintes chimiques de haute dimension à l’échelle du milliard. Certains composés potentiels peuvent également être perdus au cours du processus. Cet article traite de l’utilisation de Milvus, un moteur de recherche de similarité pour des vecteurs à très grande échelle, avec RDKit pour construire un système de recherche de similarité de structures chimiques haute performance.
Par rapport aux méthodes traditionnelles, Milvus offre une vitesse de recherche plus rapide et une couverture plus large. En traitant les empreintes chimiques, Milvus peut effectuer des recherches de sous-structures, des recherches de similarité et des recherches exactes dans les bibliothèques de structures chimiques afin de découvrir des médicaments potentiellement disponibles.
Vue d’ensemble du système
Le système utilise RDKit pour générer des empreintes chimiques, et Milvus pour effectuer une recherche de similarité de structures chimiques. Consultez https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/mols_search/README.md pour en savoir plus sur le système.
Vue d’ensemble du système
1. Génération d’empreintes chimiques
Les empreintes chimiques sont généralement utilisées pour la recherche de sous-structures et la recherche de similarité. L’image suivante montre une liste séquentielle représentée par des bits. Chaque chiffre représente un élément, une paire d’atomes ou des groupes fonctionnels. La structure chimique est C1C(=O)NCO1.
Identification de motifs moléculaires.
Nous pouvons utiliser RDKit pour générer des empreintes de Morgan, qui définissent un rayon à partir d’un atome spécifique et calculent le nombre de structures chimiques dans la plage de ce rayon afin de générer une empreinte chimique. Spécifiez différentes valeurs pour le rayon et les bits afin d’obtenir les empreintes chimiques de différentes structures chimiques. Les structures chimiques sont représentées au format SMILES.
from rdkit import Chem
mols = Chem.MolFromSmiles(smiles)
mbfp = AllChem.GetMorganFingerprintAsBitVect(mols, radius=2, bits=512)
mvec = DataStructs.BitVectToFPSText(mbfp)
2. Recherche de structures chimiques
Nous pouvons ensuite importer les empreintes de Morgan dans Milvus afin de construire une base de données de structures chimiques. Avec différentes empreintes chimiques, Milvus peut effectuer une recherche de sous-structures, une recherche de similarité et une recherche exacte.
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)
Recherche de sous-structures
Vérifie si une structure chimique contient une autre structure chimique.
Recherche de similarité
Recherche des structures chimiques similaires. La distance de Tanimoto est utilisée comme métrique par défaut.
Recherche exacte
Vérifie si une structure chimique spécifiée existe. Ce type de recherche nécessite une correspondance exacte.
Calcul des empreintes chimiques
La distance de Tanimoto est souvent utilisée comme métrique pour les empreintes chimiques. Dans Milvus, la distance de Jaccard correspond à la distance de Tanimoto.
Tableau de calcul des empreintes chimiques-1.
Sur la base des paramètres précédents, le calcul des empreintes chimiques peut être décrit comme suit :
Tableau de calcul des empreintes chimiques-2.
Nous pouvons voir que 1- Jaccard = Tanimoto. Ici, nous utilisons Jaccard dans Milvus pour calculer l’empreinte chimique, ce qui est en fait cohérent avec la distance de Tanimoto.
Démo du système
Pour mieux démontrer le fonctionnement du système, nous avons créé une démo qui utilise Milvus pour rechercher plus de 90 millions d’empreintes chimiques. Les données utilisées proviennent de ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. L’interface initiale se présente comme suit :
Démo du système 1.
Nous pouvons rechercher des structures chimiques spécifiées dans le système, qui renvoie des structures chimiques similaires :
Démo du système 2.
Conclusion
La recherche de similarité est indispensable dans un certain nombre de domaines, tels que les images et les vidéos. Pour la découverte de médicaments, la recherche de similarité peut être appliquée aux bases de données de structures chimiques afin de découvrir des composés potentiellement disponibles, qui sont ensuite convertis en points de départ pour une synthèse pratique et des tests au point de service. Milvus, en tant que moteur de recherche de similarité open source pour les vecteurs de caractéristiques à très grande échelle, est conçu avec une architecture de calcul hétérogène afin d’offrir la meilleure rentabilité. Les recherches sur des milliards de vecteurs ne prennent que quelques millisecondes avec des ressources informatiques minimales. Ainsi, Milvus peut aider à mettre en œuvre une recherche de structures chimiques précise et rapide dans des domaines tels que la biologie et la chimie.
Vous pouvez accéder à la démo en visitant http://40.117.75.127:8002/, et n’oubliez pas de visiter également notre GitHub https://github.com/milvus-io/milvus pour en savoir plus !
Continuer à lire

How Zilliz Saw the Future of Vector Databases—and Built for Production
An inside look at how Zilliz built vector databases for real-world use, focusing on scalability, stability, and running them reliably at scale.

Introducing Zilliz MCP Server: Natural Language Access to Your Vector Database
Developers can easily manage and query vector databases with natural language via Zilliz MCP Server in AI-native environments.

Optimizing Embedding Model Selection with TDA Clustering: A Strategic Guide for Vector Databases
Discover how Topological Data Analysis (TDA) reveals hidden embedding model weaknesses and helps optimize vector database performance.



