我經常需要在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