3

biopython を使用して、特定の機関によって配列決定された生物のリストのすべてのタンパク質をダウンロードしようとしています。各生物に関連付けられた生物名と BioProject があります。具体的には、いくつかの最近のゲノム配列で見つかったタンパク質を分析しようとしています。efetchで可能な限り簡単な方法で、タンパク質ファイルをまとめてダウンロードしたいと思います。関連する生物のすべてのタンパク質 FASTA シーケンスをダウンロードする私の最近の試みは次のとおりです。

  net_handle = Entrez.efetch(db="protein",
                             id=mydictionary["BioPROJECT"][i],
                             rettype="fasta")

各生物に関連するタンパク質はおよそ 3000 ~ 4500 あります。そのため、esearch を使用して各タンパク質を一度に 1 つずつ efetch しようとするのは現実的ではありません。さらに、すべてのタンパク質を含む各生物に対して 1 つの FASTA ファイルが必要です。

残念ながら、このコード行を実行すると、次のエラーが表示されます: urllib2.HTTPError: HTTP Error 400: Bad Request.

私が興味を持っているすべての生物について表示されます。Nucleotide データバンクでそれらのゲノム配列を見つけて、「タンパク質コード配列」をダウンロードすることはできません。

NCBI サーバーを過負荷にしない方法で、必要なこれらのタンパク質配列を取得するにはどうすればよいですか? 私は、NCBI の Web ブラウザーでできることを再現できることを望んでいました: タンパク質データベースを選択し、Bioproject 番号を検索し、見つかったすべてのタンパク質配列を単一の fasta ファイルに保存します ([送信先] ドロップダウンの下)。メニュー)

4

2 に答える 2

3

金鉱であるPATRICの FTPからシーケンスをダウンロードしてみてください。まず、はるかによく整理されており、次に、データが NCBI よりもはるかにきれいです。ちなみに、PATRIC は NIH の支援を受けています。

PATRIC には約 15000 以上のゲノムが含まれており、それらの DNA、タンパク質、タンパク質コード領域の DNA、EC、パスウェイ、genbank を別のファイルで提供しています。超便利。そこを見てください:

ftp://ftp.patricbrc.org/patric2

最初にすべての生物から必要なファイルをすべてダウンロードし、必要なファイルをすべてハード ドライブに保存したら、それらを取得することをお勧めします。次の Python スクリプトは、PATRIC が提供する EC 番号の注釈ファイルを一度にダウンロードします (プロキシがある場合は、コメント セクションで設定する必要があります)。

from ftplib import FTP
import sys, os

#######if you have proxy

####fill in you proxy ip here
#site = FTP('1.1.1.1')

#site.set_debuglevel(1)
#msg = site.login('anonymous@ftp.patricbrc.org')

site = FTP("ftp.patricbrc.org")
site.login()
site.cwd('/patric2/current_release/ec/')

bacteria_list = []
site.retrlines('LIST', bacteria_list.append)

output = sys.argv[1]
if not output.endswith("/"):
    output += "/"

print "bacteria_list: ", len(bacteria_list)


for c in bacteria_list:

    path_name = c.strip(" ").split()[-1]

    if "PATRIC.ec" in path_name:

        filename = path_name.split("/")[-1]
        site.retrbinary('RETR ' + path_name, open(output + filename , 'w').write)
于 2014-06-20T22:20:52.073 に答える