Linux上基于R安装Peer包

闲言一下:一般不太喜欢写这种类型的帖子的(大部分安装步骤网上重复的帖子都很多),之所以要写下这个包的安装,是因为这个包比较小众,帖子不多,再者我没想到做生信这么多年,装包无数的情况下,折腾这个包还是折腾了两天,今天终于给装上了,一时兴奋不已。

关于Peer这个包

先说下这个包的功能,Peer 是一个贝叶斯方法合集,主要用于在高维数据分析时推断隐含的干扰因子。最近很多高水平的文章如nature上的,nature genetics上面的做eQTL, aQTL相关的文章都有用到。也说明这个包的重要性,特别是像发大文章的哈。官方文档在这里, 里面还有一个简单的使用教程。

开始说安装的过程....

上面的官方文档里提供了两种安装方式,一种是直接用R CMD INSTALL R_peer_source_1.3.tgz来安装; 另一种方法是源码编译。我的系统是Ubuntu 18.04.5 版本,R语言版本是3.6.2, 上述两种方法我都尝试了,均没有成功。(其实我有在另外的CentOS系统上面尝试过第一种方法,是成功了的)
第一种方式,报了一下错误:

/usr/lib/R/etc/Makeconf:168: recipe for target 'array_helper.o' failed
make: *** [array_helper.o] Error 1

去网上搜索好一阵,有遇到类似问题的,主要用的是苹果系统。解答也是建议换个电脑,换个系统试试。折腾尝试好久之后,我锁定问题可能处在c语言编译器的版本上面了(我的系统里是gcc-7 和 g++-7). 因为我之前尝试成功的CentOS系统里面是gcc-4.8.5版本。

成功解决方案:

于是我给ubuntu系统装上了旧版本的gcc g++之后,再次安装就顺利地编译通过了。下面给一下具体安装过程:

# 安装4.8版本的gcc, g++
sudo apt-get install gcc-4.8 # 依赖的包和建议的包也装上
sudo apt-get install g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 # 40 表示优先级, 数值越大,优先级越高
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 # 系统里原来的版本,优先级设置更大
sudo update-alternatives --config gcc #跳出来多个版本的gcc, 当前默认的是前面带有星号的,选择对应的版本就可以
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 40 # 跟gcc的设置一样
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 60 
sudo update-alternatives --config g++ #这个也跟gcc一样,选择对应的版本


# 安装Peer
sudo R CMD INSTALL R_peer_source_1.3.tgz # 等待编译完成就可以了

END-感谢拜读,有问题欢迎留言交流

你可能感兴趣的:(Linux上基于R安装Peer包)