更改 fasta 文件 header

Change fasta file header

我有几个 fasta 文件,我想更改 headers

>XP_001267680.1 conserved hypothetical protein [Aspergillus clavatus NRRL 1]
MTEILARLTAPSAYRYASCEILEDYGRQLRELIAYIKQPRTTADIATAAEFLLDNLDPSLHSASY...
>XP_001267682.1 60S ribosomal protein L18 [Aspergillus clavatus NRRL 1]
MGIDLDRHHVRSTHRKAPKSENVYLQVLVKLYRFLSRRTESNFNKVVLRRLFMSRINRPPVS...
etc...

我想更改 fasta 文件,使其看起来像这样:

>Acla00001
MTEILARLTAPSAYRYASCEILEDYGRQLRELIAYIKQPRTTADIATAAEFLLDNLDPSLHSASY...
>Acla00002
MGIDLDRHHVRSTHRKAPKSENVYLQVLVKLYRFLSRRTESNFNKVVLRRLFMSRINRPPVS...
...
>Acla03871
MTEILARLTAPSAYRYASCEILEDYGRQLRELIAYIKQPRTTADIATAAEFLLDNLDPSLHSASYLF...
>Acla03872
MGIDLDRHHVRSTHRKAPKSENVYLQVLVKLYRFLSRRTESNFNKVVLRRLFMSRINRPPVSL...

我发现这段代码删除了行以 > 开头的所有内容,并添加了一个新的 > 和有机体名称 + 一个数字。

org = 'Acla'    
os.popen("""cat %s.fa | awk '/^>/{print ">%s" ++i; next}{print}'""" % (org, org)).read()

我希望通过添加零使所有这些行的长度相等,因此数字为 5 位或字符串的总长度为 10。

将打印语句更改为

 /^>/{printf ">Acla%05d\n",++i ...