Saltar al contenido
gdt_
Volver a proyectos

ATOM

Reingeniería de una plataforma web para gestionar y ejecutar análisis ómicos automatizados (RNA-seq), de un monolito frágil a una arquitectura reproducible y separada por responsabilidades.

Año
2026
Mi papel
Autor: análisis, arquitectura e implementación
Categoría
Plataforma científica · Trabajo de Fin de Grado
atom.app
Panel principal de ATOM con la analítica de la plataforma

01Contexto

Proyecto académico individual · ULPGC · calificación 9,4/10.

Reingeniería de una plataforma web para gestionar y ejecutar análisis ómicos automatizados (RNA-seq), de un monolito frágil a una arquitectura reproducible y separada por responsabilidades.

02Problema

La versión previa era un monolito en Flask que guardaba datos en ficheros JSON y ejecutaba scripts R Markdown directamente desde el servidor web. Funcionaba, pero tenía límites serios de seguridad, mantenibilidad, escalabilidad, trazabilidad y reproducibilidad.

03Objetivos

  • Analizar y documentar la arquitectura anterior y sus riesgos.
  • Separar backend, sistema de ejecución y capa de análisis.
  • Hacer las ejecuciones reproducibles y trazables.
  • Mejorar seguridad, validación de datos y gestión de usuarios.

04Mi contribución

  • Análisis del sistema previo y propuesta de la nueva arquitectura.
  • Backend FastAPI: autenticación, usuarios, proyectos, entidades, notificaciones y seguimiento de ejecuciones.
  • Frontend en Next.js con panel, gestión visual de proyectos e informes.
  • Modelo de datos en PostgreSQL y migración desde JSON.
  • Worker asíncrono, contenedores Docker e integración continua.

05Decisiones técnicas

  1. ASacar la ejecución de análisis del servidor web a un worker independiente: la interfaz nunca se bloquea y cada ejecución queda registrada con su estado.
  2. BPostgreSQL en lugar de ficheros JSON para tener integridad, consultas e historial real de proyectos y ejecuciones.
  3. CDocker para que el entorno de análisis, con sus dependencias de R y Python, sea idéntico en cualquier máquina.
  4. DValidación automática de las plantillas experimentales antes de lanzar un análisis, para fallar pronto y con un mensaje claro.

06Solución

Una nueva arquitectura con backend en FastAPI, frontend en Next.js, persistencia en PostgreSQL, orquestación con Docker y un proceso trabajador independiente que ejecuta los análisis en segundo plano.

Funcionalidades principales

  • Gestión de proyectos ómicos
  • Validación de plantillas experimentales
  • Ejecución asíncrona con seguimiento
  • Informes HTML, DOCX y XLSX
  • Historial y trazabilidad
  • Modo claro y oscuro

Resultado

Trabajo de Fin de Grado calificado con 9,4/10 (Sobresaliente) en el Grado en Ingeniería Informática de la ULPGC.

07Capturas

Generación de un informe en tiempo real
Informe de análisis RNA-seq generado por la plataforma
Seguimiento de una ejecución asíncrona con su registro
Gestión visual de proyectos en modo oscuro
Historial de integración continua en GitHub Actions

08Stack

  • FastAPI
  • Python
  • Next.js
  • TypeScript
  • PostgreSQL
  • Docker
  • R Markdown
  • GitHub Actions

09Aprendizajes

  • «La reproducibilidad no es un extra, sino una condición básica del software científico.» Fue la idea rectora del proyecto.
  • Reescribir con criterio exige entender primero por qué el sistema anterior funcionaba, no solo dónde fallaba.