大漠小沙 2024-02-18 16:33 采纳率: 0%
浏览 25

孟德尔随机化筛选完工具变量后进行MR分析少两个工具变量,是什么问题?

孟德尔随机化筛选完工具变量后进行MR分析少两个工具变量,是什么问题?

PATH<-"D:\\Mendelian Randomization"
setwd(PATH)
library(ggplot2)
library(plyr)
library(data.table)
library(devtools)
library(MendelianRandomization)
library(TwoSampleMR)
EXP<-data.table::fread("D:/Mendelian Randomization/alopecia/AGA/finngen_R9_L12_ALOPECANDRO.gz")
EXP1<-data.frame(EXP)
head(EXP1)
colnames(EXP1)[c(4,3,5,7,9,10,11)]<-c("effect_allele.exposure","other_allele.exposure","SNP","pval.exposure","beta.exposure","se.exposure","eaf.exposure")
EXP1$id.exposure<-"AGA"
EXP1$exposure<-"AGA"
EXP1$samplesize.exposure<-201214
head(EXP1,6)
EXP1_IV<-subset(EXP1,pval.exposure<5e-05)
EXP1_IV<-clump_data(EXP1_IV,clump_kb = 10000,clump_r2 = 0.001,pop = "EUR")
OUT1<-extract_outcome_data(snps=EXP1_IV$SNP,outcomes = "ukb-b-19732*",proxies = T,maf_threshold = 0.01,access_token = NULL)
OUT1<-OUT1[!duplicated(OUT1$SNP),]
OUT1$id.outcome<-"Hypothyroidism"
OUT1$outcome<-"Hypothyroidism"
head(OUT1)
data_h<-harmonise_data(exposure_dat = EXP1_IV,outcome_dat = OUT1,action = 2)

library(phenoscanner)
dim(data_h)[1]
PhenoScan=phenoscanner(snpquery = data_h$SNP[1:25],pvalue = 5e-08)
write.csv(PhenoScan$results,file="PhenoScan.csv")
write.table(data_h$SNP,"SNP.txt",quote = F,row.names = F)
SNP<-read.table("SNP.txt",header = T)
data_h_SNP<-merge(SNP,data_h,by="SNP",all=F)
data_h_SNP_steiger<-steiger_filtering(data_h_SNP)
data_h_SNP_steiger<-subset(data_h_SNP_steiger,steiger_dir==TRUE)
data_h_SNP_steiger<-data_h_SNP_steiger[!duplicated(data_h_SNP_steiger$SNP),]
这一步结束后应该是25个工具变量
mr<-mr(data_h_SNP_steiger)
但这一步实际进行的确是23个工具变量,这到底是什么原因呢?

  • 写回答

4条回答 默认 最新

  • GISer Liu 2024-02-18 16:36
    关注

    该回答引用自GPT-3.5,由博主GIS_Liu编写:

    问题的关键在于理解为什么在进行 Mendelian Randomization (MR) 分析时少了两个工具变量。通过审查提供的代码,可以进行如下分析和解决:

    1. 数据处理过程可能存在问题:在代码中,你进行了一系列数据处理步骤,如从数据集中提取工具变量、使用 PhenoScanner 进行数据筛选、合并数据等。在这些步骤中可能存在潜在的错误,导致最终得到的工具变量数量不符合预期。

    2. 数据筛选与合并过程中可能存在重复值或错误:在数据筛选和合并过程中,可能由于数据格式不一致、重复值、合并键错误等问题导致数据处理结果不正确。建议检查数据处理过程中的每一步,确保数据处理的准确性。

    3. Steiger 测试过程可能影响了工具变量的数量:你使用了 steiger_filtering 函数进行 Steiger 测试,该过程可能导致部分工具变量被过滤掉。需要检查 Steiger 测试的参数设置以及测试结果,确保不会意外丢失工具变量。

    4. 查看数据处理过程中的中间结果:建议在每个数据处理步骤后输出中间结果,以便检查数据处理的正确性。可以输出工具变量的数量、数据合并结果等,以便定位问题所在。

    5. 调试代码中可能存在的错误:如果以上步骤都没有找到问题,可以尝试逐步调试代码,检查每一步的执行结果,以确定哪一步出现了问题。

    针对以上分析,可以按照以下步骤进行解决:

    • 逐步检查数据处理过程中的每一步,确保数据处理的正确性。
    • 检查 Steiger 测试的参数设置以及测试结果,确保不会意外丢失工具变量。
    • 输出中间结果,检查工具变量的数量和数据合并结果,定位问题所在。
    • 如仍然无法解决,可以尝试调试代码,逐步排查错误。

    通过以上方法,应该能够找到并解决代码中缺少工具变量的问题。

    img

    如果该回答解决了您的问题,请采纳!如果没有,请详述问题所在!

    评论

报告相同问题?

问题事件

  • 创建了问题 2月18日