Moteur
Conçu pour interroger la biologie à l’échelle du téraoctet
BioQ interroge 5,74 milliards de protéines métagénomiques et 149 millions d’enregistrements UniProt sans les charger dans une base de données. Voici les techniques qui le permettent, avec les chiffres que nous avons mesurés.
La plupart des outils retrouvent ce qui est enregistré. BioQ cherche ce qui remplit une condition.
Les portails et les outils de type BLAST répondent à « montre-moi X » et « qu’est-ce qui ressemble à X ». Les questions de découverte sont des conditions qui traversent plusieurs jeux de données : le moteur croise ses couches pour vous.
Montre-moi UniProt P04637
Séquences proches de la mienne
Protéines échantillonnées dans le sol
Assemblages qui contiennent la protéine A mais pas la B
Grandes familles de protéines du sol sans domaine connu
Toutes les bases qui connaissent cet ID, et toutes celles qui ne l’ont jamais cherché
Ce qu’il faut pour le faire soi-même
Six vraies questions, chronométrées dans les deux cas. Les temps de téléchargement reposent sur les débits que nous avons mesurés depuis les archives publiques ; votre connexion peut différer.
Les barres suivent une échelle logarithmique de 1 milliseconde à 10 heures.
Cinq couches entre vous et 1,15 TB
Là où vous travaillez
Les mêmes réponses partoutPasserelle
Qui peut interroger, et combienMoteur
20 couches sur 22 en ligneNos propres index
≈107 GB, vérifiés par rapport à la sourceSources publiques
Lues sur place, jamais copiées en entierSix choix d’indexation qui le rendent rapide
Le footer du fichier fait office d’index
1,11 TB de parquet stockent déjà les ID min et max des 46 303 row groups. Ce footer de 827 MB devient un index de 2 MB.
Une organisation pensée pour de nombreux lecteurs
128,7 millions de séquences représentatives réécrites dans un stockage à accès direct : chaque consultation transfère 46 KB, contre jusqu’à 242 MB.
Accès direct dans un fichier gzip
Un gzip classique doit être décompressé depuis le début. Réécrit en BGZF avec un index de blocs, chaque coordonnée s’atteint en un seul accès.
Un bloc par question
Un gzip de 26 GB sans accès direct est devenu 5 773 blocs indépendants, sans aucun enregistrement perdu et avec un index de 404 KB.
Dans les deux sens, compactés au plus juste
Index Pfam protéine→domaine et domaine→protéine sur 4,62 milliards de paires, recompactés de 66 GB à 18 GB.
Des index écrits avec les données
Un index épars ajouté après coup a pris plus d’une heure ; écrit pendant la construction, il ne coûte rien. 102 074 petits fichiers regroupés en quatre.
Une recherche d’homologie qui se souvient
MMseqs2 avec un index de k-mers précalculé. Chaque résultat est mis en cache sous une empreinte de la séquence, des paramètres et de la version de la base, si bien qu’une recherche répétée revient instantanément et indique toujours quand elle a été calculée.
première recherche via Internet
0.04 sla même recherche, relancée
Témoins positifs
| 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% |
Pourquoi nous indexons avec discernement
Un index de k-mers pèse 20–46× la taille de sa base. Swiss-Prot (575 748 séquences) est en ligne ; des corpus plus grands sont en cours d’indexation.
Une question, toutes les couches, des réponses honnêtes
/whereis interroge neuf couches en parallèle, chacune avec son propre délai maximal, et rapporte ce que chacune a réellement fait. Via Internet, il répond en 0,12–0,48 s.
GET /api/v1/whereis?id=MGYP000000149140foundUne affirmation exige des preuves indépendantes
Une association exige au moins trois assemblages issus de prélèvements différents. Chaque réponse porte son verdict.
Pas de ratio sans univers
Le même recouvrement vaut 1,000 ou 212,5 selon l’univers. Le moteur refuse de le deviner.
Plus rapide sous charge
Sur le stockage à accès direct, la latence médiane s’améliore à mesure que la concurrence augmente, sans aucun échec.
Requêtes par seconde
Latence médiane
Avant toute mise en service, le moteur doit répondre à cinq vraies questions
- KRAS : le lignage le plus dépendant est le pancréas
- L’interaction TP53–MDM2 obtient un score d’au moins 700
- Les bases du gène Spike du SARS-CoV-2 reviennent de RefSeq
- Une recherche d’hémoglobine trouve son homologue
- Un témoin négatif prouve l’absence
Erreurs silencieuses trouvées, mesurées et rendues impossibles
Une recherche par fenêtre a manqué 395 688 séquences et a répondu « non trouvé ».
Tous les row groups sont désormais vérifiés ; le test de non-régression passe 4 sur 4.
Avec 2 shards TrEMBL sur 19 chargés, 89,2 % des enregistrements auraient semblé absents.
La couverture est indiquée ; l’absence n’est jamais présumée.
Une erreur off-by-one a décalé d’une ligne les domaines de chaque protéine, alors que tous les totaux concordaient.
Chaque build s’autovérifie ; les lecteurs contrôlent les longueurs au chargement.
Un vérificateur a enregistré « concordance » alors que les deux côtés étaient vides.
Un vérificateur doit trouver quelque chose avant de comparer.
Un enrichissement réel de 212,5× a été rapporté comme 1,000.
Aucun ratio tant que l’univers n’est pas déclaré.
Les « résidus » d’AlphaFold étaient des nombres d’atomes, 7,8× trop élevés.
Reconstruit à partir des enregistrements Cα ; 4 témoins sur 4 passent.
Cinq règles que suit chaque couche
- Une provenance pour chaque réponse.
- Un index est vérifié par rapport à sa source, jamais par rapport à lui-même.
- Un chargement partiel répond 503 avec un motif, jamais un « aucun » silencieux.
- Chaque build vérifie ses totaux.
- Rien n’est terminé sans témoin positif.
La suite de tests détecte 13 contrats sur 13 délibérément rompus.
Prochaine étape : la recherche sémantique par modèles de langage protéique
Nous avons calculé les embeddings des 575 748 protéines de Swiss-Prot avec ESM-2 (650M) en 47,6 minutes sur un seul GPU, puis comparé le résultat à MMseqs2 sur des homologues distants.
Paires que MMseqs2 ne peut pas aligner
Paires que MMseqs2 peut aligner
Les deux sont complémentaires : le plan est MMseqs2 d’abord, puis un reclassement par ESM-2. Pas encore en ligne.
Voyez-le répondre à votre question
Les comptes gratuits accèdent au moteur complet : toutes les couches, l’agent et l’API.