|
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. Family-based association
13. Permutation procedures
14. Multimarker tests
15. Conditional haplotype tests
16. Proxy association
17. Full imputation (beta)
18. LD-based results clumping
19. Epistasis
20. Copy Number Variation
21. R-plugins
22. SNP annotation lookup
23. Simulation tools
24. Profile scoring
25. Resources
26. Miscellaneous
27. FAQ & Hints
28. gPLINK
|
|
LD-based result clumping procedure
This page describes PLINK's ability to group SNP-based
results across one or more datasets or analyses, based on empirical
estimates of linkage disequilibrium between SNPs. The basic procedure
was inspired by a script written by Ben Voight.
There are probably two main applications for this method:
- To report the top X single SNP results from a genome-wide scan
in terms of a smaller number of clumps of correlated SNPs (i.e. to
assess how many independent loci are associated, for example)
- To provide a quick way to combine sets of results from two or
more studies, when the studies might also be genotyped on different
marker sets
Basic usage for LD-based clumping
The --clump command is used to specify one or more result files
(i.e. precomputed analyses of some kind). By default, PLINK scans these files and extracts
fields with the headers SNP and P. For example:
plink --file mydata --clump mytest1.assoc
which generates a file
plink.clumped
The actual genotype dataset specified here (i.e. the mydata.* fileset) may or may not be the same dataset
that was used to generate the results in mytest1.assoc. The mydata fileset is only used to calculate
linkage disequilibrium between the SNPs that feature in mytest1.assoc (i.e. the analyses are not re-run).
There are four main parameters that determine the level of clumping, listed here in terms
of the command flag used to change them and their default values:
--clump-p1 0.0001 Significance threshold for index SNPs
--clump-p2 0.01 Secondary significance threshold for clumped SNPs
--clump-r2 0.50 LD threshold for clumping
--clump-kb 250 Physical distance threshold for clumping
The clumping procedure takes all SNPs that are significant at threshold p1 that have not already been
clumped (denoting these as index SNPs) and forms clumps of all other SNPs that are within a certain kb
distance from the index SNP (default 250kb) and that are in linkage disequilibrium with the index SNP,
based on an r-squared threshold (default 0.50). These SNPs are then subsetted based on the result for that SNP,
as illustrated below. This is a greedy algorithm and so each SNP will only appear in a single clump, if
at all.
In the default, non-verbose mode, the default output lists all index SNPs and a summary of the other SNPs that
are clumped with this SNP: (note, SNP IDs and positions are made-up in the example below):
CHR F SNP BP P TOTAL NSIG S05 S01 S001 S0001 SP2
8 1 rs1234564 15716326 5.01e-07 0 0 0 0 0 0 NONE
14 1 rs1205236 69831825 1.46e-06 0 0 0 0 0 0 NONE
2 1 rs16331058 114547107 2.33e-06 3 0 0 0 0 3 rs2366902(1),rs1274528(1),rs3200591(1)
2 1 rs759966 54902416 9.28e-06 4 0 0 0 3 1 rs12538389(1),rs30488140(1),rs27152432(1)
11 1 rs8031586 44633498 9.75e-06 1 0 0 0 0 1 rs802328(1)
12 1 rs12431413 30028246 9.89e-06 0 0 0 0 0 0 NONE
6 1 rs14966070 62091121 1.07e-05 0 0 0 0 0 0 NONE
where the fields are as follows
CHR Chromosome code
F Results fileset code (1,2,...)
SNP SNP identifier
BP Physical position of SNP (base-pairs)
TOTAL Total number of other SNPs in clump (i.e. passing --clump-kb and --clump-r2 thresholds)
NSIG Number of clumped SNPs that are not significant ( p > 0.05 )
S05 Number of clumped SNPs 0.01 < p < 0.05
S01 Number of clumped SNPs 0.001 < p < 0.01
S001 Number of clumped SNPs 0.0001 < p < 0.001
S0001 Number of clumped SNPs p < 0.0001
SP2 List of SNPs names (and fileset code) clumped and significant at --clump-p2
That is, the TOTAL field lists all SNPs that are clumped with the index SNP, irrespective of the p-value for those SNPs.
This number is then split into those clumped SNPs that are not significant (p>0.05) and various other groups defined by significance
thresholds. For SNPs that are significant at the p2 threshold, they are listed explicitly. The (1) after each SNP name refers to the
results file they came from (in this case, there is only a single result file specified, so all values are 1).
To specify more than a single result file, use a comma-delimited list after --clump (without any spaces between file
names), for example:
plink --bfile mydata --clump mytest1.assoc,mytest2.assoc
To specify a field labelled other than P, use the command
plink --bfile mydata --clump mytest1.assoc --clump-field P_CMH
for example.
NOTE The same fields are extracted from all
results files (e.g. SNP and P) -- i.e. it is not
possible to specify different fields from different files.
NOTE All results are interpreted as p-values --
i.e. it is not possible to specify a Z-statistic, as significance is
always defined as less than the threshold.
Finally, by default a SNP is not allowed to appear in more than one
clump, either as an index or non-index SNP. If you add the command,
then a SNP that has appeared as a non-index SNP in one clump can
appear as a non-index SNP in other clumps:
--clump-allow-overlap
Verbose report
For a more detailed report of the SNPs in each clump, add the flag --clump-verbose
plink --bfile mydata --clump mytest1.assoc --clump-verbose
which produces a report as follows:
CHR F SNP BP P TOTAL NSIG S05 S01 S001 S0001
8 1 rs1234564 15716326 5.019e-07 0 0 0 0 0 0
------------------------------------------------------------------
CHR F SNP BP P TOTAL NSIG S05 S01 S001 S0001
14 1 rs1205236 69831825 1.469e-06 0 0 0 0 0 0
------------------------------------------------------------------
CHR F SNP BP P TOTAL NSIG S05 S01 S001 S0001
2 1 rs16331058 114547107 2.337e-06 3 0 0 0 0 3
KB RSQ ALLELES F P
(INDEX) rs16331058 0.0 1.000 A 1 2.34e-06
rs2366902 -75.4 0.611 AT/GC 1 4.42e-05
rs1274528 -47.4 0.555 AC/GT 1 1.28e-05
rs3200591 -22.3 0.964 AT/GC 1 2.68e-05
------------------------------------------------------------------
etc
For example, for the third SNP, rs16331058 we see there are 3 other SNPs that fulfil the specified
criteria (kb distance less than 250kb, r-squared greater then 0.5 and p-value of less than p2 threshold of
0.01), and they are listed explicitly in verbose mode. As well as the kb and r-squared for each SNP (relative to rs16331058)
we see listed the fileset which the result comes from (F -- in this case, all are listed 1, as there was only one result
file specified) and p-value. Also, the alleles column indicates for the index SNP what the minor allele is (A); for the
other SNPs, the two haplotypes that are more common than expected are listed (e.g. for SNPs A/B and 1/2, then
if P(A1) > P(A)P(1) it will list A1/B2, otherwise A2/B1.
Another useful verbose-mode option is --clump-anotate which takes as a parameter a comma-delimited list of header names, e.g.
--clump-annotate A1,OR
and will then list these items in the verbose report mode (e.g. minor allele and odds ratio, in this case, if the
results file were a plink.assoc file). The output would then appear as, for example,
CHR F SNP BP P TOTAL NSIG S05 S01 S001 S0001
2 1 rs16331058 114547107 2.337e-06 3 0 0 0 0 3
KB RSQ ALLELES F P ANNOT
(INDEX) rs16331058 0.0 1.000 A 1 2.34e-06 A, 1.23
rs2366902 -75.4 0.611 AT/GC 1 4.42e-05 T, 1.17
rs1274528 -47.4 0.555 AC/GT 1 1.28e-05 C, 1.22
rs3200591 -22.3 0.964 AT/GC 1 2.68e-05 T, 1.19
i.e. here we can see that for rs2366902 the minor allele T had an odds ratio of 1.17; this
is consistent with the index SNP, as the haplotype AT is more common than expected (i.e. indicating
the direction of the LD).
NOTE The allele coding in the ALLELES field is taken directly from the specified genotype data,
i.e. mydata.* in this case, whereas the allele coding in the ANNOT field is taken (if available and --clump-annotate
selects an allele field) from the results file. It is up to the user to ensure that these match to be interpretable (i.e. in terms of number versus
letter coding, but more importantly in terms of strand, etc, which might be an issue if the genotype data is a file different from that which
the results were calculated on, e.g. see below for an example).
Combining multiple result files (potentially from different SNP panels)
When more than one output file is specified, e.g. as
plink --bfile mydata --clump mytest1.assoc,mytest2.assoc,mytest3.assoc
there are two other options that can modify the behaviour of --clump. First,
--clump-index-first
indicates that index SNPs should only taken from the first result file listed
(mytest1.assoc in the example above). In other words, this allows for
an asymmetric comparison, in which we ask only whether or not a result in a
particular file has any other SNPs (in that same, or in different files) that
could be clumped.
Second, the additional option
--clump-replicate
means that only clumps containing clumped SNPs with p2-significant results in more than one
result file are shown. This could be used in the following context: imagine one had data for two different whole-genome
scans, for the same phenotype but performed on different platforms, e.g. Affymetrix and Illumina. A quick way to compare these
sets of results would be to use the HapMap as a common dataset (i.e. containing all SNPs on both platforms, or the majority of these
in any case) as follows:
plink --bfile hapmap --clump affymetrix.assoc,illumina.assoc --clump-verbose --clump-replicate
This assumes that you have made the fileset hapmap.* to contain all SNPs for one of the analysis panels,
e.g. CEU. In this context, we are only interested in hits (e.g. p-values less than 1e-3) that are seen across the
studies, by using the --clump-replicate flag (i.e. only clumps where F is seen to have values of both 1 and
2 for p2-significant SNPs). In this case, it also probably makes sense to equate the p1 and p2 thresholds,
by adding, for example,
--clump-p1 1e-3 --clump-p2 1e-3
Finally, by also adding the
--clump-annotate A1,OR
flag, you can see whether or not there appears to
be a consistent direction of effect also (by putting together
the direction of odds ratios with the over-represented
haplotype to tie together the two or three SNPs).
|
|