2016-05-18 6 views
1

私は、Pythonスクリプトを使用して、テキストファイル内の複数のアクセッション番号のfastaシーケンスをダウンロードするのが難しいです。その後、私はエラーを取得Pythonの複数の受託番号からncbiに対応するfastaタンパク質配列を返すにはどうすればよいですか?

import sys 
from Bio import Entrez 
Entrez.email = "[email protected]" 
handle = Entrez.efetch(db="protein", id="EAS03220", rettype="fasta") 
print(handle.read()) 

をしかし、私はそれをリストとしてファイルを与えることをしようとすると(下記参照):私は、例えば、単一のアクセッション番号は、このOKを行うことができます。

import sys 
from Bio import Entrez 
Entrez.email = "[email protected]"  

accessions = [] 
for line in open(sys.argv[1],"r"): 
    line = line.strip() 
    accessions.append(line) 

for num in accessions: 
    handle = Entrez.efetch(db="protein", id="num", rettype="fasta") 
    print(handle.read()) 

ここだと私の入力ファイルがどのように見えるかの例:

EAS06781 
EAS07087 
EAS07113 
EAS07200 
EAS07226 
EAS07230 

私は解決策は簡単であると確信しているが、私はのための初心者の書籍のためのフォーラム、NCBIヘルプページやPythonを読んでいます時間とどこにもない!前もって感謝します。

答えて

2

numstringとして渡していますが、変数ではありません。 引用符を削除してください。うまくいきます。

handle = Entrez.efetch(db="protein", id=num, rettype="fasta") 
+0

ありがとうございました!単純なエラーであることは分かっていました。 – wl284

関連する問題