我经常需要在fasta文件中查找特定的序列并将其打印出来。对于那些不知道的人,fasta是生物序列(DNA,蛋白质等)的文本文件格式。这很简单,你有一个序列名前面有一个'>'的行,然后直到下一个'>'后面的所有行都是序列本身。例如:从fasta文件打印序列
>sequence1
ACTGACTGACTGACTG
>sequence2
ACTGACTGACTGACTG
ACTGACTGACTGACTG
>sequence3
ACTGACTGACTGACTG
目前我得到我所需要的序列的方法是使用grep有-A的,所以我会做
grep -A 10 sequence_name filename.fa
,然后,如果我没有看到文件中下一个序列的开始,我将把10改为20并重复,直到我确定我已经完成了整个序列。
看起来应该有更好的方法来做到这一点。例如,我可以让它打印到下一个'>'字符吗?
+1尼斯。我假设你知道如果你在脚本之后但在文件之前加上'RS ='>'',你就可以为自己节省'-v' ... – 2014-10-01 15:46:43
我这样做,但我喜欢将变量保持在前,文件在结束(非常像BEGIN块可以出现在脚本的任何位置,但通常在开始时看到)。 – 2014-10-01 15:47:27