前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一些R代码学习笔记

一些R代码学习笔记

作者头像
Listenlii-生物信息知识分享
发布2020-06-01 13:25:45
2.4K0
发布2020-06-01 13:25:45
举报

稀释曲线及物种外推

稀释曲线可用vegan包的rarecurve直接画,但是很丑:

可用rarefy得到结果后在ggplot里自己画。核心是设定一个步长,这些步长都用rarefy函数进行重抽,再组合到一起即可。

代码语言:javascript
复制
 1raremax <- min(rowSums(tdat))
 2inter=seq(0,raremax,by=1000)
 3drare <- rarefy(tdat,inter)
 4rarepoint <- as.data.frame(t(rbind(inter,drare)))
 5
 6library(reshape2)
 7point<-melt(rarepoint,id.vars=c("inter"),variable.name="group",value.name="reads")
 8point
 9#write.csv(point,'rarecurve')
10library(ggplot2)
11plot_theme = theme(panel.background=element_blank(),
12                   panel.grid=element_blank(),
13                   axis.line.x=element_line(size=.5, colour="black"),
14                   axis.line.y=element_line(size=.5, colour="black"),
15                   axis.ticks=element_line(color="black"),
16                   axis.text=element_text(color="black", size=20),
17                   legend.position="right",
18                   legend.background=element_blank(),
19                   legend.key=element_blank(),
20                   legend.text= element_text(size=20),
21                   text=element_text(family="sans", size=20)) 
22p = ggplot()+geom_line(dat=point,aes(x=inter,y=reads,group=group),color=as.numeric(point$group),size=2)+plot_theme
23p

只是示意图,我知道还是很丑。。。

另外还发现了几个函数可用于估计多样性。

specpool可以计算Chao,Jack1,Jack2和Bootstrap的值及他们对应的se,它基于incidence的数据。

而estimateR可得到Chao1和ACE及他们的se,它基于abundance数据。

跟这两个对应的还有两个函数,这两个函数可以进行外推,估计未观测到的物种并计算理论值:

poolaccum得到Species, Chao, Jack1, Jack2 和Bootstrap,以及每个值的 2.5%,97.5%,Std.Dev,它基于incidence数据。

estaccumR得到Species,Chao和ACE,基于abundance数据。

poolaccum的结果

群落中的指示物种

labdsv包的indval函数可计算群落中的指示物种。结果中每个OTU都会得到一个P值。挑出P小于0.05的OTU即为指示物种。计算原理可以简单理解为考察物种组内相对频率与相对丰度的乘积。

这个图为按照H2的含量进行分组,这些指示物种在每组中的相对丰度。

另外,isamic也可以计算指示物种。其原理为找到组内经常出现或者缺失的物种,即计算出现率。

向前筛选和向后筛选

vegan中有专门针对约束排序(cca,rda,dbrda[capscale])的向前和向后筛选函数ordistep。 而ordiR2step仅针对rda或dbrda的结果依赖adjusted R2 和 P-value进行向前筛选。

将dist和矩阵转成database

我以前一直用as.vector,但是在这里看到一种新方法,用simba包的liste,确实好用!

Mantel test

代码中出现了两种计算mantel的函数,分别为: vegan包的mantel,输入类型为矩阵或dist;

ape包mantel.test,输入必须是矩阵

adonis 和 adonis2

代码中应用了adonis2计算,而我平时用adonis。两者的区别没太看懂,直接放英文: adonis performs a sequential test of terms。 adonis2 can perform sequential, marginal and overall tests. Function adonis2 also allows using additive constants or squareroot of dissimilarities to avoid negative eigenvalues,but both functions can handle semimetric indices (such as Bray-Curtis) that produce negative eigenvalues.

且adonis2更慢。

betadisper

betadisper函数可检验多元变量方差齐性。原理是将样本之间的距离降维到主坐标来代表非欧距离,也可以代表样本之间的beta多样性。我感觉跟PCoA有点像。其结果也是 PCoA来表示。放个图:

mantel.correlog

mantel.correlog可计算距离与mantel相关性的关系,放个图说明:

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Listenlii 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档