R语言计算α多样性指数与画图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言计算α多样性指数与画图相关的知识,希望对你有一定的参考价值。

参考技术A 操作之前安装好ggplot2、vegan、ggpubr包。如下:

install.packages("ggplot2")

install.packages("ggpubr")

install.packages("vegan")

计算Shannon-香农指数和Simpson-辛普森指数的命令在vegan包中,计算各组显著性的命令在ggpubr包中;画图使用ggplot命令,在行使每个命令之前一定要加载相应的包,如下:

library(ggplot2)

library(ggpubr)

library(vegan)

拿到一个otu表格,要先计算香农指数和辛普森指数,操作如下:

otu=read.table('D:/r-working/feature-table.taxonomy.txt',row.names = 1,skip=1,header=T,comment.char ='',sep='\t')

#读取out表格

#'D:/feature table.taxonomy.txt'为文件路径,注意斜线方向

#row.names = 1指定第一列为行名

#skip=1跳过第一行不读

#header=T指定第一个有效行为列名

#sep='\t'表示指定制表符为分隔符

#comment.char=''表示设置注释符号为空字符‘’,这样#后面的内容就不会被省略

otu=otu[,-ncol(otu)]

#去除表格的最后一列,无用信息

otu=t(otu)

#表格转置,必须将样品名作为行名

shannon=diversity(otu,"shannon")

#计算香农指数,先加载vegan包

shannon

#查看香农指数

simpson=diversity(otu,"simpson")

#计算辛普森指数,先加载vegan包

simpson

#查看辛普森指数

alpha=data.frame(shannon,simpson,check.names=T)

#合并两个指数

write.table(alpha,"D:/r-working/alpha-summary.xls",sep='\t',quote=F)

#存储数据,注意路径使用反斜杠

将各样本进行分组,并进行画图,操作如下:

map<-read.table('D:/r-working/mapping_file.txt',row.names = 1,header=T,comment.char ='',sep='\t',check.names=F)

#读取分组表格

group<-map["Group1"]

#提取需要的分组,'Group1'是表中的分组列名,包括A,B,C三组

alpha<-alpha[match(rownames(group),rownames(alpha)),]

#重排alpha的行的顺序,使其与group的样本id(行名)一致

data<-data.frame(group,alpha,check.rows=T)

#合并两个表格.'<-'与'='同属赋值的含义.

p=ggplot(data=data,aes(x=Group1,y=shannon))+geom_boxplot(fill=rainbow(7)[2])

#data = data指定数据表格

#x=Group1指定作为x轴的数据列名

#y=shannon指定作为y轴的数据列名

#geom_boxplot()表示画箱线图

#fill=rainbow(7)[2]指定填充色

此处用到ggplot2包画箱线图,将画图函数赋值给p后,可以用‘+’不断进行图层叠加,给图片p增加新的特性

p

#查看p

mycompare=list(c('A','B'),c('A','C'),c('B','C'))

#指定多重比较的分组对

mycompare

p<-p+stat_compare_means(comparisons=mycompare,label = "p.signif",method = 'wilcox')

#添加显著性标记的第一种方法,在此之前先加载ggpubr包

p<-p+ylim(2,5.5)

#调整图像的外观

R语言基础介绍


R 语言是一个用于统计计算和统计制图的优秀工具。而我学习R语言主要是因为它做出来的图不仅比Excel高清,而且图片的色彩颜值也很好看,数据处理功能也多样化。我最近是刚刚上手,所以是从小白的角度讲一些个人学习心得。
今天主要从①R语言书籍推荐、②R与Rstudiod的安装、③R包的介绍与安装、④R学习论坛、⑤R画图与可视化五方面来介绍一下。

① R语言学习书籍推荐

R语言基础介绍

最近在网上看了很多R语言文章,普遍都很碎片化,而且不够通俗易懂。
最好的学习资料还数官方的帮助文档《R for data science》(R数据科学)http://t.cn/EiCWrRK
这本书通俗易懂,从 ggplot2开始,即如何画图开始,后讲理论和语法。也就是,先告诉你怎么用,然后告诉你为什么这样用,这也是我认为它最大的优点,推荐。

R语言基础介绍

② R与RStudio的安装

R语言基础介绍

先安装R,后安装RRStudio。RStudio是R的编译器,这两者的区别相当于word与记事本的区别,安装方法见:https://zhuanlan.zhihu.com/p/66246956

R语言基础介绍

③ R包

R语言基础介绍

介绍:R包是对R自带功能的扩展,包括 函数,数据,文件。其中有关数据处理和画图的R包主要为 tidyverse
安装:可以用下面的代码进行安装(需联网)
   
     
     
   
install.packages("tidyverse")
加载:安装完成后,前还需使用 library()加载包
   
     
     
   
library(tidyverse)
加载结果如图1所示,表明 tidyverse 的核心包 ggplot2, tibble, tidyr, readr, purrr,   dplyr 已经加载完成,这些都是平常数据分析作图常用到的。(后续可以用 tidyverse_update()进行更新)
R语言基础介绍
图1

R包的代码通常放在代码脚本的顶部,这样方便自己检查,对于 tidyverse中的库,使用 tidyverse_update()检查最方便。

R语言基础介绍

④ R学习论坛

R语言基础介绍

如果代码运行遇到问题,可以先浏览一下以下网站或博客,寻求答案。当然,百度、公众号等也都都能搜到。
  1. Google

  2. stackoverflow(http://stackoverflow.com/)

  3. RStudio blog(https://blog.rstudio.org/)

  4. 代码窗口输入??。比如你不清楚tidyverse,可以输入??tidyverse如图2,在输出窗口中help当中可以看到它的解释。


    R语言基础介绍

    图2


R语言基础介绍

⑤ R画图与数据可视化

R语言基础介绍

ggplot2包当中的 mpg数据来举例( mpg数据是美国环境保护署收集的有关汽车类型,尾气排放效率等的数据)。如图3所示,列名为变量名,行中的数值为观测值,中间含 <>的为值的类型。(其中,displ表示汽车引擎大小,hwy表示汽车燃料效率)
R语言基础介绍
图3

当我们想查看displ与hwy的关系的散点图时,可以输入如下代码
   
     
     
   
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy))
(注:“+” 在后面)
   
     
     
   
ggplot(data = mpg)
+ geom_point(mapping = aes(x = displ, y = hwy)) (×)
其中, ggplot()函数中的参数表明在图中使用的数据集, ggplot(data = mpg)表示你使用的mpg数据集。
ggplot有很多 geom函数,其中 geom_point()表示在图层中加入一个点图层,即该函数可以创建一个散点图。
asx表示数据与图的映射, aes(x = displ, y = hwy)表示 x轴与 y轴对应的变量。
运行结果如图4
R语言基础介绍
图4
当你想要让图中的点,按照车的类型(class)分别显示不同的颜色, 可以这样改写
   
     
     
   
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class))
运行结果如图5,颜色类别由软件自动填充。
R语言基础介绍
图5

注:当所有点的颜色不按类别(class)分,而是统一调整为某个色(如蓝色),代码为 color = “blue”,且它应当在aes()的外面,代码如下
   
     
     
   
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy), color = "blue")
运行结果如图6
R语言基础介绍
图6

当然,划分车的类型时,不一定使用颜色区分,也可以使用透明度(图7a)、形状(图7b)来区分。

   
     
     
   
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, alpha = class

ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, shape = class))

R语言基础介绍
图7a 透明度
R语言基础介绍
图7b 形状
上面讲了怎么画散点图,如果想要画线呢?可以使用 geom_smooth()
   
     
     
   
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy))
运行结果如图8
R语言基础介绍
图8
如果, 你不想要显示线周围的灰色区域呢,可以添加 se = FALSE
   
     
     
   
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy),se=FALSE)
R语言基础介绍
图9
如果,你希望点和线都显示(图10)
   
     
     
   
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
geom_smooth(mapping = aes(x = displ, y = hwy),se = FALSE)
图10
今天的分享就先到这里,欢迎留言讨论~

以上是关于R语言计算α多样性指数与画图的主要内容,如果未能解决你的问题,请参考以下文章

R语言计算β多样性指数及分析

时间序列的R语言实现

技术贴 | R语言:ROC分析多样性指数

R语言基础介绍

R语言在统计中的应用都有哪些?

Prism和R语言作图区别