使用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/oTjR 著作权归作者所有。请勿转载和采集!