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