【R语言】完美解决devtools安装GitHub包失败的问题(以gwasglue为例)

news2025/2/24 3:22:57
  • Rstudio,R4.3.1,命令在Rstudio的命令行即console中运行。

文章目录

  • 一、问题复述
  • 二、分析
  • 三、解决
  • 四、安装示例:gwasglue

一、问题复述

使用devtools安装一个github的包。

devtools:

devtools 是 R 语言中一个非常有用的包,它提供了一套工具和函数,用于开发、测试和维护 R 包,devtools 可以帮助 R 包的开发人员更轻松地进行包的创建、文档编写、测试和发布等任务。 devtools 的一些主要功能和用途:

  1. 创建新的 R 包: devtools 提供了一个函数 create(),可以用于创建新的 R 包的框架,包括必要的目录结构和文件。

  2. 加载和安装包: devtools 提供了 load_all() 函数,它可以加载包的最新版本到 R 会话中,使开发者可以更快速地测试和调试包的功能。此外,install() 函数可以用于安装包。

  3. 文档编写: devtools 提供了 document() 函数,用于自动生成包的文档,包括 Roxygen2 风格的注释,这些注释可以用于生成包的帮助文档。

  4. 测试: devtools 通过 test() 函数支持包的测试,开发者可以编写测试用例来确保包的功能正常工作。这有助于减少错误和提高包的质量。

  5. 检查和验证包: devtools 提供了 check() 函数,它可以运行 R CMD check 命令,用于检查包是否符合 CRAN(Comprehensive R Archive Network)的要求,以便发布到 CRAN 上。

  6. 发布和分享包: 一旦开发者完成了包的开发和测试,devtools 提供了 release() 函数,用于将包发布到 CRAN 或其他 R 包仓库。

  7. 包的依赖管理: devtools 还支持包的依赖关系管理,可以帮助开发者管理包的依赖关系,确保包在不同环境中的兼容性。

安装devtools,和安装其他包一样的:

install.packages("devtools")

使用devtools安装GitHub的包:

devtools::install_github("mrcieu/gwasglue")

报错:

在这里插入图片描述

二、分析

首先看报错信息,这是解决编程问题最基本的步骤。

我先看的时download xxxx failed。这个问题通常时网络问题,但是我的电脑不可能出现这种问题😉

但是,读者需要先解决网络问题,首先确保你的电脑能流畅访问GitHub,最简单的方法就是修改hosts文件(本地dns缓存,就是把github的域名解析陈ip地址,github有很多ip地址(CDN),有的ip地址是网络可以直接访问的)。如果你的网络有问题,又不太会修改hosts文件,直接下载我的小程序就可以修改了:https://download.csdn.net/download/weixin_43764974/87405879

或者你直接开代理(如果你会搭建或者有其他的话)。


排除了网络问题,报错信息就剩一行了:

Error in utils::download.file(url, path, method = method, quiet = quiet,

我这方面有点经验,一眼就觉得 utils的method 可能存在问题。

utils:

utils是R语言的一个基础包,它提供了一些有用的函数,用于编程和开发R包。utils包的功能包括:

  • 数据导入和导出,例如read.table、write.table、read.csv、write.csv等。
  • 数据探索和处理,例如str、summary、head、tail、View等。
  • 帮助文档的查看和管理,例如help、help.search、browseVignettes等。
  • R包的安装和更新,例如install.packages、update.packages、available.packages等。
  • R会话的管理和配置,例如q、save、load、options、sessionInfo等。
  • 其他一些实用的工具,例如combn、choose、menu、timestamp、txtProgressBar等。

OK,问题已锁定👌

三、解决

既然是utilsmethod有问题,就先看看method的值:

Rstudio的命令行输入:

getOption("download.file.method")

输出的method值可能是:

  • internal”:使用R内置的函数来下载文件,这种方法适用于所有平台,但不支持https://和ftps://协议,也不支持重定向和缓存控制。
  • wininet”:使用Windows操作系统上的WinINet函数来下载文件,这种方法只适用于Windows平台,支持https://协议和一些重定向,但不支持ftps://协议和缓存控制。
  • libcurl”:使用libcurl库来下载文件,这种方法需要R编译时支持该库,支持https://和ftps://协议和重定向,也支持同时下载多个文件。
  • wget”:使用Wget工具来下载文件,这种方法需要在系统上安装Wget程序,并在可执行文件的搜索路径中,支持https://和ftps://协议和重定向,但会阻塞R进程直到完成。
  • curl”:使用Curl工具来下载文件,这种方法需要在系统上安装Curl程序,并在可执行文件的搜索路径中,支持https://和ftps://协议和重定向,但会阻塞R进程直到完成。
  • auto”(默认值):R将根据操作系统和配置自动选择下载方法,在Unix类似平台上使用"libcurl"方法,在Windows平台上使用"wininet"方法。

我的默认值是libcurl,通过测试,修改为wininet即可成功下载。(至少curl和wget你不应该感到陌生)

可以在命令行输入:

options(download.file.method = "wininet") 

不过这是暂时的,下一次打开Rstudio就失效了,需要修改R的配置文件。


R配置文件:

R的配置文件是一些用来设置R环境和选项的文本文件,它们可以在不同的位置和级别存在,例如R安装目录、用户目录或当前工作目录。R启动时会按照一定的顺序读取这些配置文件,并执行其中的代码。

R的配置文件主要有以下几种:

  • Rprofile.site:这是一个站点级别的配置文件,它位于R安装目录的etc子目录中,例如C:\Program Files\r\r-n.n.n\etc\Rprofile.site。这个文件会在每次启动R时最先被读取,它可以用来设置全局的选项或变量。
  • .Renviron:这是一个用来设置环境变量的配置文件,它可以位于R安装目录、用户目录或当前工作目录中,例如C:\Program Files\r\r-n.n.n\etc\.Renviron、C:\Users\username\.Renviron或D:\project\.Renviron。这个文件会在每次启动R时紧接着Rprofile.site被读取,它可以用来告诉R在哪里寻找外部程序或资源。
  • .Rprofile:这是一个用来设置用户或项目级别的选项或变量的配置文件,它可以位于用户目录或当前工作目录中,例如C:\Users\username\.Rprofile或D:\project\.Rprofile。这个文件会在每次启动R时最后被读取,它可以用来自定义用户信息或加载特定的包。

修改Rprofile.site这个文件,在最后一行添加:

options(download.file.method = "wininet")

在这里插入图片描述

保存,重新打开Rstudio,查看method:

> getOption("download.file.method")
[1] "wininet"

修改完成。


现在就可以安装GitHub的包包了。

四、安装示例:gwasglue

gwasglue是一个R程序包,它可以将GWAS(全基因组关联分析)的数据源连接到R中的各种分析工具,例如用于共定位、精细定位、孟德尔随机化、可视化等的工具。gwasglue的目的是为了方便用户在不同的软件包之间转换和分析GWAS数据,而不需要进行复杂的格式转换或数据处理。

gwasglue目前支持以下数据源和分析工具:

  • 数据源:ieugwasr(用于从IEU GWAS数据库中检索GWAS数据)和gwasvcf(用于从VCF文件中读取GWAS数据)。
  • 共定位:coloc(用于检测两个或多个表型之间的共同遗传变异)和HEIDI(用于检测异质性)。
  • 精细定位:finemapr(用于调用FINEMAP软件进行精细定位)、PAINTOR(用于整合功能注释信息进行精细定位)和CAVIAR(用于计算后验概率进行精细定位)。
  • 孟德尔随机化:TwoSampleMR(用于进行双样本孟德尔随机化分析)、MendelianRandomization(用于进行单样本孟德尔随机化分析)、RadialMR(用于进行径向孟德尔随机化分析)和MRPRESSO(用于检测异常值和方向性异质性)。
  • 可视化:gassocplot(用于绘制基因组关联图)。

GitHub给你的安装命令是:

devtools::install_github("mrcieu/gwasglue")


现在,安装还会有一些小问题:

第一个是devtools与GitHub之间的连接问题,直接使用devtools,一小时只允许下载文件60次。安装gwasglue需要几百个依赖包、文件。

报错:
Error: Failed to install ‘unknown package’ from GitHub:
HTTP error 403.
API rate limit exceeded for 113.250.229.180. (But here’s the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
Rate limit remaining: 0/60
Rate limit reset at: 2023-09-20 17:12:21 UTC
To increase your GitHub API rate limit
- Use usethis::create_github_token() to create a Personal Access Token.
- Use usethis::edit_r_environ() and add the token as GITHUB_PAT.

可以看到次数已经用完了,解决方法也告诉你了,贴心😘

运行:

usethis::create_github_token()

会转到github,引导你创建个人访问令牌,跟着弄就行了:
在这里插入图片描述

回到命令行:

usethis::edit_r_environ()

会在编辑区域打开配置文件,添加:

GITHUB_PAT = ghp_08szR5HyYyfsueh48(你的令牌)

在这里插入图片描述


现在每个小时应该是有5000次下载次数,随便霍霍。

不过安装gwasglue还有问题,

报错:

ERROR: dependency ‘gwasvcf’ is not available for package ‘gwasglue’
removing ‘D:/R/R-4.3.1/library/gwasglue’

要先安装gwasvcf,当你直接安装它,又会提示你需要安装xxxxxxxxxxxxx,套娃~

安装gwasvcf包时,缺少一些生物信息学相关的依赖包。这些依赖包是一些用于处理基因组数据的R包,它们属于Bioconductor项目。Bioconductor是一个用于分析高通量基因组数据的开源软件项目,它提供了一些专门的R包和工具。

步骤:

  • install.packages("BiocManager") # 安装BiocManager包

  • BiocManager::install(c("BiocGenerics", "Biostrings", "GenomeInfoDb", "GenomicRanges", "IRanges", "Rsamtools", "S4Vectors", "SummarizedExperiment", "VariantAnnotation")) # 安装依赖包

  • 在安装gwasvcf包时,使用build_vignettes参数来跳过构建vignettes的步骤。vignettes是一些用于展示R包功能和用法的文档,它们可能需要一些额外的依赖包。如果不需要查看vignettes,使用以下命令来安装gwasvcf包:

  • devtools::install_github("mrcieu/gwasvcf", build_vignettes = FALSE) # 安装gwasvcf包,不构建vignettes

在这里插入图片描述

现在再安装就OK了:

devtools::install_github("mrcieu/gwasglue")

在这里插入图片描述

注意,安装过程可能会有这个问题:

9: In download.file(url, destfile, method, mode = "wb", ...) :
  the 'wininet' method is deprecated for http:// and https:// URLs

mode=“wb”,而url是http,websocket是不支持http链接的(又是考验知识积累的时候了哟),在设置里面允许不安全即可:Tools--Global options...

在这里插入图片描述


总结:多看报错信息,当然,需要结合一定的综合知识积累。



~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

netty之数据读写源码阅读

数据读写 write 从client端的写开始看 client与服务端建立完connect后可以从future里拿到连接的channel对象。这里的channel是io.netty.channel.Channel对象。 调用其channel.writeAndFlush(msg);方法可以进行数据发送。 writeAndFlush会调用pipeline的writeAndFlush方法 …

目标检测算法改进系列之Neck添加渐近特征金字塔网络(AFPN模块)

渐近特征金字塔网络(AFPN模块) 在目标检测任务中,多尺度特征对具有尺度差异的目标进行编码具有重要意义。多尺度特征提取的常用策略是采用经典的自顶向下和自底向上的特征金字塔网络。 然而,这些方法存在特征信息丢失或退化的问…

【音视频】ffplay源码解析-FrameQueue队列

帧队列架构位置 结构体源码 FrameQueue结构体 /* 这是一个循环队列,windex是指其中的首元素,rindex是指其中的尾部元素. */ typedef struct FrameQueue {Frame queue[FRAME_QUEUE_SIZE]; // FRAME_QUEUE_SIZE 最大size, 数字太大时会占用大量的…

第二证券:什么是a股b股?

在我国的股市中,我们经常会听到“A股”和“B股”这两个名词。那么,终究什么是A股和B股呢? 首先,A股全称为“A股票”,是指在我国境内上市的以人民币计价的股票。A股首要面向国内出资者,只要具有必定条件的内…

如何快速检测代理IP质量?方法与工具全干货

一直以来,IP代理都是出海跨境业务的刚需。质量好的IP代理,除了在跨境业务产生巨大作用,在SEO监控、爬虫抓取、市场研究等领域也发挥着很大的作用。但是,对于IP代理的质量检测是我们选择高标准IP代理的一句,我们一般都会…

美国零售电商平台Target,值得入驻吗?如何入驻?

Target 是美国最大的零售商之一,在品牌出海为大势所趋的背景下,它在北美电商中的地位节节攀升。Target 商店在众多垂直领域提供各种价格实惠的自有品牌,吸引越来越多的跨境商家入驻,如美妆、家居、鞋服、日用百货等,随…

Mybatis学习笔记12 分页插件

Mybatis学习笔记11 缓存相关_biubiubiu0706的博客-CSDN博客 (5) select distinct top(<取数说明>) <选择 列表> (1) from <表1> <连接类型> join <表2> ON <连接条件> (2) where <筛选条件> (3) group by <分组条件> (4) havi…

linux下链接

linux下链接用法 ln链接格式与介绍 linux下链接用法一、链接的使用格式二、链接的介绍 一、链接的使用格式 链接&#xff1a; 格式&#xff1a; ln 源文件 链接文件 硬链接 ln -s 源文件 链接文件 软连接 硬链接文件占磁盘空间 但是删除源文件不会影响硬链接文件 软链接文件不…

秒杀场景设计

1.活动页面静态化处理 没有到活动时间页面静态化处理避免访问服务端 2.使用cdn让用户可以获取就近的所需静态页面内容 3.限制用户同一时间点击次数 4.把商品库存提前放入redis&#xff0c;秒杀请求直接操作redis防止操作直接落库打崩数据库 5.使用lua脚本操作redis保证操作…

transformer系列2---transformer架构详细解析

transformer详细解析 Encoder1 输入1.1 Embedding 词嵌入1.1.1 Embedding 定义1.1.2 几种编码方式对比1.1.3 实现代码 1.2 位置编码1.2.1 使用位置编码原因1.2.2 位置编码方式1.2.3 位置编码代码 2 注意力 Attention2.1 自注意力self-attention2.1.1 QKV含义2.1.2 自注意力公式…

微信图文如何替换成自己的二维码?

二维码样式中的二维码目前都是小蚂蚁的二维码&#xff0c;如何替换成自己的二维码&#xff0c;其实也很简单&#xff0c;就像替换样式中的图片一样&#xff0c;首先点击二维码&#xff0c;选择工具条中的“换图”&#xff0c;然后在弹出来的框中填入二维码图片的链接地址或者直…

招股书更新9版终上市,飞沃科技能否躲过风电红利后的黯淡?

文丨熔财经 作者丨文泽 碳达峰、碳中和成为主旋律目标下&#xff0c;作为可再生能源主力的风电产业迎来了发展的“黄金时代”。与新能源相关的上下游企业也赚的“盆满钵满”。 在此背景下&#xff0c;飞沃科技(301232.SZ)历经4轮问询&#xff0c;更新9版招股书终于登陆资本市…

Command not found 解决方法

前言&#xff1a;要更新code上服务器用GUI失败&#xff0c;$ patch_delivery_gui&#xff0c;报错&#xff1a;patch_delivery_gui: command not found&#xff0c;上次编TA也是这个问题 写了个脚本&#xff1a;这个脚本会先检查ifconfig、firewall-cmd和vim命令是否可用&#…

ExcelServer EXCEL服务器使用- 用户、角色权限配置

Excel文件服务器搭建 搭建Excel服务器 1、登录 默认 用户名 Admin 密码 3 2、角色管理 添加修改角色 角色配置在 系统管理->角色.fexm文件夹下 可以像修改excel文件一样 修改角色 3、用户管理 添加修改用户 用户的修改在 系统管理->用户.fexm 可以像excel一样编辑用户…

27、Flink 的SQL之SELECT (窗口聚合)介绍及详细示例(4)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

机器人中的数值优化(十七)—— 锥与对称锥

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考&#xff0c;主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等&#xff0c;本系列文章篇数较多&#xff0c;不定期更新&#xff0c;上半部分介绍无约束优化&#xff0c;…

http的网站进行访问时候自动跳转至https

通常情况下我们是用的都是http的路径&#xff0c;对于https的使用也很少&#xff0c;但是随着https的普及越来越多的域名访问需要用到https的&#xff0c;这个我们就演示怎么设置在我们对一个http的网站进行访问时候自动跳转至https下。 用到的工具及软件: 系统&#xff1a;wi…

规划基础知识

1 规划简介 在规划中&#xff0c;我们通过结合高精地图&#xff0c;定位和预测来构建车辆轨迹。 规划的第一步就是路线导航&#xff0c;侧重于如何从地图上的A前往B&#xff0c;在进行路径规划时&#xff0c;将地图数据作为输入&#xff0c;并输出可行驶路径。 在Apollo中&…

亚马逊商品详情数据接口

亚马逊商品详情数据接口可以用于获取商品详情信息&#xff0c;包括但不限于商品ID、商品标题、商品描述等。这些信息可以用于多种用途&#xff0c;例如&#xff1a; 了解商品信息&#xff0c;帮助消费者做出购买决策。整合其他平台或网站的数据&#xff0c;提供全面的商品信息…

成集云 | 金蝶云星空与旺店通ERP集成(旺店通主管供应链)| 解决方案

源系统成集云目标系统 方案介绍 金蝶云星空是一款ERP企业管理软件&#xff0c;致力于为企业提供整体解决方案。金蝶财务软件种类功能齐全&#xff0c;能够全面满足企业的不同阶段、不同功能需求。帮助企业建立规范的业务流程&#xff0c;提升管理能力&#xff0c;降…