質問
は正規表現が存在する(理論) tryptic 切断の タンパク質 配列?の切断ルールのためのトリプシンは:後のRまたはKといえるもP.
例:
切断の配列 VGTKCCTKPESERMPCTEDYLSLILNR
項目の予測アンケートを実施これらの3つの配列(ペプチド:
VGTK
CCTKPESER
MPCTEDYLSLILNR
はありません切断後のKのペプチド(Pした。
Perlなりますので注意してください(直されているとともに、クライアントまで、フルのC#,PythonやRuby):
my $seq = 'VGTRCCTKPESERMPCTEDYLSLILNR';
my @peptides = split /someRegularExpression/, $seq;
また、この仕事と周囲がカットマーカー=,最初に挿入される配列された場合は直後にカットメーカー):
my $seq = 'VGTRCCTKPESERMPCTEDYLSLILNR';
$seq =~ s/([RK])/$1=/g; #Main cut rule.
$seq =~ s/=P/P/g; #The exception.
my @peptides = split( /=/, $seq);
この変更が必要でに文字列になる可能性のある非常に長いができる単位百万dnaの塩基配列を決定した。はしてもらえると助かりますが、正規表現を使用できる分割?そして、どのように正規表現です。
試験プラットフォームWindows XP64ビット.ActivePerl64ビット.からperl-v:v5.10.0築MSWin32-x64-マルチスレッド.
解決
すそを使用する必要の組み合わせに肯定後読みや否定先読み.正しい(Perl)の構文は以下:
my @peptides = split(/(?!P)(?<=[RK])/, $seq);
他のヒント
あなたはルック周りのアサーションは例ということを除外するためにを使用することができます。このような何か作業をする必要があります:
split(/(?<=[RK](?!P))/, $seq)
あなたはまだ正しい位置を取得しながら、このようなものを一致させるために先読みしてlookbehindsを使用することができます。
/(?<=[RK])(?!P)/
Pに続いていないRまたはK後の点で分割を終了する必要があります。
Pythonでは、あなたは、パターンがスタートし、スパン情報を含む一致して、非重複返すためにfinditer
メソッドを使用することができます。あなたは、代わりに文字列を再構築する文字列のオフセットを格納することができます。