When modeling complex, hierarchical, and time-dynamic systems, such as biological systems, good computational tools are essential. Current tools, while powerful, often lack comprehensive frameworks for modular model composition, hierarchical system building, and time-dependent input handling, particularly within the Python ecosystem. We present SUND (Simulation Using Nonlinear Dynamic models), a Python toolbox designed to address these challenges. SUND provides a unified framework for defining, combining, and simulating multi-level time-dynamic systems. The toolbox enables users to define models with interconnectable inputs and outputs, facilitating the construction of complex systems from simpler, reusable components. It supports time-dependent functions and piecewise constant inputs, enabling intuitive simulation of various experimental conditions such as multiple dosing schemes. We demonstrate the toolbox's capabilities through simulation of a multi-level human glucose-insulin system model, showcasing its flexibility in handling multiple temporal scales, and levels of biological detail. SUND is open-source, easily extensible, and available at PyPI (https://pypi.org/project/sund/) and at Gitlab (https://gitlab.liu.se/ISBgroup/projects/sund/).
SUND: simulación utilizando modelos dinámicos no lineales - una caja de herramientas para simular sistemas dinámicos en el tiempo multinivel de manera modular
- ID del Artículo: 2510.13932
- Título: SUND: simulation using nonlinear dynamic models - a toolbox for simulating multi-level, time-dynamic systems in a modular way
- Autores: Henrik Podéus, Gustav Magnusson, Sasan Keshmiri, Kajsa Tunedal, Nicolas Sundqvist, William Lövfors, Gunnar Cedersund
- Clasificación: q-bio.QM (Métodos Cuantitativos)
- Fecha de Publicación: 17 de octubre de 2025 (preimpresión en arXiv)
- Enlace del Artículo: https://arxiv.org/abs/2510.13932
Este artículo presenta SUND (Simulation Using Nonlinear Dynamic models), una caja de herramientas Python diseñada específicamente para simular sistemas dinámicos en el tiempo multinivel. SUND aborda las deficiencias de las herramientas actuales en la combinación modular de modelos, la construcción de sistemas jerárquicos y el tratamiento de entradas dependientes del tiempo, particularmente en el ecosistema de Python. La caja de herramientas proporciona un marco unificado para definir, combinar y simular sistemas dinámicos en el tiempo multinivel, admitiendo definiciones de modelos con entradas y salidas interconectables, facilitando la construcción de sistemas complejos a partir de componentes simples reutilizables. La caja de herramientas admite funciones dependientes del tiempo y entradas constantes por tramos, permitiendo simular intuitivamente diversas condiciones experimentales.
El modelado matemático de sistemas jerárquicos complejos dinámicos en el tiempo (particularmente sistemas biológicos) requiere herramientas computacionales robustas. Las herramientas actuales, aunque poderosas, presentan limitaciones en los siguientes aspectos:
- Combinación modular de modelos: Falta de marco integral que apoye la construcción modular de modelos
- Construcción de sistemas jerárquicos: Dificultad para manejar arquitecturas de sistemas multinivel
- Tratamiento de entradas dependientes del tiempo: Capacidad insuficiente en el manejo de entradas variables en el tiempo
- Soporte del ecosistema de Python: Falta de soluciones integrales en el entorno de Python
Los sistemas biológicos son inherentemente dinámicos en el tiempo, típicamente modelados mediante ecuaciones diferenciales ordinarias (EDO) o ecuaciones diferenciales algebraicas (EDA). La complejidad de estos sistemas hace que la implementación de simulaciones y los análisis de modelos relacionados sean desafiantes. Las herramientas existentes como SciPy, AMICI, CellML, etc., aunque proporcionan funcionalidades poderosas, no ofrecen una única herramienta que satisfaga simultáneamente todas las necesidades.
Los autores identifican la falta de una herramienta en el ecosistema de Python que satisfaga simultáneamente los siguientes cinco requisitos:
- Combinación modular de modelos con conectividad de entrada/salida
- Creación de múltiples instancias de modelos en diferentes contenedores
- Especificación flexible de entradas dependientes del tiempo
- Definición directa de sistemas de ecuaciones ODE/EDA
- Implementación como paquete Python de código abierto gratuito
- Desarrollo de la caja de herramientas SUND: Primera herramienta integral en el ecosistema de Python que satisface simultáneamente múltiples requisitos incluyendo modelado modular, gestión de instancias en contenedores y tratamiento de entradas dependientes del tiempo
- Implementación de arquitectura de diseño modular: Admite la descomposición de modelos planos complejos con cientos de EDO en componentes interconectables manejables
- Provisión de sistema flexible de conexión de entrada/salida: Implementa integración sin fisuras de modelos con diferentes convenciones de nomenclatura mediante funcionalidad de mapeo
- Integración de conversión automática de unidades de tiempo: Admite la combinación sin fisuras de modelos con diferentes escalas de tiempo, desde nanosegundos hasta años
- Publicación de código abierto: Herramienta de código abierto bajo licencia MIT, disponible a través de PyPI y GitLab
SUND tiene como objetivo proporcionar un marco unificado para definir, combinar y simular sistemas dinámicos en el tiempo multinivel. Las entradas incluyen sistemas de ecuaciones ODE/EDA, funciones dependientes del tiempo y parámetros del modelo; las salidas son resultados de simulación de series temporales. Las restricciones incluyen estabilidad numérica y compatibilidad entre módulos.
SUND adopta un diseño orientado a objetos, combinando componentes de Python y C++:
- Objetos de Modelo (Model Objects)
- Contienen fórmulas matemáticas definidas por el usuario en archivos de texto o cadenas multilínea
- Utilizan sintaxis similar a SBToolbox para la representación de modelos
- Se compilan e instalan como módulos de Python, utilizables para simulaciones bajo diversas condiciones experimentales
- Admiten entradas y salidas de modelo definidas por el usuario, implementando diseño modular
- Objetos de Actividad (Activity Objects)
- Objetos utilizados para generar entradas de modelo
- Admiten funciones dependientes del tiempo: constantes por tramos, lineales por tramos, funciones spline cúbicas y constantes
- Admiten mapeo entre nombres de entrada/salida internos y externos
- Facilitan la combinación de modelos con diferentes convenciones de nomenclatura
- Objetos de Simulación (Simulation Objects)
- Combinan objetos de modelo y actividad para crear instancias de simulación
- Pueden ejecutarse en diferentes intervalos de tiempo, admitiendo diversos pasos de tiempo y configuraciones de solucionadores numéricos
- Generan resultados de simulación del modelo
- Interfaz de usuario de Python: Proporciona facilidad de uso
- Núcleo computacional en C++: Garantiza computación eficiente e interfaz directa con solucionadores SUNDIALS
- Integración SUNDIALS: Utiliza el conjunto de solucionadores numéricos SUNDIALS para resolver sistemas ODE y EDA
- Soporte NumPy: Para operaciones numéricas
- Compilación con Setuptools: Para compilación de C++
- Capacidad de Combinación Modular
- Descomposición de modelos planos complejos en componentes interconectables manejables
- Mejora de mantenibilidad y promoción de reutilización de modelos y desarrollo colaborativo
- Mapeo Inteligente de Entrada/Salida
- Admite integración sin fisuras de modelos con diferentes convenciones de nomenclatura
- Proporciona mecanismo de valores de entrada predeterminados, mejorando la robustez del sistema
- Conversión Automática de Unidades de Tiempo
- Admite diferentes escalas de tiempo que abarcan desde nanosegundos hasta años
- Cada componente puede especificar unidades de tiempo independientes, con conversión automática durante la simulación
- Gestión de Modelos en Contenedores
- Admite asignación de instancias de modelos a diferentes contenedores
- Facilita reutilización de modelos y aislamiento
- Aplicable a modelado farmacocinético basado en fisiología (PBPK)
- Tratamiento de Entradas No Suaves
- Reinicialización automática de integración numérica en puntos de discontinuidad
- Reduce la carga del usuario en el seguimiento de discontinuidades
El artículo verifica las capacidades de la caja de herramientas mediante un modelo integral multinivel del sistema glucosa-insulina humano, basado en investigaciones de Herrgårdh et al., integrando componentes de múltiples grupos de investigación incluyendo Dalla Man et al., Hall et al., Brännmark et al.
- Múltiples escalas de tiempo: Desde procesos celulares (segundos a minutos) hasta adaptaciones fisiológicas (días a años)
- Múltiples niveles biológicos: Desde transducción de señales celulares hasta regulación sistémica de glucosa
- Estructura modular: Demuestra cómo descomponer la estructura de modelo plano original en componentes modulares interconectables
- Documentación en línea con ejemplos detallados: https://isbgroup.eu/sund-toolbox/
- Incluye demostraciones ejecutables que muestran la capacidad de manejar modelos de diferentes fuentes, complejidades y escalas de tiempo
- Admite definición de protocolos experimentales complejos, como esquemas de dosificación, patrones de comidas y otras perturbaciones variables en el tiempo
Se verificaron exitosamente las siguientes capacidades mediante el modelo del sistema glucosa-insulina:
- Combinación Modular: Descomposición exitosa de modelos complejos multinivel en componentes modulares interconectables
- Tratamiento de Escalas de Tiempo: Manejo efectivo de problemas de múltiples escalas de tiempo en diferentes niveles biológicos
- Conexión de Entrada/Salida: Implementación de transferencia de datos sin fisuras entre submódulos
- Gestión en Contenedores: Demostración de gestión efectiva de instancias de modelos en diferentes contenedores
- Estabilidad Numérica: Garantizada mediante solucionadores SUNDIALS de alta calidad
- Eficiencia Computacional: Implementación del núcleo en C++ proporciona rendimiento computacional eficiente
- Facilidad de Uso: Interfaz de Python proporciona experiencia de uso intuitiva
El modelo del sistema glucosa-insulina mostrado en la Figura 1B incluye:
- Dos características trazadas de diferentes escalas de tiempo
- Salidas de diferentes submódulos
- Procesos de integración de múltiples niveles biológicos
El artículo compara detalladamente múltiples herramientas existentes:
- SciPy: Proporciona capacidades de computación numérica fundamental
- AMICI: Se enfoca en análisis de sensibilidad de alto rendimiento para modelos ODE grandes
- CellML: Lenguaje de descripción de modelos estandarizado
- SBToolbox: Caja de herramientas de biología de sistemas para plataforma MATLAB
- COPASI: Simulador de rutas complejas
- CellDesigner: Herramienta de modelado de redes bioquímicas
- Tellurium: Entorno de modelado Python extensible
Las principales ventajas de SUND respecto a herramientas existentes:
- Proporciona solución integral de modelado modular en el ecosistema de Python
- Satisface simultáneamente cinco requisitos clave (modularidad, contenedorización, tratamiento de tiempo, definición directa de ODE, código abierto)
- Particularmente adecuado para aplicaciones de modelado biológico multiescala
SUND llena exitosamente el vacío de herramientas de simulación modular en el ecosistema de Python, siendo particularmente adecuado para modelado de sistemas dinámicos complejos en el tiempo, especialmente sistemas biológicos. La filosofía de diseño modular de la caja de herramientas aborda deficiencias importantes de las herramientas de simulación de Python actuales.
Los autores señalan honestamente las limitaciones de SUND:
- Funcionalidad de Estimación de Parámetros: La caja de herramientas no proporciona internamente algoritmos de estimación de parámetros o aproximación de Hessiano
- Limitaciones de Conversión de Unidades: Solo admite conversión automática de unidades de tiempo, no conversión de unidades no temporales
- Ausencia de Interfaz Gráfica: La versión actual carece de interfaz gráfica de usuario
El artículo propone direcciones de desarrollo claras:
- Expansión de Capacidades de Conversión de Unidades: Admitir conversión automática de más tipos de unidades
- Resolución de Ecuaciones de Sensibilidad: Integración de métodos de resolución de ecuaciones de sensibilidad para estimación de Hessiano
- Interfaz Gráfica de Usuario: Desarrollo de interfaz gráfica para construcción y visualización de modelos
- Integración de Herramientas Externas: Mejor integración con herramientas externas como módulos de optimización de SciPy
- Alto Valor Práctico: Resuelve necesidades reales en el campo del modelado biológico, llenando un vacío importante en el ecosistema de Python
- Diseño Técnico Razonable: Diseño orientado a objetos, arquitectura híbrida Python/C++, filosofía modular reflejan buenas prácticas de ingeniería de software
- Contribución de Código Abierto: Publicación de código abierto bajo licencia MIT, beneficiosa para el desarrollo comunitario
- Documentación Completa: Proporciona documentación en línea detallada y código de ejemplo
- Verificación Suficiente: Verificación de funcionalidades de la caja de herramientas mediante modelo de sistema biológico complejo
- Innovación Limitada: Principalmente innovación en implementación e integración de ingeniería, con contribuciones originales limitadas a nivel de algoritmo
- Evaluación Incompleta: Falta de comparación de rendimiento cuantitativa con otras herramientas
- Verificación de Rango de Aplicación: Verificación mediante solo un caso de sistema biológico, amplitud de aplicación requiere demostración adicional
- Experiencia de Usuario: Ausencia de interfaz gráfica puede limitar uso por usuarios no programadores
- Valor Académico: Proporciona herramienta valiosa para campos de biología computacional y modelado de sistemas
- Valor Práctico: Aplicable directamente a desarrollo de fármacos, investigación fisiológica y otros campos
- Contribución Comunitaria: Naturaleza de código abierto ayuda a formar comunidad de usuarios y promover desarrollo de herramientas
- Reproducibilidad: Proporciona código completo y documentación, apoyando reproducibilidad de investigación
- Modelado Biológico Multiescala: Particularmente adecuado para tareas de modelado que requieren integración de diferentes escalas de tiempo y niveles biológicos
- Desarrollo de Fármacos: Admite modelado PBPK y optimización de esquemas de dosificación
- Investigación de Biología de Sistemas: Aplicable a simulación dinámica de redes biológicas complejas
- Aplicaciones Educativas: Diseño modular facilita enseñanza y aprendizaje
- Investigación Colaborativa: Interfaces modulares y estandarizadas facilitan colaboración de equipos
El artículo cita 8 herramientas y marcos principales relacionados, así como 6 trabajos de investigación relacionados con modelado biológico, reflejando comprensión integral del estado del campo por parte de los autores e investigación suficiente de trabajos relacionados. Particularmente notable es la dependencia del conjunto de solucionadores numéricos SUNDIALS y herramientas fundamentales como NumPy, reflejando filosofía de desarrollo innovador basado en tecnología madura.
Evaluación General: Este es un artículo de herramienta de alta calidad que resuelve necesidades reales en el campo del modelado biológico. Aunque la innovación de algoritmos es limitada, el valor de implementación de ingeniería es alto, teniendo significado positivo para promover desarrollo de herramientas en este campo. La publicación de código abierto y documentación completa mejoran aún más su valor práctico e impacto.