Engine
Gebaut, um Biologie im Terabyte-Maßstab abzufragen
BioQ beantwortet Fragen über 5,74 Milliarden metagenomische Proteine und 149 Millionen UniProt-Datensätze, ohne sie in eine Datenbank zu laden. Hier sind die Techniken dahinter, mit den Zahlen, die wir gemessen haben.
Die meisten Tools schlagen nach, was registriert ist. BioQ fragt nach dem, was eine Bedingung erfüllt.
Portale und BLAST-artige Tools beantworten „zeig mir X“ und „was ähnelt X“. Forschungsfragen sind Bedingungen über mehrere Datenbestände hinweg, deshalb verknüpft die Engine ihre Ebenen für Sie.
Zeig mir UniProt P04637
Sequenzen, die meiner ähneln
Proteine aus Bodenproben
Assemblies mit Protein A, aber ohne Protein B
Große Proteinfamilien aus dem Boden ohne bekannte Domäne
Jede Datenbank, die diese ID kennt, und jede, die nie nachgesehen hat
Der Aufwand, es selbst zu machen
Sechs echte Fragen, auf beiden Wegen gemessen. Die Downloadzeiten beruhen auf Übertragungsraten, die wir bei den öffentlichen Archiven gemessen haben; Ihre Verbindung kann abweichen.
Die Balken nutzen eine logarithmische Skala von 1 Millisekunde bis 10 Stunden.
Fünf Ebenen zwischen Ihnen und 1,15 TB
Wo Sie arbeiten
Überall dieselben AntwortenGateway
Wer fragen darf und wie vielEngine
20 von 22 Ebenen liveEigene Indizes
≈107 GB, gegen die Quelle geprüftÖffentliche Quellen
Vor Ort gelesen, nie komplett kopiertSechs Indexierungsentscheidungen, die es schnell machen
Der Footer der Datei ist der Index
1,11 TB parquet speichern bereits minimale und maximale IDs für alle 46.303 Row Groups. Aus dem 827-MB-Footer wird ein 2-MB-Index.
Ein Layout für viele Leser
128,7 Mio. repräsentative Sequenzen, neu geschrieben in einen Speicher mit Direktzugriff: Jeder Abruf bewegt 46 KB statt bis zu 242 MB.
Direktzugriff in gzip
Normales gzip muss von Anfang an entpackt werden. Als BGZF mit Blockindex neu geschrieben, liegt jede Koordinate nur einen Seek entfernt.
Ein Block pro Frage
Ein 26-GB-gzip ohne Direktzugriff wurde zu 5.773 unabhängigen Blöcken, ohne einen einzigen verlorenen Datensatz und mit einem 404-KB-Index.
Beide Richtungen, dicht gepackt
Pfam-Indizes Protein→Domäne und Domäne→Protein über 4,62 Milliarden Paare, von 66 GB auf 18 GB neu gepackt.
Indizes zusammen mit den Daten geschrieben
Ein nachträglich angebauter Sparse-Index brauchte über eine Stunde; während des Builds geschrieben, kostet er nichts. 102.074 kleine Dateien in vier gepackt.
Homologiesuche mit Gedächtnis
MMseqs2 mit vorab gebautem k-mer-Index. Jedes Ergebnis wird unter einem Fingerabdruck aus Sequenz, Parametern und Datenbankversion zwischengespeichert, sodass eine Wiederholung sofort zurückkommt und trotzdem angibt, wann sie berechnet wurde.
erste Suche über das Internet
0.04 sdieselbe Suche erneut
Positivkontrollen
| Query | E-value | Identity |
|---|---|---|
| HIV reverse transcriptase | 1.3×10⁻¹³ | 36.7% |
| Human hemoglobin α | 1.1×10⁻¹¹ | 99.0% |
| E. coli β-lactamase | 2.6×10⁻³³ | 50.0% |
Warum wir gezielt indexieren
Ein k-mer-Index ist 20–46× so groß wie seine Datenbank. Swiss-Prot (575.748 Sequenzen) ist live; größere Korpora werden gerade indexiert.
Eine Frage, alle Ebenen, ehrliche Antworten
/whereis fragt neun Ebenen parallel ab, jede mit eigenem Zeitlimit, und meldet, was jede tatsächlich getan hat. Über das Internet antwortet der Endpunkt in 0,12–0,48 s.
GET /api/v1/whereis?id=MGYP000000149140foundAussagen brauchen unabhängige Belege
Eine Assoziation braucht mindestens drei Assemblies aus verschiedenen Probenahmen. Jede Antwort trägt ihre Einstufung.
Kein Verhältnis ohne Grundgesamtheit
Dieselbe Überlappung ergibt 1,000 oder 212,5, je nach Grundgesamtheit. Die Engine weigert sich, sie zu raten.
Schneller unter Last
Auf dem Speicher mit Direktzugriff verbessert sich die Median-Latenz mit steigender Parallelität, ohne einen einzigen Fehler.
Abfragen pro Sekunde
Median-Latenz
Bevor die Engine Anfragen bedient, muss sie fünf echte Fragen beantworten
- KRAS: am stärksten abhängige Lineage ist Pankreas
- Die Interaktion TP53–MDM2 erreicht einen Score von mindestens 700
- Spike-Basen von SARS-CoV-2 kommen aus RefSeq zurück
- Eine Hämoglobin-Suche findet ihr Homolog
- Eine Negativkontrolle belegt die Abwesenheit
Stille Falschantworten: gefunden, gemessen, konstruktiv ausgeschlossen
Eine fensterbasierte Suche übersah 395.688 Sequenzen und antwortete „nicht gefunden“.
Jetzt wird jede Row Group geprüft; der Regressionstest besteht 4 von 4.
Mit 2 von 19 geladenen TrEMBL-Shards wären 89,2 % der Datensätze scheinbar nicht vorhanden gewesen.
Die Abdeckung wird ausgewiesen; Abwesenheit wird nie angenommen.
Ein Off-by-one-Fehler verschob die Domänen jedes Proteins um eine Zeile, während alle Summen stimmten.
Builder prüfen sich selbst; Leser verifizieren beim Laden die Längen.
Ein Prüfer protokollierte „Übereinstimmung“, obwohl beide Seiten leer waren.
Prüfer müssen erst etwas finden, bevor sie vergleichen.
Eine echte Anreicherung von 212,5× wurde als 1,000 gemeldet.
Kein Verhältnis, solange die Grundgesamtheit nicht angegeben ist.
Die „Reste“ von AlphaFold waren Atomzahlen, 7,8× zu hoch.
Aus Cα-Einträgen neu aufgebaut; 4 von 4 Kontrollen bestanden.
Fünf Regeln für jede Ebene
- Herkunftsangabe bei jeder Antwort.
- Ein Index wird gegen seine Quelle geprüft, nie gegen sich selbst.
- Ist nur ein Teil geladen, kommt 503 mit Grund, nie ein stilles „keine“.
- Builds prüfen ihre Summen.
- Ohne Positivkontrolle nicht fertig.
Die Testsuite erkennt 13 von 13 absichtlich verletzten Verträgen.
Als Nächstes: semantische Suche mit Protein-Sprachmodellen
Wir haben alle 575.748 Swiss-Prot-Proteine in 47,6 Minuten auf einer GPU mit ESM-2 (650M) eingebettet und bei entfernten Homologen mit MMseqs2 verglichen.
Paare, die MMseqs2 nicht alignieren kann
Paare, die MMseqs2 alignieren kann
Beide ergänzen sich, daher lautet der Plan: zuerst MMseqs2, dann Re-Ranking mit ESM-2. Noch nicht live.
Sehen Sie, wie BioQ Ihre Frage beantwortet
Kostenlose Konten erhalten die volle Engine: alle Ebenen, den Agenten und die API.