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/).
- ID Articolo: 2510.13932
- Titolo: SUND: simulation using nonlinear dynamic models - a toolbox for simulating multi-level, time-dynamic systems in a modular way
- Autori: Henrik Podéus, Gustav Magnusson, Sasan Keshmiri, Kajsa Tunedal, Nicolas Sundqvist, William Lövfors, Gunnar Cedersund
- Classificazione: q-bio.QM (Metodi Quantitativi)
- Data di Pubblicazione: 17 ottobre 2025 (preprint arXiv)
- Link dell'Articolo: https://arxiv.org/abs/2510.13932
Questo articolo presenta SUND (Simulation Using Nonlinear Dynamic models), una cassetta degli attrezzi Python progettata specificamente per simulare sistemi multi-livello, dinamici nel tempo. SUND affronta le carenze degli strumenti attuali nella composizione modulare dei modelli, nella costruzione di sistemi gerarchici e nel trattamento degli input dipendenti dal tempo, in particolare nell'ecosistema Python. La cassetta degli attrezzi fornisce un framework unificato per definire, combinare e simulare sistemi dinamici multi-livello nel tempo, supportando la definizione di modelli con input/output interconnessi, facilitando la costruzione di sistemi complessi da componenti semplici e riutilizzabili. La cassetta degli attrezzi supporta funzioni dipendenti dal tempo e input costanti a tratti, consentendo di simulare intuitivamente varie condizioni sperimentali.
La modellazione matematica di sistemi gerarchici complessi, dinamici nel tempo (in particolare sistemi biologici) richiede strumenti computazionali robusti. Gli strumenti attuali, sebbene potenti, presentano limitazioni nei seguenti aspetti:
- Composizione modulare dei modelli: mancanza di un framework completo per supportare la costruzione modulare dei modelli
- Costruzione di sistemi gerarchici: difficoltà nel gestire architetture di sistema multi-livello
- Trattamento degli input dipendenti dal tempo: capacità insufficiente nel gestire input variabili nel tempo
- Supporto dell'ecosistema Python: mancanza di soluzioni comprehensive nell'ambiente Python
I sistemi biologici sono intrinsecamente dinamici nel tempo e generalmente modellati sulla base di equazioni differenziali ordinarie (ODE) o equazioni differenziali algebriche (DAE). La complessità di questi sistemi rende l'implementazione della simulazione e l'analisi dei modelli correlati particolarmente impegnative. Strumenti esistenti come SciPy, AMICI, CellML e altri forniscono funzionalità potenti, ma nessuno strumento singolo soddisfa contemporaneamente tutte le esigenze.
Gli autori identificano la mancanza nell'ecosistema Python di uno strumento che soddisfi contemporaneamente i seguenti cinque requisiti:
- Composizione modulare dei modelli con connettività input/output
- Creazione di più istanze di modelli in diversi contenitori
- Specifica flessibile degli input dipendenti dal tempo
- Definizione diretta di sistemi di equazioni ODE/DAE
- Implementazione come pacchetto Python gratuito e open source
- Sviluppo della cassetta degli attrezzi SUND: primo strumento nell'ecosistema Python che soddisfa contemporaneamente i requisiti di modellazione modulare, gestione delle istanze containerizzate, trattamento degli input dipendenti dal tempo e altri aspetti
- Implementazione di un'architettura di progettazione modulare: supporta la decomposizione di modelli piatti complessi con centinaia di ODE in componenti interconnessi gestibili
- Fornitura di un sistema flessibile di connessione input/output: realizza l'integrazione senza soluzione di continuità di modelli con diverse convenzioni di denominazione attraverso funzionalità di mappatura
- Integrazione della conversione automatica delle unità di tempo: supporta la combinazione senza soluzione di continuità di modelli con scale temporali diverse, da nanosecondi a anni
- Rilascio open source: strumento open source basato su licenza MIT, accessibile tramite PyPI e GitLab
SUND mira a fornire un framework unificato per definire, combinare e simulare sistemi dinamici multi-livello nel tempo. Gli input includono sistemi di equazioni ODE/DAE, funzioni dipendenti dal tempo e parametri del modello; gli output sono risultati di simulazione in serie temporali. I vincoli includono la stabilità numerica e la compatibilità tra moduli.
SUND adotta un design orientato agli oggetti, combinando componenti Python e C++:
- Oggetti Modello (Model Objects)
- Contengono formule matematiche definite dall'utente in file di testo o stringhe multi-riga
- Utilizzano una sintassi simile a SBToolbox per l'espressione del modello
- Compilati e installati come moduli Python, utilizzabili per simulazioni in varie condizioni sperimentali
- Supportano input e output di modelli definiti dall'utente, realizzando un design modulare
- Oggetti Attività (Activity Objects)
- Oggetti utilizzati per generare input del modello
- Supportano funzioni dipendenti dal tempo: costanti a tratti, lineari a tratti, funzioni spline cubiche e costanti
- Supportano la mappatura tra nomi di input/output interni ed esterni
- Facilitano la combinazione di modelli con diverse convenzioni di denominazione
- Oggetti Simulazione (Simulation Objects)
- Combinano oggetti modello e attività per creare istanze di simulazione
- Possono essere eseguiti in diversi intervalli di tempo, supportando vari passi temporali e impostazioni di risolutori numerici
- Generano risultati di simulazione del modello
- Interfaccia utente Python: fornisce facilità d'uso
- Nucleo computazionale C++: assicura calcoli efficienti e interfaccia diretta con il risolutore SUNDIALS
- Integrazione SUNDIALS: sfrutta la suite di risolutori numerici SUNDIALS per risolvere sistemi ODE e DAE
- Supporto NumPy: per operazioni numeriche
- Compilazione Setuptools: per la compilazione C++
- Capacità di Composizione Modulare
- Decomposizione di modelli piatti complessi in componenti interconnessi gestibili
- Migliora la manutenibilità e promuove il riutilizzo dei modelli e lo sviluppo collaborativo
- Mappatura Intelligente Input/Output
- Supporta l'integrazione senza soluzione di continuità di modelli con diverse convenzioni di denominazione
- Fornisce un meccanismo di valori di input predefiniti, aumentando la robustezza del sistema
- Conversione Automatica delle Unità di Tempo
- Supporta scale temporali diverse che si estendono da nanosecondi a anni
- Ogni componente può specificare un'unità di tempo indipendente, con conversione automatica durante la simulazione
- Gestione Containerizzata dei Modelli
- Supporta l'allocazione di istanze di modelli a diversi contenitori
- Facilita il riutilizzo e l'isolamento dei modelli
- Applicabile alla modellazione farmacocinetica basata sulla fisiologia (PBPK)
- Trattamento degli Input Non Lisci
- Reinizializzazione automatica dell'integrazione numerica nei punti di discontinuità
- Riduce l'onere dell'utente nel tracciare le discontinuità
L'articolo verifica le capacità della cassetta degli attrezzi attraverso un modello completo e multi-livello del sistema glucosio-insulina umano, basato sulla ricerca di Herrgårdh e altri, integrando componenti da gruppi di ricerca di Dalla Man, Hall, Brännmark e altri.
- Scale Temporali Multiple: da processi cellulari (secondi a minuti) a adattamenti fisiologici (giorni a anni)
- Livelli Biologici Multipli: da segnalazione cellulare a regolazione sistemica del glucosio
- Struttura Modulare: dimostra come decomporre la struttura originale del modello piatto in componenti modulari interconnessi
- Documentazione online con esempi dettagliati: https://isbgroup.eu/sund-toolbox/
- Include dimostrazioni eseguibili che mostrano la capacità di gestire modelli da diverse fonti, con diversa complessità e scale temporali
- Supporta la definizione di protocolli sperimentali complessi, come schemi di somministrazione, modelli di assunzione di cibo e altre perturbazioni variabili nel tempo
Attraverso il modello del sistema glucosio-insulina, sono state verificate con successo le seguenti capacità:
- Composizione Modulare: decomposizione riuscita di modelli complessi multi-livello in componenti modulari interconnessi
- Trattamento delle Scale Temporali: gestione efficace di problemi multi-scala temporale in diversi livelli biologici
- Connessione Input/Output: realizzazione del trasferimento dati senza soluzione di continuità tra diversi sottomoduli
- Gestione Containerizzata: dimostrazione della gestione efficace delle istanze di modelli in diversi contenitori
- Stabilità Numerica: stabilità numerica di alta qualità assicurata dal risolutore SUNDIALS
- Efficienza Computazionale: implementazione del nucleo C++ fornisce prestazioni computazionali efficienti
- Facilità d'Uso: l'interfaccia Python fornisce un'esperienza d'uso intuitiva
Il modello del sistema glucosio-insulina mostrato nella Figura 1B include:
- Due caratteristiche tracciate su scale temporali diverse
- Output da diversi sottomoduli
- Processi di integrazione di più livelli biologici
L'articolo confronta dettagliatamente diversi strumenti esistenti:
- SciPy: fornisce capacità di calcolo numerico di base
- AMICI: focalizzato sull'analisi di sensibilità ad alte prestazioni per modelli ODE di grandi dimensioni
- CellML: linguaggio standardizzato di descrizione dei modelli
- SBToolbox: cassetta degli attrezzi di biologia dei sistemi per la piattaforma MATLAB
- COPASI: simulatore di percorsi complessi
- CellDesigner: strumento di modellazione di reti biochimiche
- Tellurium: ambiente di modellazione Python estensibile
I principali vantaggi di SUND rispetto agli strumenti esistenti:
- Fornisce una soluzione di modellazione modulare completa nell'ecosistema Python
- Soddisfa contemporaneamente cinque requisiti chiave (modularità, containerizzazione, trattamento del tempo, definizione diretta di ODE, open source)
- Particolarmente adatto per applicazioni di modellazione biologica multi-scala
SUND colma con successo il vuoto degli strumenti di simulazione modulare nell'ecosistema Python, particolarmente adatto per la modellazione di sistemi complessi, dinamici nel tempo, soprattutto sistemi biologici. La filosofia di progettazione modulare della cassetta degli attrezzi affronta importanti carenze degli attuali strumenti di simulazione Python.
Gli autori indicano onestamente le limitazioni di SUND:
- Funzionalità di Stima dei Parametri: la cassetta degli attrezzi non fornisce internamente algoritmi di stima dei parametri o approssimazione dell'Hessiano
- Limitazioni della Conversione di Unità: supporta solo la conversione automatica delle unità di tempo, non la conversione di unità non temporali
- Assenza di Interfaccia Grafica: la versione attuale manca di un'interfaccia utente grafica
L'articolo propone direzioni di sviluppo chiare:
- Estensione delle Capacità di Conversione di Unità: supporto di più tipi di conversione automatica di unità
- Risoluzione di Equazioni di Sensibilità: integrazione di metodi di risoluzione di equazioni di sensibilità per stimare l'Hessiano
- Interfaccia Utente Grafica: sviluppo di un'interfaccia grafica per la costruzione e visualizzazione di modelli
- Integrazione di Strumenti Esterni: migliore integrazione con strumenti esterni come il modulo di ottimizzazione SciPy
- Alto Valore Pratico: affronta le esigenze effettive nel campo della modellazione biologica, colmando un importante vuoto nell'ecosistema Python
- Progettazione Tecnica Ragionevole: il design orientato agli oggetti, l'architettura ibrida Python/C++, e la filosofia modulare riflettono buone pratiche di ingegneria del software
- Contributo Open Source: il rilascio open source basato su licenza MIT favorisce lo sviluppo della comunità
- Documentazione Completa: fornisce documentazione online dettagliata e codice di esempio
- Verifica Sufficiente: verifica le funzionalità della cassetta degli attrezzi attraverso un modello biologico complesso
- Innovazione Limitata: principalmente innovazione nell'implementazione tecnica e nell'integrazione, con limitata originalità a livello algoritmico
- Valutazione Incompleta: mancanza di confronti quantitativi delle prestazioni con altri strumenti
- Verifica dell'Ambito di Applicazione: verifica attraverso un solo caso di sistema biologico, l'ampiezza dell'applicazione rimane da provare ulteriormente
- Esperienza Utente: l'assenza di un'interfaccia grafica potrebbe limitare l'uso da parte di utenti non programmatori
- Valore Accademico: fornisce uno strumento prezioso per il campo della biologia computazionale e della modellazione di sistemi
- Valore Pratico: applicabile direttamente allo sviluppo di farmaci, ricerca fisiologica e altri campi
- Contributo alla Comunità: la natura open source aiuta a formare una comunità di utenti e promuove lo sviluppo dello strumento
- Riproducibilità: fornisce codice e documentazione completi, supportando la riproducibilità della ricerca
- Modellazione Biologica Multi-Scala: particolarmente adatto per compiti di modellazione che richiedono l'integrazione di scale temporali e livelli biologici diversi
- Sviluppo di Farmaci: supporta la modellazione PBPK e l'ottimizzazione degli schemi di somministrazione
- Ricerca in Biologia dei Sistemi: applicabile alla simulazione dinamica di reti biologiche complesse
- Applicazioni Educative: il design modulare facilita l'insegnamento e l'apprendimento
- Ricerca Collaborativa: l'interfaccia modulare e standardizzata facilita la collaborazione tra team
L'articolo cita 8 strumenti e framework correlati principali, oltre a 6 lavori di ricerca correlati alla modellazione biologica, riflettendo una comprensione completa dello stato attuale del campo e un'indagine sufficiente dei lavori correlati. Merita particolare attenzione la dipendenza dalla suite di risolutori numerici SUNDIALS e da strumenti di base come NumPy, riflettendo un approccio di sviluppo innovativo basato su tecnologie mature.
Valutazione Complessiva: Questo è un articolo di alta qualità su uno strumento che affronta le esigenze effettive nel campo della modellazione biologica. Sebbene l'innovazione algoritmica sia limitata, il valore dell'implementazione tecnica è elevato e ha un significato positivo per promuovere lo sviluppo degli strumenti in questo campo. Il rilascio open source e la documentazione completa aumentano ulteriormente il suo valore pratico e il suo impatto.