首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将R中现有数据转换为Phyloseq OTU表

将R中现有数据转换为Phyloseq OTU表
EN

Stack Overflow用户
提问于 2019-11-13 23:07:40
回答 1查看 2.3K关注 0票数 1

我一直试图“系统化”我的asv_table、asv_id和元数据,以便进行16S分析,使用qiime2创建并使用read.table()上传到R。我已经成功地导入了我的asv_id和元数据(分别使用了tax_table()sample_data() ),但是我的asv_table还在挣扎。

我的asv_table的结构是一个包含我的分类法头的数据框架,我的行是样本(我也尝试过使用转置数据,其中我的分类法是行,我的样本是列)。我最初的尝试只是:

代码语言:javascript
复制
ps <- phyloseq(otu_table(asv_table, taxa_are_rows = FALSE))

然而,这产生了:

代码语言:javascript
复制
Error in validObject(.Object) : invalid class “otu_table” object: 
 Non-numeric matrix provided as OTU table.
Abundance is expected to be numeric.

这导致我尝试将数据类更改为数字类,然后再次尝试导入:

代码语言:javascript
复制
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()

我担心这是一个兔子洞,因为一个简单的解决方案盯着我的脸(我很难在网上研究我的问题.通常表明我创造了一个其他人都没有遇到过的独特问题)。

我希望在这方面有任何的指导或帮助!

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 22:35:32

我最终解决了我的问题,所以我将把我的解决方案发布给任何可能有同样问题的人。

代码语言:javascript
复制
library(tidyverse)
devtools::install_github("jbisanz/qiime2R")
library(qiime2R)

asv_table <- read_qza("table.qza")

library(phyloseq)

ps <- qza_to_phyloseq(features = "table.qza")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58846988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档