Retador: Arturo Sánchez | Hackers: Equipo Análisis de Gatos
Este proyecto implementa un pipeline CI/CD (Integración y Despliegue Continuo) para el análisis de datos abiertos del experimento ATLAS (CERN), utilizando Python, marimo y Quarto.
El objetivo es lograr la máxima reproducibilidad y transparencia científica. Cada git push a la rama principal desencadena una GitHub Action que ejecuta el siguiente flujo:
- Configura el entorno Python y Quarto.
- Instala las dependencias de física (
uproot,awkward-array, etc.). - Ejecuta el análisis físico con Python y marimo.
- Compila el sitio web profesional con Quarto (
quarto render). - Publica el sitio web completo en GitHub Pages.
El informe y los gráficos interactivos generados por la última ejecución automatizada (CI) están disponibles públicamente:
➡️ Ver el Sitio Web Publicado (Actualizado Automáticamente)
| Característica | Herramientas | Propósito en el Reto |
|---|---|---|
| Análisis Físico | Python, uproot, awkward-array, hist |
Lectura eficiente del formato ROOT y cálculo de masas invariantes. |
| Interactividad | marimo | Permite construir celdas reactivas y widgets para un análisis dinámico en la web. |
| Documentación | Quarto | Generación del sitio web profesional y la integración del contenido dinámico de marimo. |
| Automatización (CI/CD) | GitHub Actions | Orquestación del flujo completo: análisis, renderizado y despliegue continuo. |
.
├── .github/workflows/
│ └── publish-site.yml \# Workflow de CI/CD (GitHub Action).
├── robot-physicist-website/ \# Directorio raíz del proyecto Quarto.
│ ├── \_extensions/marimo-team/marimo \# Extensión para ejecutar marimo.
│ └──_extension.yml
│ └──command.py
│ └──extract.py
│ └──marimo-execute.lua
│ └──utils.lua
│ ├── charts/ \# Sub-páginas de análisis.
│ └──marimotest copy/
│ └──index.qmd
│ └──marimotest
│ └──index.qmd/
│ └──index.qmd.
│ ├── .gitignore
│ ├── _quarto.yml
│ ├── about.qmd
│ ├── index.qmd \# Página principal.
│ └── styles.css
├── .gitignore
├── requirements.txt \# Lista de dependencias de Python.
├── LICENSE
└── README.md
Para desarrollar el análisis y previsualizar el sitio web en tu máquina local:
-
Instalar Python (3.9+).
-
Instalar Quarto: Sigue las instrucciones oficiales de instalación.
-
Instalar Dependencias de Python: Desde la raíz del repositorio, instala las bibliotecas de física y
marimo.pip install -r requirements.txt
-
Navegar a la Carpeta del Sitio Web:
cd robot-physicist-website -
Ejecutar Vista Previa (Modo Desarrollo): Quarto abrirá el sitio en tu navegador y lo actualizará automáticamente con cada cambio.
quarto preview
El archivo .github/workflows/publish-site.yml maneja la automatización completa:
- Flujo:
push➡️ Configuración del entorno ➡️ Instalación deuproot/marimo➡️quarto render(ejecuta el análisis) ➡️ Despliegue a GitHub Pages.
Este pipeline garantiza que el sitio web refleje siempre el resultado más reciente y reproducible de tu análisis científico.
- CERN Open Data: Datasets de 13 TeV del experimento ATLAS [https://opendata.cern.ch/record/12360].
- Integración marimo + Quarto: https://github.com/marimo-team/quarto-marimo
- Guía de marimo: https://docs.marimo.io/
Este repositorio está publicado bajo la licencia MIT. Consulta el archivo ./LICENSE para detalles completos.