今天在運(yùn)行 bwa mem 命令時(shí),出現(xiàn)如下錯(cuò)誤提示:
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
報(bào)錯(cuò)是因?yàn)?ref.fa 文件里存在著空格脸候、空行穷娱,一般是出現(xiàn)在> 行
。
這其實(shí)是一個(gè)很小的問題运沦,但是很容易忽略泵额,特別是分析一個(gè)新物種的時(shí)候。以前也遇到過幾次類似的問題携添,都是因?yàn)榛蚪M文件中含有空格而報(bào)錯(cuò)嫁盲。
解決方法
- 既然原因出現(xiàn)在
> 行
,那么每行只保留第一個(gè)字段的話烈掠,也等價(jià)于刪除空格了羞秤。
代碼如下:# 選擇空格分隔的第一列作為名稱 awk '{print $1}' ref.fa > ref_awk.fa
- 那問題不是出現(xiàn)在
> 行
呢?將所有空格替換就行了左敌,這種解決方法可以覆蓋上一種方法瘾蛋,但是會(huì)造成> 行
很長(zhǎng)且難讀,所以建議用第一種方法矫限。
代碼如下:sed -i 's/\s*$//g' ref.fa
最后再重新建立索引哺哼、比對(duì)就可以了。