普通网友 2024-02-14 02:33 采纳率: 0%
浏览 795
已结题

outliers_indices 孟德尔随机化去除偏倚、去除异常值


#合并暴露和结局
dat<-harmonise_data(exposure_dat,outcome_dat,action=2)
#action=2---去除回文序列,2去除,1不去除,一般我们要去除

#输出用于孟德尔随机化的工具变量
outTab=dat[dat$mr_keep=="TRUE",]
write.csv(outTab,file="table.SNP.csv",row.names = F)

#MR-PRESSO异常值检测(偏倚的SNP)
presso=run_mr_presso(dat) 
write.csv(presso[[1]]$`MR-PRESSO results`$`Outlier Test`, file="table.MR-PRESSO.csv")

检测出来PRESSO有小于0.05的偏倚,可以在table.MR-PRESSO.csv文件中明确看到是那几个,现在需要去掉偏倚,我用的两个样本都是在线分析,请问如何去除你呢?

  • 写回答

21条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-02-14 02:34
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    在孟德尔随机化(MR)分析中,如果通过MR-PRESSO检测到存在偏倚的SNP(显著性水平小于0.05),我们通常会将这些可能存在的离群值或混杂SNP从工具变量集中移除。以下是基于您提供的代码,在去除MR-PRESSO识别出的异常值后更新工具变量集的步骤:

    # 加载之前保存的MR-PRESSO结果
    presso_results <- read.csv("table.MR-PRESSO.csv")
    
    # 提取显著性水平小于0.05的SNP索引
    outliers_indices <- which(presso_results$`P-value` < 0.05, arr.ind = TRUE)
    
    # 假设"SNP"是包含所有SNP标识符的列名
    outlier_SNPs <- presso_results$SNP[outliers_indices]
    
    # 现在,我们需要从原始工具变量数据框中移除这些SNP
    # 假设"SNP"也是`dat`数据框中的列名
    cleaned_dat <- dat[!dat$SNP %in% outlier_SNPs, ]
    
    # 输出用于无偏估计的干净工具变量
    write.csv(cleaned_dat[cleaned_dat$mr_keep == "TRUE", ], file="table.Cleaned_SNP.csv", row.names = FALSE)
    

    这段代码首先读取了MR-PRESSO的结果文件,并从中提取出显著性水平低于0.05的SNP的索引。然后,它获取了这些显著SNP的标识符。最后,根据这些标识符从原始工具变量数据集中移除了这些SNP,得到一个清理过的工具变量集,并将其输出为新的CSV文件。

    请注意,上述代码假设了数据结构和列名与您的实际数据一致。请根据实际情况调整代码中的数据列名和逻辑判断条件。

    评论

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 创建了问题 2月14日