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)
SNPGDSFileClass
,
a SNP GDS fileTRUE
, use autosomal SNPs only; if it is a
numeric or character value, keep SNPs according to the specified
chromosome"KING-robust"
-- relationship inference in the presence
of population stratification; "KING-homo"
-- relationship
inference in a homogeneous populationNULL
, all individuals are treated as singletons;
if family id is given, within- and between-family relationship are
estimated differently. If sample.id=NULL
, family.id
should have the same length as "sample.id" in the GDS file, otherwise
family.id
should have the same length and order as the argument
sample.id
NA
, detect
the number of cores automaticallykinship=TRUE
"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
.
snpgdsIBDMLE
, snpgdsIBDMoM
# 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)
Run the code above in your browser using DataLab