Ich versuche, einige unscharfe Suche nach einer Reihe von DNA-Reads zu tun. Ich möchte bis zu 1 Substitutionsfehler zulassen und gleichzeitig zulassen, dass ein bestimmtes Basenpaar eine von zwei Optionen ist (in diesem Fall A oder G).Python Fuzzy Regex mit verschachtelten oder Regex
Ich habe angefangen, mit den folgenden:
>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "ATTAGATACCCTGGTAGTCA")
['ATTAGATACCCTGGTAGTCA']
Matches wie erwartet, weil ich gegen die exakte Zeichenfolge bin passende
>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "GTTAGATACCCTGGTAGTCA")
['GTTAGATACCCTGGTAGTCA']
Matches wie erwartet, weil ich gegen die exakte Zeichenfolge bin passend mit der Ausnahme, dass das erste Basenpaar von einem A auf ein G umgeschaltet wurde (zulässig)
Spiele, wie erwartet, da eine einzelne Substitution auftritt (C-> x)
>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "xTTAGATACCCTGGTAGTCx")
[]
entspricht nicht (wie erwartet), weil es zwei Substitutionen
>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "xTTAGATACCCTGGTAGTCA")
[]
sollte abgestimmt haben, seit dem ersten Basenpaarfehler (x statt A oder G) sollten als Substitution gezählt worden sein.