1

以下を実行すると;

from Bio.Blast import NCBIWWW
from Bio import Entrez, SeqIO
Entrez.email = "A.N.Other@example.com"
handle = Entrez.efetch(db="Protein", id= "75192198", rettype = "xml")
record = Entrez.read(handle)

検索が非常に難しい「Bio.Entrez.Parser.DictionaryElement」が返されます。アミノ酸配列を取得すると言いたい場合は、次のように入力する必要があります。

record["Bioseq-set_seq-set"][0]["Seq-entry_seq"]["Bioseq"]["Bioseq_inst"]["Seq-inst"]["Seq-inst_seq-data"]["Seq-data"]["Seq-data_iupacaa"]["IUPACaa"]

これらの結果の要素にインデックスを付けるためのより簡単な方法が必要であることはわかっています。誰かが私にこれを貸してくれるなら、とても感謝しています。

4

1 に答える 1

2

シーケンスが必要な場合は、「xml」形式でクエリする代わりに、引数を変更して、(たとえば) FASTA 形式でクエリします。rettype次に、SeqIOを使用して解析するのと同じくらい簡単です。

handle = Entrez.efetch(db="Protein", id= "75192198", rettype = "fasta")

for r in SeqIO.parse(handle, "fasta"):
    print r.id, r.seq

の内容が次のhandleようになっているため、これは機能します。

print handle.read()
# >gi|75192198|sp|Q9MAH8.1|TCP3_ARATH RecName: Full=Transcription factor TCP3
# MAPDNDHFLDSPSPPLLEMRHHQSATENGGGCGEIVEVQGGHIVRSTGRKDRHSKVCTAKGPRDRRVRLS
# APTAIQFYDVQDRLGFDRPSKAVDWLITKAKSAIDDLAQLPPWNPADTLRQHAAAAANAKPRKTKTLISP
# PPPQPEETEHHRIGEEEDNESSFLPASMDSDSIADTIKSFFPVASTQQSYHHQPPSRGNTQNQDLLRLSL
# QSFQNGPPFPNQTEPALFSGQSNNQLAFDSSTASWEQSHQSPEFGKIQRLVSWNNVGAAESAGSTGGFVF
# ASPSSLHPVYSQSQLLSQRGPLQSINTPMIRAWFDPHHHHHHHQQSMTTDDLHHHHPYHIPPGIHQSAIP
# GIAFASSGEFSGFRIPARFQGEQEEHGGDNKPSSASSDSRH

他のメタ情報 (遺伝子内の転写因子結合部位や生物の分類法など) が必要な場合は、引数rettype="gb"を指定して で解析することにより、genbank 形式でダウンロードすることもできます"gb"。詳細については、こちらの例をご覧ください。

于 2014-09-02T13:00:10.303 に答える