本来以为有bai文件就说明是流程运行是完整的,事实上我还是太年轻,最近处理一个 600个病人的肿瘤WES数据,走流程过程发现卡在CNVKIT,部分样本出现了:
File "pysam/libcalignmentfile.pyx", line 729, in pysam.libcalignmentfile.AlignmentFile.__cinit__
File "pysam/libcalignmentfile.pyx", line 930, in pysam.libcalignmentfile.AlignmentFile._open
File "pysam/libchtslib.pyx", line 364, in pysam.libchtslib.HTSFile.check_truncation
IOError: no BGZF EOF marker; file may be truncated
很明显,是bam文件有问题!
为什么bam文件报错
因为这 600个病人的肿瘤WES数据我是批量运行的,日志也是一大堆,没有心情去检查到底是哪个步骤出错。(主要是最近服务器抽风,一半的节点成为了僵尸)
就先调出错误的样本,重新跑一次流程。简单的脚本检查,发现我输出的bam文件都是有bai文件的,如下:
ls *bam|while read id;do (ls -lh ${id/bam/bai});done
也就是说,一个不完整的bam文件,软件仍然是可以为它构建bai索引文件的!
而且诡异的是
samtools view T_recal.bam|head # 没有问题
samtools view T_recal.bam|