Back to SimWalk2 Overview


SimWalk2: Compiling and Data Constraints

Compiling:

Executable versions of this program are available for common platforms at the distribution site http://watson.hgen.pitt.edu/register. The executables posted there are capable of all the analysis options. The ANSI standard Fortran 77 source code is also available there.

Compiling this source code has been successful on all known platforms, given sufficient RAM. However, please note the caveat in the Unix section below.

When compiling the SimWalk2 files, to enable the location score option one also needs the general pedigree analysis computer package Mendel version 3.35. To obtain the Mendel package written by Ken Lange, please see the
Additional Resources section.

If one does NOT have the Mendel package, then to create the SimWalk2 executable simply compile together the two files simwalk2.f and nomendel.f. If one does have the Mendel package, then to create the SimWalk2 executable simply compile together the two files simwalk2.f and mendel.f.

At least the standard optimization level, usually invoked with the flag -O, is highly recommended. (The additional optimization invoked by the common flag -fast or -ffast-math has not caused any problems, as far as we know.)

UNIX PLATFORMS

For Unix a simple c-shell script is provided, called make.sw2, to automatically compile SimWalk2 using the Fortran compiler f77. This script uses mendel.f if available and otherwise uses nomendel.f. Invoke this script in the directory containing the source code files simply by typing its filename. (N.B.: this file is not a proper "make" file just a simple c-shell script.)

Some Unix systems, by default, limit the memory available to programs created by some Fortran 77 compilers. (The gory details are that some Fortran 77 compilers create applications that grab all the memory they need from the stack at start-up rather than dynamically from the heap, as is more common.) If running SimWalk2 causes an immediate 'Segmentation Fault' or 'core dump', then you should issue the command 'unlimit stacksize' before running SimWalk2. (The command 'limit' will report the current limitations on your system. The distributed version of SimWalk2 uses less than 64 MB of memory.) The GNU Fortran 77 compiler, g77, does not have this problem.


Data Constraints:

Due to the nature of Fortran 77 (e.g., the lack of dynamic memory allocation) some arbitrary constraints on the data must be included in the program. These upper bounds can be increased by altering simwalk2.f and recompiling. For example, to change the maximum number of alleles per locus, search in simwalk2.f for the string 'MXMKAL =' and change all occurrences accordingly. There will usually be two, and at most six, occurrences of such a string. The program will inform the user if the data exceeds any of the upper bounds. The maximum number of pedigrees that can be analyzed is set at 1000000.

The default major constraints, and their PARAMETER names, are:

LOCUS DATA
  Maximum number of marker loci (not including trait) MXMKLC =

31

  Maximum number of alleles per locus MXMKAL =

31

  Maximum number of phenotypes per locus MXMKPH =

8

  Maximum number of genotypes per phenotype MXMKGN =

8

 
PEDIGREE DATA
  Maximum number of founders per pedigree MXFNDR =

64

  Maximum number of generations per pedigree MXDPTH =

16

  Maximum number of individuals per pedigree MXPEO =

256

  Maximum number of children per individual MXKIDS =

32

  Maximum number of spouses per individual MXMATE =

7

For Unix platforms, please see the discussion on default memory limits in the Compiling section above.


Back to SimWalk2 Overview