🚀 Essayez Zilliz Cloud, la version entièrement gérée de Milvus, gratuitement—découvrez des performances 10x plus rapides ! Essayez maintenant>>

milvus-logo
LFAI

Introduction

  • Scenarios
February 06, 2020
Shiyu Chen

Introduction

La découverte de médicaments, source d'innovation médicale, est un élément important 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 de la cible. Lorsque des fragments ou des composés principaux 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), la disponibilité des composés, et d'évaluer ainsi le potentiel des composés principaux à être optimisés pour devenir des composés candidats.

Afin de découvrir les composés disponibles dans l'espace des fragments des bibliothèques de composés à l'échelle du milliard, l'empreinte chimique est généralement récupérée pour la recherche de sous-structure et la recherche de similarité. Cependant, la solution traditionnelle prend du temps et est sujette aux erreurs lorsqu'il s'agit d'empreintes chimiques à 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 les vecteurs à grande échelle, avec RDKit pour construire un système de recherche de similarité de structure chimique à haute performance.

Par rapport aux méthodes traditionnelles, Milvus a une vitesse de recherche plus rapide et une couverture plus large. En traitant les empreintes chimiques, Milvus peut effectuer une recherche de sous-structure, une recherche de similarité et une recherche exacte dans les bibliothèques de structures chimiques afin de découvrir des médicaments potentiellement disponibles.

Présentation du système

Le système utilise RDKit pour générer des empreintes chimiques et Milvus pour effectuer une recherche de similarité de structure chimique. Pour en savoir plus sur le système, consultez le site https://github.com/milvus-io/bootcamp/tree/master/solutions/molecular_similarity_search.

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

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és. 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.

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

Nous pouvons utiliser RDKit pour générer des empreintes Morgan, qui définit un rayon à partir d'un atome spécifique et calcule le nombre de structures chimiques dans la plage du rayon pour 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 pour créer une base de données de structures chimiques. Avec différentes empreintes chimiques, Milvus peut effectuer une recherche de sous-structure, 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)

Vérifie si une structure chimique contient une autre structure chimique.

Recherche de structures chimiques similaires. La distance de Tanimoto est utilisée par défaut comme métrique.

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.

3-computing-chem-fingerprings-table-1.png 3-calcul des empreintes chimiques-tableau-1.png

Sur la base des paramètres précédents, le calcul des empreintes chimiques peut être décrit comme suit :

4-computing-chem-fingerprings-table-2.png 4-calcul des empreintes chimiques-tableau-2.png

Nous pouvons constater 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émonstration du système

Pour mieux démontrer le fonctionnement du système, nous avons créé une démonstration 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 :

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

Nous pouvons rechercher des structures chimiques spécifiées dans le système et obtenir des structures chimiques similaires :

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

Conclusion

La recherche de similitudes 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 similitudes peut être appliquée aux bases de données de structures chimiques pour découvrir des composés potentiellement disponibles, qui sont ensuite convertis en semences pour la synthèse pratique et les tests au point d'intervention. Milvus, en tant que moteur de recherche de similarités open-source pour les vecteurs de caractéristiques à grande échelle, est construit avec une architecture informatique hétérogène pour une meilleure rentabilité. Les recherches sur des vecteurs à l'échelle du milliard ne prennent que quelques millisecondes avec un minimum de ressources informatiques. Milvus peut donc contribuer à la mise en œuvre d'une recherche précise et rapide de structures chimiques 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 notre GitHub https://github.com/milvus-io/milvus pour en savoir plus !

Like the article? Spread the word

Continuer à Lire