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)