私はバクテリアのパイロシーケンシング データを扱っており、R を使用して統計分析を行っています。21 のサンプルと 7 つの異なる処理があります。データを R phyloseq にロードして、以下を取得しました。
> psR
phyloseq-class experiment-level object
otu_table() OTU Table: [ 7498 taxa and 21 samples ]
sample_data() Sample Data: [ 21 samples by 8 sample variables ]
tax_table() Taxonomy Table: [ 7498 taxa by 6 taxonomic ranks ]
phy_tree() Phylogenetic Tree: [ 7498 tips and 7497 internal nodes ]
トリートメント間に統計的に有意な差があることがわかったので (アドニス関数を使用)、どの OTU が異なるトリートメントで異なる量を持っているかを知りたいと思いました。これを行うために、関数 dunn.test (Kruskal-Wallis テストが組み込まれています) を使用し、最初に OTU テーブルの行と列を交換してテストを適用しました。
swap_otu_table <- t(otu_table(psR))
treatment <- c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'G', 'G', 'G')
swap_otu_tableDF <- as.data.frame(swap_otu_table)
ncol(swap_otu_tableDF)
[1] 7498
lapply(swap_otu_tableDF[1:7498], function(x) kruskal.test(x ~ treatment, data=swap_otu_tableDF))
この再帰関数の出力は、特にすべての 7498 OTU の場合、非常に読みにくいものです。
Kruskal-Wallis + Dunn のテストを再帰的に適用して、テーブルを出力として、できれば有意性の順に、OTU コードだけでなく tax_table(psR) に含まれる分類学的識別とともに適用する方法はありますか?
どうもありがとうございました!
リディア