Blog

Genómica de enfermedades raras: cómo trabajamos con laboratorios de investigación

9 min read
Sep 19, 2026

StackFire colabora con laboratorios de investigación. En el Track 1 del MVA Hackathon 2026 de Sage Bionetworks priorizamos un par heterocigoto compuesto en BUB1B, y dejamos por escrito lo que no quedó demostrado.

StackFire colabora con laboratorios de investigación: equipos que trabajan con datos clínicos y genómicos, donde el software tiene poco margen para la improvisación. Este artículo cuenta uno de esos trabajos.

Participamos en el Track 1 de Rare Disease, Real Kid: MVA Hackathon 2026, organizado por Sage Bionetworks, y nuestra propuesta obtuvo la puntuación más alta del track. Pero lo que vale la pena contar no es el marcador: es cómo se llegó al resultado y, sobre todo, qué quedó sin demostrar.

El nombre del reto no es decorativo. Detrás de los datos hay un niño real con aneuploidía variegada en mosaico (MVA), un trastorno raro de la segregación cromosómica que combina predisposición a cáncer infantil con restricción severa del crecimiento. La pregunta del Track 1 era concreta: dado el genoma del paciente, ¿cuáles son las variantes que explican su enfermedad?

El resultado

Nuestra hipótesis mejor clasificada es un par heterocigoto compuesto en BUB1B, el gen que codifica BubR1, pieza central del punto de control del huso mitótico:

  • c.2210T>G → p.Leu737Ter: un alelo truncante ya descrito como patogénico y asociado en ClinVar a síndrome MVA tipo 1.
  • c.3006T>G → p.Asn1002Lys: un alelo missense ultra-raro, observado una sola vez entre ~1.46 millones de alelos de gnomAD v4.1, sin homocigotos, y situado dentro del dominio catalítico de la cinasa BubR1.

Un alelo que rompe la proteína y otro que la altera en su dominio funcional: un modelo biológicamente coherente con la literatura previa de BUB1B y MVA.

Los dos alelos de BUB1B y dónde golpea cada uno La proteína BubR1 tiene 1050 aminoácidos y su dominio catalítico cinasa ocupa aproximadamente los residuos 750 a 1045. El alelo 1 introduce un codón de paro en el residuo 737, truncando la proteína justo antes del dominio. El alelo 2 cambia asparagina por lisina en el residuo 1002, dentro del dominio. ALELO 1 — heredado de un progenitor c.2210T>G · p.Leu737Ter · truncante · ClinVar: patogénico (MVA1) STOP en 737 se pierde todo el dominio catalítico ALELO 2 — heredado del otro progenitor c.3006T>G · p.Asn1002Lys · missense · 1 en ~1,46 M alelos (gnomAD v4.1) dominio cinasa BubR1 (750–1045) Asn→Lys en 1002 dentro del dominio · SIFT 0.000 · PolyPhen 0.997 · CADD 26.4 1 1050 aa Lo que NO demostramos El VCF no traía información de fase y no hubo datos de segregación parental: no pudimos probar de forma independiente que los dos alelos estén en trans, es decir, uno en cada copia del cromosoma.
Los dos alelos sobre la proteína BubR1. El primero introduce un codón de paro en el residuo 737 y se lleva por delante todo el dominio catalítico; el segundo cambia un aminoácido en el 1002, dentro de ese mismo dominio. El recuadro inferior marca lo que no quedó demostrado.

Qué ocurre dentro de la célula

BubR1 es parte del freno que impide que una célula se divida antes de que todos los cromosomas estén bien sujetos. Con ese freno debilitado, la división ocurre igual: un cromosoma se queda atrás y las células hijas heredan un número distinto. Repetido a lo largo del desarrollo, eso produce un cuerpo en mosaico, con poblaciones celulares de dotación cromosómica distinta.

Del alelo al fenotipo: por qué falla la segregación cromosómica Cadena mecanística: BubR1 con función reducida debilita el punto de control del huso mitótico; la célula entra en anafase sin que todos los cromosomas estén correctamente unidos; un cromosoma queda rezagado y las células hijas reciben un número cromosómico distinto. Eso es la aneuploidía en mosaico. 1. Dos alelos alterados 2. Punto de control débil 3. Cromosoma rezagado 4. Células hijas desiguales p.Leu737Ter p.Asn1002Lys BubR1 disfuncional no detiene la anafase queda atrás n+1 n−1 Cada división reparte mal los cromosomas: distintas células del cuerpo acaban con distinto número. Eso es la aneuploidía variegada en mosaico, y explica el riesgo de cáncer y la talla baja.
De los dos alelos al fenotipo: punto de control debilitado, cromosoma rezagado y células hijas con distinto número cromosómico.

Lo que también dijimos: los límites

El VCF entregado no contenía información de fase, y no había datos de segregación parental. Eso significa que no pudimos demostrar de forma independiente que ambos alelos están en trans, es decir, uno heredado de cada progenitor. Lo dejamos escrito como limitación abierta en el reporte, junto con la vía de validación que la resolvería.

Decirlo no debilitó la propuesta. La sostiene. Un resultado genómico que no declara lo que no probó no es un resultado, es una afirmación.

Cómo se llegó ahí

El callset tenía más de cinco millones de variantes. El trabajo fue reducirlo con criterio y no con fuerza bruta: partir del mecanismo de la enfermedad para priorizar el gen, extraer y controlar la calidad del locus, mapear al transcrito MANE de referencia, y exigir que cada candidato sobreviviera a evidencia convergente — consecuencia sobre el transcrito, bases de datos clínicas, frecuencia poblacional y dominio proteico.

De siete variantes heterocigotas con PASS en el locus, dos eran exónicas. Esas dos son la respuesta.

De 5 millones de variantes a un par de alelos Embudo de seis pasos: 5.012.204 variantes totales, 4.740.790 con filtro PASS, 14 en el locus BUB1B, 13 con PASS, 7 heterocigotas, 2 exónicas en el transcrito NM_001211.6, y finalmente 1 par heterocigoto compuesto. 5 012 204variantes en el genoma 4 740 790con filtro PASS 14en el locus BUB1B 7heterocigotas con PASS 2exónicas en NM_001211.6 1 parla hipótesis presentada bcftools view -f PASS bcftools view -r 15:40161069-40221123 bcftools view -i 'GT="het"' mapeo al transcrito MANE evidencia convergente calidad del llamado el gen que explica la enfermedad modelo autosómico recesivo ¿cambia la proteína? ClinVar · gnomAD · SIFT · PolyPhen · CADD · dominio Los bloques tienen el mismo tamaño a propósito: la reducción es de seis órdenes de magnitud y ninguna escala proporcional sería legible. Las cifras son el dato; el ancho no significa nada.
Cada paso del embudo corresponde a un filtro concreto del flujo, con el comando que lo aplica.

Los comandos

Todo el flujo vive en un Makefile, y cada objetivo corre dentro del contenedor. No hay pasos manuales que recordar ni notas sueltas: quien clone el repositorio ejecuta lo mismo que ejecutamos nosotros.

make build         # construye la imagen: Ubuntu 24.04 ARM64 + bcftools, samtools, bedtools
make check         # verifica que cada herramienta responda antes de tocar datos
make qc            # control de calidad del VCF completo
make bub1b         # extracción dirigida del locus
make bub1b-phase   # revisión de fase de los candidatos

1. Control de calidad: qué hay realmente en el archivo

Antes de buscar nada, saber qué se recibió. Las cifras salen de contar, no de confiar:

bcftools stats "${VCF}" > /results/qc/bcftools_stats.txt

bcftools view -H "${VCF}" | wc -l                          # total
bcftools view -H -f PASS "${VCF}" | wc -l                  # pasan el filtro
bcftools view -H -f PASS -i 'GT="het"' "${VCF}" | wc -l    # PASS y heterocigotas
Total variants:        5012204
PASS variants:         4740790
Heterozygous calls:    3113937
PASS heterozygous:     2913813

2. Extracción dirigida del locus

BUB1B ocupa chr15:40161069-40221123 en GRCh38. Tres filtros encadenados, cada uno indexado, y una tabla final que conserva genotipo, profundidad de lectura y calidad — los datos que permiten decidir si un candidato es real o ruido del secuenciador:

bcftools view -r 15:40161069-40221123 -Oz -o bub1b.all.vcf.gz "${VCF}"
bcftools index -f bub1b.all.vcf.gz

bcftools view -f PASS       -Oz -o bub1b.pass.vcf.gz     bub1b.all.vcf.gz
bcftools view -i 'GT="het"' -Oz -o bub1b.pass.het.vcf.gz bub1b.pass.vcf.gz

bcftools query \
    -f '%CHROM\t%POS\t%ID\t%REF\t%ALT\t%QUAL\t%FILTER[\t%GT\t%AD\t%DP\t%GQ]\n' \
    bub1b.pass.het.vcf.gz > bub1b.pass.het.tsv
All region variants:          14
PASS variants:                13
PASS heterozygous variants:   7

Catorce variantes. Siete candidatas. Dos exónicas. Ahí termina el filtrado automático y empieza la interpretación.

3. Anotación funcional

VEP corre sin red, contra una caché local, con las banderas que producen exactamente la evidencia que el reporte cita — consecuencia sobre el transcrito MANE, predicciones SIFT y PolyPhen, y frecuencias poblacionales:

vep --cache --offline --dir_cache /vep_data \
    --species homo_sapiens --assembly GRCh38 \
    --symbol --canonical --mane --biotype --numbers \
    --sift b --polyphen b \
    --af --af_gnomade --af_gnomadg --max_af \
    --clin_sig --fork 8 --no_stats

--offline no es una optimización: es la garantía de que ninguna coordenada del paciente sale de la máquina para resolverse contra un servicio externo.

4. La auditoría antes de publicar

El último comando del flujo no analiza nada. Revisa que el repositorio no contenga aquello que nunca debió entrar:

bash scripts/prepublish_audit.sh

Revisar a mano no es un control. Un script que falla es un control.

Privacidad por diseño, no como trámite

Todo el análisis corrió localmente, en un contenedor reproducible. El repositorio público contiene el método completo —Dockerfile, scripts, pipeline, documentación— y ningún dato genómico del paciente: ni VCF crudos, ni tablas derivadas a escala de genotipo, ni referencias descargadas. Hay incluso un script de auditoría que se corre antes de hacer público el repositorio, porque revisar a mano no es un control.

Cualquiera puede reproducir el método. Nadie obtiene los datos del niño. Esa separación era un requisito del reto, y también es exactamente como creemos que debe construirse software sobre datos clínicos.

Qué tiene que ver esto con nuestro trabajo

Colaborar con un laboratorio de investigación casi siempre plantea el mismo conjunto de exigencias: datos sensibles que no pueden circular, resultados de los que alguien va a depender, y la obligación de poder rastrear cómo se llegó a cada conclusión. La trazabilidad, el manejo de datos y las integraciones que no se caen no son requisitos que se añaden al final; son el trabajo.

Ese es el músculo que llevamos al hackathon. No improvisamos una incursión en genómica: es la misma disciplina que ejercemos a diario, aplicada a un problema más duro y con reloj.

Si trabajas en un laboratorio de investigación y esto te suena —análisis que tiene que ser reproducible meses después, datos que no pueden salir de casa, resultados que hay que poder defender ante quien los revise— es exactamente la conversación que nos interesa tener.

Gracias a Sage Bionetworks por organizarlo y por sostener el estándar de manejo de datos que el reto exigía.


Nota. Este trabajo es una hipótesis de investigación presentada a un hackathon y no es un informe diagnóstico clínico. La interpretación de variantes y la confirmación de fase heterocigota compuesta requieren validación clínica apropiada antes de cualquier uso médico. El método está disponible en github.com/ivillafuerte/mva-hackathon-2026.

Build something great.