2021-04-25

今天在运行 bwa mem 命令时,出现如下错误提示:

bwa mem -t 50 ref.fa $i ${i%%_R1.fastq.gz}_R2.fastq.gz > ${i%%_R1.fastq.gz}.sam
[bns_restore_core] Parse error reading ref.fa.amb

报错是因为 ref.fa 文件里存在着空格、空行,一般是出现在> 行

这其实是一个很小的问题,但是很容易忽略,特别是分析一个新物种的时候。以前也遇到过几次类似的问题,都是因为基因组文件中含有空格而报错。

解决方法

  • 既然原因出现在> 行,那么每行只保留第一个字段的话,也等价于删除空格了。
    代码如下:
    # 选择空格分隔的第一列作为名称
    awk '{print $1}' ref.fa > ref_awk.fa
    
  • 那问题不是出现在> 行呢?将所有空格替换就行了,这种解决方法可以覆盖上一种方法,但是会造成> 行很长且难读,所以建议用第一种方法。
    代码如下:
    sed -i 's/\s*$//g' ref.fa
    

最后再重新建立索引、比对就可以了。

参考链接

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容