1#------------------------------------------------------------------------------ 2# butadiene.model 3# 4# A three-compartment minimal physiological model of butadiene with primary 5# metabolism. Inhalation is modeled. 6# States are quantities of butadiene and metabolite formed. 7# 8# Copyright (c) 1993-2016 Free Software Foundation, Inc. 9#------------------------------------------------------------------------------ 10 11States = {Q_fat, # Butadiene quantity in the fat (mg) 12 Q_wp, # ~ in well-perfused tissues (mg) 13 Q_pp}; # ~ in poorly-perfused tissues (mg) 14 15 16Outputs = {C_alv, # Butadiene concentration in alveolar air (mg/l) 17 C_exh, # ~ exhaled (ppm) 18 C_art, # ~ arterial blood (mg/l) 19 C_ven, # ~ venous blood (mg/l) 20 dQ_ven, # 21 PC_art_obs, # Measured blood/air partition coefficient 22 Flow_pul_obs}; # ~ pulmonary flow 23 24Inputs = {C_inh}; # Butadiene concentration inhaled (ppm) 25 26 27# Constants 28# ========= 29# Molecular weight (in grams) 30MW_bu = 54.0914; 31 32# Conversions between ppm and mM (under normal conditions): 33ppm_per_mM = 24450; 34 35# Conversions from/to ppm: 24450 ppm = 54.0914 mg/l 36ppm_per_mg_per_l = 24450 / 54.0914; 37mg_per_l_per_ppm = 1 / ppm_per_mg_per_l; 38 39 40# Default parameter values 41# ======================== 42# Units: 43# Volumes: liter 44# Time: minute 45# Flows: liter / minute 46 47# Physiological and pharmacokinetic parameters 48# -------------------------------------------- 49# Bodyweight (kg) 50BDW = 73; # standard value 51height = 1.6; # meters 52Age = 40; 53Sex = 1; 54N_BR = 12; # nbr of breathes per minute 55 56# Tissue volumes as % of BDW (density 1 assumed) 57Pct_BDW_wp = 0.2; # well perfused tissue, % of lean mass 58 59# Pulmonary ventilation rate (minute volume) (L/min) 60Flow_pul = 5; 61 62Pct_Deadspace = 0.7; # Percent pulmonary deadspace 63 64Pct_Flow_fat = 0.1; 65Pct_Flow_pp = 0.35; 66 67# Blood/air partition coefficient 68PC_art = 2; 69 70# Tissue/blood partition coefficients 71PC_fat = 22; 72PC_wp = 0.8; 73PC_pp = 0.8; 74 75# Ventilation over perfusion ratio 76Vent_Perf = 1.14; 77 78# Hepatic rate constant for metabolism (1/min) 79Kmetwp = 0.25; 80 81 82# Statistical parameters 83# ---------------------- 84# Variances inter individuelles 85Vr_PC_pp = 0.182; # factor 1.2 86Vr_PC_wp = 0.182; # factor 1.2 87Vr_Pct_dead = 0.182; # factor 1.2 88Vr_Pct_Flow_fat = 0.182; # factor 1.2 89Vr_Pct_Flow_pp = 0.182; # factor 1.2 90Vr_Pct_BDW_wp = 0.182; # factor 1.2 91Vr_PC_art = 0.182; # factor 1.2 92Vr_Flow_pul = 0.182; # factor 1.2 93Vr_Km_wp = 0.182; # factor 1.2 94SD_exh = 1.3; 95 96# Variances intra individuelles 97Va_Pct_dead = 0.182; # factor 1.2 98Va_Pct_BDW_wp = 0.182; # factor 1.2 99Va_Pct_Flow_fat = 0.182; # factor 1.2 100Va_Pct_Flow_pp = 0.182; # factor 1.2 101Va_Flow_pul = 0.182; # factor 1.3 102Va_PC_art = 0.182; # factor 1.2 103Va_PC_pp = 0.182; # factor 1.2 104Va_PC_wp = 0.182; # factor 1.2 105Va_Km_wp = 0.182; # factor 1.2 106 107 108 109# Scaled parameters 110# ----------------- 111# The following parameters are calculated from the above values in the 112# Scale section before the start of each simulation. 113# They are left uninitialized here. 114 115# Total blood flow 116Flow_tot = 0; 117Flow_alv = 0; 118 119Eff_V_fat = 0; 120Eff_V_wp = 0; 121Eff_V_pp = 0; 122 123Flow_fat = 0; 124Flow_wp = 0; 125Flow_pp = 0; 126 127 128Initialize { 129 130 # Calculate Flow_alv from total pulmonary flow 131 Flow_alv = Flow_pul * (1 - Pct_Deadspace); 132 133 # Calculate total blood flow from the alveolar ventilation rate and the 134 # V/P ratio. 135 Flow_tot = Flow_alv / Vent_Perf; 136 137 Pct_BDW_fat = (1.2 * BDW / (height * height) - 10.8 *(2 - Sex) + 138 0.23 * Age - 5.4) * 0.01; 139 # 1 male, 2 female 140 Eff_V_fat = Pct_BDW_fat * BDW; 141 Eff_V_wp = Pct_BDW_wp * BDW * (1 - Pct_BDW_fat); 142 Eff_V_pp = 0.9 * BDW - Eff_V_fat - Eff_V_wp; 143 144 # Calculate actual blood flows from total flow and percent flows 145 Flow_fat = Pct_Flow_fat * Flow_tot; 146 Flow_pp = Pct_Flow_pp * Flow_tot; 147 Flow_wp = Flow_tot * (1 - Pct_Flow_pp - Pct_Flow_fat); 148 149} # end of Initialize 150 151 152Dynamics { 153 154 # Venous blood concentrations at the organ exit 155 Cout_fat = Q_fat / (Eff_V_fat * PC_fat); 156 Cout_wp = Q_wp / (Eff_V_wp * PC_wp ); 157 Cout_pp = Q_pp / (Eff_V_pp * PC_pp ); 158 159 # Sum of Flow * Concentration for all compartments 160 dQ_ven = Flow_fat * Cout_fat + Flow_wp * Cout_wp + Flow_pp * Cout_pp; 161 162 # Arterial blood concentration 163 # Convert input given in ppm to mg/l to match other units 164 C_art = (Flow_alv * C_inh / ppm_per_mg_per_l + dQ_ven) / 165 (Flow_tot + Flow_alv / PC_art); 166 167 # Quantity metabolized in liver 168 dQmet_wp = Kmetwp * Q_wp; 169 170 # Differentials for quantities 171 dt (Q_fat) = Flow_fat * (C_art - Cout_fat); 172 dt (Q_wp) = Flow_wp * (C_art - Cout_wp) - dQmet_wp; 173 dt (Q_pp) = Flow_pp * (C_art - Cout_pp); 174 175} # End of Dynamics 176 177 178CalcOutputs { 179 180 # Venous blood concentration 181 C_ven = dQ_ven / Flow_tot; 182 C_alv = C_art / PC_art; 183 C_exh = (C_alv <= 0 ? 184 10E-30 : 185 (1 - Pct_Deadspace) * C_alv * ppm_per_mg_per_l + 186 Pct_Deadspace * C_inh); 187 188 Flow_pul_obs = Flow_pul / pow(BDW, 0.7); 189 PC_art_obs = PC_art; 190 191} # End of CalcOutputs 192 193End. 194