| LD.thin {gaston} | R Documentation | 
LD thinning
Description
Select SNPs in LD below a given threshold.
Usage
LD.thin(x, threshold, max.dist = 500e3, beg = 1, end = ncol(x),
        which.snps, dist.unit = c("bases", "indices", "cM"), 
        extract = TRUE, keep = c("left", "right", "random"))
Arguments
| x | |
| threshold |  The maximum LD (measured by  | 
| max.dist | The maximum distance for which the LD is computed | 
| beg | The index of the first SNP to consider | 
| end | The index of the last SNP to consider | 
| which.snps | Logical vector, giving which SNPs are considerd. The default is to use all SNPs | 
| dist.unit |  Distance unit in  | 
| extract |  A  | 
| keep |  Which SNP is selected in a pair with LD above  | 
Details
The SNPs to keep are selected by a greedy algorithm. The LD is computed only for SNP pairs for which distance is inferior to 
max.dist, expressed in number of bases if dist.unit = "bases", in number of SNPs if dist.unit = "indices",
or in centiMorgan if dist.unit = "cM". 
The argument which.snps allows to consider only a subset of SNPs.
The algorithm tries to keep the largest possible number of SNPs: it is not appropriate to select tag-SNPs.
Value
If extract = TRUE, a bed.matrix extracted from x with SNPs in pairwise LD below the given threshold.
If extract = FALSE, a logical vector of length end - beg + 1, where TRUE indicates that 
the corresponding SNPs is selected.
Author(s)
Hervé Perdry and Claire Dandine-Roulland
See Also
Examples
# Load data
data(TTN)
x <- as.bed.matrix(TTN.gen, TTN.fam, TTN.bim)
# Select SNPs in LD r^2 < 0.4, max.dist = 500 kb
y <- LD.thin(x, threshold = 0.4, max.dist = 500e3)
y
# Verifies that there is no SNP pair with LD r^2 > 0.4
# (note that the matrix ld.y has ones on the diagonal)
ld.y <- LD( y, lim = c(1, ncol(y)) )
sum( ld.y > 0.4 )