Comment Notes from Excel File: IsothermGenLogistic.xls

Current version: February 4, 2008

In worksheet column A:
IsothermGenLogistic.xls [A1] <--This means "IsothermGenLogistic.xls" is in cell A1. The comment note below pops up when you point to cell A1.
IsothermGenLogistic.xls: This Excel workbook simulates the increasing logarithmic growth of a targeted microorganism during isothermal storage in real time. This version of the program simulates the growth of organisms whose isothermal survival curve follows the generalized Verhulst model: dN(t)/dt =k*N^a*(1-N/Na)^b. The growth parameters a, b, k and Na should be provided by the user. For more information on the concept, its various applications in calculating the microbial growth during storage at variable temperatures and its implementation with more complicated growth models, contact the authors (see References).

Background [A2]
Background: For generating a growth curve with this version of the program, the user needs to enter values for the growth model's parameters: a, b, k and Na (e.g., a=1, b=1.5, k=0.25, Na=900000).

Other models have also been proposed to characterize non-isothermal growth curves with a long lag period, MicrobialGrowthModelA.xls and curves with a short lag period, MicrobialGrowthModelB.xls (modified logistic model).

How to run [A3]
How to run: This workbook needs to run some macros. Therefore, you must click the Enable Macros button when opening the workbook. If you are using a recent version of Excel for Windows, you may need to reduce the security level in Tools>Macro>Security to <Medium, then close and reopen the file to enable the macros.

Make any desired changes to the chart settings in column A.

Enter an initial value for each model variable in column B. The pop-up comment note that appears when the name cell above a variable's cell is pointed to with the mouse lists any restrictions on the legal range of values for that variable.

Once legal values have been entered for each variable, you may click the Clear button in column A to have the Clear macro initialize the calculation cells in column C, clear the graphical data columns D through F and delete any existing charts.

Clicking the Solve button in column A first calls Clear then calls the Solve macro. The macro will solve the growth equation and update the model and graphical data cells in columns C through F. It will also draw two charts: growth equation N vs Time and Log10(N) vs Time.

Modifications [A4]
Modifications: If you wish to see or modify the macros they are accessed from the Tools>Macro>Visual Basic Editor menu item. Checking the legality of user entries is done by the Init function which calls the NumOK and TextOK functions. All numeric cells in columns B and C are assigned names by the Init function. Those names are then used in the formulas in column C to refer to a cell in place of normal Excel cell references (such as B4 or R4C2). Unless absolutely necessary, changing the Visual Basic code should be avoided because an error can produce incorrect values or cause the program to stop working. This workbook runs properly in Windows Excel 97, 2000, XP, 2003 and 2007 and in Excel 2001 for the Mac.

Speed: With all versions of Excel the speed of the computations can be greatly improved (by 20 times or more) by changing Application.ScreenUpdating from True to False in the Solve macro. In that case, however, you will not be able to watch the charts being drawn. They will only appear after the final OK button is clicked.

Mac Problems: If you are using a pre-OS X version of MacOS running Excel 98 and receive a Run-time error saying "Method 'MaxChange' of object '_Application' failed" you need to comment out the line .MaxChange=0.000001 in the Clear subroutine by inserting a single-quote (') as the first character on the line. This is due to a bug in Excel 98. You should then enter 0.000001 manually in the Maximum change: edit box of Tools>Preferences...>Calculation.

Continuous ScreenUpdating is off by default in Excel X and Excel 2004 for MacOS X and we don't know how to reenable it. Therefore, you cannot watch the data and charts update in real time in Excel X and 2004. However, they will appear once the solution computations have finished and the final OK button is clicked. The change described above under Speed should be made with Mac Excel X and 2004.

References [A5]
References:
Peleg, M., Corradini, M.G. and Normand, M.D. 2007. The logistic (Verhulst) model for sigmoid microbial growth curves revisited. Food Research Internl. 40:808-818.

Peleg, M. and Penchina, C.M. 2000. Modeling microbial survival during exposure to a lethal agent with varying intensity. Crit. Rev. Food Sci. 40:159-172.

Peleg, M. 2003. Microbial survival curves: Interpretation, mathematical modeling and utilization. Comments on Theoretical Biology 8:357-387.

Peleg, M., Corradini, M.G. and Normand, M.D. 2004 Kinetic models of complex biochemical reactions and biological processes. Chemie Ingenieur Technik 76:413-423.

Peleg, M., Normand, M.D. and Corradini, M.G. 2005. Generating microbial survival curves during thermal processing in real time. Journal of Applied Microbiology 98:406-417.

Corradini, M.G. and Peleg, M. 2005. Estimating non-isothermal bacterial growth in foods from isothermal experimental data. Journal of Applied Microbiology 99:187-200.

Model by: Professor Micha Peleg and Maria G. Corradini, PhD.
Program by: Mark D. Normand, EDP Programmer II, and Maria G. Corradini, PhD.
Peleg & Normand located at:
UMass Department of Food Science
Chenoweth Lab.
Amherst, MA 01003
Tel. (Peleg): 413-545-5852
Tel. (Normand): 413-545-2365
Fax: 413-545-1262
Email & Web (Peleg), see: http://www-unix.oit.umass.edu/~aew2000/
Email & Web (Normand), see: http://www-unix.oit.umass.edu/~adva000/
Email (Corradini): mariagcorradini@gmail.com

Last modified: February 4, 2008

Chart Options: [A13]
Chart Options: The following cells allow the user to set the values of certain attributes of the charts on this worksheet. In some cases restrictions are placed on the values that may be entered.

TimeAxisMin [A14]
TimeAxisMin: The cell below contains the minimum value for the Time axis on the charts. TimeAxisMin must be greater than or equal to 0.

TimeAxisMax [A16]
TimeAxisMax: The cell below contains the maximum value for the Time axis on the charts. TimeAxisMax must be greater than 0. and greater than TimeAxisMin.

TimeAxisTitle [A18]
TimeAxisTitle: The cell below contains a title for the Time axis on the charts. TimeAxisTitle can contain from 0 to 255 characters.

NAxisMin [A20]
NAxisMin: The cell below contains the minimum value for the N (Growth) axis on the N vs Time chart. NAxisMin must be greater than or equal to 0.

NAxisMax [A22]
NAxisMax: The cell below contains the maximum value for the N (Growth) axis on the N vs Time chart. NAxisMax must be greater than 0. and greater than NAxisMin.

NAxisTitle [A24]
NAxisTitle: The cell below contains the title for the N (Growth) axis on the N vs Time chart. NAxisTitle can contain from 0 to 255 characters.

NMainTitle [A26]
NMainTitle: The cell below contains the main title for the N vs Time chart. NMainTitle can contain from 0 to 255 characters.

NLineStyle [A28]
NLineStyle: The cell below contains an index for the LineStyle of the N vs Time curve. NLineStyle may be either 1=Continuous, 2=Dash, 3=Dot, 4=DashDot or 5=DashDotDot.

NLineWeight [A30]
NLineWeight: The cell below contains an index for the LineWeight of the N vs Time curve. NLineWeight may be either 1=Thin, 2=Medium or 3=Heavy.

NLineColor [A32]
NLineColor: The cell below contains an index for the LineColor of the N vs Time curve. NLineColor may be either 1=Black, 2=White (Not allowed), 3=Red, 4=Bright Green, 5=Blue, 6=Yellow, 7=Pink, 8=Turquoise, 9=Dark Red, 10=Green, 11=Dark Blue, 12=Dark Yellow, 13=Violet, 14=Teal, 15=25% Gray or 16=50% Gray.

Log10NAxisMin [A34]
Log10NAxisMin: The cell below contains the minimum value for the Log10Growth axis on the Log10(N) vs Time chart. Log10NAxisMin must be greater than or equal to 0.

Log10NAxisMax [A36]
Log10NAxisMax: The cell below contains the maximum value for the Log10Growth axis on the Log10(N) vs Time chart. Log10NAxisMax must be greater than 0. and greater than Log10NAxisMin.

Log10NAxisTitle [A38]
Log10NAxisTitle: The cell below contains the title for the Log10Growth axis on the Log10(N) vs Time chart. NAxisTitle can contain from 0 to 255 characters.

Log10NMainTitle [A40]
Log10NMainTitle: The cell below contains the main title for the Log10(N) vs Time chart. Log10NMainTitle can contain from 0 to 255 characters.

Log10NLineStyle [A42]
Log10NLineStyle: The cell below contains an index for the LineStyle of the Log10(N) vs Time curve. Log10NLineStyle may be either 1=Continuous, 2=Dash, 3=Dot, 4=DashDot or 5=DashDotDot.

Log10NLineWeight [A44]
Log10NLineWeight: The cell below contains an index for the LineWeight of the Log10(N) vs Time curve. Log10NLineWeight may be either 1=Thin, 2=Medium or 3=Heavy.

Log10NLineColor [A46]
Log10NLineColor: The cell below contains an index for the LineColor of the Log10(N) vs Time curve. Log10NLineColor may be either 1=Black, 2=White (Not allowed), 3=Red, 4=Bright Green, 5=Blue, 6=Yellow, 7=Pink, 8=Turquoise, 9=Dark Red, 10=Green, 11=Dark Blue, 12=Dark Yellow, 13=Violet, 14=Teal, 15=25% Gray or 16=50% Gray.

In worksheet column B:
TimeInit [B1]
TimeInit: The cell below contains the Initial Time (in hours) at the start of the solution. TimeInit must be greater than or equal to 0.

dt [B4]
dt: The cell below contains the Time step or delta-t increment (in hours) between successive iteration points of the solution and therefore between successive points on the charts. dt must be greater than 0. and less than or equal to 0.5.

TimeFinal [B7]
TimeFinal: The cell below contains the Final Time (in hours) at which a solution will be calculated. TimeFinal must be greater than or equal to 0. and greater than or equal to TimeInit.

NInit [B10]
NInit: The cell below contains an initial guess used to compute the growth function N. NInit must be greater than 0.

a [B13]
a: The cell below contains the value of the a scale factor of the Verhulst model: dN(t)/dt =k*N^a*(1-N/Na)^b. a must be greater than 0.

b [B16]
b: The cell below contains the value of the b scale factor of the Verhulst model: dN(t)/dt =k*N^a*(1-N/Na)^b. b must be greater than 0.

k [B19]
k: The cell below contains the k proportionality constant of the Verhulst model: dN(t)/dt =k*N^a*(1-N/Na)^b. k must be greater than 0.

Na [B22]
Na: The cell below contains the Na asymptotic growth level of the Verhulst model: dN(t)/dt =k*N^a*(1-N/Na)^b. Na must be greater than 0.

In worksheet column C:
nPts [C1]
nPts: The cell below contains the number of solution points (rows) to be generated, stored in columns D through F and plotted on the charts.

EqnRoot [C4]
EqnRoot: The cell below contains the expression of the growth equation and displays the root of that equation at the current Time step. At each Time step the Solve macro uses Excel's iterative Goal Seek command to drive the EqnRoot value to zero by changing the value in the NCurr cell. Computing the NCurr values is the main goal of this workbook. How close EqnRoot comes to zero is controlled by the value assigned in the Clear macro to Application.MaxChange.

TimeCurr [C7]
TimeCurr: The cell below contains the Time (in hours) at the current solution point. TimeCurr is repeatedly updated by the Solve macro as it calculates and the value is copied to the appropriate row in the Time column at the end of each iteration.

TimePrev [C10]
TimePrev: The cell below contains the Time (in hours) at the previous solution point. TimePrev is repeatedly updated by the Solve macro as it calculates.

NCurr [C13]
NCurr: The cell below contains the growth solution from the current Time step. Before iteration begins NCurr is set to NInit and thereafter NCurr is repeatedly updated by the Solve macro as it calculates and its value is copied to the appropriate row in the N(Time) column at the end of each iteration. Computing the NCurr values is the main goal of this workbook.

NPrev [C16]
NPrev: The cell below contains the growth solution from the previous Time step. Before iteration begins NPrev is set to NInit and thereafter it is repeatedly updated by the Solve macro as it calculates.

Log10(NCurr) [C19]
Log10(NCurr): The cell below contains the growth solution from the current Time step, expressed as a base-10 logarithm. As NCurr is repeatedly updated by the Solve macro, its logarithm, Log10(NCurr), is calculated and its value is copied to the appropriate row in the Log10(N(Time)) column at the end of each iteration.

Log10(NPrev) [C22]
Log10(NPrev): The cell below contains the growth solution from the previous Time step, expressed as a base-10 logarithm.

In worksheet column D:
Time [D1]
Time: The cells below contain TimeCurr, the current Time (in hours), for each step in the solution process and are used as the x-coordinate values in the N vs Time and Log10(N) vs Time charts.

In worksheet column E:
N(Time) [E1]
N(Time): The cells below contain NCurr, the current N growth value, for each Time step in the solution process and are used as the y-coordinate values in the N vs Time chart. Computing the N growth values is the main goal of this workbook.

In worksheet column F:
Log10(N(Time)) [F1]
Log10(N(Time)): The cells below contain Log10(NCurr), the base-10 logarithm of the current growth value, for each Time step in the solution process and are used as the y-coordinate values in the Log10(N) vs Time chart.


[Return to ] Generation of Isothermal Growth Curves Using a Generalized Logistic (Verhulst) Model in Excel

Content last updated: February 4, 2008