0

我一直在努力解决phyCorrelogram()包装问题phylobase。在过去的一个月里,我收到了无数的错误,我又回到了第一个错误。(耶)我非常感谢任何帮助。

phyloseq 对象physeq可在此处获得:https ://www.dropbox.com/s/6o0kbvnbq632v9j/physeq.rds?dl=0 以获取可重现的示例。

我从包中的 phylo 对象开始,phyloseq我的第一个目标是确保我的树不包含 NA,并且格式是数字且没有缺失值。

library(phylobase) 
#access tree from phyloseq object    
    tree <- phy_tree(physeq)

#confirm phlyo format
#should be numeric with no missing values (should all be "true")
num.check <- as.data.frame(check.numeric(tree$edge.length))

#find any NAs (would print "missing")
for(i in 1:length(tree$edge)) {
  
  if (is.na(tree$edge[i])) {
    print('Missing')
  }
}

我的第二个目标是组织相关的元数据。以下代码通过将分类信息 (tax_table) 转换为矩阵来解决先前的错误。

#access taxonomic information from phyloseq object
tax_table <- (as.data.frame(tax_table(physeq)))
tax_table <- tax_table[-c(5:7)]
tax_table <- lapply(tax_table, as.numeric)
tax_table <- model.matrix(~ Kingdom + Phylum +
                            Class + Order, data=tax_table)

#access metadata from phyloseq object
sample_data <- as.list(sample_data(physeq))
sample_data <- lapply(sample_data, as.numeric)

我的第三个目标是将我的 phylo 树转换为一个phylo4d对象,然后添加我的元数据和分类信息。

#convert phylo tree to phylo4d
g1_try <- as(tree, "phylo4")

#add metadata
g2_try <- phylo4d(g1_try, tax_table, missing.data="warn", metadata = sample_data)

最后,我尝试phyloCorrelogram()

#stats
pc_try <- phyloCorrelogram(g2_try)

这给我带来了错误:

Error in if (const(t, min(1e-08, mean(t, na.rm = TRUE)/1e+06))) { : 
  missing value where TRUE/FALSE needed

这是我一个月前开始工作时收到的第一个错误。假设我上面的代码解决了所有以前的错误,但很明显我从根本上误解了这个过程。TIA。

4

0 回答 0