2016-04-25 74 views
0

私はこの「R」パッケージを「phyloseq」と呼んでバイオインフォマティクスデータを分析しています。Phyloseqによって生成されたスタックバー

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には2つの別個の "I"ブロックがあります。私はggplot2を使ってphyloseqプロットグラフを知っています。棒グラフで同じファミリをスタックするために、ggplot2に関連付けられたコードをlot_bar(physeq、fill = "Family")に追加することができますか?

enter image description here

答えて

0

あなたは、x軸に使用されている因子のレベルの順序を変更する必要があります。 physeqにはおそらく "Sample"という名前の列があります(関連するパッケージがインストールされていない)ので、この段階でレベルを並べ替える必要があります。

それは正しく印刷する必要があり、この

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

のようなコマンドを使用することが可能でなければなりません。

あなたがに関して、​​機能は、すでにあなたが求めているものをやっている、実際に

0

を変更するには、関連する部分を見つけるために掘るする必要があるかもしれません:

# 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軸のグループ化を指定することができます。

関連する問題