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

image.png
使用到的是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
明天的推文再继续这部分内容吧!