【发布时间】:2015-09-20 12:35:28
【问题描述】:
背景
Python 模块regex 允许模糊匹配。
您可以指定允许的替换次数 (s)、插入次数 (i)、删除次数 (d) 和错误总数 (e)。
匹配结果的fuzzy_counts属性返回一个元组(0,0,0),其中:
match.fuzzy_counts[0] = count for 's'
match.fuzzy_counts[1] = count for 'i'
match.fuzzy_counts[2] = count for 'd'
问题
删除和插入按预期计算,而不是替换。
在下面的示例中,唯一的变化是查询中删除了单个字符,但替换计数为 6(如果删除了 BESTMATCH 选项,则为 7)。
换人数如何计算?
如果有人能向我解释这是如何工作的,我将不胜感激。
>>> import regex
>>> reference = "(TATGGGA[CT][GC]AAAG[CT]CT[AC]AA[GA]CCATGTG){s<7,i<3,d<3,e<8}"
>>> query = "TATGGACCAAAGTCTCAAGCCATGTG"
>>> match = regex.search(reference, query, regex.BESTMATCH)
>>> print(match.fuzzy_counts)
(6,0,1)
【问题讨论】:
标签: python regex mismatch dna-sequence fuzzy-comparison