近来在进行染色体级别基因组的分析。
使用pindel软件对染色体的结构变异进行检测。
在计算过程中发现,和delly不同,pindel需要使用二代数据(*.bam)并识别索引“.bai”而不识别“.csi”。
由于我的基因组组装至chromsome(scaffold)水平,因此scaffold1>512M。
本人系统默认samtools在对其进行索引建立的过程中报错如下,
[E::hts_idx_check_range] Region 536870752..536870915 cannot be stored in a bai index. Try using a csi index with min_shift = 14, n_lvls >= 6
[E::sam_index] Read '***' with ref_name='hic_scaffold_1', ref_length=569202264, flags=97, pos=536870753 cannot be indexed
samtools index: failed to create index for "***.bam": Numerical result out of range
通过检测samtools版本发现
samtools --version 检测版本
进而通过查阅发现其他策略解决,
包括1、切割染色体,使用bed文件对内容进行切割,本人没有尝试过
2、听说biobambam2可以构建,本人也没有尝试过。
3、使用其他版本samtools,这是我使用的解决办法。
首先找到其他版本的samtools, 这里根据网上的提示我找到的是samtools-0.1.13版本
在网页https://sourceforge.net/projects/samtools/files/samtools/0.1.13/
在linux界面使用
wget https://sourceforge.net/projects/samtools/files/samtools/0.1.13/samtools-0.1.13.tar.bz2
tar -jxvf samtools-0.1.13.tar.bz2
make
./samtools 运行看是否可以用。
使用绝对路径直接调用samtools即可解决samtools不能index过长scaffold的问题。