我一直试图“系统化”我的asv_table、asv_id和元数据,以便进行16S分析,使用qiime2创建并使用read.table()上传到R。我已经成功地导入了我的asv_id和元数据(分别使用了tax_table()和sample_data() ),但是我的asv_table还在挣扎。
我的asv_table的结构是一个包含我的分类法头的数据框架,我的行是样本(我也尝试过使用转置数据,其中我的分类法是行,我的样本是列)。我最初的尝试只是:
ps <- phyloseq(otu_table(asv_table, taxa_are_rows = FALSE))然而,这产生了:
Error in validObject(.Object) : invalid class “otu_table” object:
Non-numeric matrix provided as OTU table.
Abundance is expected to be numeric.这导致我尝试将数据类更改为数字类,然后再次尝试导入:
asv_table_num <- data.matrix(asv_table, rownames.force = NA)
ps <- phyloseq(otu_table(otumat_num, taxa_are_rows = FALSE))
Error in validObject(.Object) : invalid class “phyloseq” object:
Component taxa/OTU names do not match.
Taxa indices are critical to analysis.
Try taxa_names()我担心这是一个兔子洞,因为一个简单的解决方案盯着我的脸(我很难在网上研究我的问题.通常表明我创造了一个其他人都没有遇到过的独特问题)。
我希望在这方面有任何的指导或帮助!
提前谢谢你。
发布于 2019-11-20 22:35:32
我最终解决了我的问题,所以我将把我的解决方案发布给任何可能有同样问题的人。
library(tidyverse)
devtools::install_github("jbisanz/qiime2R")
library(qiime2R)
asv_table <- read_qza("table.qza")
library(phyloseq)
ps <- qza_to_phyloseq(features = "table.qza")https://stackoverflow.com/questions/58846988
复制相似问题