次の正規表現を使用しています。
orfre = '^(?:...)*?((ATG)(...){%d,}?(?=(TAG|TAA|TGA)))' % (aa)
私は基本的に、ATG で始まり、その後にトリプレット (TTA、TTC、GTC など) が続くすべてのシーケンスを、フレーム内の終止コドンが見つかるまで見つけたいと考えています。ただし、私の正規表現が書かれているように、aaが大きい場合、実際には停止コドンで停止しません。代わりに、aa の条件を満たすものが見つかるまで検索を続けます。終止コドンが見つかるまで、文字列全体を検索するようにしたいと思います。(指定された aa 引数に対して) 一致が十分に長くない場合は、None を返す必要があります。
文字列データ: AAAATGATGCATTAACCCTAATAA
正規表現からの望ましい出力: ATGATGCATTAA
aa > 5 でない限り、何も返されません。
私が得ている実際の出力: ATGATGCATTAACCCTAA