移除phyloseq对象中的假分类群(续):读取数显示异常求助
解决phyloseq过滤后读取数显示比例的问题
问题根源
你的代码里ps_filtered是从原始整数计数的ps对象修剪而来的,本身应该保留整数读取数。出现比例的情况,大概率是你误查看了ps_prop_filtered——这个是转成比例后的过滤对象,自然显示的是小数。
修正方法
方法1:确认查看对象
确保用readcount()查看时,传入的是ps_filtered而非ps_prop_filtered:
# 查看原始计数的过滤对象,得到整数结果 readcount(ps_filtered)
方法2:优化过滤逻辑(避免对象混淆)
不用提前转换为比例,直接基于原始计数计算占比来筛选分类群,减少不同类型对象的混淆:
require("phyloseq") # 加载示例数据 data("GlobalPatterns") ps <- GlobalPatterns # 直接筛选:保留至少在一个样本中占比≥0.25%的分类群 keep <- filter_taxa(ps, function(x) { # 计算该分类群在每个样本中的占比 sample_totals <- sample_sums(ps) prop <- x / sample_totals[match(names(x), names(sample_totals))] max(prop) > 0.0025 }) # 修剪得到保留原始整数计数的对象 ps_filtered <- prune_taxa(taxa = keep, x = ps) # 验证读取数(结果应为整数) sample_sums(ps_filtered) # 或者用你的readcount()函数查看 readcount(ps_filtered)
重要提示
ps_filtered全程保留原始整数计数,所有需要计数数据的分析都应该使用这个对象ps_prop_filtered仅用于比例查看,不要用它来做需要整数计数的操作
内容的提问来源于stack exchange,提问作者MAlvarez
相关产品推荐
相关产品推荐

