千家信息网

如何使用R语言实现对SSR数据做主成分分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章给大家分享的是有关如何使用R语言实现对SSR数据做主成分分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。有朋友留言问如何对0,
千家信息网最后更新 2026年11月03日如何使用R语言实现对SSR数据做主成分分析

本篇文章给大家分享的是有关如何使用R语言实现对SSR数据做主成分分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

有朋友留言问如何对0,1矩阵做主成分分析(PCA),查了一下参考资料找到了一个办法

首先是准备数据

示例数据来自于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

以上就是如何使用R语言实现对SSR数据做主成分分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0