2017-06-21 7 views
1

トリペプチドを持つ配列を探しようとしています。トリペプチドは、「P」を除いて、それに続く任意の他のアミノ酸を有することができる。私は以下の方法でそれらを抽出しました。Biopythonでタンパク質配列のパターンを探す

from Bio import SeqIO 
RGD = [] 
for record in SeqIO.parse("input.fasta", "fasta"): 
    rgd_count = record.seq.count('RGD') 
    if rgd_count >= 1: 
     RGD.append(record) 
SeqIO.write(RGD, "RGD_Proteins.fasta", "fasta") 

は、どのように私は、RGD(N)がRGDP、除いて罰金であることを、このようにして正規表現を導入することができますか?

ありがとうございます。

AP

+2

使用しているメソッドが正規表現をサポートしていますか?もしそうなら 'RGD(?!P)'のようなものが必要です( 'RGD'に' P'がついていません)。おそらく、 'rgd_count = len(re.findall(r" RGD(?!P) "、str(record.seq)))'のようにすることができます。 'reをインポートする 'ことを忘れないでください。 'str()'を使用する必要があるかどうかは不明ですが、 're.findall'の2番目のパラメータとして' record.seq'を使うことができます。 –

+0

私は正規表現をサポートできると思います。ドキュメンテーションによると、Bio.seqオブジェクトは文字列に似ています。私はそれを試して&更新する!ありがとう – Arun

+0

私は答えを加えることができるようにそれがあなたのために働いた場合はお知らせください。 –

答えて

1

あなたはstr(record.seq)で正規表現マッチのすべての非重複の発生を見つけるためにre.findallを使用することができます。またrecord.seq.count('RGD')

len(re.findall(r"RGD(?!P)", str(record.seq))) 

を交換し、あなたがimport reを追加してください。

RGD(?!P)パターンは、の後に続くRGD部分文字列に一致します。 (?!P)というネガティブ先読みと呼ばれ、そのパターンが現在の場所のすぐ右に見つかると一致しません。

Regular-Expressions.info "Lookarounds" sectionを参照してください。

regex demoを参照してください。

関連する問題