孟德尔随机化报错: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

具体解决方案

官方解决方案翻译过来就是:

  1. 登录 https://api.opengwas.io/profile/
  2. 生成一个新令牌
  3. 将 <token> 添加到您的 .Renviron 文件中。此文件可以在您的主目录中,也可以在您的 R 会话的工作目录中。您可以通过在 R 中运行 Sys.getenv("R_ENVIRON_USER") 来检查 .Renviron 文件的位置。
  4. 重启您的 R 会话
  5. 要检查您的令牌是否被识别,请运行 ieugwasr::get_opengwas_jwt()。如果返回一个长的随机字符串,则表示您已通过身份验证。
  6. 要检查您的令牌是否正常工作,请运行 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