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

R中使用coloc包如何按单个SNP循环执行coloc.abf共定位分析

问题原因

  • 原有代码存在两个核心错误:
    1. 对数据框直接执行lapply会默认遍历每一列,而非你需要的每一行
    2. 循环体内完全没有用到迭代变量i,每次调用coloc.abf都传入了全量的beta、se、p值向量,因此1000次运行结果都和全数据集分析结果一致

修正代码

# 遍历行索引逐SNP执行共定位分析
individual <- lapply(1:1000, function(i){
  # 每次仅传入第i个SNP的对应统计量
  coloc.abf(
    p1 = dataset$p1[i],
    beta1 = dataset$beta1[i], 
    se1 = dataset$se1[i],
    p2 = dataset$p2[i],
    beta2 = dataset$beta2[i],
    se2 = dataset$se2[i]
  )
})

如果需要将所有SNP的结果整理为可直接查看的表格,可以额外执行以下代码:

# 提取所有SNP的后验概率结果合并为数据框
pp_result <- do.call(rbind, lapply(individual, function(x) x$summary))
# 给结果行添加SNP编号标识
rownames(pp_result) <- paste0("SNP_", 1:1000)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:39:02