Introduzione
Introduzione
La scoperta di farmaci, in quanto fonte di innovazione medica, è una parte importante della ricerca e dello sviluppo di nuovi farmaci. La scoperta dei farmaci avviene attraverso la selezione e la conferma dei bersagli. Quando vengono scoperti frammenti o composti guida, i composti simili vengono solitamente ricercati in biblioteche di composti interne o commerciali per scoprire la relazione struttura-attività (SAR), la disponibilità dei composti, valutando così il potenziale dei composti guida da ottimizzare in composti candidati.
Per scoprire i composti disponibili nello spazio dei frammenti da librerie di composti su scala miliardaria, l'impronta digitale 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 miliardaria. Inoltre, alcuni composti potenziali possono andare persi nel processo. In questo articolo si parla dell'utilizzo di Milvus, un motore di ricerca di similarità per vettori su scala massiva, con RDKit per costruire un sistema di ricerca di similarità della struttura chimica ad alte prestazioni.
Rispetto ai metodi tradizionali, Milvus ha una velocità di ricerca maggiore e una copertura più ampia. Elaborando le impronte digitali chimiche, Milvus è in grado di eseguire la ricerca di sottostrutture, la ricerca di similarità e la ricerca esatta nelle librerie di strutture chimiche per scoprire farmaci potenzialmente disponibili.
Panoramica del sistema
Il sistema utilizza RDKit per generare le impronte chimiche e Milvus per eseguire la ricerca di similarità delle strutture chimiche. Per saperne di più sul sistema, consultare il sito https://github.com/milvus-io/bootcamp/tree/master/solutions/molecular_similarity_search.
1-sistema-overview.png
1. Generazione delle impronte digitali chimiche
Le impronte digitali chimiche sono solitamente utilizzate per la ricerca di sottostrutture e per la ricerca di similarità . L'immagine seguente mostra un elenco sequenziale rappresentato da bit. Ogni cifra rappresenta un elemento, una coppia di atomi o un gruppo funzionale. La struttura chimica è C1C(=O)NCO1
.
2-identificare-modelli-molecole.png
Possiamo usare RDKit per generare le impronte digitali di Morgan, che definisce un raggio da un atomo specifico e calcola il numero di strutture chimiche nell'intervallo del raggio per generare un'impronta chimica. Specificare 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 delle strutture chimiche
Possiamo quindi importare le impronte digitali di Morgan in Milvus per costruire un database di strutture chimiche. Con le diverse impronte chimiche, Milvus può eseguire la ricerca per sottostruttura, la ricerca per similarità e la 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 per sottostruttura
Verifica se una struttura chimica contiene un'altra struttura chimica.
Ricerca per somiglianza
Cerca strutture chimiche simili. Per impostazione predefinita, viene utilizzata la distanza di Tanimoto come metrica.
Ricerca esatta
Verifica l'esistenza di 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.
3-computing-chem-fingerprings-table-1.png
Sulla base dei parametri precedenti, il calcolo delle impronte chimiche può essere descritto come segue:
4-computing-chem-fingerprings-table-2.png
Possiamo vedere che 1- Jaccard = Tanimoto
. Qui utilizziamo Jaccard in Milvus per calcolare l'impronta chimica, che in realtà è coerente con la distanza di Tanimoto.
Dimostrazione del sistema
Per dimostrare meglio il funzionamento del sistema, abbiamo realizzato una demo che utilizza Milvus per cercare più di 90 milioni di impronte chimiche. I dati utilizzati provengono da ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. L'interfaccia iniziale si presenta come segue:
5-sistema-demo-1.jpg
È possibile cercare strutture chimiche specificate nel sistema e restituire strutture chimiche simili:
6-sistema-demo-2.gif
Conclusione
La ricerca per similarità è indispensabile in diversi campi, come le immagini e i video. Per la scoperta di farmaci, la ricerca per similarità può essere applicata ai database delle strutture chimiche per scoprire composti potenzialmente disponibili, che vengono poi convertiti in semi 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 massiccia, è costruito con un'architettura di calcolo eterogenea per la migliore efficienza dei costi. Le ricerche su vettori di dimensioni miliardarie richiedono solo millisecondi con risorse di calcolo minime. Milvus può quindi contribuire a implementare una ricerca accurata e veloce di strutture chimiche in campi come la biologia e la chimica.
È possibile accedere alla demo visitando il sito http://40.117.75.127:8002/, e non dimenticate di visitare anche il nostro sito GitHub https://github.com/milvus-io/milvus per saperne di più!
- Panoramica del sistema
- 1. Generazione delle impronte digitali chimiche
- 2. Ricerca delle strutture chimiche
- Calcolo delle impronte chimiche
- Dimostrazione del sistema
- Conclusione
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