1. Introduction
2. Basic information
3. Download and general notes
4. Command reference table
5. Basic usage/data formats
6. Data management
7. Summary stats
8. Inclusion thresholds
9. Population stratification
10. IBS/IBD estimation
11. Association
12. Familybased association
13. Permutation procedures
14. LD calculations
15. Multimarker tests
16. Conditional haplotype tests
17. Proxy association
18. Imputation (beta)
19. Dosage data
20. Metaanalysis
21. Annotation
22. LDbased results clumping
23. Genebased report
24. Epistasis
25. Rare CNVs
26. Common CNPs
27. Rplugins
28. Annotation weblookup
29. Simulation tools
30. Profile scoring
31. ID helper
32. Resources
33. Flowchart
34. Miscellaneous
35. FAQ & Hints
36. gPLINK


Conditional haplotypebased association testing
This page describes PLINK functions that are aimed at dissecting
a haplotypic association. These functions largely include and extend the functionality
offered in the older WHAP software package, which is no longer
supported.
For reference, the main ways of specifying conditional haplotype tests, that modify
the behaviour of main chap command, are given here; they are also described in more
detail below. Each row here is mutually exclusive, e.g. you would not want to, or be able to,
specify control and altsnp at the same time:
 Test whether SNPs have independent haplotyic effects (independenteffect SNP{,SNP,SNP})
 Test whether a set of SNPs explain an omnibus association (control SNP{,SNP,...})
 Test whether a specific set of haplotypes explain an omnibus association (control HAPLOTYPE{,HAPLOTYPE,...})
 Test specific haplotypes for association (specifichaplotype HAPLOTYPE)
 Specify alternative and null haplotypic models in terms of sets of SNPs (altsnp SNP{,SNPSNP,...}
and/or nullsnp SNP{,SNPSNP,...})
 Specify alternative and null haplotypic models in terms of sets of haplotypes (altgroup HAPLOTYPE{,HAPLOTYPE,...}
and/or nullgroup HAPLOTYPE{,HAPLOTYPE,...} )
 Test a one or more simple SNP effects, potentially controlling for
haplotype effects (testsnp SNP{,SNPSNP,...})
It is also possible to include one or more continuous or binary
covariates, which can include other SNPs outside of the phased region.
This page contains the following sections:
The value of using chap over hapassoc is that
covariates can be included, and more complex conditional tests can be
specified. The value of using hapassoc
(described here) over chap
is that it is designed to iterate over very many SNPs in a single go,
whereas the chap test is more designed to focus on one
specific set of SNPs. The haplogistic
and haplinear commands,
described here, are also designed for
large numbers of tests; they do allow for covariates and permutation,
but not the conditional tests described below.
Basic usage for conditional haplotypebased testing
The chap command is used in conjunction with
the hapsnps command to specify a set of SNPs to phase,
form haplotypes and test for association (in samples of unreated
individuals only):
plink bfile mydata hapsnps rs1001rs1005 chap
which generates a file
plink.chap
The hapsnps command can take a commadelimited list of SNPs, including ranges,
e.g. if the MAP file specifies the following SNPs and physical positions:
1 rs1001 0 101200
1 rs1002 0 102030
1 rs1003 0 107394
1 rs1004 0 107499
1 rs1005 0 113990
then the command
hapsnps rs1001rs1003,rs1005
includes all SNPs except rs1004, for example. The hyphen/minus symbol specifies all
SNPs within a range (based on sorted physical position).
NOTE No spaces are allowed in this kind of
commadelimited list. Also, note that currently this will not work if
SNP names have hypen characters in them. In this case, to use a
different delimter for any ranges specified on the command line, add
the "d" flag (which can be any nonwhitespace character except a
comma (although be cautious if using characters with special meanings
on command lines)
d + hapsnps SNPA10001+SNPA10020
to obtain a range between SNPA10001 and SNPA10020.
The default test is an omnibus haplotype test: that is, if there
are H haplotypes, then chap performs an H1
df test comparing the alternate (each haplotype having a unqiue effect)
versus the null (no haplotypes having any different effect). In each case,
one haplotype is arbitrarily chosen to be the reference haplotype. The
coefficients must be interpreted with respect to that haplotype, but otherwise
the coding makes no difference.
For binary disease traits, the test is based on a likelihood ratio test.
For continuous traits, the test is based on an Ftest comparing the
alternate and null models. For continuous traits, the chap
command also displays the proportion of variance in the outcome explained
by the regression model (Rsquared) as well as an adjusted Rsquared (that
takes model complexity into account).
For example, here is a plink.chap output file representing a basic
omnibus test:
+++ PLINK conditional haplotype test results +++
5 SNPs, and 6 common haplotypes ( MHF >= 0.01 ) from 32 possible
CHR BP SNP A1 A2 F
1 101200 rs1001 C A 0.45
1 102030 rs1002 A C 0.2362
1 107394 rs1003 A C 0.4325
1 107499 rs1004 T G 0.2362
1 113990 rs1005 A C 0.4487
Haplogrouping: each {set} allowed a unique effect
Alternate model
{ AAATA } { AACTA } { CCCGA } { ACAGC } { CCCGC } { ACCGC }
Null model
{ AAATA, AACTA, CCCGA, ACAGC, CCCGC, ACCGC }
HAPLO FREQ OR(A) OR(N)
   
AAATA 0.169 (ref) (ref)
AACTA 0.0673 2.619 
CCCGA 0.212 0.8942 
ACAGC 0.264 0.6839 
CCCGC 0.237 1.025 
ACCGC 0.0502 1.038 
   
Model comparison test statistics:
Alternate Null
2LL : 535.4 554.5
Likelihood ratio test: chisquare = 19.11
df = 5
p = 0.001836
There are several points to note:
 At the top of the output, PLINK lists the SNPs (SNP) involved in the
test, their chromosomal (CHR) and basepair (BP) positions, their alleles
(A1 and A2) and the minor allele frequency (F).
 It is reported that there are 5 common haplotypes: this filter (default value of 0.01)
can be changed by adding, for example, the mhf 0.05 command (minimum haplotype
frequency).
 The next section presents the haplogrouping under the null and alternate
models. If two haplotypes are in the same { set }, it means they are treated as
identical in terms of their effect on phenotype (i.e. a single regression coefficient is used
for that group). For the basic omnibus test the haplogrouping will always take this simple
form: under the alternate all haplotypes in their own set, whilst under the null all
haplotypes are in one set. This output is more useful in interpreting some of the other
conditional haplotype tests that are introduced below.
 The next section contains the estimated regression coefficients for each haplotype
under the alternate and null models, as well as the frequency (FREQ) of each
haplotype. For continuous traits, the coefficients are labelled BETA; for disease
traits they are labelled OR and are in fact transformed to be odds ratios, i.e.
exp(beta). The (ref) indicates which haplotype has been selected to be the
baseline, reference category. If a haplotype has instead a pipe (vertical bar) 
symbol, it implies that this haplotype is grouped with the one above it (and so it will not
have a regression coefficient of its own). In the case of this simple null model as shown
here, this implies that all haplotypes are equated with AAATA, the reference
haplotype (i.e. there is no effect of any haplotype).
 When the null model is not so straightforward (as in the examples below), the rows are
separated into the nullmodel haplogroups for clarity. In this case, certain subnull
model comparisons are also presented, to the right of the table of coefficients: these are
shown and described below.
 The final section presents the overall model statistics: for a linear trait these are the
Rsquared (sometimes called the coefficient of determination) and adjusted Rsquared, as well
as the Ftest. For disease traits, as in this case, only the sample loglikelihood under
each model (2LL) and the likelihood ratio test are presented. In both cases, the degrees of
freedom is the number of parameters in the alternate model minus the number in the null
model.
The interpretation of this particular analysis would be that overall variation at this
locus appears to influence the trait, with p = 0.001836. Using the commands introduced
below, we can perform various conditional tests to explore this omnibus result.
HINT To obtain confidence intervals on the estimated odds ratios or
regression coefficients, add the flag
ci 0.95
for example; the output will now be as follows:
HAPLO FREQ OR(A) OR(N)
   
AAATA 0.169 (ref) (ref)
AACTA 0.0673 2.619 (1.24; 5.54 ) 
CCCGA 0.212 0.8942 (0.57; 1.4 ) 
ACAGC 0.264 0.6839 (0.438; 1.07 ) 
CCCGC 0.237 1.025 (0.657; 1.6 ) 
ACCGC 0.0502 1.038 (0.507; 2.12 ) 
   
Specifying the type of test
If no other commands are given, the chap test will perform an omnibus haplotypic
association test. Various other options can be used to refine the type of test. In this
section we introduce three commonly used tests; in the section below we introduce a more
general way in which any two (nested) models can be compared.
Testing a specific haplotype
It is possible to specify a particular haplotype to be tested against all others: for example,
CCCGA
./plink file mydata hapsnps rs10001rs10005 chap specifichaplotype CCCGA
This creates the following two haplogroupings:
Alternate model
{ AAATA, AACTA, ACAGC, CCCGC, ACCGC } { CCCGA }
Null model
{ AAATA, AACTA, CCCGA, ACAGC, CCCGC, ACCGC }
which hopefully begins to indicate how these groupings should be interpreted in relation to
the tests they imply.
The main body of the output is:
HAPLO FREQ OR(A) OR(N)
   
AAATA 0.169 (ref) (ref)
AACTA 0.06728  
ACAGC 0.2635  
CCCGC 0.2375  
ACCGC 0.05022  
CCCGA 0.2125 0.9153 
   
which shows that now under the alternate all haplotypes are grouped together except for
CCCGA; versus all other haplotypes, this has an estimated odds ratio of 0.9153.
NOTE Of course, the estimated odds ratio for CCCGA
was different in the first example given above (when it was 0.8942) because the
reference category was different (it was then only AAATA as opposed to
all other SNPs). In other words, remember that the odds ratios are only interpretable
in relation to some specific baseline, reference category.
Finally, we see the model compariston test is nonsignificant
Likelihood ratio test: chisquare = 0.2653
df = 1
p = 0.6065
The option eachvsothers will add an extra column to the
output, if there is more than one haplotypegrouping under the alternate
model, which provides pvalues for haplotypespecific tests of that
haplotye (or haplotype group) versus all others. For example,
./plink file mydata hapsnps rs10001rs10005 chap eachvsothers
which produces output with the new SPEC(A) field
HAPLO FREQ OR(A) SPEC(A) OR(N)
    
AAATA 0.169 (ref) 0.537 (ref)
AACTA 0.06728 2.619 0.0001791 
CCCGA 0.2125 0.8942 0.6065 
ACAGC 0.2635 0.6839 0.003466 
CCCGC 0.2375 1.025 0.5132 
ACCGC 0.05022 1.038 0.787 
    
which contains pvalues for all haplotypespecific tests (i.e. as above,
the haplotype CCCGA has the pvalue of 0.6065 as above, i.e.
that haplotype versus all others). The benefit of the
specifichaplotype command versus eachvsothers is
that it also produces the odds ratio for that haplotype.
These haplotype specific tests are of course similar to the basic test given
by the hapassoc command, e.g.
./plink file mydata hapsnps rs10001rs10005 hapassoc
which generates the output file
plink.assoc.hap
which contains the line
LOCUS HAPLOTYPE F_A F_U CHISQ DF P SNPS
WIN1 CCCGA 0.205 0.22 0.2689 1 0.6041 rs1001rs1002rs1003rs1004rs1005
This command frames the test in a slightly different way and presents different
statistics (i.e. it does not use logistic regression, case and control frequencies are presented
instead of odds ratios, etc) but the pvalue is, as expected, very similar (p=0.6041
from hapassoc versus p=0.6065 from the chap test). Note that they
are not expected to be numerically identical however.
Testing whether SNPs have independent effects
It is possible to ask whether one or more SNPs have an effect that is independent
of the other SNPs in the model, framing the question in terms of haplotypes. This conditional
test essentially stratifies by the haplotyic background: for the SNP(s) under scruntiny, we
only compare the alleles/haplotypes that have a similar haplotypic background.
Before proceeding to the conditional haplotype tests, let's first consider the simple,
single SNP effects for the example dataset:
./plink file mydata assoc
which generates the file plink.assoc which is as follows:
CHR SNP BP A1 F_A F_U A2 CHISQ P OR
1 rs1001 101200 C 0.4525 0.4475 A 0.0202 0.887 1.02
1 rs1002 102030 A 0.2775 0.195 C 7.544 0.00602 1.586
1 rs1003 107394 A 0.395 0.47 C 4.584 0.03228 0.7362
1 rs1004 107499 T 0.2775 0.195 G 7.544 0.00602 1.586
1 rs1005 113990 A 0.4825 0.415 C 3.644 0.05495 1.314
Here we see that SNPs rs1002 and rs1004 have the strongest associations, although
rs1003 and rs1005 show marginal trends.
Next, to obtain a quick view of the LD in this small region, we can generate the matrix of rsquared (LD)
values (i.e. note: this is using rsquared as a measure of LD, which is distinct from
the coefficient of determination which descibes the fitted regression models).
./plink file mydata r2 ldwindowr2 0
This command, by default, only outputs values for SNPs that have an rsquared greater than 0.2, are
within 1 Mb and 10 SNPs of each other; these can be changed with the options ldwindowr2,
ldwindowkb and ldwindow respectively; in this case, we requested all SNPs to be reported
with ldwindowr2. The file
plink.ld
contains the fields
CHR_A SNP_A CHR_B SNP_B R2
1 rs1001 1 rs1002 0.260769
1 rs1001 1 rs1003 0.628703
1 rs1001 1 rs1004 0.260769
1 rs1001 1 rs1005 0.000357147
1 rs1002 1 rs1003 0.0964906
1 rs1002 1 rs1004 1
1 rs1002 1 rs1005 0.398912
1 rs1003 1 rs1004 0.0964906
1 rs1003 1 rs1005 0.00919232
1 rs1004 1 rs1005 0.398912
Here we see that rs1002 and rs1004 are in complete LD, but that there is
also moderate (rsquared above 0.2) LD between many other pairs of SNPs.
Moving then to the conditional tests: using the dataset above, to test for an independent effect
of rs1003, for example (independent of the haplotypic effects formed by the remaining SNPs),
one would issue the command:
./plink file mydata hapsnps rs1001rs1005 chap independenteffect rs1003
The haplogroupings implied by this command are
Alternate model
{ AAATA } { AACTA } { CCCGA } { ACAGC } { CCCGC } { ACCGC }
Null model
{ AAATA, AACTA } { CCCGA } { ACAGC, ACCGC } { CCCGC }
The test SNP, rs1003, is the middle SNP in the 5SNP haplotype (an A/C
SNP). In comparison to the alternate model, we now see that the null is formed by grouping
two pairs of haplotypes; each pair is identical except for rs1003: i.e.
{ AAATA, AACTA }
and
{ ACAGC, ACCGC }
In each case here, the comparison between alternate and null models is to
equate the effects of these haplotypes (i.e. implicitly providing a test for whether
rs1003 has any effect). A haplotype such as CCCGA is effectively left
out of the analysis: although it contains a C allele for rs1003, we
never see the corresponding CCAGA haplotype to perform a stratified analysis.
The main output for this test is shown below:
HAPLO FREQ OR(A) OR(N) SUBNULL P
    
AAATA 0.169 (ref) (ref) 0.008016
AACTA 0.06728 2.619 
CCCGA 0.2125 0.8942 0.6907 n/a
ACAGC 0.2635 0.6839 0.5628 0.2643
ACCGC 0.05022 1.038 
CCCGC 0.2375 1.025 0.7897 n/a
    
Model comparison test statistics:
Alternate Null
2LL : 535.4 544.4
Likelihood ratio test: chisquare = 8.982
df = 2
p = 0.01121
There are two new features to note: first, the null model is no longer a simple
unitary group; the rows are separated out into the groups defined by the null model. That
is, null does not mean no effect of any haplotype; rather, it is
used in the statistical sense of the default, more simple model compared to
the alternate: the model which we want to try to nullify.
Under the null, haplotypes AAATA and AACTA have a single parameter (both are
the reference category); haplotypes ACAGC and ACCGC have an estimated odds
ratio of 0.5628 (versus the reference group).
The second new addition is of the subnull test pvalues in the rightmost column.
These will only appear when the null model contains more than one group for which there was
more than one group in the alternate model (i.e. groups in which haplotype effects have been
equated within group). Whereas the likelihood ratio test at the bottom is a joint
2df test (for whether the two sets of haplotypes can be equated; equivalently, for whether
rs1003 has an independent effect), the submodel pvalues represent a test of just
that part of the model, i.e. a 1 df likelihood ratio test for whether AAATA and
AACTA do indeed have similar odds ratios has the pvalue of 0.008016.
One way of interpreting these results would be that rs1003 has an effect on the
AATA haplotype background, but not the ACGC background. However, drawing
such a conclusion in this simple manner is not advised  pvalues should not be interpreted
in this direct manner, and also the power of the test will vary by the frequency of the
haplotype background. ( A feature will be added that enables one to ask specifically whether or
not the effect of rs1003 varies between these two haplotype backgrounds: this
involves the specification of linear constraints between parameters.)
Note that it is not always possible to perform a test of independent effects: for example,
consider rs1002: given the set of common haplotypes under study, we see it is perfectly
correlated with rs1004 (i.e. we only ever see the AT and CG haplotypes
for these two SNPs. We therefore never see both alleles of rs1002 on the same haplotypic
background. As such, the null model is the same as the alternate: PLINK therefore reports
Likelihood ratio test: ( not a valid comparison: identical models, df = 0 )
It is also possible to see whether more than one SNP has an independent effect: this is
still a haplotypic test (of haplotypes formed by the two or more SNPs), but the
test is stratified by the haplotypic background formed by the remaining SNPs. For example:
./plink file mydata hapsnps rs1001rs1005 chap independenteffect rs1003,rs1004
leads to the haplogrouping
Alternate model
{ AAATA } { AACTA } { CCCGA } { ACAGC } { CCCGC } { ACCGC }
Null model
{ AAATA, AACTA } { CCCGA } { ACAGC, ACCGC } { CCCGC }
and the main test statistics
HAPLO FREQ OR(A) OR(N) SUBNULL P
    
AAATA 0.169 (ref) (ref) 0.008016
AACTA 0.06728 2.619 
CCCGA 0.2125 0.8942 0.6907 n/a
ACAGC 0.2635 0.6839 0.5628 0.2643
ACCGC 0.05022 1.038 
CCCGC 0.2375 1.025 0.7897 n/a
    
Model comparison test statistics:
Alternate Null
2LL : 535.4 544.4
Likelihood ratio test: chisquare = 8.982
df = 2
p = 0.01121
In this particular case, this test of independent effects of rs1003 and
rs1004 happens to give exactly the same results as the test of rs1003 by itself,
which will be made clear from examining the haplogroupings. Note that, in both cases, the
test is a two degree of freedom test.
Omnibus test controlling for X
To perform an omnibus test but controlling for a particular haplotype of set of haplotypes,
you can use the control command. The haplotypes can either be directly specified,
or implied through the list of SNPs specified. This test is a complement to the
independenteffect test.
Typically, one would use this test in the case of a significant omnibus assocation result.
For example, we could ask whether we still see the association even if we control for
haplotypes of SNPs rs1002 and rs1004 (the two most highly associated SNPs,
that are in complete LD with each other):
./plink file mydata hapsnps rs1001rs1005 chap control rs1002,rs1004
which gives implied haplogroupings:
Alternate model
{ AAATA } { AACTA } { CCCGA } { ACAGC } { CCCGC } { ACCGC }
Null model
{ AAATA, AACTA } { CCCGA, ACAGC, CCCGC, ACCGC }
In this case, rather than make the null model a single set, the control
command separates the haplotypes out into distinct groups based on the subhaplotypes
at SNPs rs1002 and rs1004, i.e.
{ AAATA, AACTA } { CCCGA, ACAGC, CCCGC, ACCGC }
The regression coefficient table is:
HAPLO FREQ OR(A) OR(N) SUBNULL P
    
AAATA 0.169 (ref) (ref) 0.008016
AACTA 0.06728 2.619 
CCCGA 0.2125 0.8942 0.6603 0.2087
ACAGC 0.2635 0.6839 
CCCGC 0.2375 1.025 
ACCGC 0.05022 1.038 
    
and model comparison statistics are:
Alternate Null
2LL : 535.4 547.7
Likelihood ratio test: chisquare = 12.32
df = 4
p = 0.01515
This is a 4 df test because 4 haplotypes are grouped with another
haplotype (i.e. the 4  symbols in the output).
One would conclude from this analysis that there is still a significant
effect at this locus even controlling from the haplotypic effects of
rs1002 and rs1004. In otherwords, the command
control rs1002,rs1004
is identical to
indepedenteffect rs1001,rs1003,rs1005
in this instance. Unlike the independenteffect, the
control command does allow for hapltoype(s) to be specified,
instead of SNPs: for example, we might ask whether the omnibus test is
significant controlling for ACAGC:
./plink file mydata hapsnps rs1001rs1005 chap control ACAGC
which gives the following haplogrouping
Alternate model
{ AAATA } { AACTA } { CCCGA } { ACAGC } { CCCGC } { ACCGC }
Null model
{ AAATA, AACTA, CCCGA, CCCGC, ACCGC } { ACAGC }
i.e., effectively leaving ACAGC out of the test,
and this table of coefficients
HAPLO FREQ OR(A) OR(N)
   
AAATA 0.169 (ref) (ref)
AACTA 0.06728 2.619 
CCCGA 0.2125 0.8942 
CCCGC 0.2375 1.025 
ACCGC 0.05022 1.038 
ACAGC 0.2635 0.6839 0.624
   
Model comparison test statistics:
Alternate Null
2LL : 535.4 546
Likelihood ratio test: chisquare = 10.56
df = 4
p = 0.03194
In otherwords, there is still a marginal omnibus assocation (p=0.032)
after controlling for ACAGC. Repeating this test for each
haplotype:
HAPLOTYPE (control) PVALUE (omnibus association)
AAATA 0.0008895
AACTA 0.2803
CCCGA 0.0008441
CCCGC 0.0009084
ACCGC 0.0007738
ACAGC 0.03194
which would suggest that there is no significant signal after controlling
for AACTA, at the p=0.05 level at least. This is consistent
with the true model: these data are in fact simulated, and AACTA
was in fact the disease haplotype.
Finally, it is possible to specify multiple, commadelimited haplotypes
for the control command.
General specification of haplotype groupings
Rather than use any of the above convenience functions for
specifying tests, one can directly specify the haplogrouping, in one of
two ways: by manually specifying the haplotypes, or the SNPs, to include
under both alternate and null models.
Manually specifying haplotypes
With the altgroup and nullgroup commands, it
is possible to directly specify the haplogrouping. These commands take a
commadelimited list of sets, where the equals symbol is used
to specify equality of haplotypes. For example, the command
independenteffect rs1003
which gives rise to the following haplogroups
Alternate model
{ AAATA } { AACTA } { CCCGA } { ACAGC } { CCCGC } { ACCGC }
Null model
{ AAATA, AACTA } { CCCGA } { ACAGC, ACCGC } { CCCGC }
which could instead have been directly specified
altgroup AAATA,AACTA,CCCGA,ACAGC,CCCGC,ACCGC
nullgroup AAATA=AACTA,CCCGA,ACAGC=ACCGC,CCCGC
Note how the = symbol is used to define sets. When using these
commands, the default for the alternate is as specified above, so this
command could have been excluded. Also, it is not necessary to
specify all haplotypes: if a haplotype is not specified, it will revert to its
default grouping (i.e. depending on whether this is for the alternate or
null). In other words, the same effect could have been achieved just with
the single command
nullgroup AAATA=AACTA,ACAGC=ACCGC
Finally, there are two wildcards, one of which can be
used in these two commands:
* Group all haplotypes not otherwise explicitly mentioned
% Separate all haplotypes not otherwise explicitly mentioned
In other words, implicitly there is always a baseline of
altgroup %
nullgroup *
To just equate two haplotypes, for instance, but keeping everything else
the same, one might use
nullgroup AAATA=AACTA,%
i.e. which means "under the null, allow each haplotype to have a unique
effect (%), with the exception of AACTA and
AACTA, which should be grouped with each other".
Manually specifying SNPs
With the altsnp and nullsnp commands, it is
possible to specify which SNPs should be used to form haplotypes. By
default, all SNPs are included in the alternate, no SNPs are included in
the null: this leads to the default haplogrouping of the omnibus test.
To illustrate this command, by reference to the
independenteffect specification, for example: the command
independenteffect rs1003
is equivalent to
altsnp rs1001rs1005 nullsnp rs1003
Covariates and additional SNPs
Covariates can be included with the covar option, the same as
for linear and logistic models. By default, all
covariates in that file with be used. Covariates always feature under
both the alternate and null models.
./plink file mydata hapsnps rs1001rs1005 chap covar myfile.cov
which generates an additional set of entries in the plink.chap
output file, representing the coefficients (no other statistical tests
are performed for the covariates, i.e. no pvalues, etc):
COVAR OR(A) OR(N)
  
COV1 0.7834 0.8499
In a similar manner, additional SNPs can be included, which can be
SNPs other than those included in the hapsnps command.
These SNPs are not considered in any way during the phasing process: the
alleles are simply entered in an allelic dosage manner. The command
condition and a list of SNPs, or conditionlist
followed by a filename with a list of SNP names, includes these.
./plink file mydata hapsnps rs1001rs1005 chap condition rs1006
which adds the following lines in the output file
SNPS OR(A) OR(N)
  
rs1006 1.038 2.899
Unlike for standard covariates, it is also possible to request that a SNP
effect be dropped under the null model, which allows, for example, for a test of
a SNP controlling for a set of haplotypes at a different locus: here, one
would want to include all haplotype effects under the null, and use the
testsnp command to drop one or more of the conditioning SNPs:
./plink file mydata hapsnps rs1001rs1005 chap nullgroup % condition
rs1006 testsnp rs1006
which would instead show
SNPS OR(A) OR(N)
  
rs1006 1.038 (dropped)
and an extra degree of freedom would be added to the model comparison
test. As the nullgroup % command was used to effectively
control for all haplotypic effects whilst testing this particular SNP,
rs1006, the test will be a 1 df test,
Likelihood ratio test: chisquare = 0.0007377
df = 1
p = 0.9783
It is also possible to specify more than one conditioning SNP (and to drop
none, some or all of these under the null): for example,
./plink file mydata hapsnps rs1001rs1005 chap nullgroup % condition
rs1006,rs1007 testsnp rs1006
General setting of linear constraints
{ to be completed }

