在对fasta文件处理的时候,许多小伙伴经常会遇到要修改fasta文件序列名的情况。当要修改的序列只有几条的时候,手动就好了。但当序列成百上千的时候,手动修改就显得很笨了。
笔者最近也遇到了要大量修改序列名的情况,所以写了一个简单的python脚本,在这里和大家共享:
文件准备
首先,我们要准备输入文件。
输入文件一:序列文件
输入文件一是我们要处理的fasta文件,可以是核苷酸序列,也可以是氨基酸序列,两个都可以,取决于你要处理的序列。
fasta文件的格式很简单,由两部分组成:
一部分是序列名,该部分以>
开头,后边跟着该条序列的名字。有时候的时候名字由多个由空格隔开的字符串组成,在分析的时候,我们通常会简化名字,只保留重要的那一个字符串。这是因为很多生物信息软件在处理复杂的序列名时,会出现意想不到的错误,比如基因结构注释软件Braker3。「注意」:序列名只能是一行。
另一部分是序列,可以由多行组成,也可以是一行。
在我们的脚本里,支持对含有空格的序列名处理,但不支持以\t
(制表符)分割的,下边举几个例子:
>seq1
MAASTMA