You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决samtools索引时的‘染色体块不连续’错误?

解决samtools索引失败的问题

错误原因

你遇到的Chromosome blocks not continuous错误,本质是待索引的BAM文件没有按参考染色体名称和位置排序。samtools的.bai索引要求BAM数据必须有序:先按参考序列(比如NC_000001.11)分组,再按每个序列上的起始位置从小到大排列。你直接合并多个未排序的BAM文件,导致reads在染色体间乱序,索引程序无法识别连续的染色体块,因此报错。

快速修复步骤

1. 对合并后的BAM进行排序

执行以下命令生成排序后的BAM文件(-@指定线程数,可根据你的MacBook Air配置调整为2或4):

samtools sort -@ 4 -o HFFmerged_sorted.bam HFFmerged.bam

2. 对排序后的BAM建立索引

排序完成后,再运行索引命令即可成功:

samtools index HFFmerged_sorted.bam

优化后续分析流程(避免再踩坑)

为了提高效率,建议在流程早期就对BAM排序,而非等合并后再处理:

1. SAM转BAM时直接排序

将每个比对生成的SAM文件直接转为排序后的BAM:

for sam_file in /Volumes/Untitled/IPStrimmed/IPSsam/*.sam; do
    bam_output=$(basename "$sam_file" .sam)_sorted.bam
    samtools sort -@ 4 -o "/Volumes/Untitled/IPStrimmed/IPSbam/$bam_output" "$sam_file"
done

2. 合并排序后的BAM文件

直接合并多个已排序的BAM,合并后的文件依然保持有序:

samtools merge -@ 4 -o HFFmerged_sorted.bam /Volumes/Untitled/IPStrimmed/IPSbam/*_sorted.bam

3. 直接建立索引

此时合并后的有序BAM可以直接执行索引操作:

samtools index HFFmerged_sorted.bam

内容的提问来源于stack exchange,提问作者Rafail Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:03:23