配列を正規表現に置き換えて表現したい
例えば、以下のようなタンパク質、つまり20種類のアミノ酸(文字)からなる任意長の配列を考えます。
MNIFEMLRIDELRLKIYKDTEYYTIIHLLTKSPSLNAAKSELDKAIRNTNVITKDEAEKLFNQDVDAAVRILRNAKLKPVYD
実は、タンパク質の配列中には、任意長のアミノ酸配列からなる特定のパターンが含まれることがあります。このパターンはモチーフと呼ばれ、正規表現で与えられます。以下はその一例です(実際には1000以上あります)。
N[^P][ST][^P]
[RK]{2}.[ST]
[ST].[RK]
[ST].{2}[DE]
.G[RK][RK]
C.[DN].{4}[FY].C.C
RGD
ここで上記のタンパク質を、元のアミノ酸のみの配列から、モチーフにあたる部分は上記の正規表現に変換し、モチーフではない部分は元のアミノ酸のままで表現したいです。ただし、なるべく元のタンパク質の長さが短くなるように表現したいです。
このようなことを実現するためには、Pythonでどのようなコードを書けば良いでしょうか?
よろしくお願いします。