加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 酶促切割是否存在正则表达式?

发布时间: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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读