phyloseq包transform_sample_counts标准化代码功能咨询
phyloseq标准化代码逻辑解释
这段是R语言phyloseq包用于16S rRNA扩增子数据预处理的常规标准化代码,核心功能是将原始测序计数转换为样本内相对丰度,具体执行逻辑拆分如下:
- 代码中
ps是预先构建完成的原始phyloseq对象,内部存储了OTU/ASV丰度表、样本元数据、物种分类注释、系统发育树等微生物组分析核心数据。 transform_sample_counts()是phyloseq内置的丰度转换专用函数,运算规则为以单个样本为独立计算单元,逐样本对所有物种的丰度值应用自定义转换规则,不会跨样本混合计算。- 传入的匿名函数
function(x) x / sum(x)是实际执行转换的规则:参数x代指单个样本内所有物种的原始测序读长计数,sum(x)对应该样本的总测序读长(即该样本测得的所有序列总条数),运算后得到每个物种在对应样本内的序列数占总序列数的比例,也就是相对丰度。 - 赋值符
<-会将转换完成、携带相对丰度数据的全新phyloseq对象存储为ps_norm,后续绘制物种组成图、计算多样性指数等需要相对丰度输入的分析可直接调用该对象。
补充说明:经这段代码转换后,每个样本内所有物种的丰度值加和恒为1。如果需要百分比形式的丰度结果,可将转换函数修改为
function(x) x / sum(x) * 100。另外这种总和标准化的方法仅做了样本内的丰度转换,没有完全校正样本间测序深度差异带来的偏差,如果样本间测序深度波动较大,后续开展差异物种检验等分析时建议搭配CSS、VST等更稳健的标准化方法使用。
内容的提问来源于stack exchange,提问作者MAlvarez
相关产品推荐
相关产品推荐

