\l/
'ICF Users Guide for the
FORTRAN Version
of the All Ages Lead
Model
Excel User Interface and FORTRAN
Model Executable
April 2019
-------
AALM.FOR Users Guide
Table of Contents
I. A Brief History of the Leggett Model and an Introduction to the FORTRAN All Ages Lead
Model 3
1. The All Ages Lead Model and an Exposure Interface 3
2. Adapting the Exposure Interface for AALM.FOR 4
II. Overview of the Excel User Interface and FORTRAN Model 5
III. How to Setup and Run the Leggett Model Using the Excel Interface 6
1. Unzip the Model File Package and add the Appropriate Runtime Library 7
2. Complete the Simulation Control Tab 8
3. Configure the Exposure Input Tabs 14
4. Make any Necessary Changes to the Biokinetic Parameter Input Tabs 19
5. Run the Model and Import the Results 19
6. QA Step: Confirm the Intake Results Give the Correct Time Series 20
2
-------
AALM.FOR Users Guide
I. A Brief History of the Leggett Model and an
Introduction to the FORTRAN All Ages Lead Model
The Leggett biokinetic model (Leggett, 1993) simulates the intake, exchange, and excretion of
lead in humans from birth through adulthood using a series of body compartments with mass
exchange between them. When the model was originally coded, it synthesized a wide variety of
sometimes disparate sources of information related to the biokinetics of lead in humans. The
Leggett model was informed by:
¦ Lead tracer studies of injection, ingestion, and inhalation in healthy adult humans,
¦ Measurements of lead in environmentally exposed men, women, and children at autopsy,
¦ Lead mass-balance studies on adult humans,
¦ Bioassay and autopsy measurements on occupational^ exposed subjects,
¦ Lead studies in laboratory animals ad different life stages
¦ Experimental, occupational, environmental, and medical data on the biokinetics of elements that serve as
physiological analogues of lead, and
¦ Basic physiological information on the human body.
As such, the Leggett model structure is a minimal system of body compartments and mass
exchange terms needed to synthesize all these data sets. The modular form of the model allows
investigators to modify specific parameter values to address special problems in lead toxicology
or to incorporate new information related to lead biokinetics. The original Leggett model
included:
¦ Input file: an ASCII input file containing information describing the lead exposure scenario and the age-
dependent lead transfer rates for each compartment, and
¦ Model code: an executable FORTRAN program which reads the input file, performs the prescribed calculations,
and writes the outputs to an ASCII file.
This approach was designed to provide maximum flexibility and versatility rather than user-
friendliness.
1. The All Ages Lead Model and an Exposure Interface
The original Leggett model has, on several occasions, been translated onto other software
platforms or into other programming languages. One notable example is the inclusion of the
Leggett model in the Environmental Protection Agency's (EPA) All Ages Lead Model (AALM). In
collaboration with EPA, SRC, Inc. recoded the model in the acsIX programming language.
Unlike FORTRAN, this programming language comes with off-the-shelf differential equation
solvers supporting variable time steps, along with other functions (such as "TABLE") that easily
allow input parameters to vary in time during the simulation.
SRC also added an Excel user interface that expanded the Leggett model to incorporate
exposure estimation. The original Leggett model accepts inputs of inhalation and total oral
intake in units of |a,g lead/day. The Excel user interface allows the user to enter in time-varying
air concentrations (jo.g lead/m3 air); dust concentrations (|a,g lead/g dust); soil concentrations (jo.g
lead/g soil); water concentrations (|a,g lead/L water); inhalation rates (m3 air/day); total (soil plus
dust) ingestion rates (g dust/day); water ingestion rates (L water/day); and food and "other"
3
-------
AALM.FOR Users Guide
intake rates (|jg lead/day). The total (soil plus dust) ingestion rate and the fraction of total
coming from soil are entered in the "Soil" tab. The user can also specify relative absorption
factors for air, dust, soil, water, food, and "other" sources. The Excel interface writes input files
for the acsIX code and the acsIX code incorporates the different media concentrations, media
intake rates, and relative absorption factors to estimate total inhalation and total ingestion
uptakes at each model time step. This feature greatly improved the user-friendliness of the
model, since users could record and run a wide variety of exposure scenarios in a transparent
way.
As part of coding and testing the AALM, EPA and SRC simulated a number of datasets,
including adult and childhood datasets used during the original Leggett code calibration and
validation as well as additional datasets identified during a literature search. Based on these
tests, parameters were adjusted to ensure the best overall fit against all datasets. A full report
documenting the datasets and parameter changes was provided to EPA and serves as a
technical background document for this user guide.
2. Adapting the Exposure Interface for AALM.FOR
As noted above, acsIX provides a number of benefits compared with a FORTRAN executable,
and the AALM Excel interface improved user-friendliness for estimating exposure profiles.
However, acsIX is proprietary software, limiting the availability to some stakeholders. Then, in
2015, makers of the acsIX simulation language announced the language would be "sunsetted",
meaning no new licenses would be sold. The EPA Office of Pollution Prevention and Toxics was
already using the FORTRAN version as part of the Lead Renovation, Repair, and Painting
analyses for public and commercial buildings; because of the number of simulations needed for
this Monte Carlo analysis, acsIX was not practical and EPA required the speed and efficiency
inherent in the FORTRAN language to complete the analysis. As part of that project, EPA OPPT
worked with EPA ORD to evaluate the differences between the AALM and the Leggett
FORTRAN code and to harmonize the inputs. They reevaluated the parameters against all
datasets and also demonstrated that the acsIX and FORTRAN versions, when configured with
the same growth algorithms and input parameters, returned results to within +/- 5% of each
other for a range of exposure scenarios in both children and adults. The final product included
an acsIX version of the All Ages Lead Model (AALM.CSL) and a harmonized FORTAN version
(AALM.FOR).
To help allow other researchers and regulators to use the FORTRAN version, particularly in the
face of the acsIX "sunsetting", EPA and ICF have created this Excel user interface. The goals of
this user interface are:
1) To maintain the format and functionality of the AALM.CSL Excel interface, particularly
with respect to exposure estimation,
2) To adapt the tool to create the input files for the AALM.FOR and to call the FORTRAN
executable directly to allow the user to run the Leggett AALM algorithms without acsIX,
and
3) To provide a rudimentary user's guide to help users to understand how to setup and run
the simulations in this version, given the more extensive AALM.CSL documentation as a
resource.
4
-------
AALM.FOR Users Guide
II. Overview of the Excel User Interface and
FORTRAN Model
The Excel user interface to AALM.FOR model consists of the following pieces:
• The Excel user interface file:
o A ReadMe tab with instructions for setting up a run (blue)
o Main simulation control input tab (purple)
o Exposure input tabs (green)
o Biokinetic parameter input tabs (orange)
o Output tabs (red)
o Reference tabs (gold)
• An input file template
o The Excel file uses the information in the tabs to fill in the template and create an
input file
• The Leggett executable:
o This is a 32-bit executable that is called by the Excel file to run the model
• Supplementary files:
o The user's guide (this file)
o The Leggett model text file that was compiled to create the Leggett executable. It
is not needed to run the model but may be needed by some researchers who
wish to make future changes to the model algorithms.
Exhibit 1 outlines the process the tool uses to run AALM.FOR. The steps include:
STEPl: Setup Timestep
Input Zone (use only if
NDELT is changed)
Configure the [Simulation Control tab variables. Press the button
"STEP 1. Setup Timesteps" to complete the configuration.
STEP 1 does not need to be completed unless the number of
time steps during a simulation is changed. It is recommended
that the default of 1 be used.
STEP2: Update
Leggett
VariableTab
Enter/edit inputs for the exposure inputs and biokinetic inputs in
the exposure input tabs ("Air", "Dust", "Soil", "Water", "Food",
"Other", "RBA") and the biokinetic input tabs ("Lung", "Systemic"
and "Sex"). Press the "STEP 2. Update Leggett Variable Tab"
button on the "Simulation Control" tab to complete the
configuration. The Excel interface generates the input file using
the provided text template file.
5
-------
AALM.FOR Users Guide
STEP3: Run
Leggett
Press the "STEP 3: Run Leggett" button on the "Simulation
Control" tab.
a. The code then sends the input file to the FORTRAN
model and calls the FORTRAN executable to run the
model.
b. The executable creates the output text file.
c. Excel then imports the results into the |Output tab| of the
tool.
Please note: to create the 32-bit executable, ICF used the proprietary Intel FORTRAN compiler.
As such, the compiler itself is not provided as part of the package. This compiler version was
needed to get the model to properly compile. ICF also attempted to compile the model using
free FORTRAN compilers, including the GNU compiler. However, the code returned errors in
the compilation during our testing.
Exhibit 1. Overview of the Excel Interface Configuration and Run Process
Supplementary Tabs
Biokinetic Inputs
Output
ReadMe
Simulation Control
Excel User Interface
Input File
>:
STEPl: User
configures
simulation
control tab
STEP 3a. Excel file sends the input file
to the FORTRAN model and runs the
code.
STEP 2: User configures the input
tabs. Excel interface generates the
input file using the template file
STEP3c. Excel file
imports the results
into the tool.
FORTRAN Executable
STEP 3b. Executable
creates a text output file.
Output File
III. How to Setup and Run the Leggett Model Using the
Excel Interface
This final section of the User's Guide provides a brief description of how to configure the user
interface and run AALM.FOR.
6
-------
AALM.FOR Users Guide
1. Unzip the Model File Package and add the Appropriate
Runtime Library
To begin to use the model, upzip the zip file arid place the contents in any folder on your
computer. On some systems, if the files are placed in the "Documents" folder or subfolder, a
Microsoft Visual Basic "Run-time error '5': Invalid procedure or call or argument" will occur when
the STEPS macro tries to determine the file path. Should this error occur, try placing the folder
on a part of the C: drive where you have read/write permissions. You can save different Excel
files for each of your different simulations, and these can be in different folders on your
computer. The only restriction is that each time you run the Excel file, the following files must be
in the same folder as the Excel file:
1. ICRPv008d_aalm_32bit.exe (the model executable)
2. Intermediate Exposure Time Series.csv (an optional diagnostic file to save intermediate
exposure time series, see page 12)
Next you can open the Excel file. For the file to work, you must add a runtime library to Excel if
you have never done so in the past. To do this:
Step 1: Load the VB Editor (ALT+F11)
fiMtown y-imn Us* 'or ippucv-w ugg«R;0uy0i'Wl»..«i»i5m
[fe £dtt Kiew |nsm fcmart Det-jj £un iocls ftdd-i
® i5 - A ^ & ¥'3
- '.BWlSKd x|
" H |
• dtuvW.ii.Kh (ATPVOAIN.Xl/iMf
• © Solver (MJLVUC.XLAM)
- f'J VBAS'roK-t' (AAJLH LtH Barry lO.xbrn)
.Vt VflWrojm (FtlHCiifS.XIAM)
VBAPTGjAft (I «>g«r_ail_103 7MI fi_val.xkm)
'~1 Hitfuwft Ex«l OWecli
¦J Wieetl (An)
® SheetlO IQft&rs]
4ft Snaetu (output)
® 5!ieeU2 (Srulrtsm Control)
Sheetlj (H.esMt)
•1) Sheetui CPfcinftMJat:
¦£ Sh6«Tl7 CU«ra_Vwfeiw)
¦D awns (Ruorj
B Sfieedl (WK*r)
« ShaeM (Food)
WH Sheets (OthffJ
40 5rn>ets (rba;
¦Q sheet? (Una)
® Sheet® (SyjtewiC)
in Sheets (5«x)
Hmdow tWf
0
a Hoduits
4 nodutei
4J MwJuW
4 HoriuM
dt ut*y
¦ ?£ VBAPri»«t (QA_AAlW.»;biJi)
¦ J?S VBAPruqucl (Sum»rurv_of_*jftdjitlo«i_1013.*feic)
lis Lsew,
he.ind hi Lor*
m. iKim I Aj '.u
lii*_! *ji CvsufcS*,
iluc, lwnlh A3 Lvn*
.2 Ai
, 1) >= iSw
Phil» (U»yi^in4 <
If MfM.slwftMr. Mil). 1) < 1
?ia*_iiu£ ft 4 I
8i»eif input-Ktaritm.tn
ii T 0 Jfcf*,
Tim tht«. 3 = input. wnyftiM.uMli
s ir,j,ne_»rr»jr(lim*_ird i I, 1)
t = irjAJt stray (tyw. in*. i)
Willi*.,? > » t, Jf
HlsdU tin -r,s > 0~And tine xn.-! < tin lerifth Ifiwi
ua*.tK**L) - s, D
tiiw.thr*j_2 = iririn, array it i««_i!v3, 5>
I, ii
w*ly#_2 = ireftit.arriyttiM.iiii, 2>
Enrf If
e_thr*t„3 = 0
e.thiea.lH • (tsue.t
Lt'fltrt'.Uy of v»l*« «iwwr«
! the l»rt day at pulse exp-^nji*!
A^etc Otoomsed
!0!X>ldrf, References from the drop-down menu, and from the list of available
references tick the check box next to 'Microsoft Scripting Runtime' and click OK.
7
-------
AALM.FOR Users Guide
?] Microsoft Visual Basic for Applications - Leggett_GUI_10272016_val.xlsm - [Module2 (Code)]
File Edit View Insert Format Debug Run Tools Add-Ins Window Help
Project ¦ VBAProject
Big
!£
XI
i
atpvbaen.xls (ATPVBAEN.XLAM)
Solver (SOLVE R.XLAM)
VBAProject (AALM LFM Barry_ICF.xlsm)
VBAProject (FUHCRES.XLAM)
VBAProject (Leggett_GUI_10272016_val.xbm)
Microsoft Excel Objects
r ® Sheetl (Air)
H] SheetlO (Options)
: ® Sheetl 1 (Output)
fi Sheetl2 (Simulation Control)
I] Sheetl3 (ReadMe)
H] Sheetl6 (Pounds.dat)
ST) Sheetl7 (Leggett_Variables)
j® Sheet2 (Dust)
Sp Sheet3 (Water)
H] sheet4 (Food)
® Sheet5 (Other)
: m Sheet6 (RBA)
® Sheet7 (Lung)
H] Sheet8 (Systemic)
ID Sheet9 (Sex)
® ThisWorkbook
Modules
««£ Modulel
Module2
; Module3
: utility
VRflPrniATt fOfl AA1 M vkv^
ral)
Dim time_length As Long, value_length As Long
Dim time_ind As Long
Dim time_thres_l As Double, time_thres_2 As Double
Dim value_l As Double, value_2 As Double
0 Visual Basic For Applications
IVi Microsoft Excel 15.0 Object Library
ly] OLE Automation
Microsoft Office 15.Q Object Library
I atpvbaen.xls
~ Microsoft Forms 2.0 Object Library
~ Ref Edit Control
~ Solver
~ VBAProject
C VBAProject
~ VBAProject
~ VBAProject
Available References:
Microsoft Scripting Runtime
Location: C: \Windows Vsystem32Vscrrun. dll
Language: Standard
Priority
Help
Reference; - VBAProject
Debug.print "matched==", time_ind, time_thres_l, time_thres_2, value_l, value_2, Time_to_est
Then you can close the VBA editor. You only need to complete this step the first time you run
the tool on your computer.
For some versions of Excel, you may also need to enable the macros within the file when you
open it as well. When you open the tool, a yellow bar will appear at the top with a button "Enable
Content?". Click the button to enable the macros. If this button does not appear, you can also do
the following:
¦ Click the Microsoft Office Button, and then click Excel Options.
¦ Click Trust Center, click Trust Center Settings, and then click Macro Settings.
¦ Click the options to enable the macros.
2. Complete the Simulation Control Tab
To begin a simulation, begin with the simulation control tab. This sheet primarily contains the
Leggett input parameters that control:
1) Timing in the simulation (age at the start, time
step lengths, and ending day of the simulation)
2) How often the outputs should be written to the
output file (that is, how many time steps there are
between each output).
3) The sex of the modeled individual (for estimation
of growth parameters).
4) The name of the output text file.
5) Binary switches ("shortcuts") to indicate which exposure pathways (air, dust, soil, water, food,
and other) will be used in the simulation.
Yellow Highlighted Text = Cells That Can
Be Edited by the User
Throughout the Excel GUI, yellow cells
indicate values that can be adjusted by the
user if desired. Other cells should not be
edited.
8
-------
AALM.FOR Users Guide
6) A binary switch to indicate whether the user wants to save the intermediate exposure time
series.
7) A binary switch to indicate whether the exposure time series should be stepwise or
interpolated when implemented in the model.
Other information includes parameters that are currently fixed (not editable) in the user
interface:
8) Information about the number of ages at which the biokinetic parameters vary in the model
(this is currently fixed at 11) and the ages (0, 3 months, 1,5, 10, 15, 25, 30, 40, 60, and 90).
9) The route of exposure and how the exposure is entered in the model (set to include all
possible routes)
10) Switch for whether the RBC equation is linear or non-linear (set to non-linear)
11) Radiological decay rate and chelation parameters (fixed so there is no decay or chelation)
Timing in the simulation (age at the start, time step lengths, and ending day
of the simulation)
The timing setup in the Leggett FORTRAN model is the most nuanced part from a user-
perspective. The user has to figure out how long to run the model, what time steps to use, and
how many time step "cycles" the model needs in order to reach the specified simulation length.
The interplay between these variables is explained in this section. The calculation is
straightforward if the user uses a single time step for the full simulation, which is strongly
recommended.
EXPAGE
0
To make changes to the editable (yellow) simulation timing variables, begin by entering the age
of the individual at the start of the simulation. Because lead accumulates in the body, it is
generally necessary to model the entire lifetime exposure of an individual, so this parameter is
usually set to 0 (birth).
NDELT
Next, decide on the number of different time step lengths to be used in the model. Unlike the
AALM.CSL, which can vary the time step as needed during the simulation, AALM.FOR requires
the user to specify whether they want to vary the time step by setting "NDELT" equal to the
number of different time step lengths desired. In general, time steps should be shorter than the
fastest biological process or the fastest rate of change in exposure. If exposure is varying
quickly (e.g., due to an acute exposure scenario), the time step needs to be short and overall
runtime becomes longer. The original Leggett code allows the user to specify a longer time step
either before the acute exposure or after exposure returns to baseline levels so that portions of
the simulation can be run faster. When the original code was built in 1993, this technique could
greatly reduce the overall runtime of the model. However, with current computing power, the
9
-------
AALM.FOR Users Guide
Leggett model tends to run in less than a minute for a 90 year simulation with a half-day time
step. For this reason, we strongly suggest selecting the shortest necessary time step and using
it for the entire simulation (NDELT=1). In testing, changing the time step mid-run resulted in
numerical noise at the time of the change, so using a single time step is preferred.
TSTOP
1500
Next, enter the final day of the simulation using variable "TSTOP". In the example here, the
model will be run for 1,500 days.
STEPl: Setup Timestep
Input Zone (use only if
NDELT is changed)
Now that you have specified the number of timestep changes you want to use and how many
total days you want to simulate, you need to specify details for each time step. If you have
changed the number of timesteps (i.e., NDELT), press the "STEP1: Setup Timestep Input Zone"
button. The interface will adjust the size of the table beginning in cell H20 according to the
number of time steps you want to use.
# Time step
DELT (Time step in days)
ICYC (Total number of model cycles
using the associated DELT time step)
1
0.25
6000
Then, enter the specifics about the time step in the table beginning in cell H20. First, specify
how long each time step should be (DELT) in days. As mentioned above, time steps should be
shorter than the fastest biological process or the fastest rate of change in exposure included in
the model. As a general guide, for chronic lead exposure, time steps on the order of 0.25-1 day
are usually sufficient.
The ICYC variable is then the model cycle where the time step changes. For example, if you
wanted to use a specific time step of 0.25 days for the first 1500 days of a simulation, then ICYC
would be 1500/0.25=6000 cycles.
If you are only using a single time step for the entire
simulation, this table is easy to fill out. You specify
the DELT, and the number of cycles is the total
number of days in the simulation divided by the time
step:
ICYC = TSTOP/DELT
If you are using more than one time step, the table is
slightly more intricate to fill out. Suppose you want to
create a simulation that uses a 0.5 day time step for
the 12.5 days, a 1 day time step for the next 25
days, and then a 2 day time step for the final 100
days. Then:
Word to the Wise: Make Sure Years Have
an Integer Number of Time Steps
Because the Leggett model accepts inputs
for time step lengths in days but for ages in
years, it is generally best to keep the
number of time steps in the year an integer.
For example, using "0.25" will give 6 hours
per time step and 1460 time steps per year
(365/0.25). If instead you used "0.33" (the
truncated version of 1/3), you will get
1106.06060606... time steps per year
(365/0.33). This causes the timing in the
model to become slightly misaligned.
10
-------
AALM.FOR Users Guide
EXPAGE = 0 (start from birth)
NDELT = 3 (two different time steps)
TSTOP = 137.5 days, and
# Time step
DELT (Time Step)
ICYC (Model cycle where the time step
changes to DELT)
1
0.5
25
2
1
50
3
2
100
This indicates:
• The first time step (DELT1) is 0.5, it lasts 25 time steps (ICYC1), corresponding to 12.5
days
• The second time step (DELT2) is 1, it lasts 25 time steps (ICYC2-ICYC1), corresponding
to 25 days
• The third time step (DELT3) is 2, it lasts 50 time steps (ICYC3-ICYC2), corresponding to
100 days
• In total, those three time steps covers a total of 137.5 days
One final nuance: TSTOP and the total number of cycles may not actually match each other
based on user input, and the FORTRAN code will use whichever is shorter. If TSTOP = 80, the
actual simulation period will be 80 days. On the other hand, if TSTOP = 180, the actual
simulation period will be 137.5 days (the number of cycles specified in the time step input table).
How Often the Outputs should be Written to the Output File
In order to control the frequency of the output, the user decides how often the model should
write the output variables to the output file. CI NT uses the number of time steps as its unit. If the
time step is 0.5 days and the CINT is 730, the outputs will only be written every year (0.5*730).
This helps to control the file size of the output file so that every time step is not saved.
CINT implies the time between outputs will vary if you are using different time steps over the
course of a run. For example, for the following time step input table, when CINT=1 and
TSTOP=7, the time step table and associated output table will be:
# Time step
DELT (Time Step)
ICYC (Ending Time of Each Time Step)
1
0.5
5
2
1
10
g
INTAKE IV
INTAKE INH
INTAKE ING
ug/day
ug/day
ug/day
1
5.00E-01
1.37E-03
0.00E+00
6.44E+00
6.43E+00
2
1.00E+00
2.74E-03
0.00E+00
6.44E+00
6.43E+00
3
1.50E+00
4.11E-03
0.00E+00
6.44E+00
6.43E+00
4
2.00E+00
5.48E-03
0.00E+00
6.44E+00
6.44E+00
11
-------
AALM.FOR Users Guide
5
2.50E+00
6.85E-03
0.00E+00
6.44E+00
6.44E+00
6
3.50E+00
9.59E-03
0.00E+00
1.43E+00
6.52E+00
7
4.50E+00
1.23E-02
0.00E+00
1.43E+00
6.25E+00
8
5.50E+00
1.51E-02
0.00E+00
1.43E+00
5.97E+00
9
6.50E+00
1.78E-02
0.00E+00
1.43E+00
5.86E+00
10
7.50E+00
2.05E-02
0.00E+00
1.43E+00
5.87E+00
The outputs are written every time step which is every half day for the first 2.5 days and then
every day for the remainder of the simulation. When CINT=2 and TSTOP=7, the output table will
be
N
DAY
YEAR
INTAKE IV
INTAKE INH
INTAKE ING
ug/day
ug/day
ug/day
2
1.00E+00
2.74E-03
0.00E+00
6.44E+00
6.43E+00
4
2.00E+00
5.48E-03
0.00E+00
6.44E+00
6.44E+00
6
3.50E+00
9.59E-03
0.00E+00
1.43E+00
6.52E+00
8
5.50E+00
1.51 E-02
0.00E+00
1.43E+00
5.97E+00
10
7.50E+00
2.05E-02
0.00E+00
1.43E+00
5.87E+00
Now the outputs are written every day for the first 2.5 days and then every 2 days after that.
The sex of the modeled individual (for estimation of growth parameters)
Next the user specifies whether the modeled individual is a male or a female. The AALM uses
growth algorithms that vary for males and females. Thus, the choice of sex does not control any
biokinetics in the model, but it does affect the predicted concentrations by altering the volume of
the modeled tissues/compartments over which the lead mass is distributed.
The name of the output text file
Finally, the user can type in the name of the text file generated by the Leggett executable.
Binary switches ("shortcuts") to include or exclude a certain exposure
pathways
These switches allow the user to easily include or exclude exposure from a given pathway (air,
dust, soil, water, food, and other). Please be aware that if "No" is selected for a certain pathway,
the corresponding exposure doses will be considered to be zero no matter what values are
listed on its individual exposure tab.
A binary switch to save intermediate exposure time series to a plain text
file
An option to save intermediate exposure time series data for further diagnostic is available. If
"Yes" is selected, a tab-separated text file "Intermediate Exposure Time Series.csv" will be
saved to the working folder. This comma delimited file may be opened in Excel. The column
definitions are listed in the following table:
12
-------
AALM.FOR Users Guide
Variable
Name
Meaning
Unit
Day
Time series of the simulated outputs in unit of day
|jg/day
Air
Intake dose from air pathway (before factoring in RBA)
|jg/day
Indoor Dust
Intake dose from dust pathway (before factoring in RBA)
|jg/day
Soil
Intake dose from soil pathway (before factoring in RBA)
|jg/day
Water
Intake dose from water pathway (before factoring in RBA)
|jg/day
Food
Intake dose from food pathway (before factoring in RBA)
|jg/day
Other
Intake dose from other pathway (before factoring in RBA)
|jg/day
BRETH
Intake dose from air pathway (before factoring in RBA)
|jg/day
EAT
Aggerated intake dose including dust, soil, water, food, and other
pathways.
|jg/day
Total
Total intake dose.
|jg/day
A binary switch to indicate whether the exposure time series should be
stepwise or interpolated when implemented in the model
In the data entry section for exposures (see section III.3), exposure values are provided at
discrete time points (e.g., intake of 6 jjg/day at age 2 and intake of 10 jjg/day at age 6). For the
biokinetic parameters and media intake rates (e.g., the amount of dust ingested at a given age),
the model implements the profiles by interpolating between the discrete time points. This can
also be done for exposure. For example, if the intake is 6 jjg/day at age 2 and 10 jjg/day at age
6, the model would create a smooth line between those points and use the value on the line for
each intermediate age (e.g., 7 jjg/day at age 3, 7.5 jjg/day at age 3 1/4, 8 jjg/day at age 4, and
similarly for every age). This provides a smoother blood lead concentration form the model.
However, in some applications, such as discrete acute exposure scenarios, the user may want
the exposure to abruptly change rather than interpolating.
Thus, two options are provided to simulate concentrations between two time stamps. For
example, if food discrete concentration is 2.25 jjg/day at Day 90, and 4.00 at Day 365. When
"stepwise" is selected, all of the food discrete exposure concentrations will be set to 2.25 jjg/day
as long as the modeled person is between 90 days and 365 days old. On the other hand, if
"interpolated" is selected, it is assumed that food concentration will be increased gradually
between those two time stamps.
ROWN
Age
Age
Food_1
Food_2
Food_3
FoodTotal
year
day
ug/day
ug/day
ug/day
ug/d
1
2
3
4
5
6
7
2
0.0
0
1.50"
0
0
2
3
0.2
90
2.25
0
0
2
4
1
365
4.00
0
0
4
5
2
730
5.20
0
0
5
6
3
1095
5.20
0
0
5
Other information includes parameters that are currently fixed (not
editable) in the user interface
13
-------
AALM.FOR Users Guide
The remaining variables on the simulation control tab are currently fixed in the user interface.
Information is given in the interface about the specific assumptions for each one. In general,
assumptions are made about each to facilitate user entry of information in the user interface (in
the case of "manual" versus "automatic" input and the ages where biokinetic parameters can
change), or to make the settings as flexible as possible (such as allowing all routes of exposure
to be present).
3. Configure the Exposure Input Tabs
The exposure is separated into air, dust, soil, water, food, and "other" pathways. For air, dust,
soil, and water, the user specifies both the media concentration (|a,g/m3 for air, |a,g/g for dust,
|a,g/g for soil, |a,g/L for water) and the intake rate for that media (m3/day for air, g/day for totaled
for soil and dust, L/day for water). The fraction of soil ingestion out of the total soil plus dust
ingestion is set in the Soil tab. Ingestion rates for dust are automatically calculated based on
entries in the Soil tab. Then, in each case, the code estimates the intake for that pathway as the
media concentration multiplied by the media intake rate.
In the user interface, each of these tabs had three sections:
• "discrete": the media concentration section on the left
• "pulse train": the media concentration section in the middle
• "Intake rates": the media-specific intake rates on the right. Please aware that different
names have been used across exposure tabs. For instance, this variable is called
"Ventilation" in air tab, "Dust/soil/water ingestion" in dust/soil/water tab, and not used in
"food" and "other" tabs.
In each case, the inputs allow the exposure parameters to vary in time and with age. In
"discrete", the user specifies the ages where the media concentrations change and the
associated media concentrations for up to three different sources. The user can also specify the
fraction of exposure attributed to each source (to account for different microenvironments for
dust or for different drinking water sources for water, etc.).
In "pulse train", the user can instead set up one-time or periodic pulses of exposure. These are
suitable for acute exposures or periodic exposures. The user specifies the time period over
which these pulses should be applied as well as the magnitude and length of the pulse. Again,
the fraction of exposure from the pulse (versus discrete sources) can be specified.
Finally, the intake rate section allows entry of age-varying intake rates for each media. These
can come from the EPA Exposure Factors Handbook or other sources.
The user entry is similar for "food" and "other". However, similar to the IEUBK lead model, these
two sources are entered as intakes (|jg/day) directly rather than specifying age-varying media
concentrations and media intake rates. For each, both discrete and pulse exposure profiles can
be created.
The Excel user interface then creates the complete "ingestion" and "inhalation" time-varying
exposure profiles by adding the ingestion pathways and using the "air" pathway for inhalation.
The user interface has to translate these profiles into the format used by the Leggett model.
Again, this process is seamless in AALM.CSL but is fairly intricate in AALM.FOR. Briefly, the
14
-------
AALM.FOR Users Guide
tool has to determine each age at which either the ingestion or inhalation intake varies and give
the input file both these ages and the vector of intakes corresponding to these ages.
The tool also uses the RBA tab to estimate relative bioavailabilities for the different pathways.
The user specifies a generic bioavailability (e.g., for food) and then specifies the relative
bioavailability for the other media compared with food. The tool applies these relative
bioavailabilities to the intakes and also supplies the input file with the absolute bioavailability
that is applied to all ingestion pathways.
Consider two illustrative examples based on the air pathway only, although a similar approach
can be applied to each pathway. The equation used to estimate intake dose from each
exposure pathway is:
IntakeWater — IntakeDiscrete exposureWater ^n^akepuise exposureWater
|Discvete ConCy^af-er X ^1 /pu(se)] ^ ^d^^^Water
+ [Tottl/ Pulse ConCWater X /p7x(se] ^ In-Q^stwater
3
— Wdteri X fwateri X (l — fpulse) * In9es^Water
-i=1
+ Baseline Pby/citer Pulse Pbwciter) ^ /pu(se] ^ ^^-d^^^Water
Example 1: Discrete exposure only
In this case, the user wants to specify exposure at discrete ages, and the exposure is not
cyclical (no "pulse"). The way to implement this is to set f_Pulse_Pb to 0 (a screenshot is
provided below), which indicates that exposures occur only from the discrete exposures; if
f_Pulse_Pb is set to 1, it means that exposures only occur from the pulse train; and a setting of
0.5 means that half of the exposure is contributed by the pulse train and half by the discrete
exposures. Variables used to implement this scenario are presented in the screenshot below,
where in this example the exposure are "stepwise" and not interpolated. Results of this scenario
including a plot of daily intake dose and a table with daily exposure time series are listed below.
15
-------
AALM.FOR Users Guide
A screenshot of variables used in Example 1 (run discrete only, f_Pulse Pb = 0)
Water Pb discrete: Assigns values to an age array of discrete water Pb concentrations (ug/L) from three sources and
fraction (f_Water) from each source. The resulting concentrations are combined with age-dependent water ingestion
rates to simulate daily water Pb intakes (ug/day). Ages (days) selected must be a monotonic series. Parameter values
must be assigned to all ages. Values are interpolated between ages.
ROWN
Age
Age
Water_1
f Water 1
Water_2
f Water 2
Water_
.3
f_Water_3
Water_TWA
year
day
ug/L
f
ug/L
f
ug/L
f
ug/L
1
2
3
4
5
6
7
8
9
10
2
0..0 r
0
0.9
1.00
0
0.00
0
r
0.00
r
0.90
3
0.2 r
90
0.9
1.00
0
0.00
0
r
0.00
r
0.90
4
r
365
0.9
1.00
0
0.00
0
r
0.00
r
0.90
5
2r
730
0.9
1.00
0
0.00
0
r
0.00
r
0.90
6
5.99r
2186.35
0.9
1.00
0
0.00
0
r
0.00
r
0.90
7
6r
2190
0.9
0.30
15
0 70
0
r
0.00
r
10.77
8
5 r
1825
0.9
0.30
15
0.70
0
r
0.00
r
10.77
9
6r
2190
0.9
0.30
15
0.70
0
r
0.00
r
10.77
10
7r
2555
0.9
0.30
15
0.70
0
r
0.00
r
10.77
11
8 r
2920
0.9
0.30
15
0.70
0
r
0 00
r
10.77
12
9 r
3285
0.9
0.30
15
0.70
0
r
0.00
r
10.77
13
10r
3650
0.9
0.30
15
0.70
0
r
0.00
r
10.77
14
15 r
5475
0.9
0.30
15
0.70
0
r
0.00
r
10.77
15
17.99 r
6566.35
0.9
0.30
15
0.70
0
r
0.00
r
10.77
16
18 r
6570
0.9
1.00
0
0.00
0
r
0.00
w
0.90
17
30 r
10950
0.9
1.00
0
0.00
0
r
0.00
r
0.90
18
40 r
14600
0.9
1.00
0
0.00
0
r
0.00
r
0.90
19
50 r
18250
0.9
1.00
0
0.00
0
r
0.00
r
0.90
20
60 r
21900
0.9
1.00
0
0.00
0
r
0.00
r
0.90
Daily water intake for Example 1
7.0
4.0
C
~o 3.0
ro
CD
te 2.0
^ 1.0
0.0
0
10
15
20
5
Age (years)
16
-------
AALM.FOR Users Guide
Time Series of Water Exposure Pathway for Example 1
Year
Water TWA
(ug/L)
Ingestion
(L/day)
Discrete water
intake dose
(ug/day)
0
0.9
0.20
0.18
1
0.9
0.35
0.32
5
0.9
0.35
0.32
5.99
0.9
0.37
0.33
6
10.8
0.37
3.98
10
10.8
0.45
4.85
17.99
10.8
0.60
6.41
18
10.8
0.60
0.54
20
0.9
0.63
0.56
Example 2: Pulse exposures only:
In this case, the exposure is an event with a known start day and length, and the exposure
pattern may repeat (cyclical). As an example, consider a baseline Pb concentration of 0.9 |jg/L
with pulse increase in water Pb concentration to 15 |jg/L exposures:
• The pulse is set to start at 2190 days (6 years) and end at 6569 days (end of 17 year)
• Pulse_1: width or duration is 5 days out of 7 days (the period)
• Pulse_2: sets the period over which PULSE_1 occurs, in this example 270 (9 months)
out of 365 days (12 months).
Variables used to implement this scenario are presented in the screenshot below, in which
f_pulse Pb is set to 1 since discrete exposure is not considered. Results of this scenarios
including a plot of daily intake dose and a table with daily exposure time series are listed below.
17
-------
AALM.FOR Users Guide
Screenshots of variables used in Example 2
Water Pb pulse train: Assigns values for simulating
episodic water Pb concentrations (ug/L) that occur at a
fixed frequency and duration schedule (e.g., 2 days per 7
days, 3 mo per year). Baseline is used between episodes. If
used in combination with discrete exposures, the pulsed
and discrete Pb intakes are apportioned according to the
fraction assigned to the pulse (f Pulse Pb) to simulate daily
Pb intakes (ug/day).
Parameter
Unit
ROWN
Value
Baseline Pb
ug/L
1
0.9
Pulse Pb
ug/L
2
15
f_Pulse Pb
f
3
1
Pulse_start
day
4
2190
Pulse_stop
day
5
r 6569
Pulse_1 width
day
6
5
Pulse_1 period
day
7
7
Pulse_2 width
day
8
270
Pulse_2 period
day
9
365
Water ingestion: Assigns values for water ingestion
rates (L/day) used to simulate daily water Pb intakes
(ug/day).
Values are interpolated between ages.
(based on
US EPA 2011, Table 3-1, per capita)
ROWN
Age
Age
IRW
year
day
L/day
1
0
r
0
0.200
2
0.2
r
90
0.300
3
1
r
365
0.350
4
5
r
1825
0.350
5
10
r
3650
0.450
6
15
r
5475
0.550
7
25
r
9125
0.700
8
50
r
18250
1.040
9
70
r
25550
1.040
10
90
r
32850
1.040
Daily water intake for Example 2 - the scatter plot appears of first year of pulsed
exposure.
7.0
6.0
5.0
>•
ru
~o
W
=3
4.0
~o 3.0
CD
2.0
1.0
0.0
6.00
6.50
Age (years)
7.00
18
-------
AALM.FOR Users Guide
4. Make any Necessary Changes to the Biokinetic Parameter
Input Tabs
The remaining tabs contain the different biokinetic parameters and growth parameters used by
the model. These include variables like the transfer rates and fraction of lead distributed to the
different compartments, the non-linear red blood cell parameters, the compartment weights, etc.
Some parameters are configured in the original model to vary by age while others are not, so
these are reflected in the right-hand and left-hand tables on the "Systemic" tab, respectively. For
most users, these tabs will not need to be changed, unless the model is being recalibrated or
used in a sensitivity analysis. However, each tab contains the different parameters with a brief
description of how they are used in the model.
One notable departure from AALM.CSL is the treatment of the lung compartments. The
AALM.CSL expanded the model to include additional compartments, and the AALM.CSL user
interface has a corresponding set of input parameters. This user interface for AALM.FOR
contains only the parameters needed for the original lung algorithms.
/ \
STEP2: Update
Leggett
VariableTab
V. /
After configuring the biokinetic/growth parameters, click the "Step 2: Update Leggett Variable
Tab" button to copy the changes to the Leggett_Variables reference sheet.
A Microsoft Visual Basic "Run-time error '53' File not found" error will occur if cell D44 in the
Simulation Control tab is set to "Yes" and the file "Intermediate Exposure Time Series.csv" is not
located within the directory/folder where the Excel user interface file is located. To resolve error,
press "End" in the error box, then in the "Simulation Control" tab set cell D44 in to "No."
Alternatively, press "End" in the error box and copy the "Intermediate Exposure Time
Series.csv" file into the directory/folder with the Excel user interface file prior to running STEP2
again.
5. Run the Model and Import the Results
/ \
STEP3: Run
Leggett
v /
Finally, click the STEP3: Run Leggett button. The Excel file will create the text version of the
input file using the template (and a copy is also in the Pounds.Dat reference sheet as well), run
the model, and import the results. If you have an error, ensure that the executable file is saved
in the same folder as the Excel file.
19
-------
AALM.FOR Users Guide
On some systems, if the files are placed in the "Documents" folder or subfolder, a Microsoft
Visual Basic "Run-time error '5': Invalid procedure or call or argument" will occur when the
STEP3 macro tries to determine the file path. Should this error occur, try placing the folder on a
part of the C: drive where you have read/write permissions.
A Microsoft Visual Basic "Run-time error -2147024894 (80070002)': Method 'Run" of object
'IWshShell3' failed" or similar message occurs if the file "ICRPv008d_aalm_in_32bit.exe" is not
located in the folder with the Excel user interface file. To resolve this error, make sure the
executable is located in the folder with the Excel user interface and that its filename has not
been altered.
The outputs provided by the user interface are summarized on the ReadMe tab. Generally
speaking, they include the time in the simulation, the time-varying intake profiles, lead
concentrations in compartments (begin with a "C") and lead masses in compartments (begin
with an "A").
6. QA Step: Confirm the Intake Results Give the Correct Time
Series
As a final QA step, the user is encouraged to inspect the output and verify that the intake time-
varying profiles match what was intended. Remember that if exposure is varied over a very brief
time period but the communication interval was longer than that time period, the actual intake
change will not be recorded in the output (e.g., a pulse of exposure from age 1.25 to 1.75, but
outputs only saved every year).
20
------- |