PopTools was developed by Greg Hood at the Pest Animal Control Co-operative Research Centre, based at Wildlife and Ecology, CSIRO, Canberra, Australia. It depends heavily on a numerical library developed by Dr Jean DeBord, which is available at his TPMath web site.
The purpose of the PopTools program is to emulate a subset of the analytical and statistical methods that are available in advanced mathematical and statistical programs (eg, Mathematica, Matlab, R, S-Plus, Genstat). These programs are more flexible and powerful than PopTools, but are not generally available to students (or impoverished ecologists), and also require some knowledge of programming to use them properly. PopTools allows the construction, analysis, and simulation of quite complex models in a simple spreadsheet format. The only programming required is the ability to construct formulas in Excel — although to use the full potential of PopTools, and Excel worksheets in general, you might want to learn how to use array formulas.
In broad terms PopTools has five main sets of routines:
1. Matrix tools: Population projection matrices are powerful tools for the analysis of population dynamics and life-history strategies. But the standard routines for analysis of population projection matrices are not routinely available in standard software. PopTools tries to plug this gap. The background to these methods are discussed in the book by Hal Caswell. See the sheet "EIGENANALYSIS.XLS" for a detailed demo.
2. Tools for stochastic processes. PopTools includes routines for generation of random variables (Normal, Poisson, binomial, log-normal, gamma and exponential). Together with routines for iterating and resampling, this allows calculation of bootstrap and other statistics for stochastic processes. Also included in the program are routines that facilitate calculation of some simple maximum likelihood statistics, such as those discussed by Hilborn and Mangel. It is much easier to use PopTools to calculate resampling statistics than it is is to program in Fortran, C or Pascal or even in higher level languages (S-Plus, SAS, Genstat). The trade-off is that the calculations can be slow, although this is often a trivial concern if you have a Pentium processor. See the sheet "RANDOMISATION.XLS" for a detailed demo (under POPTOOLS/DEMOS/RANDOMISATION TEST (TWO SAMPLE).
3. Simulation. PopTools includes routines for integration of systems of equations using a 4th order Runge-Kutta method or Euler's method. It is also fairly easy to construct models in Excel to describe the transition from one state at time t (say, Nt, where the bold type indicates a vector) to another state at the next time step (Nt+1). PopTools allows you to iterate this process over time without including lots of columns in your spreadsheet to do the intermediary calculations. This is useful for both deterministic and stochastic models. Stochastic models will often require generation of random variables from the various distributions listed above. You can also use the Monte-Carlo routines to calculate the means and variances of any combination of worksheet cells.
4. Model fitting tools. A set of tools for calculating likelihoods is provided. A suite of tools for parameter estimation using maximum likelihood is slowly being developed.
5. Handy statistical and graphical routines. These are small selection of routines that I find useful in my own daily work.
All care has been taken to ensure that the algorithms are accurate. For regression and analysis of matrices (eigenvalues, eigenvectors, matrix decompositions) the library uses Pascal code from TPMath, an excellent freeware mathematical library written by Jean DeBord. The source code is available at the TPMath web site. Some routines in PopTools are written in Visual Basic for Applications, but those that require good numerical performance have been written using Borland Delphi version 7.0 and compiled as a Windows dynamic link library. This means that the critical routines in PopTools are fast, but are not suitable for use on the Mac OS.
I am keen to hear how Poptools is used, and will try to include extra functions and procedures if I think they will be generally useful. For requests, problems, bug reports, feedback, please contact firstname.lastname@example.org.