序列整理
BEAUti
BEAST
TreeAnnotator
软件报错
内存不足报错
在运行BEAST时数据集过大,或运行TreeAnnotator 时,会出现提示信息为OutOfMemoryError: Java heap space at sample的报错。这其实JAVA中常见的报错,问题并不在BEAST软件本身,而是JAVA虚拟内存不足造成的。虽然计算机内存可能是16G甚至64G足够软件运行,但JAVA设置中通常限制了虚拟内存的占用量,如128M或256M,所以才会出现虚拟内存不足。
一般情况下TreeAnnotator 出现内存不足频率较高,不过,TreeAnnotator自带Low memory选项。选择该选项时,可以规避因虚拟内存占用过高导致的报错。
然而,BEAST程序并没有这个功能,因此,一旦BEAST报错,只能调小数据集、调低代数、降低抽样频率,或修改JAVA虚拟内存设置。当然,修改JAVA虚拟内存设置是最理想且一劳永逸的策略。方法是通过修改环境变量来调整JAVA的虚拟内存最大值。环境变量设置在控制面板>编辑系统环境变量>高级>环境变量中进行设置。在该界面中,点击系统变量>新建添加环境变量出现新建对话框:
变量名框内输入“_JAVA_OPTIONS”
变量值框内输入“-Xmx1024M”
这样相当于设置1G的虚拟内存,当然也可以大方一点,比如我设置了“-Xmx10240M”,也就是10个G。
设置完成后直接确定,系统变量中显示添加了新建的这一项。确定后即生效。
一般来讲,在BEAST大数据集并指定多核运算的情况下(如24线程),设置1G虚拟内存也就够用了。设置完毕后,重新运行,即可正常运转。
参考网页
学习过程中的干货网站:
BEAST分析FAQ | 高芳銮
java虚拟机内存不足报错