regex - 使用正则表达式从 fasta 文件中获取特定序列

标签 regex perl sed awk fasta

我想从输入 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/

相关文章:

awk - 使用 awk 简化文本处理管道

php - MongoDB RegEx 引擎完整性

javascript - 正则表达式:允许用 ; 分隔多封电子邮件(分号)AND 允许空白/空值

perl - 如何从 Perl 中的纯文本中提取 URL?

perl - ($ test)=(@test)之间有什么区别?和$ test = @test;在Perl?

linux - sed - 批处理 'key=value' 替换

c++正则表达式获取2个标签之间的所有文本,包括换行符和空格

regex - 正则表达式文字

regex - 如何使用 Perl 从路径中提取文件名?

linux - 如何使用 sed 替换匹配列表