gpt4 book ai didi

regex - 是否存在用于 enzyme 促切割的正则表达式?

转载 作者:行者123 更新时间:2023-12-04 04:52:37 27 4
gpt4 key购买 nike

tryptic序列的(理论上)protein切割是否存在正则表达式?胰蛋白 enzyme 的切割规则是:在R或K之后,但不在P之前。

例子:

序列VGTKCCTKPESERMPCTEDYLSLILNR的切割应产生以下3个序列(peptide):

 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:为MSWin32-x64-multi-thread构建的v5.10.0。

最佳答案

实际上,您确实需要使用正向后看和负向前看的组合。正确的(Perl)语法如下:

my @peptides = split(/(?!P)(?<=[RK])/, $seq);

关于regex - 是否存在用于 enzyme 促切割的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1849071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com