samtools安装踩坑记录

问题描述:

我用conda安装的samtools软件

但是在使用samtools的时候,总是报错,没有载入samtools的库文件(动态库缺失)

samtools: error while loading shared libraries: libtinfow.so.5: cannot open shared object file: No such file or directory

然后,我就以为是命令写错了,

ls *.sam|while read id ;do (samtools sort -O bam -@ 5  -o $(basename ${id} ".sam").bam   ${id});done     #批量处理转换sam文件到bam文件

检查了很多次,没发现有错误,而且代码是参考了jimmy师兄的,出错可能不大。所以,这时候,对于还没入门菜鸟来说,我的头就大了,不知道该怎么处理,然后就百度了一下报错的信息。

百度说:出现这种问题,要么是操作系统里没有包含该共享库(lib.so.文件)或者共享库版本不对,下载安装进行调试就可以了;要么就是确实已经安装了该共享库,但是在调用该共享库的时候,按照程序默认路径检索并不能找到该共享库文件,那么就要注意设置共享路径了。

解决方法:

首先是确认问题,通过ldd查看samtools依赖了哪些工具。

which samtools
/home/amliang/miniconda3/envs/rna/bin/samtools
cd ~/miniconda3/envs/align/bin/samtools
ldd samtools                         #查看发现,确实libtinfow.so.5没有找到,如下图所示

网上有前辈说,这可能是因为安装的软件版本太新,使得软件有一些bug还没来得及被发现和解决

我自己安装的samtools是最新的1.8版本,可能在安装时samtools的预编译版本不会自带tinfow,它默认我们自己提供tinfow这个动态库。

所以,鉴于上面的猜测和参考前辈的经验

我就尝试着调低一个安装版本,我安装的是samtools 1.5版本,

conda install samtools=1.5

然后,运行了一下,发现可以正常使用。

所以说,前辈的指导很重要,一句话可以节省你半天时间!

(0)

相关推荐