Description Usage Arguments Value Author(s) References See Also Examples
Eigen-analysis on IBD matrix based SNP genotypes.
1 2 3 4 5 |
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 |
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 |
num.thread |
the number of (CPU) cores used; if |
eigen.cnt |
output the number of eigenvectors; if |
diagadj |
|
ibdmat |
if |
verbose |
if |
x |
a |
eig |
indices of eigenvectors, like |
... |
the arguments passed to or from other methods, like
|
Return a snpgdsEigMixClass
object, and it is a list:
sample.id |
the sample ids used in the analysis |
snp.id |
the SNP ids used in the analysis |
eigenval |
eigenvalues |
eigenvect |
eigenvactors, "# of samples" x "eigen.cnt" |
afreq |
allele frequencies |
ibd |
the IBD matrix when |
diagadj |
the argument |
Xiuwen Zheng
Zheng X, Weir BS. Eigenanalysis on SNP Data with an Interpretation of Identity by Descent. Theoretical Population Biology. 2016 Feb;107:65-76. doi: 10.1016/j.tpb.2015.09.004
snpgdsAdmixProp
, snpgdsAdmixPlot
,
snpgdsPCA
, snpgdsPCASNPLoading
,
snpgdsPCASampLoading
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # open an example dataset (HapMap)
genofile <- snpgdsOpen(snpgdsExampleFileName())
# get population information
# or pop_code <- scan("pop.txt", what=character())
# if it is stored in a text file "pop.txt"
pop_code <- read.gdsn(index.gdsn(genofile, "sample.annot/pop.group"))
# get sample id
samp.id <- read.gdsn(index.gdsn(genofile, "sample.id"))
# run eigen-analysis
RV <- snpgdsEIGMIX(genofile)
RV
# eigenvalues
RV$eigenval
# make a data.frame
tab <- data.frame(sample.id = samp.id, pop = factor(pop_code),
EV1 = RV$eigenvect[,1], # the first eigenvector
EV2 = RV$eigenvect[,2], # the second eigenvector
stringsAsFactors = FALSE)
head(tab)
# draw
plot(tab$EV2, tab$EV1, col=as.integer(tab$pop),
xlab="eigenvector 2", ylab="eigenvector 1")
legend("topleft", legend=levels(tab$pop), pch="o", col=1:4)
# define groups
groups <- list(CEU = samp.id[pop_code == "CEU"],
YRI = samp.id[pop_code == "YRI"],
CHB = samp.id[is.element(pop_code, c("HCB", "JPT"))])
prop <- snpgdsAdmixProp(RV, groups=groups)
# draw
plot(prop[, "YRI"], prop[, "CEU"], col=as.integer(tab$pop),
xlab = "Admixture Proportion from YRI",
ylab = "Admixture Proportion from CEU")
abline(v=0, col="gray25", lty=2)
abline(h=0, col="gray25", lty=2)
abline(a=1, b=-1, col="gray25", lty=2)
legend("topright", legend=levels(tab$pop), pch="o", col=1:4)
# close the genotype file
snpgdsClose(genofile)
|
Loading required package: gdsfmt
SNPRelate -- supported by Streaming SIMD Extensions 2 (SSE2)
Eigen-analysis on genotypes:
Excluding 365 SNPs on non-autosomes
Excluding 1 SNP (monomorphic: TRUE, MAF: NaN, missing rate: NaN)
# of samples: 279
# of SNPs: 8,722
using 1 thread
Eigen-analysis: the sum of all selected genotypes (0,1,2) = 2446510
CPU capabilities: Double-Precision SSE2
Thu Jul 1 09:48:16 2021 (internal increment: 408)
[..................................................] 0%, ETC: ---
[==================================================] 100%, completed, 1s
Thu Jul 1 09:48:17 2021 Begin (eigenvalues and eigenvectors)
Thu Jul 1 09:48:17 2021 Done.
List of 7
$ sample.id: chr [1:279] "NA19152" "NA19139" "NA18912" "NA19160" ...
$ snp.id : int [1:8722] 1 2 3 4 5 6 7 8 9 10 ...
$ eigenval : num [1:279] 20.173 10.005 0.881 0.743 0.697 ...
$ eigenvect: num [1:279, 1:32] -0.0813 -0.0833 -0.08 -0.0862 0.0264 ...
$ afreq : num [1:8722] 0.6989 0.2043 0.0484 0.9402 0.8817 ...
$ ibd : NULL
$ diagadj : logi TRUE
- attr(*, "class")= chr "snpgdsEigMixClass"
[1] 20.1730520 10.0046139 0.8806819 0.7429476 0.6968208 0.6874427
[7] 0.6525443 0.6054765 0.5295101 0.5076562 0.4967220 0.4906583
[13] 0.4781425 0.4763934 0.4612989 0.4592947 0.4474031 0.4418133
[19] 0.4385189 0.4334209 0.4283672 0.4226959 0.4194047 0.4108246
[25] 0.4002398 0.3969773 0.3919273 0.3856560 0.3823628 0.3789550
[31] 0.3786969 0.3748523 NaN NaN NaN NaN
[37] NaN NaN NaN NaN NaN NaN
[43] NaN NaN NaN NaN NaN NaN
[49] NaN NaN NaN NaN NaN NaN
[55] NaN NaN NaN NaN NaN NaN
[61] NaN NaN NaN NaN NaN NaN
[67] NaN NaN NaN NaN NaN NaN
[73] NaN NaN NaN NaN NaN NaN
[79] NaN NaN NaN NaN NaN NaN
[85] NaN NaN NaN NaN NaN NaN
[91] NaN NaN NaN NaN NaN NaN
[97] NaN NaN NaN NaN NaN NaN
[103] NaN NaN NaN NaN NaN NaN
[109] NaN NaN NaN NaN NaN NaN
[115] NaN NaN NaN NaN NaN NaN
[121] NaN NaN NaN NaN NaN NaN
[127] NaN NaN NaN NaN NaN NaN
[133] NaN NaN NaN NaN NaN NaN
[139] NaN NaN NaN NaN NaN NaN
[145] NaN NaN NaN NaN NaN NaN
[151] NaN NaN NaN NaN NaN NaN
[157] NaN NaN NaN NaN NaN NaN
[163] NaN NaN NaN NaN NaN NaN
[169] NaN NaN NaN NaN NaN NaN
[175] NaN NaN NaN NaN NaN NaN
[181] NaN NaN NaN NaN NaN NaN
[187] NaN NaN NaN NaN NaN NaN
[193] NaN NaN NaN NaN NaN NaN
[199] NaN NaN NaN NaN NaN NaN
[205] NaN NaN NaN NaN NaN NaN
[211] NaN NaN NaN NaN NaN NaN
[217] NaN NaN NaN NaN NaN NaN
[223] NaN NaN NaN NaN NaN NaN
[229] NaN NaN NaN NaN NaN NaN
[235] NaN NaN NaN NaN NaN NaN
[241] NaN NaN NaN NaN NaN NaN
[247] NaN NaN NaN NaN NaN NaN
[253] NaN NaN NaN NaN NaN NaN
[259] NaN NaN NaN NaN NaN NaN
[265] NaN NaN NaN NaN NaN NaN
[271] NaN NaN NaN NaN NaN NaN
[277] NaN NaN NaN
sample.id pop EV1 EV2
1 NA19152 YRI -0.08134977 -0.01800612
2 NA19139 YRI -0.08332236 -0.01552648
3 NA18912 YRI -0.07999713 -0.01544285
4 NA19160 YRI -0.08619874 -0.02043080
5 NA07034 CEU 0.02638517 0.07853139
6 NA07055 CEU 0.02730423 0.08396931
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.