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

使用bcftools mpileup时出现索引格式错误,如何解决?

问题根源与解决方法

核心错误原因

你在bcftools mpileup命令里犯了一个基础参数错误:-f参数需要指定的是原始参考基因组序列文件(index.fna),而不是samtools faidx生成的索引文件(index.fna.fai)。

bcftools会自动读取参考序列对应的.fai索引(只要它和fasta文件在同一目录下),但你直接把索引文件传给-f,程序会尝试把它当作fasta序列解析——而.fai文件的第一行是序列ID(比如你的示例里的NM_001248012.2),不是fasta格式要求的>开头的序列头,所以才会触发[E::fai_build_core] Format error, unexpected "N" at line 1的报错。

正确操作步骤

直接修正mpileup命令,把-f指向原始fasta文件即可:

bcftools mpileup -Ou -f index.fna file_sorted_md.bam > raw.bcf

如果后续需要直接调用变异,可以把结果管道传给bcftools call:

bcftools mpileup -Ou -f index.fna file_sorted_md.bam | bcftools call -mv -Ov -o variants.vcf

关于你之前的无效操作说明

  • 修改.fai文件内容完全没必要,因为这个索引是samtools faidx自动生成的,格式固定,手动修改只会破坏索引有效性;
  • 生成BAM列表文件的操作和当前报错无关,单BAM文件直接传入命令本身是没问题的,问题出在参考序列参数的错误指定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:18:18