Program as described in
Wilson and Balding 1998 Genealogical Inference from Microsatellite Data
Please email me, Ian Wilson is you have any problems at


The program is distributed as C source files (although an executable for Windows (within an MSDOS window) is also available from the main web site is also available.
This program is written in ANSI C and if the gnu c compiler gcc is available should compile on unix systems by typing

otherwise the line
CC = gcc
in the makefile should be altered to give name of the local c compiler.


The program is command line driven with command line:

micsat inputfile outputfile

An example inputfile is given as cooper.inp - which gives
some example parameters and reads in the file cooper.dat
taken from the paper:

Cooper, G., W. Amos, D. Hoffman & D. C. Rubinsztein, 1996 Network analysis of human Y microsatellite haplotypes. Hum. Mol. Genet. 5: 1759-1766.
file cooper.inp:

samples: 10000
warmup: 2000
treebetN: 40
Nbetsamp: 100
tuneN: 3000
tunemu: 0.001
muprior: gamma(4,1492)
Nprior: lognormal(9,1)
datafile: cooper.dat
badness: 0.4
seed: 1
picgap: 500

The program will look for any of the above `keywords', in any order,
in the input file - and if not found will give a warning
message and supply default values.


The program will output a file outputfile.par with all
the input values in (so that the program can easily be
rerun with the same or similar input).

Also output is outputfile which is of the form

lltimes llmut mu N height length

for each sample taken

Further output are files outputfile.iit and
outputfile.end which are the initial tree and the
final tree (in Newick file format), and
files outputfile.a for a = 1 ... which are trees
corresponding to the picgap, 2*picgap, 3*picgap,...

All these files are in Newick format and can be read by viewing
programs such as TreeTool (list of programs kept by the Phylip Group at Washington State University.


micsat.c   The main program
Newick.c Newick.h Functions for Outputing trees in "Newick" Format
cutjoin.c cutjoin.h Functions for Changing the Shape of the Tree
likelihood.c likelihood.h Calculating Likelihoods of mutations
metro.c metro.h Changing mu, N and times
node.c node.h Defining Nodes, and node functions
prior.c prior.h Prior Functions
random.c random.h Psuedo-random number generation
pars.c pars.h Inputs/Outputs to File
time.c time.h Likelihood of coalescence times
tree.c tree.h Defining Trees, starting and destroying
utils.c utils.h Utility Functions
check.c check.h Checking Functions (not required)


makefile Makefile for unix machines
micsat.doc (This document)
cooper.inp input file for Cooper et al data (1996)
cooper.dat The Cooper et al data (excluding Alu insert)