
EXTRA PARAMS FOR THE PROGRAM structure.  THE MOST IMPORTANT PARAMS ARE
IN THE FILE mainparams.

"(int)" means that this takes an integer value.
"(d)"   means that this is a double (ie, a Real number such as 3.14).
"(B)"   means that this variable is Boolean 
        (ie insert 1 for True, and 0 for False).

PROGRAM OPTIONS

#define INFERALPHA  1 // (B) Infer ALPHA (the admixture parameter)
#define FREQSCORR   0 // (B) allele frequencies are correlated among pops
#define COMPUTEPROB 1 // (B) Estimate the probability of the Data under 
                             the model.  This is used when choosing the 
                             best number of subpopulations.
#define NOADMIX     0 // (B) Use no admixture model
#define NOADMBURN   0 //(int) initial period of burnin with admixture,
                          before switching to no admixture model.  This 
                          sometimes leads to better convergence.
                          Set this to be less than the value of BURNIN.


USING PRIOR POPULATION INFO

#define USEPOPINFO  0  // (B) Use prior population information to assist 
                             clustering.  Need POPDATA=1.
#define GENSBACK    1  //(int) For use when inferring whether an indiv-
                         idual is an immigrant, or has an immigrant an-
                         cestor in the past GENSBACK generations.  eg, if 
                         GENSBACK==2, it tests for immigrant ancestry 
                         back to grandparents. 
#define MIGRPRIOR 0.05 //(d) prior prob that an individual is a migrant 
                             (used only when USEPOPINFO==1).  This should 
                             be small, eg 0.01 or 0.1.


OUTPUT OPTIONS

#define PRINTQHAT    1  // (B) Q-hat printed to a separate file.  Turn this 
                           on before using STRAT.
#define UPDATEFREQ   0  // (int) frequency of printing update on the screen.
                                 Set automatically if this is 0.
#define PRINTLIKES   0  // (B) print current likelihood to screen every rep
#define INTERMEDSAVE 0  // (int) number of saves to file during run
#define PRINTKLD     1  // (B) Print estimated Kullback-Leibler diver-
                              gence to screen during the run
#define ECHODATA     1  // (B) Print some of data file to screen to check
                              that the data entry is correct.
  (NEXT 3 ARE FOR COLLECTING DISTRIBUTION OF Q:)
#define ANCESTDIST   0  // (B) collect data about the distribution of an-
                              cestry coefficients (Q) for each individual
#define NUMBOXES   1000 // (int) the distribution of Q values is stored as 
                              a histogram with this number of boxes. 
#define ANCESTPINT 0.90 //(d) the size of the displayed probability  
                              interval on Q (values between 0.0--1.0)

PRIORS

#define ALPHA        1  // (d) Dirichlet parameter for degree of admixture 
                             (this is the initial value if INFERALPHA==1).
#define CORRA      2.0  // (d) CORRA, CORRB:  Prior parameters for parameter 
#define CORRB      2.0  // (d) controlling size of allele freq correlations.
                             The prior is a Gamma distribution with mean
			     CORRA*CORRB, and variance CORRA*CORRB^2. 
#define EPSILON    1.0  // (d) Dirichlet parameter for allele frequencies 
#define UNIFPRIORALPHA 1 // (B) use a uniform prior for alpha;
                                otherwise gamma prior
#define ALPHAMAX    20.0 // (d) max value of alpha if uniform prior
#define ALPHAPRIORA  1.0 // (only if UNIFPRIORALPHA==0): alpha has a gamma 
                            prior with mean A*B, and 
#define ALPHAPRIORB  2.0 // variance A*B^2.  Suggest A=1, B=2 


MISCELLANEOUS

#define ALPHAPROPSD 0.05 //(d) SD of proposal for updating alpha
#define FPROPSD     3.0  //(d) SD of proposal for updating freq correls
#define STARTATPOPINFO 0 //Use given populations as the initial condition 
                           for population origins.  (Need POPDATA==1).  It 
                           is assumed that the PopData in the input file 
                           are between 1 and k where k<=MAXPOPS.
#define RANDOMIZE    1  //(B) use new random seed for each run 
#define METROFREQ    10  //(int) Frequency of using Metropolis step to update
                           Q under admixture model (ie use the metr. move every
                           i steps).  If this is set to 0, it is never used.
                           (Proposal for each q^(i) sampled from prior.  The 
                           goal is to improve mixing for small alpha.)
#define REPORTHITRATE 0 //(B) report hit rate if using METROFREQ


