Stochastic Simulation Using SIMEX (FREE software)

Jan Marie Lundgren jan at dryad.labmed.umn.edu
Wed Jan 18 21:05:02 EST 1995

This is to announce the release of SIMEX version 3.0 beta.

SIMEX is a set of C++ classes, along with a few Bourne shell and
Tcl/Tk scripts.  The goal of SIMEX is to provide a framework for
building discrete event simulation models, with an emphasis on models
of large biological populations. SIMEX is the current incarnation of
a project that began two decades ago with a model of influenza
epidemiology.  Since then versions of the software have been used to
model coronary heart disease, HIV spread through social networks, and
family pedigrees with genetic diseases.  SIMEX is based on a process-oriented
world view and is therefore akin to ModSim and Sim_Plus_Plus.

SIMEX is known to run on a SparcStation with g++ 2.6.0.  When
configured without the optional support for light weight threads and
Tcl/Tk, it contains only platform independent C++ code and should work
on any system with a C++ compiler with good support for templates.
The shell scripts are useful for creating program stubs, but could be
ignored for use on non-Unix platforms.

SIMEX was developed at the National Micropopulation Simulation Resource 
and is freely available and supported. However, our funding
depends on knowing our user base so please contact us if you find the
software useful and acknowledge our grant number in any publications
arising from the use of the software.  This is a beta release and all
feedback is welcome.

This project was funded by NIH P41-RR01632

More information can be obtained from

The software itself can be obtained from

You may also wish to contact the following staff
Jan Marie Lundgren (User Contact) 	    jan at simvax.labmed.umn.edu
Qing Zhuo (Collaborations Coordinator) 		   zhuo at simvax.labmed.umn.edu
Michael Altmann (Development Director) 	michael at simvax.labmed.umn.edu

SIMEX provides classes for the following aspects of modeling:
Event scheduling and process modeling
	At the core of SIMEX is an event scheduler that uses a bucket
	scheme (a.k.a. the calendar algorithm) for fast event management.  On
	top of this are built a number of types of events.  The most useful
	of these is a state transition diagram, for which a user specifies
	the durations in states and the transitions among states. Each state 
	is implemented by the user as a C++ method. There are also classes 
	for light weight processes, repeatedly performing
	a function, and for synchronization.

Simulation structure
	Since most simulation programs have a similar flow of control,
	a base class is provided from which a user derives and specializes
	a class for a particular model.

Monitoring statistics
	The hardest part about micropopulation models is assembling 
	macropopulation information.  A suite of classes lets you easily
	find the number of individuals that have a certain set of attributes.
Generic data structures
	Because we wanted SIMEX to be able to stand alone, we have reinvented
	the wheel for a few of the standard data structures.
User interface
	A  class is provided that lets you easily add a user interface
	to your model.  The interface is fairly simple, but it does let
	you specify which parameters should be modifiable at run time. If
	Tcl/Tk is installed, a graphical interface can also be generated.
Random numbers
	The random number generators are based on  Marsaglia, Ananthanarayanan
	& Paul, 1973.  In addition to the usual distributions, classes
	are provided for general discrete distributions.

More information about the Bio-soft mailing list

Send comments to us at biosci-help [At] net.bio.net