序列整理
BEAUti
BEAST
TreeAnnotator
軟件報(bào)錯(cuò)
內(nèi)存不足報(bào)錯(cuò)
在運(yùn)行BEAST時(shí)數(shù)據(jù)集過(guò)大蚕捉,或運(yùn)行TreeAnnotator 時(shí)氓皱,會(huì)出現(xiàn)提示信息為OutOfMemoryError: Java heap space at sample的報(bào)錯(cuò)兔朦。這其實(shí)JAVA中常見(jiàn)的報(bào)錯(cuò)潭袱,問(wèn)題并不在BEAST軟件本身挪略,而是JAVA虛擬內(nèi)存不足造成的历帚。雖然計(jì)算機(jī)內(nèi)存可能是16G甚至64G足夠軟件運(yùn)行,但JAVA設(shè)置中通常限制了虛擬內(nèi)存的占用量杠娱,如128M或256M挽牢,所以才會(huì)出現(xiàn)虛擬內(nèi)存不足。
一般情況下TreeAnnotator 出現(xiàn)內(nèi)存不足頻率較高摊求,不過(guò)禽拔,TreeAnnotator自帶Low memory選項(xiàng)。選擇該選項(xiàng)時(shí)室叉,可以規(guī)避因虛擬內(nèi)存占用過(guò)高導(dǎo)致的報(bào)錯(cuò)睹栖。
然而,BEAST程序并沒(méi)有這個(gè)功能太惠,因此磨淌,一旦BEAST報(bào)錯(cuò),只能調(diào)小數(shù)據(jù)集凿渊、調(diào)低代數(shù)梁只、降低抽樣頻率,或修改JAVA虛擬內(nèi)存設(shè)置埃脏。當(dāng)然搪锣,修改JAVA虛擬內(nèi)存設(shè)置是最理想且一勞永逸的策略。方法是通過(guò)修改環(huán)境變量來(lái)調(diào)整JAVA的虛擬內(nèi)存最大值彩掐。環(huán)境變量設(shè)置在控制面板>編輯系統(tǒng)環(huán)境變量>高級(jí)>環(huán)境變量中進(jìn)行設(shè)置构舟。在該界面中,點(diǎn)擊系統(tǒng)變量>新建添加環(huán)境變量出現(xiàn)新建對(duì)話框:
變量名框內(nèi)輸入“_JAVA_OPTIONS”
變量值框內(nèi)輸入“-Xmx1024M”
這樣相當(dāng)于設(shè)置1G的虛擬內(nèi)存堵幽,當(dāng)然也可以大方一點(diǎn)狗超,比如我設(shè)置了“-Xmx10240M”,也就是10個(gè)G。
設(shè)置完成后直接確定朴下,系統(tǒng)變量中顯示添加了新建的這一項(xiàng)努咐。確定后即生效。
一般來(lái)講殴胧,在BEAST大數(shù)據(jù)集并指定多核運(yùn)算的情況下(如24線程)渗稍,設(shè)置1G虛擬內(nèi)存也就夠用了佩迟。設(shè)置完畢后,重新運(yùn)行竿屹,即可正常運(yùn)轉(zhuǎn)报强。
參考網(wǎng)頁(yè)
學(xué)習(xí)過(guò)程中的干貨網(wǎng)站:
BEAST分析FAQ | 高芳鑾
java虛擬機(jī)內(nèi)存不足報(bào)錯(cuò)