| snpgdsIBDKING {SNPRelate} | R Documentation |
Calculate IBD coefficients by KING method of moment.
snpgdsIBDKING(gdsobj, sample.id=NULL, snp.id=NULL, autosome.only=TRUE,
remove.monosnp=TRUE, maf=NaN, missing.rate=NaN,
type=c("KING-robust", "KING-homo"), family.id=NULL,
num.thread=1, verbose=TRUE)
gdsobj |
an object of class |
sample.id |
a vector of sample id specifying selected samples; if NULL, all samples are used |
snp.id |
a vector of snp id specifying selected SNPs; if NULL, all SNPs are used |
autosome.only |
if |
remove.monosnp |
if TRUE, remove monomorphic SNPs |
maf |
to use the SNPs with ">= maf" only; if NaN, no MAF threshold |
missing.rate |
to use the SNPs with "<= missing.rate" only; if NaN, no missing threshold |
type |
|
family.id |
if |
num.thread |
the number of (CPU) cores used; if |
verbose |
if TRUE, show information |
KING IBD estimator is a moment estimator, and it is computationally
efficient relative to MLE method. The approaches include "KING-robust"
– robust relationship inference within or across families in the presence of
population substructure, and "KING-homo" – relationship inference in
a homogeneous population.
With "KING-robust", the function would return the proportion of SNPs
with zero IBS (IBS0) and kinship coefficient (kinship). With
"KING-homo" it would return the probability of sharing one IBD
(k1) and the probability of sharing zero IBD (k0).
The minor allele frequency and missing rate for each SNP passed in
snp.id are calculated over all the samples in sample.id.
Return a list:
sample.id |
the sample ids used in the analysis |
snp.id |
the SNP ids used in the analysis |
k0 |
IBD coefficient, the probability of sharing zero IBD |
k1 |
IBD coefficient, the probability of sharing one IBD |
IBS0 |
proportion of SNPs with zero IBS |
kinship |
the estimated kinship coefficients, if the parameter
|
Xiuwen Zheng
Manichaikul A, Mychaleckyj JC, Rich SS, Daly K, Sale M, Chen WM. Robust relationship inference in genome-wide association studies. Bioinformatics. 2010 Nov 15;26(22):2867-73.
# open an example dataset (HapMap)
genofile <- snpgdsOpen(snpgdsExampleFileName())
# CEU population
samp.id <- read.gdsn(index.gdsn(genofile, "sample.id"))
CEU.id <- samp.id[
read.gdsn(index.gdsn(genofile, "sample.annot/pop.group"))=="CEU"]
#### KING-robust:
#### relationship inference in the presence of population stratification
#### robust relationship inference across family
ibd.robust <- snpgdsIBDKING(genofile, sample.id=CEU.id, family.id=NULL)
names(ibd.robust)
# [1] "sample.id" "snp.id" "afreq" "IBS0" "kinship"
# select a set of pairs of individuals
dat <- snpgdsIBDSelection(ibd.robust, 1/32)
head(dat)
plot(dat$IBS0, dat$kinship, xlab="Proportion of Zero IBS",
ylab="Estimated Kinship Coefficient (KING-robust)")
#### KING-robust:
#### relationship inference in the presence of population stratification
#### within- and between-family relationship inference
# incorporate with pedigree information
family.id <- read.gdsn(index.gdsn(genofile, "sample.annot/family.id"))
family.id <- family.id[match(CEU.id, samp.id)]
ibd.robust2 <- snpgdsIBDKING(genofile, sample.id=CEU.id, family.id=family.id)
names(ibd.robust2)
# select a set of pairs of individuals
dat <- snpgdsIBDSelection(ibd.robust2, 1/32)
head(dat)
plot(dat$IBS0, dat$kinship, xlab="Proportion of Zero IBS",
ylab="Estimated Kinship Coefficient (KING-robust)")
#### KING-homo: relationship inference in a homogeneous population
ibd.homo <- snpgdsIBDKING(genofile, sample.id=CEU.id, type="KING-homo")
names(ibd.homo)
# "sample.id" "snp.id" "afreq" "k0" "k1"
# select a subset of pairs of individuals
dat <- snpgdsIBDSelection(ibd.homo, 1/32)
head(dat)
plot(dat$k0, dat$kinship, xlab="Pr(IBD=0)",
ylab="Estimated Kinship Coefficient (KING-homo)")
# close the genotype file
snpgdsClose(genofile)