2017-10-07 10 views
1

アイソフォームを持つタンパク質を持っていて、それぞれの配列を取得したいのですが、これをどうやって行うのですか?Biopythonを使用してSwissprotエントリのアイソフォームシーケンスを取得しますか?

from Bio import ExPASy 
from Bio import SwissProt 

accessions = ["Q16620"] 

handle = ExPASy.get_sprot_raw(accessions) 
record = SwissProt.read(handle) 

biopythonのチュートリアルからこの例ではrecord.sequenceで最初のアイソフォームのシーケンスを取得します。

私はユニプロット["Q16620-1", "Q16620-2", "Q16620-3", ...]に記載されているアイソフォームエントリの形で反復するアクセッションのリストを作成するだけでは機能しません。

+0

BioPythonでなければならないのですか、他のAPIとPythonも同様に機能しますか? –

+0

APIは歓迎ですが、私はBioPythonが可能性の高いインターフェースだと思っていました。私はまた、上で検索されたフルボディのレコードの種類に限定されていません。 fastaファイルを取得すると、私にとってうまくいくはずです。 – Estif

答えて

1

EBML-EBIのProteins APIと数行のPythonコードを使用できます。

これは完全な本物のBioPythonオブジェクトではなく、文字列としてのシーケンスのみを提供します。

import requests 
import xml.etree.ElementTree as ET 

accession = "Q16620" 

# a dictionary storing the sequence of your isoforms, key: accesion number, value: sequence 
isoforms = dict() 

# make a call to EBI API 
r = requests.get('https://www.ebi.ac.uk/proteins/api/proteins/{}/isoforms'.format(accession)) 

# parse the returned XML 
uniprot = ET.fromstring(r.text) 

for isoform in uniprot.getchildren(): 
    # get the sequence 
    seq = isoform.find('{http://uniprot.org/uniprot}sequence') 

    # get the accession number 
    iso_accession = isoform.find('{http://uniprot.org/uniprot}accession') 

    # add the values to the dictionary 
    if seq.text and iso_accession.text: 
     isoforms[iso_accession.text] = seq.text 
+0

これは素晴らしいです、ありがとうございます:) – Estif

関連する問題