前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如果R代码一定要访问github链接导致运行失败

如果R代码一定要访问github链接导致运行失败

作者头像
生信技能树
发布2023-10-23 19:11:22
发布2023-10-23 19:11:22
25700
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

最近帮学徒测试了immunedeconv包,首先它在github上面,所以本身就很难安装:

代码语言:javascript
代码运行次数:0
运行
复制
# deconvolution_methods
# https://github.com/omnideconv/immunedeconv
# remotes::install_github("omnideconv/immunedeconv")

library(immunedeconv)
library(tidyverse)
library(tidymodels) 

然后我在运行immunedeconv包里面的mcp_counter时候,发现它需要访问一个在github的文本文件:

代码语言:javascript
代码运行次数:0
运行
复制
res.mcp <- deconvolute(expr, 'mcp_counter')

那肯定是会报错:

代码语言:javascript
代码运行次数:0
运行
复制
#   genes = read.table(curl:::curl("https://raw.githubusercontent.com/ebecht/MCPcounter/master/Signatures/genes.txt")
# Could not resolve host: raw.githubusercontent.com

然后chatGPT给我了两个解决方案,通过BioinfoArk提供的中国区chatGPT查询

两个解决方案

第一个方案要在R中设置代理,你可以使用以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
# 设置HTTP代理
Sys.setenv(http_proxy = "http://your_proxy_server:your_proxy_port")
Sys.setenv(https_proxy = "http://your_proxy_server:your_proxy_port")

# 设置FTP代理(如果需要)
Sys.setenv(ftp_proxy = "http://your_proxy_server:your_proxy_port") 

在上述代码中,将 your_proxy_server 替换为你的代理服务器的地址,将 your_proxy_port 替换为代理服务器的端口号。请注意,这些设置是临时的,只在当前R会话中有效。如果你希望在每次启动R时都自动应用代理设置,可以将上述代码添加到你的R配置文件中。R配置文件的位置取决于你的操作系统和R版本,通常是 .Rprofile.Renviron 文件。另外,如果你的代理服务器需要身份验证,你可能需要提供用户名和密码。你可以使用以下代码设置代理服务器的用户名和密码:

代码语言:javascript
代码运行次数:0
运行
复制
Sys.setenv(http_proxy_user = "your_username")
Sys.setenv(http_proxy_password = "your_password") 

your_username 替换为你的代理服务器的用户名,将 your_password 替换为你的代理服务器的密码。

这个方案我肯定是没办法选择,我根本就没有代理服务器。。。

方案2:下载后读取文件

在代码里面可以看到他们的github链接,然后下载两个txt文件即可:

代码语言:javascript
代码运行次数:0
运行
复制
library(MCPcounter)
probesets = read.table( 'MCPcounter-Signatures-probesets.txt', 
                        sep = "\t", stringsAsFactors = FALSE, colClasses = "character") 

genes = read.table('MCPcounter-Signatures-genes.txt', 
                   sep = "\t", stringsAsFactors = FALSE, header = TRUE, 
                   colClasses = "character", check.names = FALSE)  

相当于绕过了 MCPcounter 包,仅仅是使用了它里面的appendSignatures函数 :

代码语言:javascript
代码运行次数:0
运行
复制
markers.names = unique(features[, "Cell population"])
features = split(features[, "HUGO symbols"], features[, 
                                                      "Cell population"])
missing.populations = setdiff(markers.names, names(features))
features = features[intersect(markers.names, names(features))]
# apply(xp[intersect(row.names(xp), x), , drop = F], 2,  mean, na.rm = T)
res.mcp = t(appendSignatures(expr, features))

#   genes = read.table(curl:::curl("https://raw.githubusercontent.com/ebecht/MCPcounter/master/Signatures/genes.txt")
# Could not resolve host: raw.githubusercontent.com
## connection refused|20230209
knitr::kable(head(res.mcp)[,1:4], digits=2, "rst")
pheatmap::pheatmap(res.mcp)

而且我拆开看appendSignatures函数的时候,好家伙,它就是一个简简单单取平均值。。。。

代码语言:javascript
代码运行次数:0
运行
复制
 apply(xp[intersect(row.names(xp), x), , drop = F], 
 2,  mean, na.rm = T)

这个算法有待商榷。。。。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方案2:下载后读取文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档