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

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);

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...