關(guān)于sam轉(zhuǎn)bam遇到的錯誤解決方法記錄
在用samtools?view?的時候出現(xiàn) Duplicate entry "k127_110300" in sam headersamtools view: failed to add PG line to the header 經(jīng)查看"k127_110300"在ZH9_FDSW220008792-2r.sam中,通過查閱https://github.com/samtools/samtools/issues/1217這篇帖子看到了解決辦法。
先找出重復(fù)的header: awk '/^@/ && /:k127_110300/ { print } /^[^@]/ { exit }' ZH9_FDSW220008792-2r.sam 再除掉重復(fù): awk 'BEGIN { i = 0; } /^@/ { if (/:k127_110300/) { if (i++ < 1) { print; } } else { print } } /^[^@]/ { print }' ZH9_FDSW220008792-2r.sam > ZH9_FDSW220008792-2r.sam 但是再次運行samtools?view還是出現(xiàn)同樣問題還多了一行 [main_samview] fail to read the header from "ZH9_FDSW220008792-2r.sam" 后來發(fā)現(xiàn)原來我是多條重復(fù)(lll¬ω¬),決定用bamutil試一下。
參考一下https://blog.csdn.net/weixin_51192038/article/details/124994097 直接用conda安裝就可以。 bam convert ?--in *.sam ?--out *.bam samtools sort *.bam -o *_sorted.bam bam dedup --in *_sorted.bam --out ./*.bam 然后現(xiàn)在又要用bamM,,,發(fā)現(xiàn)是合并后的fa文件里有序列id重復(fù)的,打算將不同樣地的序列id前加上樣地名。(這個最好!!不依賴軟件) 先將id提取出來得到id.txt,參考https://www.jianshu.com/p/a0c3c8f96b1f,得到一個rename.txt,第一列是原id,第二列是加了樣地名的id。 用excel處理:將id.txt用excel打開,在第二列第一行輸入樣地例如BH,再將第一列第一行的id復(fù)制粘貼到BH后,再點擊第二列第二行,ctrl+e,就完成了。 用seqkit處理:seqkit replace --ignore-case --kv-file rename.txt --pattern "^(\w+)" --replacement "{kv}" genome.fa -o genome.new.fa