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 FREQSCORR 1 // (B) allele frequencies are correlated among pops #define ONEFST 0 // (B) assume same value of Fst for all subpopulations. #define INFERALPHA 1 // (B) Infer ALPHA (the admixture parameter) #define POPALPHAS 0 // (B) Individual alpha for each population #define INFERLAMBDA 0 // (B) Infer LAMBDA (the allele frequencies parameter) #define POPSPECIFICLAMBDA 0 //(B) infer a separate lambda for each pop (only if INFERLAMBDA=1). #define NOADMIX 0 (B) Use no admixture model #define LINKAGE 0 // (B) Use the linkage model model #define PHASED 0 // (B) Data are in correct phase (required unless data are diploid) If (LINKAGE=1, PHASED=0), then PHASEINFO can be used--this is an extra line in the input file that gives phase probabilities. When PHASEINFO =0 each value is set to 0.5, implying no phase information. #define LOG10RMIN -4.0 //(d) Log10 of minimum allowed value of r under linkage model #define LOG10RMAX 1.0 //(d) Log10 of maximum allowed value of r #define LOG10RPROPSD 0.1 //(d) standard deviation of log r in update #define LOG10RSTART -2.0 //(d) initial value of log10 r #define COMPUTEPROB 1 // (B) Estimate the probability of the Data under the model. This is used when choosing the best number of subpopulations. #define ADMBURNIN 500 //(int) initial period of burnin with admixture model. The admixture model normally has the best mixing properties, and therefore should be used as the first phase of the burnin. A significant burnin is highly recommended under the linkage model which otherwise can perform very badly. 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.001 //(d) prior prob that an individual is a migrant (used only when USEPOPINFO==1). This should be small, eg 0.01 or 0.1. #define PFROMPOPFLAGONLY 0 // (B) only use individuals with POPFLAG=1 to update P. This is to enable use of a reference set of individuals for clustering additional "test" individuals. OUTPUT OPTIONS #define PRINTKLD 1 // (B) Print estimated Kullback-Leibler diver- gence to screen during the run #define PRINTLAMBDA 1 // (B) Print current value(s) of lambda to screen #define PRINTQSUM 1 // (B) Print summary of current population membership to screen #define SITEBYSITE 0 // (B) whether or not to print site by site results. Large! #define PRINTQHAT 0 // (B) Q-hat printed to a separate file. Turn this on before using STRAT. #define UPDATEFREQ 5 // (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 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.0 // (d) Dirichlet parameter for degree of admixture (this is the initial value if INFERALPHA==1). #define FPRIORMEAN 0.01 // (d) Prior mean and SD of Fst for pops. #define FPRIORSD 0.05 // (d) The prior is a Gamma distribution with these parameters #define LAMBDA 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 0.05 // (only if UNIFPRIORALPHA==0): alpha has a gamma prior with mean A*B, and #define ALPHAPRIORB 0.001 // variance A*B^2. Suggest A=0.1, B=1.0 MISCELLANEOUS #define ALPHAPROPSD 0.025 //(d) SD of proposal for updating alpha #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