今天在運行 bwa mem 命令時,出現(xiàn)如下錯誤提示:
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 文件里存在著空格、空行,一般是出現(xiàn)在> 行。
這其實是一個很小的問題,但是很容易忽略,特別是分析一個新物種的時候。以前也遇到過幾次類似的問題,都是因為基因組文件中含有空格而報錯。
解決方法
- 既然原因出現(xiàn)在
> 行,那么每行只保留第一個字段的話,也等價于刪除空格了。
代碼如下:# 選擇空格分隔的第一列作為名稱 awk '{print $1}' ref.fa > ref_awk.fa - 那問題不是出現(xiàn)在
> 行呢?將所有空格替換就行了,這種解決方法可以覆蓋上一種方法,但是會造成> 行很長且難讀,所以建議用第一種方法。
代碼如下:sed -i 's/\s*$//g' ref.fa
最后再重新建立索引、比對就可以了。