phyloseq移除OTU和为零的样品
要移除OTU和为零的样品,可以使用phyloseq包中的prune_samples和prune_taxa函数。
首先,加载phyloseq包和示例数据:
library(phyloseq)
data("GlobalPatterns")
然后,可以使用prune_samples函数来移除为零的样品。该函数的参数是一个逻辑向量,指示哪些样品应该保留。我们可以使用apply函数来计算每个样品的OTU总计数,如果为零,则将其标记为FALSE:
keep.samples <- apply(otu_table(GlobalPatterns), 2, function(x) sum(x) > 0)
gp <- prune_samples(keep.samples, GlobalPatterns)
现在,我们使用prune_taxa函数来移除OTU表中的OTU,该函数的参数是一个逻辑向量,指示哪些OTU应该保留。我们可以使用rowSums函数来计算每个OTU在所有样品中的总计数,如果为零,则将其标记为FALSE:
keep.taxa <- rowSums(otu_table(gp)) > 0
gp <- prune_taxa(keep.taxa, gp)
现在,gp对象中只包含otu表中有至少一个计数的OTU和在至少一个样品中有非零计数的样品
原文地址: https://www.cveoy.top/t/topic/hqt1 著作权归作者所有。请勿转载和采集!