我想从输入 fasta 文件中检索第 nth 序列(或者最好从 nth 到 mth 序列),理想情况下使用 unix“单线”。
我知道我可以用 perl(或任何其他脚本语言)读取序列、计数,然后打印序列,但我正在寻找更快、更紧凑的东西。
对于那些不知道的人,示例 fasta 文件如下所示:
>SEQUENCE_1
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG
LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK
IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL
MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL
>SEQUENCE_2
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI
ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH
最佳答案
awk
的一种方式:
awk -v RS='>' -v start=$n -v end=$m 'NR>=(start+1)&&NR<=(end+1){print ">"$0}' fasta_file
关于regex - 使用正则表达式从 fasta 文件中获取特定序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225019/