Día 2 · Bloque A · 45 min

IA para cariotipo · práctica

YOLO11s entrenado por nosotros sobre el dataset de Kuo et al.
Jueves 4 de junio

Dra. Yalbi I. Balderas-Martínez
LABBIC · INER

Qué se hace en este bloque

Tras la panorámica, ahora ejecutamos un modelo concreto.

  • YOLO11s entrenado por nosotros sobre1 (detección + clasificación en un solo paso)
  • 24 clases citogenéticas (A1-A3, B4-B5, C6-C12, D13-D15, E16-E18, F19-F20, G21, G22, X, Y)
  • Inferencia sobre una metafase de muestra
  • Recorte detallado de un cromosoma y top-3 alternativas
  • Estadísticas + glosario de métricas (mAP, precisión, recall, IoU, confianza)

Nota

Los pesos se descargan de un GitHub Release público con verificación SHA-256 (huella única del archivo: si cambia un solo byte, la huella cambia) antes de cargarlos. Seguridad por diseño.

Qué es una CNN, sin matemáticas

Modelo entrenado para mapear imágenes a etiquetas.

  • Entrada: imagen completa de la metafase (no recortes pre-procesados)
  • Salida por cromosoma detectado: bounding box + clase (de las 24) + confianza (0-1)
  • Internamente YOLO combina detección (¿dónde está cada cromosoma?) y clasificación (¿cuál es?) en una sola red

Tres ideas a retener:

  • Aprende lo que vio en el entrenamiento.
  • La salida es una distribución, no una decisión.
  • El modelo no entiende lo que hace: solo reconoce patrones.

YOLO y sus términos · sin tecnicismos

Término Qué es
YOLO (You Only Look Once) Detector que en una sola pasada encuentra cada cromosoma y lo clasifica
Arquitectura El “diseño” de la red: cuántas capas y cómo se conectan (YOLO11s = versión pequeña y rápida)
Bounding box El rectángulo que marca dónde está cada cromosoma
Pre-entrenamiento Entrenar primero con muchas imágenes generales para “aprender a ver”
COCO Banco enorme de imágenes cotidianas etiquetadas, usado para pre-entrenar
Fine-tuning (ajuste fino) Re-entrenar ese modelo con nuestras imágenes (cromosomas) para especializarlo
Época Una pasada completa por todos los datos de entrenamiento (hicimos 30)
GPU (T4) Procesador que acelera el entrenamiento (Google Colab lo presta gratis)

Nota

mAP (mean Average Precision): precisión promedio de detección sobre las 24 clases. IoU (Intersection over Union): cuánto se solapan la caja predicha y la real. (El detalle de mAP@50 vs 50-95, en “Resultados”.)

El conjunto de datos

1An Open Dataset of Annotated Metaphase Cell Images

  • 5 000 imágenes de metafases
  • 24 clases: 22 autosomas (grupos A–G de Denver) + X, Y
  • Licencia abierta (Cell Image Library)

Para esta clase no descargamos las 5 000 imágenes: el modelo ya está entrenado. Usamos una sola metafase de muestra del dataset de Kuo (en el repo del curso) y corremos inferencia — tarda segundos.

Nota

Set de validación: imágenes que el modelo no vio al entrenar. Inferencia: usar el modelo ya entrenado para predecir.

El modelo

  • Arquitectura: YOLO11s (Ultralytics, 2024)
  • Pre-entrenado sobre COCO y fine-tuneado sobre Kuo 2023 (30 épocas en GPU T4)
  • Salida: bounding boxes con clase de cromosoma (de las 24) + confianza
  • Tamaño: ~18 MB · SHA-256 verificable
  • Métricas en val: mAP@50 = 0.989 · Precisión = 0.974 · Recall = 0.960

Nota

Pesos descargados de un GitHub Release público y verificados con SHA-256 antes de cargar — buena práctica de seguridad.

Estructura del notebook

Sección Qué hace
1. Setup Verificar GPU + instalar Ultralytics
2. Descargar + SHA Bajar pesos del Release + verificar integridad
3. Cargar modelo YOLO(...) + listar las 24 clases
4. Imagen Descargar muestra del repo o subir propia
5. Detección + clasificación Una pasada → bounding boxes con etiqueta
5.5. Recorte detallado Top-1 + top-3 alternativas
6. Discusión Cuatro preguntas guiadas
8. Estadísticas + glosario Tabla por clase + definiciones

Ejemplo · una imagen

from ultralytics import YOLO

modelo = YOLO("yolo11s_kuo.pt")
res = modelo("metafase.jpg", verbose=False)[0]

print(f"Cromosomas detectados: {len(res.boxes)}")
for i in range(len(res.boxes)):
    clase = modelo.names[int(res.boxes.cls[i])]
    conf  = float(res.boxes.conf[i])
    print(f"  {clase}: {conf:.1%}")

Metafase con una caja delimitadora por cromosoma, cada una etiquetada con su clase y su confianza

Tip

Mirar siempre la segunda y tercera predicción más probable — si la diferencia entre top-1 y top-2 es pequeña, hay duda real que conviene escalar a un humano.

Resultados esperados

  • mAP@50 = 0.989mAP = precisión promedio de detección; con IoU ≥ 0.5 cuenta como acierto
  • mAP@50-95 = 0.818 — promedia umbrales más estrictos de solapamiento
  • Precisión = 0.974 — de lo que detectó, cuánto acertó (pocos falsos positivos)
  • Recall = 0.960 — de lo que había, cuánto encontró (pocos no detectados)

Dos cajas (real y predicha) que se solapan; la IoU es intersección sobre unión; con IoU mayor o igual a 0.5 cuenta como acierto

Advertencia

Estas métricas vienen del split de validación del mismo dataset de Kuo. En un laboratorio mexicano con otra cámara y tinción, los números seguramente bajan — es el problema del domain shift.

¿Qué es domain shift?

El modelo aprende del “dominio” en que se entrenó. Si lo usas en otro dominio con características distintas, falla más — aunque la tarea sea la misma.

Dominio de entrenamiento (Kuo 2023) Dominio de tu laboratorio
Equipo Hospital de Taichung, Taiwán INER u otro hospital mexicano
Cámara/microscopio Modelo y resolución específicos Otro fabricante, otra resolución
Tinción Wright stain G-banding Quizá Giemsa o variante local
Preparación celular Protocolo del paper Protocolo del laboratorio local

Advertencia

Cada diferencia desplaza la distribución estadística de los píxeles. El modelo “entiende menos” los cromosomas aunque siga viendo bandeo G.

Domain shift · ejemplos clínicos y mitigaciones

Ejemplos:

  • Detección de cáncer de piel entrenada con piel caucásica → falla en piel oscura.
  • Modelos de COVID en radiografías entrenados en hospitales chinos en 2020 → cayeron 15–20 % de accuracy al aplicarse en hospitales europeos.
  • Modelos de retinopatía diabética entrenados con cámara Topcon → fallan con Canon o iPhone.

Tip

Cómo se mitiga:

  • Fine-tuning local con decenas de imágenes del laboratorio destino.
  • Data augmentation agresivo en entrenamiento (variar brillo, contraste, rotación, ruido).
  • Validación prospectiva en el sitio de despliegue antes de uso clínico.
  • Monitoreo continuo del rendimiento una vez en producción.

Discusión · cuatro preguntas

  1. ¿Qué pasa si el cromosoma de entrada tiene una alteración estructural?
  2. Cuando el modelo se equivoca, ¿la segunda predicción es cercana o muy lejana?
  3. ¿En qué momento del flujo de un laboratorio integraría este modelo, y dónde mantendría la lectura humana como definitiva?
  4. Si Kuo et al. reporta 90.8 % de mAP@50 con YOLOv4, ¿por qué nuestro YOLO11s alcanza 0.989? ¿Avance real o algo está raro?

Recursos

Receso · 10 min

Después del receso (a las 11:40), el bloque B: R y Bioconductor.

Del cariotipo completo que acaba de clasificar la IA, bajamos a los genes de una región concreta — con biomaRt, GenomicRanges y karyoploteR.

1.
2.
Shamsi, Z. et al. Karyotype AI for Precision Oncology. (2025) doi:10.48550/arXiv.2211.14312.
3.
Rosenblum, L. S., Holmes, J. & Taghiyev, A. F. The Emergence of Artificial Intelligence-Guided Karyotyping: A Review and Reflection. Genes 16, 685 (2025).
4.
Tabassum, S. et al. Automated karyogram analysis for early detection of genetic and neurodegenerative disorders. Frontiers in Computational Neuroscience 18, 1525895 (2025).
Inicio