🚀 Testen Sie Zilliz Cloud, die vollständig verwaltete Milvus, kostenlos – erleben Sie 10x schnellere Leistung! Jetzt testen>>

milvus-logo
LFAI
  • Home
  • Blog
  • DNA-Sequenz-Klassifizierung auf der Grundlage von Milvus

DNA-Sequenz-Klassifizierung auf der Grundlage von Milvus

  • Scenarios
September 06, 2021
Jael Gu

Autorin: Mengjia Gu, Dateningenieurin bei Zilliz, schloss ihr Studium an der McGill University mit einem Master in Informationswissenschaften ab. Ihre Interessen umfassen KI-Anwendungen und Ähnlichkeitssuche mit Vektordatenbanken. Als Mitglied der Community des Open-Source-Projekts Milvus hat sie verschiedene Lösungen wie ein Empfehlungssystem und ein DNA-Sequenz-Klassifizierungsmodell entwickelt und verbessert. Sie genießt Herausforderungen und gibt niemals auf!

Die DNA-Sequenz ist ein beliebtes Konzept sowohl in der akademischen Forschung als auch bei praktischen Anwendungen wie der Rückverfolgbarkeit von Genen, der Identifizierung von Arten und der Diagnose von Krankheiten. Während alle Branchen nach einer intelligenteren und effizienteren Forschungsmethode suchen, hat die künstliche Intelligenz vor allem im biologischen und medizinischen Bereich viel Aufmerksamkeit auf sich gezogen. Immer mehr Wissenschaftler und Forscher leisten einen Beitrag zum maschinellen Lernen und zum Deep Learning in der Bioinformatik. Um experimentelle Ergebnisse überzeugender zu machen, ist eine gängige Option die Vergrößerung der Stichprobe. Die Zusammenarbeit mit Big Data in der Genomik bringt auch in der Realität mehr Möglichkeiten für Anwendungsfälle. Das traditionelle Sequenzalignment hat jedoch Einschränkungen, die es für große Datenmengen ungeeignet machen. Um in der Realität weniger Kompromisse eingehen zu müssen, ist die Vektorisierung eine gute Wahl für einen großen Datensatz von DNA-Sequenzen.

Die Open-Source-Vektordatenbank Milvus ist für große Datenmengen geeignet. Sie ist in der Lage, Vektoren von Nukleinsäuresequenzen zu speichern und eine hocheffiziente Abfrage durchzuführen. Sie kann auch dazu beitragen, die Kosten für Produktion und Forschung zu senken. Das auf Milvus basierende System zur Klassifizierung von DNA-Sequenzen benötigt nur Millisekunden, um eine Genklassifizierung durchzuführen. Außerdem weist es eine höhere Genauigkeit auf als andere gängige Klassifizierungsverfahren des maschinellen Lernens.

Ein Gen, das genetische Informationen kodiert, besteht aus einem kleinen Abschnitt der DNA-Sequenz, die aus 4 Nukleotidbasen [A, C, G, T] besteht. Im menschlichen Genom gibt es etwa 30.000 Gene, fast 3 Milliarden DNA-Basenpaare, und jedes Basenpaar hat 2 entsprechende Basen. Um verschiedene Verwendungszwecke zu unterstützen, können DNA-Sequenzen in verschiedene Kategorien eingeteilt werden. Um die Kosten zu senken und die Nutzung von Daten mit langen DNA-Sequenzen zu erleichtern, wird k-mer zur Datenvorverarbeitung eingeführt. Dadurch werden die DNA-Sequenzdaten dem Klartext ähnlicher. Darüber hinaus können vektorisierte Daten die Berechnungen bei der Datenanalyse oder beim maschinellen Lernen beschleunigen.

1.png 1.png

k-mer

Die k-mer-Methode wird häufig bei der Vorverarbeitung von DNA-Sequenzen verwendet. Sie extrahiert von jeder Base der ursprünglichen Sequenz einen kleinen Abschnitt der Länge k und wandelt so eine lange Sequenz der Länge s in (s-k+1) kurze Sequenzen der Länge k um. Die Anpassung des Wertes von k verbessert die Leistung des Modells. Listen kurzer Sequenzen sind einfacher für das Lesen der Daten, die Merkmalsextraktion und die Vektorisierung.

Vektorisierung

DNA-Sequenzen werden in Form von Text vektorisiert. Eine durch k-mer transformierte Sequenz wird zu einer Liste kurzer Sequenzen, die wie eine Liste einzelner Wörter in einem Satz aussieht. Daher sollten die meisten Modelle zur Verarbeitung natürlicher Sprache auch für DNA-Sequenzdaten funktionieren. Für das Modelltraining, die Merkmalsextraktion und die Kodierung können ähnliche Methoden angewendet werden. Da jedes Modell seine eigenen Vor- und Nachteile hat, hängt die Auswahl der Modelle von den Merkmalen der Daten und dem Zweck der Forschung ab. CountVectorizer zum Beispiel, ein Bag-of-Words-Modell, implementiert die Merkmalsextraktion durch einfache Tokenisierung. Es setzt keine Begrenzung der Datenlänge, aber das zurückgegebene Ergebnis ist im Hinblick auf den Ähnlichkeitsvergleich weniger offensichtlich.

Milvus kann unstrukturierte Daten problemlos verwalten und die ähnlichsten Ergebnisse unter Billionen von Vektoren innerhalb einer durchschnittlichen Verzögerung von Millisekunden abrufen. Die Ähnlichkeitssuche basiert auf dem ANN-Suchalgorithmus (Approximate Nearest Neighbor). Diese Highlights machen Milvus zu einer großartigen Option für die Verwaltung von Vektoren von DNA-Sequenzen und fördern somit die Entwicklung und Anwendungen der Bioinformatik.

Hier ist eine Demo, die zeigt, wie man ein DNA-Sequenz-Klassifizierungssystem mit Milvus erstellt. Der Versuchsdatensatz umfasst 3 Organismen und 7 Genfamilien. Alle Daten werden mit Hilfe von k-mers in Listen von kurzen Sequenzen umgewandelt. Mit einem vortrainierten CountVectorizer-Modell kodiert das System dann Sequenzdaten in Vektoren. Das folgende Flussdiagramm zeigt die Struktur des Systems und die Prozesse des Einfügens und Suchens.

1.png 1.png

Probieren Sie diese Demo im Milvus-Bootcamp aus.

In Milvus erstellt das System eine Sammlung und fügt entsprechende Vektoren von DNA-Sequenzen in die Sammlung (oder Partition, falls aktiviert) ein. Bei einer Abfrage gibt Milvus die Abstände zwischen dem Vektor der eingegebenen DNA-Sequenz und den ähnlichsten Ergebnissen in der Datenbank zurück. Die Klasse der Eingabesequenz und die Ähnlichkeit zwischen den DNA-Sequenzen kann durch die Vektorabstände in den Ergebnissen bestimmt werden.

# 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

Klassifizierung von DNA-SequenzenDie Suche nach den ähnlichsten DNA-Sequenzen in Milvus kann auf die Genfamilie einer unbekannten Probe hindeuten und somit Aufschluss über ihre mögliche Funktionalität geben. Wenn eine Sequenz als GPCRs klassifiziert wird, dann hat sie wahrscheinlich Einfluss auf Körperfunktionen. In dieser Demo hat Milvus das System erfolgreich in die Lage versetzt, die Genfamilien der menschlichen DNA-Sequenzen zu identifizieren, mit denen gesucht wurde.

3.png 3.png 4.png4.png

Genetische Ähnlichkeit

Die durchschnittliche DNA-Sequenz-Ähnlichkeit zwischen Organismen zeigt, wie ähnlich sich ihre Genome sind. Die Demo sucht in den menschlichen Daten nach den ähnlichsten DNA-Sequenzen wie die von Schimpansen und Hunden. Dann berechnet und vergleicht sie die durchschnittlichen inneren Produktabstände (0,97 für Schimpansen und 0,70 für Hunde), was beweist, dass Schimpansen mehr ähnliche Gene mit dem Menschen teilen als Hunde. Mit komplexeren Daten und einem komplexeren Systemdesign ist Milvus in der Lage, die Genforschung auch auf höherer Ebene zu unterstützen.

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

Leistung

In der Demo wird das Klassifizierungsmodell mit 80 % der menschlichen Beispieldaten (insgesamt 3629) trainiert und die restlichen Daten als Testdaten verwendet. Sie vergleicht die Leistung des DNA-Sequenz-Klassifizierungsmodells, das Milvus verwendet, mit dem Modell, das auf Mysql und 5 gängigen Machine-Learning-Klassifizierern basiert. Das auf Milvus basierende Modell übertrifft seine Gegenstücke in der Genauigkeit.

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

Mit der Entwicklung der Big-Data-Technologie wird die Vektorisierung von DNA-Sequenzen eine immer wichtigere Rolle in der genetischen Forschung und Praxis spielen. Kombiniert mit professionellem Wissen in der Bioinformatik können verwandte Studien weiter von der Einbeziehung der DNA-Sequenzvektorisierung profitieren. Daher kann Milvus in der Praxis bessere Ergebnisse liefern. Je nach den verschiedenen Szenarien und Bedürfnissen der Benutzer bieten die Ähnlichkeitssuche und die Abstandsberechnung mit Milvus ein großes Potenzial und viele Möglichkeiten.

  • Untersuchung unbekannter Sequenzen: Nach Ansicht einiger Forscher kann die Vektorisierung DNA-Sequenzdaten komprimieren. Gleichzeitig erfordert sie weniger Aufwand, um Struktur, Funktion und Evolution unbekannter DNA-Sequenzen zu untersuchen. Milvus kann eine große Anzahl von DNA-Sequenzvektoren speichern und abrufen, ohne an Genauigkeit zu verlieren.
  • Geräte anpassen: Begrenzt durch traditionelle Algorithmen des Sequenzalignments, kann die Ähnlichkeitssuche kaum von der Verbesserung der Geräte(CPU/GPU) profitieren. Milvus, das sowohl reguläre CPU-Berechnungen als auch GPU-Beschleunigung unterstützt, löst dieses Problem mit dem Algorithmus der nächsten Nachbarn.
  • Erkennung von Viren und Rückverfolgung ihrer Herkunft: Wissenschaftler haben Genomsequenzen verglichen und berichtet, dass das COVID19-Virus, das wahrscheinlich von Fledermäusen stammt, zu SARS-COV gehört. Auf der Grundlage dieser Schlussfolgerung können die Forscher die Stichprobengröße erweitern, um weitere Beweise und Muster zu finden.
  • Krankheiten diagnostizieren: In der Klinik könnten Ärzte DNA-Sequenzen zwischen Patienten und Gesunden vergleichen, um krankheitsverursachende Genvarianten zu identifizieren. Es ist möglich, Merkmale zu extrahieren und diese Daten mit geeigneten Algorithmen zu kodieren. Milvus ist in der Lage, Abstände zwischen Vektoren zu ermitteln, die mit Krankheitsdaten in Verbindung gebracht werden können. Neben der Unterstützung der Krankheitsdiagnose kann diese Anwendung auch die Erforschung gezielter Therapien inspirieren.

Milvus ist ein leistungsstarkes Tool, das eine Vielzahl von Anwendungen für künstliche Intelligenz und Vektorähnlichkeitssuche unterstützt. Wenn Sie mehr über das Projekt erfahren möchten, lesen Sie die folgenden Ressourcen:

  • Lesen Sie unseren Blog.
  • Interagieren Sie mit unserer Open-Source-Community auf Slack.
  • Nutzen Sie die beliebteste Vektordatenbank der Welt auf GitHub oder tragen Sie zu ihr bei.
  • Testen und implementieren Sie KI-Anwendungen schnell mit unserem neuen 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

    Weiterlesen