一.Windows上的Beagle读取问题
前言:在使用Beast分析数据时,有些版本强制使用BEAGLE,或者有些分析需要用到BEAGLE(比如定义了traits)。
笔者最近遇到一件很…奇葩的事,由于之前一直用的是Beast1.8,且建不带traits的MCC树分析时是不需要用到BEAGLE的,所以在“是否使用BEAGLE”这一栏一直没有打勾。
但是,在进行BSSVS分析时,由于定义了几个地区的traits,故需要用到BEAGLE。在windows上安装了好几个版本的BEAGLE,环境变量什么的也都设置了,可是Beast1.8在跑数据时怎么都读取不了BEAGLE,报错如下:
ailed to load BEAGLE library: no hmsbeagle32 in java.library.path BEAGLE not installed/found
明明设置了环境变量啊......<br /> 但是,在同样的设置和操作下,Beast1.10却可以完美读取BEAGLE。<br /> 问题到底出在哪里?<br /> 笔者一时不知道该把这个锅甩给谁.....<br /> **测试记录如下(Windows):**
BEAST版本 | 是否强制加载BEAGLE | BEAGLE版本 | 运行情况 |
---|---|---|---|
1.8.4 | 否 | 2.1 | 读取BEAGLE失败 |
1.8.4 | 否 | 3.0 | 读取BEAGLE失败 |
1.8.4 | 否 | 3.1 | 读取BEAGLE失败 |
1.10.4 | 是 | 2.1 | 正常读取 |
1.10.4 | 是 | 3.0 | 正常读取 |
1.10.4 | 是 | 3.1 | 正常读取 |
2.5.1 | 否 | 3.0 | 正常读取 |
2.5.1 | 否 | 3.1 | 正常读取 |
故对于Windows系统上的beast1.x系列,如果分析的数据需要定义traits,推荐使用beast1.10.4版本。
二.Ubuntu16.04上安装beagle
前言:使用beast,当开启traits时,如将地理信息作为traits,后续beast运行数据程序要求开启beagle,但是在linux上安装beagle以及能让beagle正常使用,是一件很让人头痛的事。当然,官网是给出了在Linux上安装beagle的教程,但是在实际操作时总会遇到这样或者那样的报错,笔者将自己在Ubuntu16.04上成功安装beagle的经历记录在这里,以供碰到同样问题的人参考。
官网教程链接:https://github.com/beagle-dev/beagle-lib/wiki/LinuxInstallInstructions
注:**官网教程仅供参考,笔者安装beagle与官网教程有些许出入。**
——————————————————————————————————————————————————————————-
1.安装前准备
(1)检查编译beagle需要的工具是否安装
由于官网提供的beagle这个包是采取源码编译进行安装,安装过程中需要一些依赖的工具。当然,其中的一些或许我们的Linux上早有安装,现在看看beagle需要哪些依赖的工具:
上面这些工具包是必须的,也就是在安装beagle前,先要检查自己的Linux上有没有安装这些工具包,命令如下:
$ dpkg --get-selections | grep 包名
比如笔者查看是自己的Ubuntu上否安装有gcc和make工具:
如果没有安装某个包,ubuntu上则可以使用下面命令进行安装:
$ sudo apt-get install 包名
(2)一些环境包
官网建议,安装下面这些:
但是,凡是都有但是。这也是需要特别注意的地方,官网教程上的意思是,在安装beagle前,要安装OpenCL、NVIDIA显卡驱动这些东西。因为ubuntu 16.04默认安装的是第三方开源的驱动程序nouveau,于是笔者开始去网上找教程安装NVIDIA显卡驱动,然而在Linux上安装NVIDIA显卡驱动非常麻烦,可能安装不成功,要么安装成功了会遇到驱动冲突,循环登录等一系列问题,这些笔者都亲身体验,以安装失败告终(大家可以百度查查,或者亲身体验下)。
而且,笔者还发现自己的服务器上安装的是集成显卡,于是问题又多了一大堆。
可是官网说安装beagle需要安装这些啊?
最后,**笔者被逼无赖,选择不安装OpenCL和NVIDIA显卡驱动,只安装java**(也就是上图的java JDK,实际上笔者的ubuntu上早有安装java)
为了确保自己的ubuntu上确实安装有java,笔者进行了查询:
以上表明java及javac已经成功安装(javac不需要单独安装,安装java JDK就会同时产生)
2.安装beagle
有了上面的基础,笔者现在假设ubuntu上已经把gcc、make、autoconf、automake、libtool、subversion、pkg-config以及java安装了,而OpenCL和NVIDIA显卡驱动则不进行安装,不用管。
(1)安装beagle命令如下:
$ cd
$ git clone --depth=1 https://github.com/beagle-dev/beagle-lib.git
$ cd beagle-lib
$ ./autogen.sh
$ ./configure --prefix=$HOME
$ make install
$ cd
注意,命令cd
,是切换到该账户的家目录下。上面的代码,会将beagle安装在该账户下的lib文件夹里,可以通过ls
命令查看。
(2)需要注意的是:
①笔者之前由于java出了点问题,在./configure --prefix=$HOME
这一步老是报错提示找不到javac(即使用 which javac
命令找不到javac,但是可以找到java),后来重新安装了一次java,javac就可以正常工作,./configure --prefix=$HOME
这一步编译也就可以正常进行了。
②由于没有安装OpenCL和NVIDIA显卡驱动,执行make install
这一步后,会有诸如没有OpenCL和NVIDIA显卡驱动的警告提示(只是警告,并非bug),但是我们不用管它。
3.设置环境变量
(1)紧接上面的安装beagle命令
# 第一步,打开设置环境变量的文件.bashrc
$ sudo vi .bashrc
#按i进入编辑模式,通过键盘下标键,将光标移动到文尾,将以下内容粘贴到文尾进去后,再按键盘“Esc”键,之后输入字符:wq!保存并退出文本bashrc。
#以下是粘贴到文件bashrc文本文尾的内容
export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$HOME/lib/pkgconfig:$PKG_CONFIG_PATH
export PATH=$PATH:/home/gong/桌面/bioinfo/BEASTv1.10.4/BEASTv1.10.4/bin
export CLASSPATH=.:/home/gong/桌面/bioinfo/BEASTv1.10.4/BEASTv1.10.4/lib
如下:
上面操作的本质,是将本次安装的beagle所在的目录路径(示例是账户下lib文件夹),以及BEAST软件包所在目录路径添加到环境变量(笔者ubuntu上已有BEASTv1.10.4)。
注意:具体BEAST软件包的bin和lib文件夹所在的路径请填上自己的,上面的路径是笔者的。
(2)更新.bashrc
$ source .bashrc
没有报错提示,表明更新成功,如果有报错,请检查上一步往文件bashrc里粘贴东西时,是否粘贴不全等等。
4.检查beagle是否安装成功
示例:先进入BEASTv1.10.4软件包的bin目录,再在命令端输入:
$ ./beast -beagle_info
beagle安装成功,则会显示如下红色方框里的信息:
Linux上安装beagle血泪史介绍到这里,之后可以在服务器上图形版beast里大胆地勾选beagle,或者在命令行里开启beagle,结合beagle来跑数据了。
FAQ:为什么不介绍Windows上的Beagle的安装?
A:呃,这个,Windows安装Beagle这个软件和安装其他软件没什么区别,一路点击鼠标就行。
欢迎转载,请注明出处。