ORF_sequences = re.findall(r'ATG(?:...){9,}?(?:TAA|TAG|TGA)',sequence) #thanks to @Martin Pieters and @nneonneo
A|G の任意のインスタンスを検索し、その後に 2 文字が続き、ATG の後に 3 単位で読み取ったときに TAA|TAG|TGA が続くコード行があります。A|G-xx-ATG の場合にのみ機能します-xxx-TAA|TAG|TGAが30要素以上
基準を追加したい
ATG の後に G が必要です
A|G-xx-ATG-Gxx-xxx-TAA|TGA|TAG #少なくとも 30 要素の長さの 例: GCCATGGGGTTTTTTTTTTTTTTTTTTTTTTTTTGA ^ が機能します
GCATGAGGTTTTTTTTTTTTTTTTTTTTTTTTTGA
^ would not work because it is an (A|G) followed by only one value (not 2) before the ATG and there is not a G following the A|G-xx-ATG
これが理にかなっていることを願っています
私は試した
ORF_sequences = re.findall(r'ATGG(?:...){9,}?(?:TAA|TAG|TGA)',sequence)
ATGGの最後のG以降はウィンドウサイズ3を使っていたようですが
基本的に、最初に出現するコードが A|G-xx-ATG で、2 番目に出現するコードが (G-xx) であるコードが必要です。