繁体   English   中英

Phyloseq生成的堆栈栏

[英]Stack bar generated by Phyloseq

我正在使用名为“ phyloseq”的R包来分析生物信息学数据。

otumat = matrix(sample(1:100, 100, replace = TRUE), nrow = 10, ncol = 10)
otumat

rownames(otumat) <- paste0("OTU", 1:nrow(otumat))
colnames(otumat) <- paste0("Sample", 1:ncol(otumat))
otumat

taxmat = matrix(sample(letters, 70, replace = TRUE), nrow = nrow(otumat), ncol = 7)
rownames(taxmat) <- rownames(otumat)
colnames(taxmat) <- c("Domain", "Phylum", "Class", "Order", "Family", "Genus", 
                      "Species")
taxmat

library("phyloseq")
OTU = otu_table(otumat, taxa_are_rows = TRUE)
TAX = tax_table(taxmat)
OTU
TAX

physeq = phyloseq(OTU, TAX)
physeq

plot_bar(physeq, fill = "Family")

因此,生成的条形图不会将相同的系列堆叠在一起。 例如,样本10中有两个单独的“ I”块。我知道使用ggplot2的phyloseq图。 有谁知道我可以在lot_bar(physeq,fill =“ Family”)中添加哪些与ggplot2相关的代码,以将同一系列堆叠到条形图中?

在此处输入图片说明

您需要重新排序用于x轴的因子的水平。 physeq可能有一个名为“示例”的列(未安装相关的软件包),您需要在其中重新排列级别。

应该可以使用这样的命令

physeq$Sample <- factor(physeq$Sample, levels = paste0("Sample", 1:10))

然后它应该正确绘制。

您可能需要挖掘才能找到要更改的相关部分

实际上,相对而言, plot_bar函数已经plot_bar您的要求:

# preliminaries
rm(list = ls())
library("phyloseq"); packageVersion("phyloseq")
data("GlobalPatterns")
gp.ch = subset_taxa(GlobalPatterns, Phylum == "Chlamydiae")
# the function call that does what you're asking for
plot_bar(gp.ch, fill = "Family")

有关更多详细信息和示例,请参见以下帮助教程:

https://joey711.github.io/phyloseq/plot_bar-examples.html

您也可以指定x轴分组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM