2025-11-19T22:19:14.675012

SUND: simulation using nonlinear dynamic models - a toolbox for simulating multi-level, time-dynamic systems in a modular way

Podéus, Magnusson, Keshmiri et al.
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/).
academic

SUND: 비선형 동적 모델을 이용한 시뮬레이션 - 모듈식 방식의 다층 시간동적 시스템 시뮬레이션 도구상자

기본 정보

  • 논문 ID: 2510.13932
  • 제목: SUND: simulation using nonlinear dynamic models - a toolbox for simulating multi-level, time-dynamic systems in a modular way
  • 저자: Henrik Podéus, Gustav Magnusson, Sasan Keshmiri, Kajsa Tunedal, Nicolas Sundqvist, William Lövfors, Gunnar Cedersund
  • 분류: q-bio.QM (정량적 방법론)
  • 발표 시간: 2025년 10월 17일 (arXiv 사전인쇄본)
  • 논문 링크: https://arxiv.org/abs/2510.13932

초록

본 논문은 다층 시간동적 시스템을 시뮬레이션하기 위해 설계된 Python 도구상자인 SUND (Simulation Using Nonlinear Dynamic models)를 제시한다. SUND는 모듈화된 모델 결합, 계층적 시스템 구축 및 시간 관련 입력 처리 측면에서 현재 도구의 부족함을 해결하며, 특히 Python 생태계의 결함을 보완한다. 본 도구상자는 다층 시간동적 시스템을 정의, 결합 및 시뮬레이션하기 위한 통합 프레임워크를 제공하며, 상호 연결 가능한 입출력을 가진 모델 정의를 지원하여 단순한 재사용 가능한 구성 요소로부터 복잡한 시스템을 구축하는 것을 촉진한다. 도구상자는 시간 관련 함수 및 구간별 상수 입력을 지원하여 다양한 실험 조건을 직관적으로 시뮬레이션할 수 있다.

연구 배경 및 동기

문제 식별

복잡한 계층적 시간동적 시스템(특히 생물학적 시스템)의 수학적 모델링은 강력한 계산 도구를 필요로 한다. 현재 도구들은 기능이 강력하지만 다음 측면에서 제한이 있다:

  1. 모듈화된 모델 결합: 모듈화된 모델 구축을 지원하는 포괄적인 프레임워크 부족
  2. 계층적 시스템 구축: 다층 시스템 아키텍처 처리의 어려움
  3. 시간 관련 입력 처리: 시간 변화 입력 처리 능력 부족
  4. Python 생태계 지원: Python 환경에서 종합적 솔루션 부재

중요성 분석

생물학적 시스템은 본질적으로 시간동적이며, 일반적으로 상미분방정식(ODE) 또는 미분대수방정식(DAE)을 기반으로 모델링된다. 이러한 시스템의 복잡성으로 인해 시뮬레이션 구현 및 관련 모델 분석이 도전적이 된다. SciPy, AMICI, CellML 등의 기존 도구는 강력한 기능을 제공하지만, 모든 요구사항을 동시에 충족하는 단일 도구는 없다.

기존 방법의 한계

저자들은 Python 생태계에서 다음 다섯 가지 요구사항을 동시에 충족하는 도구의 부재를 식별했다:

  1. 입출력 연결성을 가진 모듈화된 모델 결합
  2. 서로 다른 컨테이너에서 여러 모델 인스턴스 생성
  3. 유연한 시간 관련 입력 사양
  4. ODE/DAE 방정식 시스템의 직접 정의
  5. 무료 오픈소스 Python 패키지로의 구현

핵심 기여

  1. SUND 도구상자 개발: Python 생태계에서 모듈화 모델링, 컨테이너화된 인스턴스 관리, 시간 관련 입력 처리 등 여러 요구사항을 동시에 충족하는 첫 번째 종합 도구
  2. 모듈화 설계 아키텍처 구현: 수백 개의 ODE를 포함한 복잡한 평면 모델을 관리 가능한 상호 연결된 구성 요소로 분해 지원
  3. 유연한 입출력 연결 시스템 제공: 매핑 기능을 통해 서로 다른 명명 규칙을 가진 모델의 무결한 통합 실현
  4. 자동 시간 단위 변환 통합: 나노초에서 년까지의 서로 다른 시간 규모 모델의 무결한 결합 지원
  5. 오픈소스 배포: MIT 라이선스 기반의 오픈소스 도구로 PyPI 및 GitLab을 통해 접근 가능

방법론 상세 설명

작업 정의

SUND는 다층 시간동적 시스템을 정의, 결합 및 시뮬레이션하기 위한 통합 프레임워크를 제공하는 것을 목표로 한다. 입력에는 ODE/DAE 방정식 시스템, 시간 관련 함수 및 모델 매개변수가 포함되며, 출력은 시간 계열 시뮬레이션 결과이다. 제약 조건에는 수치적 안정성 및 모듈 간 호환성이 포함된다.

아키텍처 설계

핵심 구성 요소

SUND는 Python 및 C++ 구성 요소를 결합한 객체 지향 설계를 채택한다:

  1. 모델 객체 (Model Objects)
    • 사용자가 텍스트 파일 또는 다중 행 문자열에서 정의한 수학 공식 포함
    • SBToolbox와 유사한 구문을 사용한 모델 표현
    • Python 모듈로 컴파일 및 설치되어 다양한 실험 조건의 시뮬레이션에 사용 가능
    • 사용자 정의 모델 입출력 지원으로 모듈화 설계 실현
  2. 활동 객체 (Activity Objects)
    • 모델 입력 생성에 사용되는 객체
    • 시간 관련 함수 지원: 구간별 상수, 구간별 선형, 3차 스플라인 함수 및 상수
    • 내부 입출력 이름과 외부 이름 간의 매핑 지원
    • 서로 다른 명명 규칙을 가진 모델 결합 용이
  3. 시뮬레이션 객체 (Simulation Objects)
    • 모델 및 활동 객체를 결합하여 시뮬레이션 인스턴스 생성
    • 서로 다른 시간 간격에서 실행 가능하며 다양한 시간 단계 및 수치 해석기 설정 지원
    • 모델 시뮬레이션 결과 생성

기술적 구현

  • Python 사용자 인터페이스: 사용 용이성 제공
  • C++ 핵심 계산: 효율적인 계산 보장 및 SUNDIALS 해석기와의 직접 인터페이스
  • SUNDIALS 통합: SUNDIALS 수치 해석기 제품군을 활용한 ODE 및 DAE 시스템 해결
  • NumPy 지원: 수치 연산용
  • Setuptools 컴파일: C++ 컴파일용

기술적 혁신점

  1. 모듈화 결합 능력
    • 복잡한 평면 모델을 관리 가능한 상호 연결된 구성 요소로 분해
    • 유지보수성 향상 및 모델 재사용 및 협력 개발 촉진
  2. 지능형 입출력 매핑
    • 서로 다른 명명 규칙을 가진 모델의 무결한 통합 지원
    • 기본 입력값 메커니즘 제공으로 시스템 견고성 강화
  3. 자동 시간 단위 변환
    • 나노초에서 년까지의 서로 다른 시간 규모 지원
    • 각 구성 요소는 독립적인 시간 단위를 지정할 수 있으며 시뮬레이션 중 자동 변환
  4. 컨테이너화된 모델 관리
    • 모델 인스턴스를 서로 다른 컨테이너에 할당 지원
    • 모델 재사용 및 격리 용이
    • 생리학 기반 약동학(PBPK) 모델링에 적용 가능
  5. 비평활 입력 처리
    • 불연속점에서 수치 적분의 자동 재초기화
    • 사용자의 불연속성 추적 부담 경감

실험 설정

검증 사례

논문은 Herrgårdh 등의 연구를 기반으로 한 포괄적인 다층 인간 포도당-인슐린 시스템 모델을 통해 도구상자의 능력을 검증하며, Dalla Man 등, Hall 등, Brännmark 등 여러 연구 그룹의 구성 요소를 통합한다.

모델 특성

  • 다중 시간 규모: 세포 과정(초에서 분)부터 생리학적 적응(일에서 년)까지
  • 다중 생물학적 수준: 세포 신호 전달에서 전신 포도당 조절까지
  • 모듈화 구조: 원래의 평면 모델 구조를 상호 연결된 모듈화 구성 요소로 분해하는 방법 시연

구현 세부사항

  • 온라인 문서에서 상세 예제 제공: https://isbgroup.eu/sund-toolbox/
  • 서로 다른 출처, 복잡도 및 시간 규모의 모델 처리 능력을 시연하는 실행 가능한 데모 포함
  • 투약 방안, 식사 패턴 등 시간 변화 교란과 같은 복잡한 실험 프로토콜 정의 지원

실험 결과

기능 검증

포도당-인슐린 시스템 모델을 통해 다음 능력을 성공적으로 검증했다:

  1. 모듈화 결합: 복잡한 다층 모델을 상호 연결된 모듈화 구성 요소로 성공적으로 분해
  2. 시간 규모 처리: 서로 다른 생물학적 수준의 다중 시간 규모 문제를 효과적으로 처리
  3. 입출력 연결: 서로 다른 부분 모듈 간의 무결한 데이터 전달 실현
  4. 컨테이너화 관리: 서로 다른 컨테이너에서 모델 인스턴스의 효과적인 관리 시연

성능 표현

  • 수치적 안정성: SUNDIALS 해석기를 통한 고품질 수치 해 보장
  • 계산 효율성: C++ 핵심 구현으로 효율적인 계산 성능 제공
  • 사용자 친화성: Python 인터페이스로 직관적인 사용 경험 제공

사례 분석

그림 1B에 표시된 포도당-인슐린 시스템 모델은 다음을 포함한다:

  • 서로 다른 시간 규모의 두 가지 플롯 특성
  • 서로 다른 부분 모듈의 출력
  • 다중 생물학적 수준의 통합 과정

관련 연구

기존 도구 분석

논문은 여러 기존 도구를 상세히 비교한다:

  1. SciPy: 기본 수치 계산 능력 제공
  2. AMICI: 대규모 ODE 모델의 고성능 민감도 분석에 중점
  3. CellML: 표준화된 모델 설명 언어
  4. SBToolbox: MATLAB 플랫폼의 시스템 생물학 도구상자
  5. COPASI: 복잡한 경로 시뮬레이터
  6. CellDesigner: 생화학 네트워크 모델링 도구
  7. Tellurium: 확장 가능한 Python 모델링 환경

비교 우위

기존 도구 대비 SUND의 주요 장점:

  • Python 생태계에서 완전한 모듈화 모델링 솔루션 제공
  • 다섯 가지 핵심 요구사항(모듈화, 컨테이너화, 시간 처리, 직접 ODE 정의, 오픈소스) 동시 충족
  • 다중 규모 생물학적 모델링 응용에 특히 적합

결론 및 논의

주요 결론

SUND는 Python 생태계의 모듈화 시뮬레이션 도구 공백을 성공적으로 채웠으며, 특히 복잡한 시간동적 시스템의 모델링에 적합하며, 특히 생물학적 시스템에 적합하다. 도구상자의 모듈화 설계 개념은 현재 Python 시뮬레이션 도구의 중요한 결함을 해결한다.

한계

저자들은 SUND의 한계를 솔직하게 지적한다:

  1. 매개변수 추정 기능: 도구상자 내에서 매개변수 추정 또는 Hessian 근사 알고리즘 미제공
  2. 단위 변환 제한: 시간 단위의 자동 변환만 지원하며 비시간 단위 변환 미지원
  3. 그래픽 인터페이스 부재: 현재 버전에서 그래픽 사용자 인터페이스 부재

향후 방향

논문은 명확한 개발 방향을 제시한다:

  1. 단위 변환 능력 확장: 더 많은 유형의 단위 자동 변환 지원
  2. 민감도 방정식 해결: Hessian 추정을 위한 민감도 방정식 해결 방법 통합
  3. 그래픽 사용자 인터페이스: 모델 구축 및 시각화를 위한 그래픽 인터페이스 개발
  4. 외부 도구 통합: SciPy 최적화 모듈 등 외부 도구와의 더 나은 통합

심층 평가

장점

  1. 높은 실용 가치: 생물학적 모델링 분야의 실제 요구사항을 해결하며 Python 생태계의 중요한 공백 채움
  2. 합리적인 기술 설계: 객체 지향 설계, Python/C++ 혼합 아키텍처, 모듈화 개념이 모두 우수한 소프트웨어 공학 실무를 반영
  3. 오픈소스 기여: MIT 라이선스 기반의 오픈소스 배포로 커뮤니티 발전에 유리
  4. 완전한 문서: 상세한 온라인 문서 및 예제 코드 제공
  5. 충분한 검증: 복잡한 생물학적 시스템 모델을 통한 도구상자의 각 기능 검증

부족한 점

  1. 제한된 혁신성: 주로 공학적 구현 및 통합 혁신이며 알고리즘 수준의 독창적 기여는 적음
  2. 불충분한 평가: 다른 도구와의 정량적 성능 비교 부재
  3. 응용 범위 검증: 단일 생물학적 시스템 사례로만 검증되어 응용 광범위성 추가 증명 필요
  4. 사용자 경험: 그래픽 인터페이스 부재로 비프로그래밍 사용자의 사용 제한 가능

영향력

  1. 학술적 가치: 계산 생물학 및 시스템 모델링 분야에 가치 있는 도구 제공
  2. 실용적 가치: 약물 개발, 생리학 연구 등 분야에 직접 적용 가능
  3. 커뮤니티 기여: 오픈소스 특성으로 사용자 커뮤니티 형성 및 도구 발전 촉진
  4. 재현성: 완전한 코드 및 문서 제공으로 연구 재현성 지원

적용 시나리오

  1. 다중 규모 생물학적 모델링: 특히 서로 다른 시간 규모 및 생물학적 수준의 통합이 필요한 모델링 작업에 적합
  2. 약물 개발: PBPK 모델링 및 투약 방안 최적화 지원
  3. 시스템 생물학 연구: 복잡한 생물학적 네트워크의 동적 시뮬레이션에 적용 가능
  4. 교육 응용: 모듈화 설계로 교수 및 학습 용이
  5. 협력 연구: 모듈화 및 표준화 인터페이스로 팀 협력 용이

참고 문헌

논문은 8개의 주요 관련 도구 및 프레임워크와 6개의 생물학적 모델링 관련 연구 논문을 인용하여 저자의 분야 현황에 대한 포괄적 이해와 관련 연구에 대한 충분한 조사를 반영한다. 특히 SUNDIALS 수치 해석기 제품군 및 NumPy 등 기초 도구에 대한 의존성은 성숙한 기술 기반 위의 혁신적 발전 사고를 반영한다.


전체 평가: 이는 생물학적 모델링 분야의 실제 요구사항을 해결하는 고품질의 도구 논문이다. 알고리즘 혁신성은 제한적이지만 공학적 구현 가치가 높으며 해당 분야의 도구 발전 촉진에 긍정적 의미를 가진다. 오픈소스 배포 및 완전한 문서는 실용 가치 및 영향력을 더욱 강화한다.