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是吗
无语