构建基因组fai索引,以及解决x86_64下的samtools缺少依赖

fasta文件的索引为fai文件,用于浏览基因组时进行索引

构建方法是用samtools

# conda install -c bioconda samtools
samtools faidx YourGenome.fa
# 只能是fa文件,不能是gz压缩过的

但是Linux x86_64环境下会报错,如下

(genomics) yuntaozhu@ZYT-WIN11:/mnt/e/LsargGenome$ samtools faidx LsargGenome.fa.gz
samtools: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

这时候需要检查一下依赖

ldd $(which samtools)
(genomics) yuntaozhu@ZYT-WIN11:/mnt/e/LsargGenome$ ldd $(which samtools)
        linux-vdso.so.1 (0x00007fff45ffb000)
        libncurses.so.5 => not found
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f06aaf5d000)
        libz.so.1 => /home/yuntaozhu/miniconda3/envs/genomics/bin/../lib/libz.so.1 (0x00007f06aaf3f000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f06aaf3a000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f06aaf35000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f06aad21000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f06ab04e000)

发现是libncurses.so.5缺失了,行吧

查了一下Google,发现果然是64位架构的问题,首先需要恢复默认repository

cat <<EOF | sudo tee /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ focal main universe multiverse restricted
deb http://security.ubuntu.com/ubuntu/ focal-security main universe multiverse restricted
deb http://archive.ubuntu.com/ubuntu/ focal-updates main universe multiverse restricted
deb http://archive.ubuntu.com/ubuntu/ focal-backports main universe multiverse restricted

deb-src http://archive.ubuntu.com/ubuntu/ focal main universe multiverse restricted
deb-src http://security.ubuntu.com/ubuntu/ focal-security main universe multiverse restricted
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main universe multiverse restricted
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main universe multiverse restricted
EOF

然后加入32位i386架构的支持

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5 libncurses5:i386

再次确认一下samtools的依赖

(genomics) yuntaozhu@ZYT-WIN11:/mnt/e/LsargGenome$ ldd $(which samtools)
        linux-vdso.so.1 (0x00007ffc52f8c000)
        libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007ff13183e000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff131755000)
        libz.so.1 => /home/yuntaozhu/miniconda3/envs/genomics/bin/../lib/libz.so.1 (0x00007ff131737000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff131732000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff13172d000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff131519000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007ff1314eb000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff13186c000)

成了,终于能正常用了

重新回到最开头的地方,运行samtools faidx就可以

之前用的mac就没这问题,我是M1芯片的mac,ARM64看来是没问题的,x86_64居然会出问题,我是没想到的,难道大家服务器都用的ARM是吗

无语
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容