首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Debug】如何在MAC上优雅的安装clusterProfiler包——那位Geek开始连载了

【Debug】如何在MAC上优雅的安装clusterProfiler包——那位Geek开始连载了

作者头像
Chris生命科学小站
发布2023-02-28 18:58:03
发布2023-02-28 18:58:03
1.4K0
举报

话说站长前些天画了个狗图(GO function),用了Y叔的神包clusterProfiler,站长把代码公布出来后我跑了一下,在R 3.6.2环境下基本没太大的问题,但我是在mac上跑的,装Y叔的这个包可真是给折腾了一番,问了站长的感觉,站长幽幽的来一句,安装CP包是挺费劲,哈哈,看来也没少被折磨。

【画图】与SARS-CoV-2病毒结合的ACE2基因在人肺组织功能预测分析

今天就和大家来分享一下如何在mac下安装Y叔的clusterProfiler包。

再早几年Y叔其实都会教你如何安装的,一般开头就会写2条命令和1条注释:

代码语言:javascript
复制
install.packages(“devtools")
devtools::install_github(“GuangchuangYu/clusterProfiler”)

如果直接把这2条命令复制运行,放心,在mac上是百分之百安装不上的。哈哈,且听我娓娓道来这一路上遇到的各种坑。

1st 坑

你需要安装一系列的包,这些包有的在CRAN上,有的在BioCondutor上,有的在github上,我们先从CRAN上的包说起,有个包叫做stringi,目前版本是1.4.6。这个包有何特殊呢?因为它需要下载后用gcc编译。

gcc是啥?

相信很多90后小朋友都没听过,gcc中文名叫GNU编译器套件,linux下十分常用,它的作用是把程序源代码根据不同机器的硬件配置编译为适合本地硬件平台的二进制程序。既然是二进制,那就意味着经过编译的程序效率会更高。实际上也是如此,在R语言,你甚至把部分函数用C++写,然后在R里面用Rcpp来调用,提升效率也是杠杠的,据测试数据报,用Rcpp来执行函数,效率较用R能提高百倍不止,感兴趣的话不妨亲自测试一下。

Mac和linux虽然是表兄弟,可mac下默认是没有gcc的,所以这第一个坑就是:你得首先装个gcc。

Mac下装gcc最简单的方法当然是用Homebrew了,先安装Homebrew,这个简单,直接上官网,把命令复制一下就ok了。

在RStudio里面有个好处,Console旁边就是Terminal,因此你不用再启动一个终端窗口,直接点Console的右边就是Terminal了,然后把命令复制到这里

代码语言:javascript
复制
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

等待几分钟就能安装好,试网速快慢而定。

然后在Terminal里面输入

代码语言:javascript
复制
brew install gcc

这样就安装好gcc了。这个等待的时候比较久一点,可以去喝杯咖啡再回来。

好了,等安装结束之后你以为就可以直接用gcc编译了吗?too羊too奶衣五,我们输入命令看看:

代码语言:javascript
复制
ls -l /usr/local/bin | grep g++

其实gcc的真正文件名叫g++-9,所以以后你若想继续编译文件,需要输入g++-9 xxx.c 才行哦。当然直接输入gcc也行,但是mac还有另外一个编译器叫clang,输入gcc加源代码文件名可能调用的clang而非gcc。

好在R对gcc的版本没有要求,安装好gcc之后就可以用

代码语言:javascript
复制
install.packages(“stringi”)

安装和编译这个包了,这个编译的时间也比较长,可以继续离开把刚才没喝完的咖啡喝完。

2nd 坑

安装完stringi后面就没啥难度了吧。不一定。第二个坑是devtools::install_github这个函数需要浏览器开启TLS支持,否则很有可能打不开github的网址,在这里可以检测你的safari有没有打开TLS,https://www.cloudflare.com/ssl/encrypted-sni/,如果支持TLS的话会这样显示:

如果没有打开也不要紧,在Terminal里面继续输入下面这句话:

代码语言:javascript
复制
sudo defaults write /Library/Preferences/com.apple.networkd tcp_connect_enable_tls13 1

然后输入密码就行了,mac和linux一样,终端下输入密码是不显示的,放心输入然后回车就好了,再去刚才那个网址检测一下。

好了,打开TLS之后我们才能开始畅通无阻的从Github安装Y叔的包。你以为这样就结束了?

3rd 坑

第三个坑是这样的,clusterProfiler依赖另外一个叫DOSE的包,而且需要3.13版本以上,这个包可以从Biocondutor上面安装,但是BioC上的版本是3.12,所以你必须从Y叔的github上安装,不过这次Y叔把DOSE包放在了他们团队的github上,所以命令变了,看好兄弟们,是这样滴:

代码语言:javascript
复制
devtools::install_github("YuLab-SMU/DOSE")

安装完这个包之后就还剩最后一个坑了,记得把R重启一下,要不然会提示DOSE包里面的rdx加载不成功,重启R会吧?菜单Session,选Restart就好了。

看到这里,还没被玩残的兄弟,恭喜你,可以放心地run这句话了:

代码语言:javascript
复制
devtools::install_github("GuangchuangYu/clusterProfiler")

安装完之后记得再Restart R session,要不然有可能还会遇到某某资源加载不成功的怪事。

至此,安装好了这个包,有了Y叔的神加持站长的代码bug也没了,很顺利地出图了:

虽然Y叔的包安装比较费劲,但很稳定,安上了基本就没有什么大问题了,怎么画图怎么有。最后,感谢Y叔的无私奉献,山川异域,风月同天,也请武汉的小伙伴们加油。

素材:

整理好的Debug代码install.R

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

本文分享自 Chris生命科学小站 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1st 坑
    • gcc是啥?
  • 2nd 坑
  • 3rd 坑
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档