SCoP Information



What is SCoP?

SCoP (Simulation Control Program) is a general purpose simulation software package designed to assist in the study of complex systems whose properties can be represented by algebraic, differential, and difference equations. SCoP was originally developed at the National Biomedical Simulation Resource (NBSR), Duke University Medical Center, Durham, NC, under NIH funding and is now being supported by Simulation Resources, Inc. in association with Loma Linda University, Loma Linda, CA.

To construct a simulation program with SCoP, the modeler creates a text source file containing the model equations and a list of constants and variables in the model. The model description is written in a high-level language where the model equations are expressed in a form familiar to the user. Command files provided with SCoP then create two executable programs and a variable database file specific to the equations. One program (called the SCoP program) is for interactive study of the model and its response to changes in parameters and imposed conditions. The other (called the SCoPfit program) is for analyzing the characteristics of the model and estimating values of the model's constants to give the best fit to data from experiments or other sources. These executable programs can then be run on any machine of compatible architecture and operating system.

The simulation program produced by SCoP is interactive, menu-driven, and the user is prompted to supply additional information as needed. The user-written code is compiled so that each simulation program can utilize the maximum computational speed available with the hardware. Simulation results are displayed as they are calculated, so unproductive runs can be terminated and intermediate results can be investigated. Output can be displayed as graphs or as tables of numbers. The choice of variables for output is made by the user at run time and multiple variables can be displayed in a graph or table. Logarithmic and reciprocal scales are available for either axis in graphs. SCoP provides both command and screen-edit modes for changing parameter values and plot scales. Multiple copies of the variable database file can be saved to represent different conditions, experiments, or demonstrations. The modeler can also supply one or more files of reference data points (e.g. experimental data) to be plotted along with the results of the simulation for visual or quantitative comparison. Values calculated by SCoP can be written to computer files for use by other programs.

SCoP was designed for medium to large-scale models used in biomedical research, but the program is sufficiently interactive to be useful for small models and training purposes as well. The maximum model size in SCoP is limited only by the addressing capability of the computer hardware and compiler and the speed of the processor. Models containing up to a few hundred variables usually run successfully on personal computers. With a large minicomputer or a supercomputer, models with thousands of variables are practical.

Parameter estimation in the SCoPfit program is done by formal optimization using the PRAXIS (See "Algorithms for Minimization Without Derivatives" by Richard P. Brent: Prentice-Hall, Inc. 1973.) algorithm. Reference data is usually obtained from experiments but may also be theoretical results from some other model or set of parameters. SCoPfit displays the progress of its search during its calculations and provides statistics for the quality of fit. Residuals can be plotted to check for systematic errors. SCoPfit also has provisions for parameter sensitivity calculations and estimates of identifiability.

SCoP and SCoPfit are written in the popular and highly portable C programming language and versions are available which run on a variety of machines. A text editor program is required for entering the equations defining the model. The C compiler and linker necessary to compile the model equations and build a SCoP program are provided with the SCoP distribution.


What computer and software do I need?

Versions of SCoP and SCoPfit are available for the IBM Personal Computer (IBM, IBM PC, and PC-DOS are Registered Trademarks of International Business Machines, Inc.) and 100% compatibles and for most computers running the UNIX (UNIX is a Trademark of AT&T) operating system (AT&T System V or Berkeley 4.xBSD). SCoP has been used on UNIX workstations from several manufacturers, UNIX "super-minicomputers", and even the Cray Y/MP supercomputer under UNICOS.

On the IBM Personal Computer (and 100% compatibles), SCoP and SCoPfit run under Microsoft Windows98/ME/NT4/2000/XP. All available memory can be utilized by the program. A printer capable of graphics can be used to provide printed copies of graphic output using a utility program included with the distribution.

On larger computers (under UNIX), SCoP and SCoPfit provide graphics support for X Windows (X Window System is a Trademark of the Massachusetts Institue of Technology) window environment. An ANSI compatible C compiler and GNU make are required to build the SCoP library files and to build SCoP programs.


How do I create a model?

The first step in creating a model is to write the equations constituting the model and a list of all the variables and constants, their units, and typical values or ranges, expressing this information in a high-level simulation language unique to SCoP. The equations and variables are entered into the computer as a model source file using any text editor. The format of this file is very flexible. For example, there is no line termination character and no required column locations.

The SCoP language is block oriented, with blocks for defining constants and variables, and blocks for different types of model equations: linear and nonlinear algebraic equations, ordinary differential equations, parabolic partial differential equations (one spatial dimension), chemical kinetic equations, and difference equations. Model equations are entered in natural form and do not have to be rearranged in `programming' style. For the simulation expert, there is also provision for including in-line C language code to develop new methods. Default numeric solvers are called automatically for each block type, but the user can optionally choose alternative methods.

An extensive library of numerical solvers and functions is included with SCoP. In writing the model equations, the user can call the SCoP functions as well as the mathematical functions provided with C compilers: logarithm, exponential, power, absolute value, square root, and trigonometric functions. The SCoP library includes:

Equation Solvers

General Functions

Forcing Functions

Stochastic Functions

Once the model source file is created, command files provided with SCoP and executed with a single command carry out the preprocessing, compiling, and linking necessary to convert the file into executable programs for simulation and parameter estimation. The SCoP distribution includes several example models with references, illustrating the use of the SCoP language, for example:

Numerous other example model programs are available on request.

A batch mode is provided for unattended running of sequences of large simulations.


How does SCoPfit work?

The SCoPfit program varies a subset of parameters selected by the user to find the best fit of a model to data supplied in a file. Such data might come from an on-line recording program, a spreadsheet program, or the data could just be typed in by the user. The PRAXIS fitting algorithm used by SCoPfit does not require analytic derivatives and thus works with all types of models -- linear or nonlinear, steady-state or time dependent. The number of parameters fitted simultaneously by SCoPfit is not restricted by the software, but is limited in practice by the size of the model and the speed of the computer.

SCoPfit compares the data in a reference file with the results of a model run, calculating an error value representing the difference between the set of reference data points and calculated points. Eight different forms of error function are available to match the characteristics of the data. Under the direction of the PRAXIS algorithm, SCoPfit then repeats the simulation run with different sets of values for the parameters being estimated (fitted). PRAXIS searches through parameter `space' systematically, looking for the set of values giving the lowest error value. Upper and/or lower bounds may be set on the values of the parameters to speed the search. The final values of the optimized parameters can be saved in a variable file for later use with the model. SCoPfit will fit multiple sets of data simultaneously, for example multiple experiments on the same system with different conditions.


Fit statistics

SCoPfit provides the standard error and confidence limits for all fitted parameters as well as the covariance and correlation matrices. Residuals can be plotted and the serial correlation coefficient calculated for the residuals. SCoPfit provides several measures of a model that are independent of reference data, i.e. characteristics of the model itself. These characteristics are not only useful in the fitting process, but can also be used for experimental design. Both point and trajectory sensitivities can be calculated for any or all parameters in the model, aiding in the choice of parameters to be fitted to the data. Also, the model identifiability can be calculated to decide what parameters can be derived effectively from experiments.


SCoP installation and documentation

Automated installation procedures are provided with SCoP for the supported environments. Responding to questions during the installation procedure, the user can choose directory locations for the SCoP libraries and command files.

During the running of a SCoP or SCoPfit program, on-line context sensitive help is available to explain the operation of each menu selection.

SCoP is supplied with a printed manual describing the SCoP simulation language and the operations of the interactive programs. An introductory tutorial on computer simulation utilizing SCoP is included in the manual. Simulation Resources, Inc. can also provide additional services including consultation, development of custom models or programs, integration of SCoP into other software environments, and training classes in SCoP and simulation techniques. Contact support@simresinc.com for questions regarding these services.