- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
- phyloseq: Explore microbiome pro
本节主要是在PhyloseqTutorials学习plot bars
下面的示例将帮助您开始在自己的phyloseq数据上使用plot_bar函数
Global Patterns dataset examples
加载数据集,仅仅用Chlamydiae门类
library("phyloseq"); packageVersion("phyloseq")
library("ggplot2"); packageVersion("ggplot2")
theme_set(theme_bw())
data("GlobalPatterns")
#subset_taxa提取某个门类
gp.ch = subset_taxa(GlobalPatterns, Phylum == "Chlamydiae")
Some initial basic plots
下面是没有给定参数时的默认barplot.数据集被绘制,每个样本分别映射到水平(x)轴,丰度值映射到垂直(y)轴。在每个样本的水平位置,每个OTU的丰度值按从大到小的顺序排列,用一条细细的水平线隔开,只要你选择的参数在图中各自的位置上产生了一个以上的OTU丰度值,这些值就会被按顺序堆叠起来,作为一种显示总和总和值的方式,同时仍然代表着单个的OTU丰度
#plot_bar(physeq, x="Sample", y="Abundance", fill=NULL,
title=NULL, facet_grid=NULL)
plot_bar(gp.ch)
#添加填充颜色来表示每个OTU所属的属
plot_bar(gp.ch,color="Genus")
#现在保持相同的填充颜色,并通过SampleType变量将样本分组在一起;从本质上来说,就是采样和测序的环境
plot_bar(gp.ch, x="SampleType", fill="Genus")
#来自相同样本类型的相同OTU的丰度值将作为单独的条段堆叠,因此段线可能无法准确地描述所观察到的丰度(因为对于相同的水平轴分组,相同的OTU可能会显示不止一次),`plot_bar`不会试图标准化或标准化您的数据,这是您的工作(例如,使用phyloseq pacakge中的其他工具)
More Sophisticated Organization using Facets
#在下面的示例中,我们选择使用`facet`(独立的、相邻的子图)进一步组织数据。在这种情况下,`facet`允许我们根据每个OTU的属。在每个属面内,通过测序技术进一步分离数据,每个OTU来源的样本的肠型标签用填充色表示。
plot_bar(gp.ch, "Family", fill="Genus", facet_grid=~SampleType)
Further customization using ggplot2 layers
#注意,可以使用标准的ggplot2对绘图进行额外的修改。例如,下面的代码块显示了使用第二个绘图层添加抖动点( jittered points)的绘图。
library("ggplot2")
p = plot_bar(gp.ch, "Family", fill="Genus", facet_grid=~SampleType)
p + geom_point(aes(x=Family, y=Abundance), color="black", position="jitter", size=3)
Enterotypes dataset examples
#首先,载入包(如果还没有的话),然后将Enterotype数据修剪到最丰富的10个属
data("enterotype")
#筛选前十个丰度的属,注意names()的使用
TopNOTUs <- names(sort(taxa_sums(enterotype), TRUE)[1:10])
#其中prune_species()和prune_taxa()函数功能一样,根据物种名,筛选OTU表
ent10 <- prune_species(TopNOTUs, enterotype)
以下代码块中的plot_bar参数是经过各种试验后选择的。我们建议您在研究数据的不同特性时也尝试不同的参数设置。除了sample_data的变量名之外,plot_bar函数还可以识别分类级别的名称(如果存在的话)。在这个例子中,我们还选择了根据每个OTU的属按照“facet”(单独的、相邻的子图)来组织数据.以下代码块中的plot_bar参数是经过各种试验后选择的。我们建议您在研究数据的不同特性时也尝试不同的参数设置。除了sample_data的变量名之外,plot_bar函数还可以识别分类级别的名称(如果存在的话)。在这个例子中,我们还选择了根据每个OTU的属按照“facet”(单独的、相邻的子图)来组织数据.
plot_bar(ent10, "SeqTech", fill="Enterotype", facet_grid=~Genus)
你可以将来自不同样本、不同肠型的OTU丰度值叠加在一起并以不同的方式显示出来,而选择将样本的肠型命名和OTUs的属命名分离到一个网格中。在这种情况下,只需对前面的函数调用进行少许修改(添加填充以使其更易于阅读)
plot_bar(ent10, "Genus", fill="Genus", facet_grid=SeqTech~Enterotype)
Add ggplot2 layer to remove the OTU separation lines
现在,您可以将前一个图保存为一个变量,我们将其称为p,然后添加额外的ggplot2分层指令,实际上,这将删除前一个图中分隔otu和其他otu的分界线.
p = plot_bar(ent10, "Genus", fill="Genus", facet_grid=SeqTech~Enterotype)
#其中注意函数geom_bar()中的stat和position
p + geom_bar(aes(color=Genus, fill=Genus), stat="identity", position="stack")
网友评论