因此,我正在用一种酶(为了您的好奇心,Asp-N)消化蛋白质序列,该酶在B或D编码的蛋白质之前以单字母编码序列切割。我的实际分析使用String#scan
作为捕获。我试图找出为什么下面的正则表达式不正确地消化它...正则表达蛋白质消化
(\w*?)(?=[BD])|(.*\b)
在先行(.*\b)
存在捕获序列的末尾。 为:
MTMDKPSQYDKIEAELQDICNDVLELLDSKGDYFRYLSEVASGDN
这应该给这样的:[MTM, DKPSQY, DKIEAELQ, DICN, DVLELL, DSKG, ... ]
而是错过每个d的顺序排列。
我一直在使用http://www.rubular.com进行故障诊断,它运行在1.8.7上,尽管我也在1.9.2上测试过这个REGEX,但是无济于事。我的理解是,在两个版本的ruby中都支持零宽度前瞻断言。我在做什么错我的正则表达式?
你使用什么方法? '字符串#扫描','字符串#拆分或其他东西? – 2011-05-18 23:38:11
+1这真是个好问题。我没有想到你得到的结果,进一步的分析告诉我一些关于正则表达式处理重复零宽度匹配的方法。 – Phrogz 2011-05-19 03:01:18
您的陈述“在B或D编码的蛋白质之前切割”,我有点困惑。根据我的理解,** B **是** D或N(不知道残基是Asp还是Asn)的单字母代码? Aspn能否在Asn之前分裂? – tomd 2011-05-21 19:00:41