🚀 Prova Zilliz Cloud, la versione completamente gestita di Milvus, gratuitamente—sperimenta prestazioni 10 volte più veloci! Prova Ora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Classificazione delle sequenze di DNA in base a Milvus

Classificazione delle sequenze di DNA in base a Milvus

  • Scenarios
September 06, 2021
Jael Gu

Autore: Mengjia Gu, ingegnere dei dati presso Zilliz, si è laureata presso la McGill University con un master in Scienze dell'informazione. I suoi interessi includono le applicazioni dell'intelligenza artificiale e la ricerca di similarità con i database vettoriali. Come membro della comunità del progetto open-source Milvus, ha fornito e migliorato diverse soluzioni, come il sistema di raccomandazione e il modello di classificazione delle sequenze di DNA. Le piacciono le sfide e non si arrende mai!

La sequenza del DNA è un concetto popolare sia nella ricerca accademica che nelle applicazioni pratiche, come la tracciabilità dei geni, l'identificazione delle specie e la diagnosi delle malattie. Mentre tutti i settori sono alla ricerca di un metodo di ricerca più intelligente ed efficiente, l'intelligenza artificiale ha attirato molta attenzione, soprattutto nel settore biologico e medico. Sempre più scienziati e ricercatori contribuiscono all'apprendimento automatico e all'apprendimento profondo in bioinformatica. Per rendere i risultati sperimentali più convincenti, un'opzione comune è quella di aumentare la dimensione del campione. La collaborazione con i big data nel campo della genomica offre ulteriori possibilità di utilizzo nella realtà. Tuttavia, l'allineamento tradizionale delle sequenze ha dei limiti che lo rendono inadatto a dati di grandi dimensioni. Per ridurre il compromesso, la vettorializzazione è una buona scelta per un grande insieme di sequenze di DNA.

Il database vettoriale open source Milvus è adatto a dati massicci. È in grado di memorizzare vettori di sequenze di acidi nucleici e di eseguire un recupero ad alta efficienza. Può anche contribuire a ridurre i costi di produzione o di ricerca. Il sistema di classificazione delle sequenze di DNA basato su Milvus richiede solo millisecondi per la classificazione dei geni. Inoltre, mostra un'accuratezza maggiore rispetto ad altri classificatori comuni nell'apprendimento automatico.

Un gene che codifica informazioni genetiche è costituito da una piccola sezione di sequenze di DNA, che consiste di 4 basi nucleotidiche [A, C, G, T]. Nel genoma umano ci sono circa 30.000 geni, quasi 3 miliardi di coppie di basi di DNA, e ogni coppia di basi ha 2 basi corrispondenti. Per supportare diversi usi, le sequenze di DNA possono essere classificate in varie categorie. Per ridurre i costi e facilitare l'uso dei dati di lunghe sequenze di DNA, è stato introdotto il k-mer nella preelaborazione dei dati. Nel frattempo, rende i dati delle sequenze di DNA più simili al testo normale. Inoltre, i dati vettoriali possono accelerare i calcoli nell'analisi dei dati o nell'apprendimento automatico.

1.png 1.png

k-mer

Il metodo k-mer è comunemente utilizzato nella preelaborazione delle sequenze di DNA. Estrae una piccola sezione di lunghezza k a partire da ogni base della sequenza originale, convertendo così una sequenza lunga di lunghezza s in (s-k+1) sequenze corte di lunghezza k. Regolando il valore di k si migliorano le prestazioni del modello. Gli elenchi di sequenze brevi sono più semplici per la lettura dei dati, l'estrazione delle caratteristiche e la vettorizzazione.

Vettorizzazione

Le sequenze di DNA vengono vettorizzate sotto forma di testo. Una sequenza trasformata da k-mer diventa un elenco di sequenze brevi, che assomiglia a un elenco di singole parole in una frase. Pertanto, la maggior parte dei modelli di elaborazione del linguaggio naturale dovrebbe funzionare anche per i dati delle sequenze di DNA. Metodologie simili possono essere applicate all'addestramento dei modelli, all'estrazione delle caratteristiche e alla codifica. Poiché ogni modello presenta vantaggi e svantaggi, la scelta dei modelli dipende dalle caratteristiche dei dati e dallo scopo della ricerca. Ad esempio, CountVectorizer, un modello di bag-of-words, implementa l'estrazione di caratteristiche attraverso una semplice tokenizzazione. Non pone limiti alla lunghezza dei dati, ma il risultato restituito è meno evidente in termini di confronto di similarità.

Milvus è in grado di gestire facilmente dati non strutturati e di richiamare i risultati più simili tra trilioni di vettori con un ritardo medio di millisecondi. La sua ricerca di similarità si basa sull'algoritmo di ricerca Approximate Nearest Neighbor (ANN). Queste caratteristiche rendono Milvus un'ottima opzione per la gestione di vettori di sequenze di DNA, promuovendo così lo sviluppo e le applicazioni della bioinformatica.

Ecco una demo che mostra come costruire un sistema di classificazione di sequenze di DNA con Milvus. Il set di dati sperimentali comprende 3 organismi e 7 famiglie di geni. Tutti i dati sono convertiti in elenchi di sequenze brevi da k-mers. Con un modello CountVectorizer pre-addestrato, il sistema codifica i dati di sequenza in vettori. Il diagramma di flusso sottostante illustra la struttura del sistema e i processi di inserimento e ricerca.

1.png 1.png

Provate questa demo al bootcamp di Milvus.

In Milvus, il sistema crea una collezione e inserisce i vettori corrispondenti di sequenze di DNA nella collezione (o nella partizione, se abilitata). Quando riceve una richiesta di interrogazione, Milvus restituisce le distanze tra il vettore della sequenza di DNA in ingresso e i risultati più simili presenti nel database. La classe della sequenza in ingresso e la somiglianza tra le sequenze di DNA possono essere determinate dalle distanze tra i vettori nei risultati.

# Insert vectors to Milvus collection (partition "human")
DNA_human = collection.insert([human_ids, human_vectors], partition_name='human')
# Search topK results (in partition "human") for test vectors
res = collection.search(test_vectors, "vector_field", search_params, limit=topK, partition_names=['human'])
for results in res:
    res_ids = results.ids # primary keys of topK results
    res_distances = results.distances # distances between topK results & search input

Classificazione delle sequenze di DNALa ricerca delle sequenze di DNA più simili in Milvus può indicare la famiglia di geni di un campione sconosciuto e quindi conoscere la sua possibile funzionalità. Se una sequenza è classificata come GPCRs, allora probabilmente ha un'influenza sulle funzioni del corpo. In questa dimostrazione, Milvus ha permesso al sistema di identificare con successo le famiglie geniche delle sequenze di DNA umano ricercate.

3.png 3.png 4.png4.png

Somiglianza genetica

La somiglianza media delle sequenze di DNA tra organismi illustra la vicinanza tra i loro genomi. La demo cerca nei dati umani le sequenze di DNA più simili a quelle dello scimpanzé e del cane. Quindi calcola e confronta le distanze medie del prodotto interno (0,97 per lo scimpanzé e 0,70 per il cane), dimostrando che lo scimpanzé condivide con l'uomo più geni simili di quelli del cane. Con una maggiore complessità dei dati e della progettazione del sistema, Milvus è in grado di supportare la ricerca genetica anche a un livello superiore.

search_params = {"metric_type": "IP", "params": {"nprobe": 20}}

Prestazioni

La demo addestra il modello di classificazione con l'80% di dati di campioni umani (3629 in totale) e utilizza i restanti come dati di prova. Il modello di classificazione delle sequenze di DNA che utilizza Milvus viene confrontato con quello basato su Mysql e con 5 popolari classificatori di apprendimento automatico. Il modello basato su Milvus supera le sue controparti in termini di accuratezza.

from sklearn.model_selection import train_test_split
X, y = human_sequence_kmers, human_labels
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

1.png 1.png

Con lo sviluppo della tecnologia dei big data, la vettorizzazione della sequenza di DNA svolgerà un ruolo sempre più importante nella ricerca e nella pratica genetica. In combinazione con le conoscenze professionali in bioinformatica, gli studi correlati possono trarre ulteriori vantaggi dal coinvolgimento della vettorizzazione delle sequenze di DNA. Pertanto, Milvus può presentare risultati migliori nella pratica. In base ai diversi scenari e alle esigenze degli utenti, la ricerca di similarità e il calcolo della distanza alimentati da Milvus mostrano un grande potenziale e molte possibilità.

  • Studio di sequenze sconosciute: Secondo alcuni ricercatori, la vettorizzazione può comprimere i dati delle sequenze di DNA. Allo stesso tempo, richiede uno sforzo minore per studiare la struttura, la funzione e l'evoluzione di sequenze di DNA sconosciute. Milvus può memorizzare e recuperare un numero enorme di vettori di sequenze di DNA senza perdere in precisione.
  • Adattare i dispositivi: Limitata dai tradizionali algoritmi di allineamento delle sequenze, la ricerca di similarità può a malapena beneficiare del miglioramento dei dispositivi(CPU/GPU). Milvus, che supporta sia il normale calcolo della CPU che l'accelerazione della GPU, risolve questo problema con l'algoritmo di nearest neighbor approssimato.
  • Rilevamento di virus e tracciamento delle origini: Gli scienziati hanno confrontato le sequenze del genoma e hanno riferito che il virus COVID19, di probabile origine pipistrello, appartiene alla SARS-COV. Sulla base di questa conclusione, i ricercatori possono ampliare la dimensione del campione per ottenere ulteriori prove e modelli.
  • Diagnosticare le malattie: Dal punto di vista clinico, i medici potrebbero confrontare le sequenze di DNA tra pazienti e gruppi sani per identificare le varianti dei geni che causano le malattie. È possibile estrarre le caratteristiche e codificare questi dati utilizzando algoritmi adeguati. Milvus è in grado di restituire le distanze tra i vettori, che possono essere correlate ai dati delle malattie. Oltre ad aiutare la diagnosi delle malattie, questa applicazione può anche contribuire a ispirare lo studio di terapie mirate.

Milvus è un potente strumento in grado di alimentare una vasta gamma di applicazioni di intelligenza artificiale e di ricerca di similarità vettoriale. Per saperne di più sul progetto, consultate le seguenti risorse:

  • Leggete il nostro blog.
  • Interagire con la nostra comunità open-source su Slack.
  • Utilizzate o contribuite al database vettoriale più diffuso al mondo su GitHub.
  • Testate e distribuite rapidamente le applicazioni AI con il nostro nuovo bootcamp.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Continua a Leggere