lower-urinary-tract-sim

Python-based model that simulates the dynamics of the bladder, sphincter, and kidney, using normalised neural signals to predict pressure and volume of the bladder.

https://github.com/mover-digital-health-and-care-hub/lower-urinary-tract-sim

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Python-based model that simulates the dynamics of the bladder, sphincter, and kidney, using normalised neural signals to predict pressure and volume of the bladder.

Basic Info
  • Host: GitHub
  • Owner: MoveR-Digital-Health-and-Care-Hub
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 10.3 MB
Statistics
  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Created over 1 year ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

# Lower Urinary Tract Simulator

Overview

This repository contains a Python-based model that simulates the dynamics of the bladder, sphincter, and kidney, using normalised neural signals to predict pressure and volume of the bladder.

For more detailed mathematical explanations, please refer to the paper: An Open-Source Neurodynamic Model of the Bladder. DOI: 10.1101/2024.11.21.624716

Key Features

  • Stochastic Kidney Function: Reflects natural fluctuations in urine production throughout the day, incorporating randomness to account for biological variability.
  • Neural Input Modeling: : Features a built-in parameter-based model to simulate neural signals from the brain. This allows for simple modeling of neurological conditions and their effects on the lower urinary tract, as well as the use of external neural models to stimulate the detrusor and sphincter muscles.

Repository Structure

  • model: Contains the Python code for the LUT model (LUT_model.py).
  • paper_figures: Contains a Jupyter notebook (figures.ipynb) that reproduces the figures presented in the paper and the experimental data used for validation (RealBladderData.mat). This folder also contains two modified versions of the LUT model (LUT_Model_OAB.py and LUT_Model_BOO.py) alongside a Jupyter notebook (hypotheses.ipynb) to reproduce pathological hypotheses presented in the paper.

Installation

Clone the repository and install the required dependencies:

bash git clone https://github.com/MoveR-Digital-Health-and-Care-Hub/lower-urinary-tract-sim.git cd lower-urinary-tract-sim pip install -r requirements.txt

Use

```python from model import LUT_Model as model

dT = 0.1 # Time Step maxTime = 300 # Seconds

Create a lower urinary tract instance

LUT = model.LUT()

Run the simulation

data = LUT.processneuralinput(maxTime, dT) ```

Optional Runtime Parameters

  • noise (default = 1): Controls the level of noise in the kidney output/bladder inflow.

  • V_unit (default = 'm^3', supports: 'm^3', 'ml'): Unit for volume measurements.

  • p_unit (default = 'Pa', supports: 'Pa', 'cmH2O'): Unit for pressure measurements.

  • verbose (default = False): When enabled (set to True), provides simple progress updates (e.g., 'Progress: X%'), which can be useful for monitoring the completion status of long-running simulations.

  • seed (default = None): When provided a numerical seed (e.g. 42), the random noise will be reproducible between LUT model instances.

  • trigger_metric (default = 'pressure', supports: 'pressure', 'volume'): Used to determine which metric triggers voiding, based on their respective thresholds.

Example Output of data

| $VB$ | $f{aD}^$ | $f_{aS}^$ | $rU$ | $Q$ | $pD$ | $pS$ | $Q{in}$ | $t$ | $\omegae^*$ | $\omegai^$ | $\omega_s^$ | voiding | |--------------|-----------|---------|-----|----|-----------|------------|--------------|---------|--------|-------|-------|---------| | 5.012659e-09 | 0.004000 | 0.25000 | 0.0 | 0.0 | 17.459235 | 2947.032009 | 5.012659e-08 | 0.0 | 0.040000 | 0.1 | 0.5 | False | | 1.002532e-08 | 0.007560 | 0.37500 | 0.0 | 0.0 | 33.032752 | 4370.548014 | 5.012657e-08 | 0.1 | 0.040002 | 0.1 | 0.5 | False | | 1.503797e-08 | 0.010729 | 0.43750 | 0.0 | 0.0 | 46.926197 | 5082.306016 | 5.012655e-08 | 0.2 | 0.040003 | 0.1 | 0.5 | False | | 2.005062e-08 | 0.013549 | 0.46875 | 0.0 | 0.0 | 59.322788 | 5438.185017 | 5.012653e-08 | 0.3 | 0.040005 | 0.1 | 0.5 | False | | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | |||||||||||||

Owner

  • Name: MoveR-Digital-Health-and-Care-Hub
  • Login: MoveR-Digital-Health-and-Care-Hub
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "An Open-Source Neurodynamic Model of the Lower Urinary Tract"
authors:
  - family-names: Lister
    given-names: Elliot
    orcid: "https://orcid.org/0009-0002-6008-0287"
  - family-names: McConnell-Trevillion
    given-names: Aidan
    orcid: "https://orcid.org/0009-0004-0604-5768"
date-released: 2024-11-21
doi: 10.1101/2024.11.21.624716
repository-code: https://github.com/MoveR-Digital-Health-and-Care-Hub/lower-urinary-tract-sim
license: MIT
preferred-citation:
  type: article
  authors:
    - family-names: Lister
      given-names: Elliot
      orcid: "https://orcid.org/0009-0002-6008-0287"
    - family-names: McConnell-Trevillion
      given-names: Aidan
      orcid: "https://orcid.org/0009-0004-0604-5768"
    - family-names: Jabbari
      given-names: Milad
      orcid: "https://orcid.org/0000-0001-7127-9115"
    - family-names: Erfanian
      given-names: Abbas
      orcid: "https://orcid.org/0000-0003-0128-4474"
    - family-names: Nazarpour
      given-names: Kianoush
      orcid: "https://orcid.org/0000-0003-4217-0254"
  doi: 10.1101/2024.11.21.624716
  journal: "bioRxiv"
  title: "An Open-Source Neurodynamic Model of the Bladder"
  year: 2024

GitHub Events

Total
  • Release event: 2
  • Watch event: 1
  • Push event: 1
  • Public event: 1
  • Create event: 2
Last Year
  • Release event: 2
  • Watch event: 1
  • Push event: 1
  • Public event: 1
  • Create event: 2

Dependencies

requirements.txt pypi
  • Brian2 ==2.8.0.4
  • Cython ==3.0.12
  • Jinja2 ==3.1.5
  • MarkupSafe ==3.0.2
  • Pygments ==2.19.1
  • appnope ==0.1.4
  • asttokens ==3.0.0
  • comm ==0.2.2
  • contourpy ==1.3.1
  • cycler ==0.12.1
  • debugpy ==1.8.11
  • decorator ==5.2.1
  • exceptiongroup ==1.2.2
  • executing ==2.1.0
  • fonttools ==4.56.0
  • importlib_metadata ==8.6.1
  • ipykernel ==6.29.5
  • ipython ==9.0.0
  • ipython_pygments_lexers ==1.1.1
  • jedi ==0.19.2
  • jupyter_client ==8.6.3
  • jupyter_core ==5.7.2
  • kiwisolver ==1.4.8
  • matplotlib ==3.10.1
  • matplotlib-inline ==0.1.7
  • mpmath ==1.3.0
  • nest_asyncio ==1.6.0
  • numpy ==2.2.3
  • packaging ==24.2
  • pandas ==2.2.3
  • parso ==0.8.4
  • pexpect ==4.9.0
  • pickleshare ==0.7.5
  • pillow ==11.1.0
  • pip ==25.0
  • platformdirs ==4.3.6
  • prompt_toolkit ==3.0.50
  • psutil ==7.0.0
  • ptyprocess ==0.7.0
  • pure_eval ==0.2.3
  • pyparsing ==3.2.1
  • python-dateutil ==2.9.0.post0
  • pytz ==2025.1
  • pyzmq ==26.2.0
  • scipy ==1.15.2
  • setuptools ==75.8.0
  • six ==1.17.0
  • stack_data ==0.6.3
  • sympy ==1.13.3
  • tornado ==6.4.2
  • traitlets ==5.14.3
  • typing_extensions ==4.12.2
  • tzdata ==2025.1
  • wcwidth ==0.2.13
  • wheel ==0.45.1
  • zipp ==3.21.0