我有几个FASTA文件,我想更改页眉更改FASTA文件头
>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
[编辑]你的问题来解释如何''XP_001267680.1在输入映射到'> Acla00001'中保留假设蛋白质[曲霉曲霉NRRL1]'并且4条输入线如何变成8条输出线。还要摆脱'...'s,因此您可以提供样本输入/输出,我们可以测试潜在的解决方案。不要以为我们知道你的输入中出现'生物体名称' - 只要告诉我们你想要哪个输入字符串改变为哪个输出字符串。 –
它不会更改为8,只是试图解释说,如果数字是4位数字,则应该加1;如果数字是一位数字,则应该加4。 – Jasper