2022-01-04 update: 更新了一些錯誤集錦
Lachesis是希臘神話眾神之一,負責決定生命之線的長度。但是咱們這個lachesis是2013年發表在nature biotechnology上(https://doi.org/10.1038/nbt.2727 )由shendurelab開發的用于輔組基因組組裝的軟件。
github地址:
軟件下載:軟件提供zip和tar.gz兩種格式,任選其一即可。
#這個是zip文件
wget https://github.com/shendurelab/LACHESIS/zipball/master
unzip master
#這個是tar.gz文件
wget https://github.com/shendurelab/LACHESIS/tarball/master
tar -zxvf master
Lachesis有兩個依賴:samtools(低于0.1.19的版本)和C++的boost庫(需要大于1.52.0但是又不能太高比如1.67.0就不行)
所以安裝軟件真的是體力活。。
安裝boost
在這個地址https://www.boost.org/users/history/找一個老一點的版本(比如我用的boost_1_53_0,但是不能低于1.52.0,否則也會報錯。)解壓好之后
tar -zxvf boost_1_53_0.tar.gz
./bootstrap.sh --with-libraries=all --with-toolset=gcc
./b2 toolset=gcc
sudo ./b2 install # 或者sudo ./b2 install --prefix=/usr
sudo ./bjam install
這個過程可能會比較長,中間可能會有幾個warning,不用擔心,不影響的。
tips: 如果沒有權限的話后兩步都需要用--prefix=
參數指定到自己的目錄下的boost的位置進行安裝。
安裝samtools
在sourceforge(https://sourceforge.net/projects/samtools/files/samtools/)下載低于0.1.19的samtools版本。需要先安裝一個依賴再運行Makefile:
sudo apt-get install libncurses5-dev
# 或者sudo yum install bzip2-devel ncurses-libs ncurses-devel xz-devel zlib-devel 要確保這些依賴都已經安裝上
make -f ./Makefile
安裝lachesis
添加兩個環境變量:
export LACHESIS_BOOST_DIR=/path/to/boost_1_53_0/
export LACHESIS_SAMTOOLS_DIR=/path/to/samtools-0.1.18/
正式開始安裝。
cd lachesis
./configure --with-samtools=/path/to/samtools-0.1.18 --with-boost=/path/to/boost_1_53_0/
這一步如果沒報錯的話就可以開始make的,但是在make之前需要把修改shendurelab-LACHESIS-2e27abb/src/include/gtools
下面SAMStepper.h
和SAMStepper.cc
這兩個文件的#include <bam/sam.h>
這一行的<>里內容給改成"/path/to/samtools-0.1.18/sam.h"
不進行這一步的話是會報錯的.
接下來運行make
。我碰到了一個錯:找不到libboost_system.so.1.53.0
解決辦法見下圖
據小伙伴說前面用./b2 install --prefix=/usr
就不需要這一步。各位朋友可以自己試試。
至此如果出現下圖就說明軟件安裝成功了
只要配置好test_case.ini文件就能正常使用了。
接下來做個報錯集錦。包含這個軟件安裝過程中可能會出現的各種報錯:
報錯集錦
1、configure: error: cannot run /bin/sh ./config.sub
報configure: error: cannot run /bin/sh ./config.sub
根據lachesis的一篇issue(https://github.com/shendurelab/LACHESIS/issues/31)運行
autoreconf --install
就可以解決。
2、samtools報錯
不管是輸./configure --with-samtools=/home/hanschen/miniconda3/bin/
還是./configure --with-samtools=/home/hanschen/miniconda3/bin/samtools
還是./configure --with-samtools=no
或者./configure --without-samtools
都是報錯,雖然報的錯不太一樣。
這個是因為samtools的版本過高引起的。安裝0.1.19級以下版本的samtools就好了。在安裝samtools的時候可能會有一個報錯,需要安裝上訴的一個庫sudo apt-get install libncurses5-dev
3、boost庫報錯
這個錯誤是由于boost版本過高或者過低引起的(1.63.0會報錯,經小伙伴測試1.51.0也會報錯),按照上述教程安裝boost的1.52.0或者1.53.0版本就可以解決
4、boost的cannot find flags錯誤
這個報錯的截圖找不到了,大致的問題是boost庫沒完全安裝好,只要按照上述教程運行./bjam install
就可以避免這個錯誤。
5、lachesis在make時報"unrecognized command line option “-std=c++11"的錯
感謝來自小伙伴的報錯反饋。在網上查詢后根據https://blog.csdn.net/liu1055087125/article/details/72888154得知該錯誤是由于g++ gcc版本不夠高導致的。需要安裝高版本的gcc g++庫。
6、運行示例數據沒問題但是在實際處理自己的數據時報了以下錯誤
該問題是由于沒有將lachesis加入環境變量中導致的,只要將lachesis的dir加入環境變量即可
export PATH="/path/to/lachesis/dir:$PATH"
7. C++ compiler cannot create executables
只要用conda 安裝一個新版本的gcc就可以了. 我當前這臺服務器的默認的gcc版本是4.8.5, 2015年的. 太老了. 估計只要更新到這個軟件發表的17年之后的版本都可以使用.(只是一個猜測)
致謝
歡迎其他嘗試安裝這個軟件的小伙伴們給我們反饋別的錯誤~
特別感謝@胡加祥 同學的大力支持。安裝這個軟件花了兩天碰了各種壁,希望以后的小伙伴不要再重蹈我們的覆轍,這樣我們的各種嘗試和努力也就有了意義。感謝菲沙,感謝生信技能樹,感謝jimmy師兄,感謝有你們。
2018年8月10日 update:感謝@南農梨中心劉月園 小姐姐的報錯反饋~
2019年3月1日 update感謝@小黑桃K 小姐姐的報錯反饋~