美文网首页
Ubuntu下安装CNVnator方法简介

Ubuntu下安装CNVnator方法简介

作者: 田小田_8afd | 来源:发表于2021-09-07 13:17 被阅读0次

    最近工作需要用到cnvnator,之前只在centos下安装使用过cnvnator,现在换成了Ubuntu系统,安装编译cnvnator遇到了一列的坑,只想说cnvnator不愧是拷贝数变异检测界最难安装软件!在调试过程中查了很多资料,感谢有大家分享经验才得以调试安装成功,尤其是这两篇文章,很有帮助,CNVnator安装使用说明 - 简书 (jianshu.com),https://bbs.huaweicloud.com/forum/thread-37696-1-1.html。按照上述流程,我编译过程中还是遇到的一些报错,现在将我的解决经验与大家共享。

    (一)环境要求

    我的是ubuntu16.4 ,gcc是5.4。可以用 cat /proc/version查看Ubuntu和gcc版本信息,这个信息用于选root版本,网上有人说需要选择与gcc相匹配的root包,我用的与gcc版本不同的包也安装成功了,当然尽量版本信息一致,可以减少出问题的几率。

    (二)依赖包的要求

     CNVnator的安装依赖于samtoolsroot包,samtools选择的samtools1.1.0,我尝试过samtools1.2,报错信息要比samtools1.1.0多,所以最终选用的samtools-1.10,可以在SAMtools/BCFtools/HTSlib - Downloads官网下载。

    1.samtools安装

    下载好samtools-1.10.tar.bz2文件后,解压缩

    tar -xvf samtools-1.10.tar.bz2 

    cd samtools-1.10

    ./configure --prefix=/path/to/samtools   ###prefix后面添加samtools安装目标路径

    make all all-htslib && make install-htslib

    将samtools添加到环境变量中

    export PATH=/path/to/samtools/bin:$PATH

    export LD_LIBRARY_PATH=/path/to/samtools/lib:$LD_LIBRARY_PATH

    2. root 安装

    root的官网上(https://root.cern/)提供了编译好的root包,解压以后直接可以用,选择与gcc相对应的版本就可以,我用的root 6.16,也可以用6.18-gcc5.4这个,这是下载链接 Release 61800 - ROOT

    下载了gz文件后

    用tar -xvf解压得到root文件包,就可以了

    将root添加到环境变量中,这一步一定要做!!!不然后面会报很多错误

    export PATH=/path/to/SOURCE/root/bin:$PATH

    export LD_LIBRARY_PATH=/path/to/SOURCE/root/lib:$LD_LIBRARY_PATH

    (三)CNVnator编译和安装

    前面两步安装基本没啥问题,这一步是报错最多、调试最久的。

    1 下载CNVnator0.4.1安装包

    网址:https://github.com/abyzovlab/CNVnator

    2 解压缩

    unzip CNVnator_v0.4.1.zip

    3 建立软连接

    cd CNVnator_v0.4.1/src  ####进入CNVnator文件夹下的src文件夹

    ln -s /path/to/samtools samtools   ####这里的path/to/samtools是你从官网下载下来后编译过的samtools文件夹,不是你安装目标文件夹,这个一定不要搞错,比如我下载了 samtools-1.10.tar.bz2后,我是在/analysis目录下解压得到的samtools-1.10,那么我的path/to/samtools就是/analysis/samtools-1.10

    ln -s /path/to/root root_build   ####这里的path/to/root是你解压root的gz文件后,所得root文件夹所在目录

    make

    (四)错误调试

    错误一   gcc编译时出现DSO missing from command line

    这和上面引用文章里遇到的问题一样的,我的错误信息覆盖掉了,引用一下他的来说明一下。

    /usr/bin/ld: samtools/htslib-1.9/libhts.a(hfile_s3.o): undefined reference to symbol 'HMAC@@libcrypto.so.10'

    //usr/lib64/libcrypto.so.10: error adding symbols: DSO missing from command line

    collect2: error: ld returned 1 exit status

    make: *** [cnvnator] Error 1

    出现这个问题 ,通常是由于gcc指令没有引入正确的库导致的,DSO missing from command line这句提示前会有库名,根据库名,在gcc后面加上-lcrypto,具体解决方法为:

    原指令: gcc XXXXX

    新指令:gcc XXXXX -lcrypto

    也就是说在指令的末尾加上缺失的库,也可以执行make命令时,使用以下命令:

    make LIBS="-lcrypto"

    错误二  出现ld:cannot find -lcrypto

    查了很多资料,都说是ubuntu没有安装libz的库,如果确实没安装,可以用apt install zlib1g安装,但是我安装过,后来发现是anaconda2没识别apt install方式安装的包,我把环境变量更改了一下,将/usr/bin放在最前面,用/usr/bin/下的ld,就没有报这个错误了。具体操作如下:

    export PATH=/usr/bin/:$PATH

    错误三:出现dynsym local symbol at index 2 ;libdeflate库里的函数都不识别

    (1)出现dynsym local symbol at index 2,采用如下方法解决,参考Ubuntu下编译Qt项目出现libQt5WebEngineCore.so报错 – 可可知秋 (cocozq.com)

    sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld

    (2)undefined reference to "libdeflate_crc32" "libdeflate_freee_decompressor"

    这个问题花了最久的时间,最后是通过在gcc后面加-ldeflate解决的

    相关文章

      网友评论

          本文标题:Ubuntu下安装CNVnator方法简介

          本文链接:https://www.haomeiwen.com/subject/yziuwltx.html