Geerts_2023_PBPK_QSP_SBML_Model

Usage Instructions

This document provides comprehensive instructions for installing, running, and visualizing results from the Geerts model.

Table of Contents

Installation

Prerequisites

Setup Steps

  1. Create and activate a virtual environment:
    # Create virtual environment
    python -m venv venv
       
    # Activate virtual environment
    # On macOS/Linux:
    source venv/bin/activate
    # On Windows:
    .\venv\Scripts\activate
    
  2. Install dependencies:
    pip install -r requirements.txt
    
  3. Configure JAX (Important): Before running any scripts, set this environment variable to avoid JAX runtime issues:
    import os
    os.environ['XLA_FLAGS'] = '--xla_cpu_use_thunk_runtime=false'
    

    This is due to a known diffrax/JAX issue with jax==0.5.3. See XLA_FLAGS issue for details.

Running Simulations

Main SBML-Based Simulations

1. Multi-Dose Simulation (Full Model)

python run_combined_master_model_multi_dose.py --drug {gantenerumab,lecanemab}

2. No-Dose Simulation (Natural History)

python run_no_dose_combined_master_model.py --drug {gantenerumab,lecanemab} --years 20

3. Single-Dose Simulation (Validation)

python run_combined_master_model.py --drug {gantenerumab,lecanemab}

Command Line Arguments

Argument Options Description
--drug gantenerumab, lecanemab Antibody type (affects parameters and dosing method)
--years Integer Simulation duration for no-dose runs
--outdir Path Output directory (ODE version only)

Viewing Results

Alternative Implementations

ODE-Based Implementation (Faster)

For faster simulations and parameter exploration, use the direct ODE implementation:

cd ODE_version
python run_no_dose.py --drug {gantenerumab,lecanemab} --years 20

Key Features:

Generated Outputs:

Limitations:

Tellurium Implementation (Parameter Analysis)

For sensitivity analysis and parameter exploration:

cd Tellurium
python run_default_simulation.py
python agg_rate_sensitivity.py  # Aggregation rate sensitivity
python CL_sensitivity.py        # IDE clearance sensitivity

Advantages:

Current Limitation:

Visualization Options

Real-time Visualization

Post-simulation Visualization

1. Full Model Results

python plot_saved_solution.py --drug {gantenerumab,lecanemab}

2. Steady State/No-Dose Results

python visualize_steady_state.py --drug {gantenerumab,lecanemab} --years 20

3. Model Comparison

python compare_no_dose_models.py --drug {gantenerumab,lecanemab} --years 20

Key Visualizations Generated

Model Generation Process

The SBML model is automatically generated through these steps:

  1. Module Combination: Combined_Master_Model.py merges all modules
  2. SBML Export: Model saved as XML in generated/sbml/
  3. JAX Conversion: SBML converted to JAX using sbml_to_ode_jax
  4. Simulation: Uses diffrax for ODE solving

Generated Files:

Runtime Considerations

Simulation Type Typical Runtime Use Case
Multi-dose (SBML) hours Complete treatment analysis
No-dose (SBML) hours Natural history, validation
Single-dose (SBML) hours Pharmacokinetic validation
No-dose (ODE) minutes Fast parameter exploration
Tellurium sensitivity seconds Parameter sensitivity analysis

Optimization Tips:

Dependencies and Configuration

Required Dependencies

jax==0.5.3
jaxlib==0.5.3
diffrax==0.7.0
python-libsbml
sbml_to_ode_jax
tellurium
matplotlib
pandas
numpy

Important Configuration Notes

  1. JAX Configuration: Always set the XLA flag before running JAX-based scripts
  2. Parameter Files:
    • SBML version uses parameters/PK_Geerts.csv
    • ODE version uses ODE_version/Geerts_Params_2.csv
    • Tellurium uses the XML file from the SBML version
  3. Output Directories: Automatically created if they don’t exist
  4. Directory Navigation: All scripts are set up to be run from the directory they exist in

Troubleshooting

Common Issues: