某些情况下,一个fa文件中的序列名会有重复,为了避免重复名称带来的困扰,在序列名前/后加个序号也是很常见的手段。
原来的文件
>MAG1
VIAKLEEKPTEPSETDPTEPSETDPTEPSETDPTEPPAPSSDPTEPEPSDPEPSSDPTEP
EPSDPEPSSDPEPEPEPSEGGDD*
>MAG1
MKRERSLALVLSFDTTAAAMETERICGEAGIPGRLFPLPRQLSSDCGIAWASDPADRPRL
EALAAAGRIEPAAMTELLL*
>MAG1
MKKWFRDNWLLLLTGLIVGLAALILAKLGNPGNMGFCIACFERDIAGALGLHGAEAVQYF
RPEIVGIVLGSLIAALCFREFKGKGGSSPFLRLILGMLVMIGALIFLGCPLRMVIRIGGG
DLNAVVGLLGFIVGILIGVVFLKKGFTLGRAYAQTRAEGAAFPALLALAFLLSATGLVGL
加了小脑袋的文件
>1_MAG1
VIAKLEEKPTEPSETDPTEPSETDPTEPSETDPTEPPAPSSDPTEPEPSDPEPSSDPTEP
EPSDPEPSSDPEPEPEPSEGGDD*
>2_MAG1
MKRERSLALVLSFDTTAAAMETERICGEAGIPGRLFPLPRQLSSDCGIAWASDPADRPRL
EALAAAGRIEPAAMTELLL*
>3_MAG1
MKKWFRDNWLLLLTGLIVGLAALILAKLGNPGNMGFCIACFERDIAGALGLHGAEAVQYF
RPEIVGIVLGSLIAALCFREFKGKGGSSPFLRLILGMLVMIGALIFLGCPLRMVIRIGGG
DLNAVVGLLGFIVGILIGVVFLKKGFTLGRAYAQTRAEGAAFPALLALAFLLSATGLVGL
首先看下有多少条蛋白序列:grep -c ">" test,返回结果是12664861
以下步骤加小脑袋
for i in {1..12664861};do sed -i ':a;N;$!ba;s/>/&'"$i_"'/'"$i" test; done
以上方法挺麻烦,给你个最佳方案,seqkit
seqkit rename all.faa > rename.faa