You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ALDEx分析PICRUST2输出时遇样本与条件向量不匹配错误

解决ALDEx2运行时"样本数与条件向量不匹配"错误

这个错误的核心原因是输入ALDEx2的计数矩阵样本数量和分组向量长度不一致,以下是具体排查和解决步骤:

1. 确认两者的样本数量

运行以下代码检查计数矩阵p2EC1的样本数,以及分组向量sample_data(ps1a)$Group的长度:

# 查看计数矩阵的样本数(列数)
ncol(p2EC1)
# 查看分组向量的长度
length(sample_data(ps1a)$Group)

如果两者数值不同,说明样本数确实不匹配,继续下一步。

2. 对齐计数矩阵与分组的样本

通常问题出在PICRUST2输出的矩阵和你的phyloseq对象ps1a样本名不对应(比如PICRUST2过滤了部分样本,或者phyloseq对象有额外样本)。执行以下代码强制对齐样本:

# 获取两者共有的样本名
common_samples <- intersect(colnames(p2EC1), rownames(sample_data(ps1a)))

# 子集化计数矩阵,只保留共有样本
p2EC1_filtered <- p2EC1[, common_samples]

# 提取对应样本的分组信息
group_vector <- sample_data(ps1a)$Group[rownames(sample_data(ps1a)) %in% common_samples]

# 再次确认样本数匹配
stopifnot(ncol(p2EC1_filtered) == length(group_vector))

3. 重新运行ALDEx2代码

用处理后的矩阵和分组向量重新执行分析:

set.seed(12345)
system.time({
        aldex2_EC1 = aldex(p2EC1_filtered, group_vector, mc.samples = 500, test = "t", 
               effect = TRUE, denom = "iqlr", verbose = TRUE)
})

额外注意事项

  • 确保p2EC1是行=功能特征(EC号)、列=样本的计数矩阵,且所有值都是非负整数(不能有NA或非数值内容)
  • 样本数仅5-6时,mc.samples=500可能会增加计算时间,可适当调低至100-200(不影响结果可靠性)

内容的提问来源于stack exchange,提问作者Abdelrhman Nabil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:50:31