作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目的是用 Python 编写蛋白质序列的理论上的胰蛋白 enzyme 切割。胰蛋白 enzyme 的切割(切割)规则是:在 R 或 K 之后,但不在 P 之前。(即胰蛋白 enzyme 在每个 K 或 R 之后切割(切割)蛋白质序列,除非(K 或 R)后跟 P)。
这是我的正则表达式:
pattern = re.compile('[KR]?[^P].*?[KR](?!P)')
peptides = pattern.findall('GGRGAGSAAWSAAVRYLTMMSSLYQT')
输出:
GGR and GAGSAAWSAAVR
我想要的是:
GGR and GAGSAAWSAAVR and YLTMMSSLYQT
Findall 只返回被剪切的那些,而不返回剩余的。谢谢
最佳答案
根据您发布的链接
The cleavage rule for trypsin is: after R or K, but not before P. (i.e. the trypsin cleaves (cuts) the protein sequence after each K or R, unless (K or R) is followed by a P).
这可以按如下方式实现:
K
或R
之一(后面没有P
).在正则表达式中,这看起来像这样:
>>> re.findall(r".(?:(?<![KR](?!P)).)*", 'GGRGAGRPSAAWKSAAVRYLTMMSKPSLYQT')
['GGR', 'GAGRPSAAWK', 'SAAVR', 'YLTMMSKPSLYQT']
(我不知道这是否是一个有效序列,但它包括所有相关案例。)
关于Python 3-切肽正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18364380/
我是一名优秀的程序员,十分优秀!