Classificazione delle sequenze di DNA basata su Milvus
Autore: Mengjia Gu, data engineer presso Zilliz, si è laureata alla McGill University con un Master in Information Studies. I suoi interessi includono le applicazioni di AI e la ricerca di similarità con database vettoriali. Come membro della community del progetto open-source Milvus, ha fornito e migliorato varie soluzioni, come un sistema di raccomandazione e un modello di classificazione delle sequenze di DNA. Le piacciono le sfide e non si arrende mai!
Introduzione
La sequenza di DNA è un concetto popolare sia nella ricerca accademica sia nelle applicazioni pratiche, come la tracciabilità genetica, l’identificazione delle specie e la diagnosi delle malattie. Mentre tutti i settori desiderano un metodo di ricerca più intelligente ed efficiente, l’intelligenza artificiale ha attirato molta attenzione, soprattutto dall’ambito biologico e medico. Sempre più scienziati e ricercatori stanno contribuendo al machine learning e al deep learning nella bioinformatica. Per rendere i risultati sperimentali più convincenti, un’opzione comune è aumentare la dimensione del campione. Anche la collaborazione con i big data nella genomica porta maggiori possibilità di casi d’uso nella realtà. Tuttavia, l’allineamento tradizionale delle sequenze presenta limitazioni, che lo rendono inadatto a grandi quantità di dati. Per ridurre i compromessi nella realtà, la vettorizzazione è una buona scelta per un grande dataset di sequenze di DNA.
Il database vettoriale open source Milvus è adatto ai dati massivi. È in grado di archiviare vettori di sequenze di acidi nucleici ed 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 impiega solo millisecondi per effettuare la classificazione genetica. Inoltre, mostra un’accuratezza superiore rispetto ad altri classificatori comuni nel machine learning.
Elaborazione dei dati
Un gene che codifica informazioni genetiche è costituito da una piccola sezione di sequenze di DNA, composta da 4 basi nucleotidiche [A, C, G, T]. Nel genoma umano ci sono circa 30.000 geni, quasi 3 miliardi di coppie di basi del DNA, e ogni coppia di basi ha 2 basi corrispondenti. Per supportare usi diversi, le sequenze di DNA possono essere classificate in varie categorie. Per ridurre il costo e rendere più semplice l’uso dei dati di lunghe sequenze di DNA, k-mer viene introdotto nel preprocessing dei dati. Nel frattempo, rende i dati delle sequenze di DNA più simili al testo semplice. Inoltre, i dati vettorizzati possono accelerare il calcolo nell’analisi dei dati o nel machine learning.
Figura 1.
k-mer
Il metodo k-mer è comunemente utilizzato nel preprocessing delle sequenze di DNA. Estrae una piccola sezione di lunghezza k a partire da ciascuna base della sequenza originale, convertendo così una lunga sequenza di lunghezza s in (s-k+1) brevi sequenze di lunghezza k. Regolare il valore di k migliorerà le prestazioni del modello. Gli elenchi di brevi sequenze sono più semplici per la lettura dei dati, l’estrazione delle caratteristiche e la vettorizzazione.
Vettorizzazione
Le sequenze di DNA sono vettorizzate sotto forma di testo. Una sequenza trasformata tramite k-mer diventa un elenco di brevi sequenze, 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 del modello, all’estrazione delle caratteristiche e alla codifica. Poiché ogni modello ha i propri vantaggi e svantaggi, la selezione dei modelli dipende dalle caratteristiche dei dati e dallo scopo della ricerca. Ad esempio, CountVectorizer, un modello bag-of-words, implementa l’estrazione delle caratteristiche tramite una tokenizzazione semplice. Non impone limiti alla lunghezza dei dati, ma il risultato restituito è meno evidente in termini di confronto della similarità.
Demo di Milvus
Milvus può gestire facilmente dati non strutturati e 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). Questi punti di forza rendono Milvus un'ottima opzione per gestire 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 delle sequenze di DNA con Milvus. Il dataset sperimentale include 3 organismi e 7 famiglie geniche. Tutti i dati vengono convertiti in liste di brevi sequenze tramite k-mer. Con un modello CountVectorizer pre-addestrato, il sistema codifica poi i dati delle sequenze in vettori. Il diagramma di flusso qui sotto illustra la struttura del sistema e i processi di inserimento e ricerca.
Figura 2.
Prova questa demo su Milvus bootcamp.
In Milvus, il sistema crea una collection e inserisce nella collection (o nella partition, se abilitata) i vettori corrispondenti delle sequenze di DNA. Quando riceve una richiesta di query, Milvus restituisce le distanze tra il vettore della sequenza di DNA in input e i risultati più simili nel database. La classe della sequenza in input e la similarità tra sequenze di DNA possono essere determinate dalle distanze vettoriali 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 DNA La ricerca delle sequenze di DNA più simili in Milvus potrebbe indicare la famiglia genica di un campione sconosciuto, consentendo così di conoscere la sua possibile funzionalità. Se una sequenza viene classificata come GPCR, allora probabilmente ha un'influenza sulle funzioni corporee. In questa demo, Milvus ha consentito con successo al sistema di identificare le famiglie geniche delle sequenze di DNA umano utilizzate nella ricerca.
Figura 3.
Figura 4.
Similarità genetica
La similarità media delle sequenze di DNA tra organismi illustra quanto siano vicini i loro genomi. La demo cerca nei dati umani le sequenze di DNA più simili rispettivamente a quelle di scimpanzé e cane. Quindi calcola e confronta le distanze medie di prodotto interno (0,97 per lo scimpanzé e 0,70 per il cane), il che dimostra che lo scimpanzé condivide geni più simili con l'uomo rispetto al cane. Con dati e progettazione del sistema più complessi, Milvus è in grado di supportare la ricerca genetica anche a un livello più elevato.
search_params = {"metric_type": "IP", "params": {"nprobe": 20}}
Prestazioni
La demo addestra il modello di classificazione con l'80% dei dati di campioni umani (3629 in totale) e utilizza il resto come dati di test. Confronta le prestazioni del modello di classificazione delle sequenze di DNA che utilizza Milvus con quello basato su Mysql e 5 popolari classificatori di machine learning. Il modello basato su Milvus supera le sue controparti in 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)
Figura 5.
Ulteriori esplorazioni
Con lo sviluppo della tecnologia dei big data, la vettorizzazione della sequenza del DNA svolgerà un ruolo più importante nella ricerca e nella pratica genetica. In combinazione con le conoscenze professionali in bioinformatica, gli studi correlati possono trarre ulteriori benefici dal coinvolgimento della vettorizzazione della sequenza del DNA. Pertanto, Milvus può presentare risultati migliori nella pratica. In base a diversi scenari e alle esigenze degli utenti, la ricerca di similarità e il calcolo della distanza basati su Milvus mostrano un grande potenziale e molte possibilità.
- Studiare sequenze sconosciute: Secondo alcuni ricercatori, la vettorizzazione può comprimere i dati delle sequenze di DNA. Allo stesso tempo, richiede meno sforzi per studiare struttura, funzione ed evoluzione delle sequenze di DNA sconosciute. Milvus può archiviare e recuperare un numero enorme di vettori di sequenze di DNA senza perdere accuratezza.
- Adattare i dispositivi: Limitata dagli algoritmi tradizionali di allineamento delle sequenze, la ricerca di similarità può trarre a malapena beneficio dal miglioramento dei dispositivi (CPU/GPU). Milvus, che supporta sia il calcolo regolare su CPU sia l'accelerazione GPU, risolve questo problema con un algoritmo di vicini più prossimi approssimati.
- Rilevare virus e tracciarne le origini: Gli scienziati hanno confrontato sequenze genomiche e riportato che il virus COVID19, di probabile origine nei pipistrelli, appartiene a SARS-COV. Sulla base di questa conclusione, i ricercatori possono ampliare la dimensione del campione per ottenere più prove e schemi.
- Diagnosticare malattie: Clinicamente, i medici potrebbero confrontare le sequenze di DNA tra pazienti e un gruppo sano per identificare geni varianti che causano malattie. È possibile estrarre caratteristiche e codificare questi dati utilizzando algoritmi appropriati. Milvus è in grado di restituire distanze tra vettori, che possono essere correlate ai dati sulle malattie. Oltre ad assistere nella diagnosi delle malattie, questa applicazione può anche contribuire a ispirare lo studio della terapia mirata.
Scopri di più su Milvus
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, consulta le seguenti risorse:
Continua a leggere

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

Why Context Engineering Is Becoming the Full Stack of AI Agents
Discover how context engineering unifies prompts, RAG, and tools to build smarter, production-ready AI agents powered by Milvus.

1 Table = 1000 Words? Foundation Models for Tabular Data
TableGPT2 automates tabular data insights, overcoming schema variability, while Milvus accelerates vector search for efficient, scalable decision-making.



