1

ソフトウェアを使用して発見された (タンパク質) 配列のセットがありますが、データベース内の元の配列よりも長さが短くなっています。データベース全体をダウンロードしました。発見され、配列が発見された元のデータベース。

ソフトウェアからの結果の例:

>tr|E7EWP2|E7EWP2_HUMAN  Uncharacterized protein OS=Homo sapiens GN=TRIO PE=4 SV=2
KEFIMAELIQTEKAYVRDLRECMDTYLWEMTSGVE

データベース内のシーケンス:

>tr|E7EWP2|E7EWP2_HUMAN  Uncharacterized protein OS=Homo sapiens GN=TRIO PE=4 SV=2
ARRKEFIMAELIQTEKAYVRDLRECMDTYLWEMTSGVEEIP

つまり、欠落している残基は「ARR」であり、最後に「EIP」です。このような不完全なシーケンスが約 70 ありますか? データベースから完全なシーケンスを自動的に取得できる Python プログラムを作成したいと思います。私はPythonに本当に慣れていません。もちろん、自分のコードを書いてみます。これを実行できるライブラリやbiopythonモジュールのようなものがあるかどうか知りたいです。私の計画は、結果から間隔を取得し、それらを展開して元のデータベースで選択することですが、さらに先に進む方法がわかりません。

list_seq = [ARR,KEFIMAELIQTEKAYVRDLRECMDTYLWEMTSGVE,EIP]さらに使用できるようlist_seq[0] r.strip(3)list_seq[1] l.strip[3]、完全なシーケンスを取得したいと思います。しかし、list_seq は機能しません。

前もって感謝します

4

1 に答える 1

4

indexBioPython SeqIOのメソッドを使用できます。このindex方法では、データベース レコードをタンパク質でインデックス付けidし、完全なデータベースをメモリにロードしないため、完全で大きなデータベースを効率的に検索できます (または、sqlite などの従来の dbase を使用して最初にレコードを保存し、その上で検索を実行することもできます)。

from Bio import SeqIO

db1 = "dbase.fasta"
db2 = "my_collection.fasta"

dbase_dict = SeqIO.index(db1, "fasta")
my_record_dict = SeqIO.index(db2, "fasta")

for record in my_record_dict:
    if record in dbase_dict:
        rec_dbase = dbase_dict[record]
        rec_mine = my_record_dict[record]
        if rec_dbase.seq != rec_mine.seq:
            print rec_dbase

このプログラムは、違いのあるレコードを印刷するだけです。この時点から、それらをリストに保存するか、fasta ファイルに書き込むことができます

于 2012-01-02T16:23:27.270 に答える