ieugwasr::ld_matrix提取LD矩阵失败 临时目录无.bim文件报错
问题运行环境
- 操作系统:Windows 10
- R版本:4.1.3
- 涉及依赖:ieugwasr、genetics.binaRies
- 操作目标:调用
ieugwasr::ld_matrix()函数,基于本地PLINK格式的EUR人群LD参考面板提取目标SNP的LD矩阵
已确认报错链路
- 函数写入临时目录的无扩展名SNP列表文件可正常生成
- 调用PLINK生成
.bim、.ld文件的环节静默失败,临时目录内无对应输出文件 - 最终触发
read.table()读取.bim阶段的固定报错:无法打开连接、文件不存在 - 已尝试重新安装
genetics.binaRies依赖包,问题未解决 - 已留存可复现代码、报错信息、traceback调用栈、函数内部逻辑排查片段、
sessionInfo()环境信息用于问题定位
优先级排查路径
- PLINK可执行文件兼容性问题(最高发)
Windows环境下genetics.binaRies内置的PLINK二进制文件存在两类高频问题:一是Windows Defender或第三方安全软件拦截,导致PLINK进程无法启动、无报错退出;二是路径转义失败,当临时目录、参考面板路径含中文、空格、特殊字符时,函数内部拼接的PLINK命令无法被正确解析。
排查操作:- 运行
genetics.binaRies::get_plink_exe()获取内置PLINK的存储路径,手动在cmd中执行该路径下的plink.exe --version,确认程序能否正常启动 - 运行
tempdir()查看R临时目录路径,检查是否含中文、空格、特殊字符(中文用户名是最高发诱因) - 检查本地EUR参考面板的存储路径是否符合纯英文无特殊字符要求
- 运行
- 参考面板文件与传参问题
检查传入ld_matrix()的参考面板路径参数是否正确,对应路径下.bed/.bim/.fam三个核心文件齐全无损坏;Windows环境下路径传参必须使用正斜杠/或双反斜杠\\,禁止使用单反斜杠。 - 临时目录权限问题
手动在tempdir()返回的路径下新建、执行文件,确认当前Windows账号对该目录有完整读写、执行权限,无安全软件拦截进程写入操作。
对应解决方案
- 针对PLINK内置版本兼容问题:手动下载官方Windows版PLINK1.9(与ieugwasr默认调用版本匹配),将plink.exe所在目录加入系统环境变量PATH,重启R后运行
system("plink --version")确认能正常返回版本信息,此时ld_matrix()会优先调用系统全局的PLINK,自动跳过内置版本的兼容问题。 - 针对路径特殊字符问题:将本地EUR参考面板移动到纯英文、无空格、无特殊字符的短路径下(例如
D:/ref/eur_ld/),重新传参调用即可。 - 针对临时目录含中文/权限不足问题:提前创建纯英文无权限限制的临时目录(例如
D:/Rtemp/),在R启动配置文件中添加Sys.setenv(TMP = "D:/Rtemp", TEMP = "D:/Rtemp", TMPDIR = "D:/Rtemp"),重启R后再运行分析代码。
内容的提问来源于stack exchange,提问作者jajoko
相关产品推荐
相关产品推荐

