孟德尔随机化报错:Error in if (nrow(d) == 0) return(NULL)
在线从 GWAS 数据库提取数据是比较常见的做法,不过最近小伙伴可能发现在提取数据时候会出现这样的错误Error in if (nrow(d) == 0) return(NULL)
,排除网络,服务器崩溃等原因,那就可能是2024 年 5 之后都需要设置 token 才可以继续访问服务器了,那应该如何解决呢。
问题所在
查询(https://github.com/MRCIEU/TwoSampleMR/issues/448)发现从 2024 年 5 之后都需要设置 token 才可以继续访问服务器。那如果咱们还没有设置过 token ,尝试使用下面的方法进行,官网解决方案:https://mrcieu.github.io/ieugwasr/articles/guide.html。
具体解决方案
官方解决方案翻译过来就是:
- 登录 https://api.opengwas.io/profile/
- 生成一个新令牌
- 将 <token> 添加到您的 .Renviron 文件中。此文件可以在您的主目录中,也可以在您的 R 会话的工作目录中。您可以通过在 R 中运行 Sys.getenv("R_ENVIRON_USER") 来检查 .Renviron 文件的位置。
- 重启您的 R 会话
- 要检查您的令牌是否被识别,请运行 ieugwasr::get_opengwas_jwt()。如果返回一个长的随机字符串,则表示您已通过身份验证。
- 要检查您的令牌是否正常工作,请运行 user()。它将使用您的令牌向 API 发出请求以获取您的用户信息。它应该返回一个包含您的用户信息的列表。如果返回错误,则表示您的令牌无法正常工作。
至于登录获得API,这个简单,不多赘述,点击:https://api.opengwas.io/profile/进入后登录,然后在
该位置申请即可,因为我已经申请过了,所以这里存在API,注意,这个是有14天时效的。
很多人会卡在具体如何设置的问题上,首先找到.Renviron,怎么找运行Sys.getenv("R_ENVIRON_USER") 或者Sys.getenv("R_USER")
来获取文件位置,然后右键使用文本文档编辑,输入OPENGWAS_JWT=API值
,重启R会话框,ieugwasr::get_opengwas_jwt()
检查是否配置成功,再次运行读取提取数据代码,嗯,大功告成。
阅读剩余
THE END