-1

DNA 読み取りの文字列に対してファジー マッチングを実行しようとしています。特定の塩基対を 2 つのオプション (この場合は A または G) のいずれかにできるようにすると同時に、最大 1 つの置換エラーを許可したいと思います。

私は次のことから始めました:

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "ATTAGATACCCTGGTAGTCA")
['ATTAGATACCCTGGTAGTCA']

正確な文字列と照合しているため、期待どおりに一致します

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "GTTAGATACCCTGGTAGTCA")
['GTTAGATACCCTGGTAGTCA']

最初の塩基対が A から G に切り替えられていることを除いて、正確な文字列と照合しているため、期待どおりに一致します (許可されています)。

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "GTTAGATACCCTGGTAGTCx")
['GTTAGATACCCTGGTAGTCx']

1 つの置換が発生するため (C->x)、期待どおりに一致します。

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "xTTAGATACCCTGGTAGTCx")
[]

2 つの置換があるため、(予想どおり) 一致しません

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "xTTAGATACCCTGGTAGTCA")
[]

最初の塩基対エラー (A または G の代わりに x) が置換としてカウントされているはずなので、 一致する必要があります。

4

1 に答える 1

0

最後の例には2 つの置換があります。最初の basepair は に置換され、x最後の basepair は に変更されていAます。交代は 1 回しか許可されないため、一致するものはありません。

于 2016-04-04T16:15:32.380 に答える