Motor
Hecho para consultar la biología a escala de terabytes
BioQ trabaja sobre 5.74 mil millones de proteínas metagenómicas y 149 millones de registros de UniProt sin cargarlos en una base de datos. Estas son las técnicas que lo hacen posible, con las cifras que medimos.
La mayoría de las herramientas buscan lo que está registrado. BioQ busca lo que cumple una condición.
Los portales y las herramientas tipo BLAST responden a «muéstrame X» y «qué se parece a X». Las preguntas de descubrimiento son condiciones que cruzan conjuntos de datos, así que el motor combina sus capas por ti.
Muéstrame UniProt P04637
Secuencias parecidas a la mía
Proteínas de muestras de suelo
Ensamblajes que contienen la proteína A pero no la B
Grandes familias de proteínas del suelo sin dominio conocido
Todas las bases de datos que conocen este ID, y todas las que nunca lo buscaron
Lo que cuesta hacerlo por tu cuenta
Seis preguntas reales, cronometradas de las dos formas. Los tiempos de descarga usan velocidades de transferencia que medimos desde los archivos públicos; tu conexión puede variar.
Las barras usan una escala logarítmica de 1 milisegundo a 10 horas.
Cinco capas entre tú y 1.15 TB
Donde trabajas
Las mismas respuestas en todas partesPasarela
Quién puede preguntar y cuántoMotor
20 de 22 capas activasÍndices propios
≈107 GB, verificados contra la fuenteFuentes públicas
Se leen in situ, nunca se copian enterasSeis decisiones de indexación que lo hacen rápido
El footer del propio archivo es el índice
1.11 TB de parquet ya guardan los ID mínimo y máximo de sus 46 303 row groups. Ese footer de 827 MB se convierte en un índice de 2 MB.
Un formato pensado para muchos lectores
128.7 millones de secuencias representativas reescritas en un almacén con acceso aleatorio: cada búsqueda mueve 46 KB en lugar de hasta 242 MB.
Acceso aleatorio dentro de gzip
Un gzip normal hay que descomprimirlo desde el principio. Reescrito como BGZF con un índice de bloques, cualquier coordenada queda a un solo acceso.
Un bloque por pregunta
Un gzip de 26 GB sin acceso aleatorio pasó a ser 5773 bloques independientes, sin perder ningún registro y con un índice de 404 KB.
En ambos sentidos, bien compactados
Índices Pfam proteína→dominio y dominio→proteína sobre 4.62 mil millones de pares, recompactados de 66 GB a 18 GB.
Índices escritos junto con los datos
Un índice disperso añadido después tardó más de una hora; escrito durante la construcción no cuesta nada. 102 074 archivos pequeños empaquetados en cuatro.
Búsqueda de homología con memoria
MMseqs2 con un índice de k-mers precalculado. Cada resultado se guarda en caché bajo una huella de la secuencia, los parámetros y la versión de la base de datos, así que una repetición vuelve al instante y sigue indicando cuándo se calculó.
primera búsqueda por internet
0.04 sla misma búsqueda otra vez
Controles positivos
| 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% |
Por qué indexamos con criterio
Un índice de k-mers ocupa 20–46× el tamaño de su base de datos. Swiss-Prot (575 748 secuencias) ya está activo; los corpus más grandes se están indexando.
Una pregunta, todas las capas, respuestas honestas
/whereis consulta nueve capas en paralelo, cada una con su propio límite de tiempo, e informa de lo que hizo realmente cada una. Por internet responde en 0.12–0.48 s.
GET /api/v1/whereis?id=MGYP000000149140foundToda afirmación requiere evidencia independiente
Una asociación necesita al menos tres ensamblajes de muestreos distintos. Cada respuesta lleva su veredicto.
Sin universo no hay ratio
El mismo solapamiento da 1.000 o 212.5 según el universo. El motor se niega a adivinarlo.
Más rápido bajo carga
En el almacén con acceso aleatorio, la latencia mediana mejora a medida que sube la concurrencia, sin ningún fallo.
Consultas por segundo
Latencia mediana
Antes de servir, el motor debe responder cinco preguntas reales
- KRAS: el linaje más dependiente es el páncreas
- La interacción TP53–MDM2 obtiene una puntuación de al menos 700
- RefSeq devuelve las bases de la espícula del SARS-CoV-2
- Una búsqueda de hemoglobina encuentra su homólogo
- Un control negativo demuestra la ausencia
Respuestas erróneas silenciosas que encontramos, medimos y eliminamos por diseño
Una búsqueda por ventanas pasó por alto 395 688 secuencias y respondió «no encontrado».
Ahora se revisan todos los row groups; la prueba de regresión pasa 4 de 4.
Con 2 de 19 shards de TrEMBL cargados, el 89.2 % de los registros habría parecido ausente.
Se informa la cobertura; la ausencia nunca se da por supuesta.
Un error off-by-one desplazó una fila los dominios de cada proteína mientras todos los totales cuadraban.
Los procesos de construcción se autoverifican; los lectores comprueban las longitudes al cargar.
Un verificador registró «coincide» cuando ambos lados estaban vacíos.
Los verificadores deben encontrar algo antes de comparar.
Un enriquecimiento real de 212.5× se informó como 1.000.
Ningún ratio si no se declara el universo.
Los «residuos» de AlphaFold eran recuentos de átomos, 7.8× demasiado altos.
Reconstruido a partir de los registros Cα; pasan 4 de 4 controles.
Cinco reglas que cumple cada capa
- Procedencia en cada respuesta.
- Un índice se verifica contra su fuente, nunca contra sí mismo.
- Una carga parcial responde 503 con un motivo, nunca un «ninguno» silencioso.
- Cada construcción comprueba sus totales.
- Nada está terminado sin un control positivo.
La batería de pruebas detecta 13 de 13 contratos rotos a propósito.
Lo próximo: búsqueda semántica con modelos de lenguaje de proteínas
Generamos embeddings de las 575 748 proteínas de Swiss-Prot con ESM-2 (650M) en 47.6 minutos en una GPU y los comparamos con MMseqs2 en homólogos lejanos.
Pares que MMseqs2 no puede alinear
Pares que MMseqs2 puede alinear
Se complementan, así que el plan es MMseqs2 primero y después reordenación con ESM-2. Aún no está activo.
Mira cómo responde a tu pregunta
Las cuentas gratuitas tienen el motor completo: todas las capas, el agente y la API.