使用R语言对SSR数据做主成分分析(PCA)的一个简单小例子

昨天的推文介绍了使用R语言对比对后的DNA序列做主成分分析的一个简单小例子,推文下有朋友留言问如何对0,1矩阵做主成分分析(PCA)查了一下参考资料找到了一个办法

参考资料的链接
  • 1、 https://cran.r-project.org/web/packages/poppr/vignettes/poppr_manual.html
  • 2、https://popgen.nescent.org/startMicrosatellite.html
首先是准备数据

示例数据来自于R语言包poppr,csv文件存储,数据格式如下

image.png
  • 1 位点总数
  • 2 样本总数
  • 3 群体总数
  • 4、5、6 每个群体中 的样本数以及群体名
  • 7 是样本编号
  • 8 是群体名称
  • 9 是位点编号
  • 10 是0,1型的SSR数据
R语言读入数据

使用到的是R语言的poppr包中的read.genalex()函数
poppr第一次使用需要先安装

install.packages('poppr')

读入数据

library(poppr)
mydf<-read.genalex("rootrot.csv")
mydf
mydf1<-genclone2genind(mydf)

读入数据直接是 genclone object,使用函数genclone2genind()将其转换成genind object,接下来使用ade4包中的dudi.pca()函数做主成分分析

mydf1.pca<-dudi.pca(mydf1,scannf = F,nf=2)
mydf1.pca.scores<-mydf1.pca$li

主成分的结果存储在li中

还是认为的分个组,然后做散点图

mydf1.pca.scores$Pop<-ifelse(mydf1.pca.scores$Axis1>0,"pop1","pop2")
library(ggplot2)
ggplot(mydf1.pca.scores,aes(x=Axis1,y=Axis2))+
  geom_point(aes(color=Pop))+
  stat_ellipse(aes(x=Axis1,y=Axis2,fill=Pop),
               geom="polygon",
               alpha=0.2,
               lty="dashed",
               color="black")+
  theme_bw()
image.png

以上是第一种方法,刚刚看到昨天提到的参考资料,原来和昨天的方法一样也可以读入数据

image.png
image.png

明天的推文再继续这部分内容吧!

欢迎大家关注我的公众号
小明的数据分析笔记本

你可能感兴趣的:(使用R语言对SSR数据做主成分分析(PCA)的一个简单小例子)