正则表达式 – 酶促切割是否存在正则表达式?
发布时间:2020-12-14 06:26:58 所属栏目:百科 来源:网络整理
导读:protein序列的(理论上) tryptic切割是否存在正则表达式?胰蛋白酶的切割规则是:在R或K之后,但在P之前不是. 例: 切割序列VGTKCCTKPESERMPCTEDYLSLILNR应产生这3个序列(peptides): VGTK CCTKPESER MPCTEDYLSLILNR 注意,在第二肽中K后没有切割(因为P在K之后)
protein序列的(理论上)
tryptic切割是否存在正则表达式?胰蛋白酶的切割规则是:在R或K之后,但在P之前不是.
例: 切割序列VGTKCCTKPESERMPCTEDYLSLILNR应产生这3个序列(peptides): VGTK CCTKPESER MPCTEDYLSLILNR 注意,在第二肽中K后没有切割(因为P在K之后). 在Perl中(它也可以用于C#,Python或Ruby): my $seq = 'VGTRCCTKPESERMPCTEDYLSLILNR'; my @peptides = split /someRegularExpression/,$seq; 我已经使用过这种解决方法(切割标记= =首先插入序列中,如果P紧接在切割制造者之后再次移除): my $seq = 'VGTRCCTKPESERMPCTEDYLSLILNR'; $seq =~ s/([RK])/$1=/g; #Main cut rule. $seq =~ s/=P/P/g; #The exception. my @peptides = split( /=/,$seq); 但这需要修改一个可能很长的字符串,并且可能有数百万个序列.有没有一种方法可以将正则表达式与split一起使用?如果是,那么正则表达式是什么? 测试平台:Windows XP 64位. ActivePerl 64位.从perl -v:v5.10.0为MSWin32-x64-multi-thread构建.
你确实需要使用积极的lookbehind和负的lookahead的组合.正确的(Perl)语法如下:
my @peptides = split(/(?!P)(?<=[RK])/,$seq); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |