ruby - 正则表达式蛋白质消化

标签 ruby regex bioinformatics

所以,我正在用一种 enzyme (出于好奇,Asp-N)消化蛋白质序列,这种 enzyme 在单字母编码序列中由 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​​ 都支持零宽度先行断言。我的正则表达式做错了什么?

最佳答案

基本上,您想在每个 B 或 D 之前剪弦吗?

"...".split(/(?=[BD])/)

给你

["MTM", "DKPSQY", "DKIEAELQ", "DICN", "DVLELL", "DSKG", "DYFRYLSEVASG", "DN"]

关于ruby - 正则表达式蛋白质消化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6052211/

相关文章:

python - 获取与两个 fastq 文件不同的记录

ruby-on-rails - Rails Elastics搜索结果内容URL错误

ruby-on-rails - 错误:执行 gem 时 ... (Errno::EINVAL) 无效参数 - ./ActionDispatch/Routing/Mapper/Scoping/:

ruby - 在Ruby中读取文件时如何删除换行符

java - 在Java中提取大写字符的最快方法

python - 在堆叠条形图中将出现频率绘制为字母高度

ruby-on-rails - 查找给定类的文件路径

java - 用于正则表达式的引用/转义路径

javascript - 我怎样才能比较 jquery match 中的字符串

regex - 匹配除字符之外的任何内容,除非它后面跟着其他字符