[英]OTU table from phyloseq object can't be coerced into a data frame
[英]Trying to generate ASV table from phyloseq
我承认大多数人都有相反的问题。 但我正在尝试创建一个 ASV 表,列名是“已识别的 OTU”(也就是列名来自GlobalPatterns@tax.table
的分类信息,而不仅仅是在GlobalPatterns@otu.table
中编码的分配的 OTU 代码) GlobalPatterns@otu.table
),并将行名称作为样本名称。
我还想将 append 元数据放到 ASV 表的末尾,以允许基于所述元数据进行分析。
我设法使用此代码生成了一个没有分类信息的表,使用 GlobalPatterns 以实现可重复性:
data(GlobalPatterns)
asv.matrix <- as.matrix(GlobalPatterns@otu_table@.Data)
asv <- data.frame(t(asv.matrix)) #transposing to make sample name the row name
meta.df <- as.data.frame(GlobalPatterns@sam_data)
asv.full <- data.frame(asv,meta.df)
write.csv(asv.full, file = "full_asv.csv",quote = FALSE,sep = ",")
但是,我不知道如何将分类信息强制输入列名,这使得 ASV 表在功能上对分析毫无用处。
我认为您正在寻找phyloseq::psmelt
function,它将otu_table
、 tax_table
和sample_data
表组合成一个适合分析的单个长格式表。
处理未解决的分类法的一种方法是将已知的最高分类法分配给任何未解决的级别。 在使用 psmelt 之前,您可以为此使用来自name_na_taxa
package 的fantaxtic
psmelt
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.