因此,我正在用一種酶(爲了您的好奇心,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