Accelerare la scoperta di nuovi farmaci
Introduzione
La scoperta di farmaci, in quanto fonte di innovazione in medicina, è una parte importante della ricerca e dello sviluppo di nuovi farmaci. La scoperta di farmaci viene implementata tramite la selezione e la conferma dei target. Quando vengono scoperti frammenti o composti guida, di solito si cercano composti simili in librerie di composti interne o commerciali per scoprire la relazione struttura-attività (SAR), la disponibilità dei composti, valutando così il potenziale dei composti guida di essere ottimizzati in composti candidati.
Per scoprire composti disponibili nello spazio dei frammenti da librerie di composti su scala di miliardi, l'impronta chimica viene solitamente recuperata per la ricerca di sottostrutture e la ricerca di similarità. Tuttavia, la soluzione tradizionale richiede molto tempo ed è soggetta a errori quando si tratta di impronte chimiche ad alta dimensionalità su scala di miliardi. Alcuni composti potenziali potrebbero anche andare persi nel processo. Questo articolo discute l'uso di Milvus, un motore di ricerca per similarità per vettori su scala massiva, con RDKit per costruire un sistema per la ricerca di similarità di strutture chimiche ad alte prestazioni.
Rispetto ai metodi tradizionali, Milvus offre una velocità di ricerca più elevata e una copertura più ampia. Elaborando le impronte chimiche, Milvus può eseguire ricerca di sottostrutture, ricerca di similarità e ricerca esatta nelle librerie di strutture chimiche per scoprire farmaci potenzialmente disponibili.
Panoramica del sistema
Il sistema utilizza RDKit per generare impronte chimiche e Milvus per eseguire la ricerca di similarità di strutture chimiche. Consulta https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/mols_search/README.md per saperne di più sul sistema.
Panoramica del sistema
1. Generazione di impronte chimiche
Le impronte chimiche sono solitamente utilizzate per la ricerca di sottostrutture e la ricerca di similarità. L'immagine seguente mostra un elenco sequenziale rappresentato da bit. Ogni cifra rappresenta un elemento, una coppia di atomi o gruppi funzionali. La struttura chimica è C1C(=O)NCO1.
Identificazione dei pattern molecolari.
Possiamo usare RDKit per generare impronte Morgan, che definiscono un raggio da un atomo specifico e calcolano il numero di strutture chimiche entro l'intervallo del raggio per generare un'impronta chimica. Specifica valori diversi per il raggio e i bit per acquisire le impronte chimiche di diverse strutture chimiche. Le strutture chimiche sono rappresentate in formato SMILES.
from rdkit import Chem
mols = Chem.MolFromSmiles(smiles)
mbfp = AllChem.GetMorganFingerprintAsBitVect(mols, radius=2, bits=512)
mvec = DataStructs.BitVectToFPSText(mbfp)
2. Ricerca di strutture chimiche
Possiamo quindi importare le impronte Morgan in Milvus per costruire un database di strutture chimiche. Con diverse impronte chimiche, Milvus può eseguire ricerca di sottostrutture, ricerca di similarità e ricerca esatta.
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)
Ricerca di sottostrutture
Verifica se una struttura chimica contiene un'altra struttura chimica.
Ricerca di similarità
Cerca strutture chimiche simili. La distanza di Tanimoto viene utilizzata come metrica per impostazione predefinita.
Ricerca esatta
Verifica se esiste una struttura chimica specificata. Questo tipo di ricerca richiede una corrispondenza esatta.
Calcolo delle impronte chimiche
La distanza di Tanimoto è spesso utilizzata come metrica per le impronte chimiche. In Milvus, la distanza di Jaccard corrisponde alla distanza di Tanimoto.
Tabella di calcolo delle impronte chimiche-1.
Sulla base dei parametri precedenti, il calcolo delle impronte chimiche può essere descritto come:
Tabella di calcolo delle impronte chimiche-2.
Possiamo vedere che 1- Jaccard = Tanimoto. Qui utilizziamo Jaccard in Milvus per calcolare l'impronta digitale chimica, che è in realtà coerente con la distanza di Tanimoto.
Demo del sistema
Per dimostrare meglio come funziona il sistema, abbiamo creato una demo che utilizza Milvus per cercare più di 90 milioni di impronte digitali chimiche. I dati utilizzati provengono da ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. L'interfaccia iniziale appare come segue:
Demo del sistema 1.
Possiamo cercare strutture chimiche specificate nel sistema e restituisce strutture chimiche simili:
Demo del sistema 2.
Conclusione
La ricerca di similarità è indispensabile in numerosi campi, come immagini e video. Per la scoperta di farmaci, la ricerca di similarità può essere applicata ai database di strutture chimiche per scoprire composti potenzialmente disponibili, che vengono poi convertiti in elementi iniziali per la sintesi pratica e i test point-of-care. Milvus, come motore di ricerca di similarità open-source per vettori di caratteristiche su scala massiva, è costruito con un'architettura di calcolo eterogenea per la migliore efficienza dei costi. Le ricerche su vettori su scala di miliardi richiedono solo millisecondi con risorse di calcolo minime. Pertanto, Milvus può aiutare a implementare una ricerca di strutture chimiche accurata e veloce in campi come la biologia e la chimica.
Puoi accedere alla demo visitando http://40.117.75.127:8002/, e non dimenticare di fare anche una visita al nostro GitHub https://github.com/milvus-io/milvus per saperne di più!
Continua a leggere

Why Teams Are Migrating from Weaviate to Zilliz Cloud — and How to Do It Seamlessly
Explore how Milvus scales for large datasets and complex queries with advanced features, and discover how to migrate from Weaviate to Zilliz Cloud.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.



