|
|
[交流]
R语言 Jaccard和Bray-curtis相异系数 已有4人参与
Jaccard和Bray-curtis相异系数是生物信息分析中常用到的,它是计算物种相似性的基础。
通过计算相异系数,可以得到一个矩阵matrix,矩阵是后续做热图和聚类树的基础。
-----------------------------------------------------------------------------------
需要注意的是这两个相异系数的侧重点不一样。
Jaccard在分析时,只考虑样本中物种的有无,而不考虑丰度。
而Bray-curtis计算时,不仅考虑样本中物种的有无,而且还考虑不同物种的相对丰度。
-----------------------------------------------------------------------------------
Jaccard和Bray-Curtis都可以用vegan包中的vegdist计算。具体计算命令如下所示:
Jaccard vegdist(spe,’jac’,binary=’TRUE’)
Bray-Curtis vegdist(spe.’bary’)
------------------------------------------------------------------------------------
还是以前面的OTU数据为例。
打开R语言,改为数据的工作路径
library(vegan) #载入vegan包
otu1<-read.csv('otu.csv') #读取数据
otu2<-otu1[1:105,1:16] #选择需要的行数和列数(由于16行以后为英文字母,所以我们选择16行之前的)
otu<-t(otu2) #将行数和列数进行转置
otu.ja<-vegdist(otu,’jac’,binary=’TRUE’) #计算jaccard
otu.bc<-vegdist(spe.’bary’) #计算bray-curtis
write.csv(as.matrix(otu.ja),’otu.ja’) #将jaccard存为到文件夹里
write.csv(as.matrix(otu.bc),’otu.bc’) #将bray-curtis存为’otu.bc’文件
拿到矩阵后,可以用矩阵做热图或聚类树。
---------------------------------------------------------------------------
下面是本次的计算代码,需要的拿走哈!
library(vegan)
otu1<-read.csv('otu.csv')
otu2<-otu1[1:105,1:16]
otu<-t(otu2)
otu.ja<-vegdist(otu,'jac',binary='TRUE')
otu.bc<-vegdist(otu,'bray')
write.csv(as.matrix(otu.ja),'otuja1.csv')
write.csv(as.matrix(otu.bc),'otubc1.csv')
---------------------------------------------------------------------------
更多R语言的学习内容,在【小马科研部落】哈!
![R语言 Jaccard和Bray-curtis相异系数]()
矩阵.jpg |
|