我正在处理细菌焦磷酸测序数据,并且正在使用 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) 中包含的分类标识?
非常感谢!
莉迪亚