使用ampvis2包对16S rRNA扩增子数据可视化分析

该教程来自ampvis2官方网站。

1. ampvis2包的工作流程
2. ampvis2包安装

我是使用的Windows10系统下的R 3.5.3和RStudio,同时需要安装RTools。打开Rstudio后运行以下代码进行安装:

> install.packages("remotes")
> remotes::install_github("MadsAlbertsen/ampvis2")

3. 载入数据

ampvis2能够接受常用的扩增子分析流程 QIIME, mothur以及 UPARSE产出的结果文件。 QIIME和mothur (通过 make.biom 代码) 都能以BIOM文件格式导出数据结果,然后通过ampvis2包中的amp_import_biom功能将数据导入到R中。UPARSE产出的数据可以通过ampvis2包中的 amp_import_uparse功能将数据导入到R中。 示例数据为minimal example data

#下载示例数据解压后有两个csv文件,设置一个ampvis2_test工作目录,将csv文件放到该目录下。
> setwd("C:/Users/Administrator/Desktop/R_work/ampvis2_test")
> list.files()
[1] "example_metadata.csv" "example_otutable.csv"
> myotutable <- read.csv("example_otutable.csv", check.names = FALSE)
> mymetadata <- read.csv("example_metadata.csv", check.names = FALSE)
> library(ampvis2)
> d <- amp_load(otutable = myotutable,
              metadata = mymetadata)

4. 数据过滤和子数据集构建

ampvis2包中包含有一个大的示例数据集MiDAS,这个数据集是在2006-2013年期间从污水处理植物后取样573个活性污泥的扩增子样品。

> data("MiDAS")
> MiDAS
ampvis2 object with 5 elements. 
Summary of OTU table:
     Samples         OTUs  Total#Reads    Min#Reads    Max#Reads Median#Reads    Avg#Reads 
         658        14969     20890850        10480        46264        31800     31749.01 

Assigned taxonomy:
      Kingdom        Phylum         Class         Order        Family         Genus       Species 
  14969(100%) 14477(96.71%) 12737(85.09%) 11470(76.63%)  9841(65.74%)   7380(49.3%)     28(0.19%) 

Metadata variables: 5 
 SampleID, Plant, Date, Year, Period

#查看数据集中的序列
> MiDAS$refseq
14969 DNA sequences in binary format stored in a list.

Mean sequence length: 472.922 
   Shortest sequence: 425 
    Longest sequence: 525 

Labels:
OTU_1
OTU_2
OTU_3
OTU_4
OTU_5
OTU_6
...

Base composition:
    a     c     g     t 
0.261 0.225 0.319 0.194 
(Total: 7.08 Mb)

#从MiDAS中选取plant变量中的Aalborg West和Aalborg East数据作为子数据集
> MiDASsubset <- amp_subset_samples(MiDAS, Plant %in% c("Aalborg West", "Aalborg East"))
590 samples and 5512 OTUs have been filtered 
Before: 658 samples and 14969 OTUs
After: 68 samples and 9457 OTUs

#或者选取更为复杂的子数据集
> MiDASsubset <- amp_subset_samples(MiDAS, Plant %in% c("Aalborg West", "Aalborg East") & !SampleID %in% c("16SAMP-749"), minreads = 10000)
591 samples and 5539 OTUs have been filtered 
Before: 658 samples and 14969 OTUs
After: 67 samples and 9430 OTUs

5. 热图绘制

简单热图,只展示了Aalborg West和Aalborg East两个不同实验组中相对丰度最高的10个门水平的微生物群落。

> amp_heatmap(MiDASsubset, group_by = "Plant")

复杂热图, 展示了两个实验组中样品取样时间,相对丰度最高的25个属水平的微生物群落并且标明了对应的门分类水平,相对丰度高低的图例等信息。

> amp_heatmap(MiDASsubset,
             group_by = "Plant",
             facet_by = "Year",
             tax_aggregate = "Genus",
             tax_add = "Phylum",
             tax_show = 25,
             color_vector = c("white", "darkred"),
             plot_colorscale = "sqrt",
             plot_values = FALSE) +
     theme(axis.text.x = element_text(angle = 45, size=10, vjust = 1),
           axis.text.y = element_text(size=8),
           legend.position="right")

6. 箱线图绘制

简单箱线图,子数据集中所有样品的属水平微生物群落按照相对丰度均值高低排序。

> amp_boxplot(MiDASsubset)

复杂箱线图,根据不同的采用季节分组显示,添加属分类水平群落对应的门分类水平信息。

> amp_boxplot(MiDASsubset,
             group_by = "Period",
             tax_show = 5,
             tax_add = "Phylum")

7. 排序分析Ordination analysis

基于Bray-Curtis距离矩阵的主坐标分析PCoA

> amp_ordinate(MiDASsubset, 
              type = "pcoa",
              distmeasure = "bray",
              sample_color_by = "Plant",
              sample_colorframe = TRUE,
              sample_colorframe_label = "Plant") + theme(legend.position = "blank")

添加取样时间信息,点之间的连线标明取样时间轨迹。

> amp_ordinate(MiDASsubset, 
              type = "pcoa",
              distmeasure = "bray",
              sample_color_by = "Plant",
              sample_colorframe_label = "Plant", 
              sample_trajectory = "Date", 
              sample_trajectory_group = "Plant")

典型对应分析CCA,展示了样品不同季节的分布情况。

> ordinationresult <- amp_ordinate(MiDASsubset, 
                                  type = "CCA",
                                  constrain = "Period",
                                  transform = "Hellinger",
                                  sample_color_by = "Period",
                                  sample_shape_by = "Plant",
                                  sample_colorframe = TRUE,
                                  sample_colorframe_label = "Period",
                                  detailed_output = TRUE)
> ordinationresult$plot

此外该R包还能其他分析作图功能,需要自己去探索。
amp_rarecurve()
amp_octave()
amp_timeseries()
amp_venn()
amp_core()
amp_frequency()
amp_otu_network()
amp_rankabundance()
amp_alphadiv()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容