1

BIopython または BioJAVA を使用して、FTP ncbi から gbk ファイルを自動的に検索および解析する方法を知っている人はいますか。BIOjava でユーティリティを検索しましたが、見つかりませんでした。私もBioPythonを試しましたが、これが私のコードです:

from Bio import Entrez
Entrez.email = "test@yahoo.com"
Entrez.tool = "MyLocalScript"
handle = Entrez.esearch(db="nucleotide", term="Mycobacterium avium[Orgn]")
record = Entrez.read(handle)
print record
print record["Count"]
id_L = record["IdList"]
print id_L
print len(id_L)

ただし、マイコバクテリウム アビウム種は 3 つしかありません (全ゲノム シーケンスと完全な注釈付き)。得られた結果は 59897 です。

BioJava または BioPython で検索を実行する方法を教えてください。それ以外の場合は、このプロセスを最初から自動化する必要があります。

ありがとうございました。

4

2 に答える 2

1

これを行う方法は、特に efetch インターフェイスを使用して id を指定することです。

Entrez.efetch(db="nucleotide", id=<ACCESSION ID HERE>, rettype="gb", retmode="text")

使用したような検索用語を使用すると、あまりにも多くの一致が返され、そのすべてがダウンロードされます。ここで検索用語を使用して 48 の異なるバイオプロジェクトを参照してください。

http://www.ncbi.nlm.nih.gov/bioproject/?term=マイコバクテリウム+アビウム

経験上、必要なものを取得する最も正確な方法は、ACCESSION ID を使用することです。

于 2014-03-16T09:15:35.927 に答える
0

自動化された方法でこの情報を NCBI で動的に検索したい場合は、ESearch インターフェイスを使用して EFetch と同じ方法で名前による検索を行うことができます。このようにして、アクセス ID を取得し、このリストを使用して EFetch でヌクレオチド情報 (または必要な情報) を取得できます。

http://www.ncbi.nlm.nih.gov/books/NBK25499/#_chapter4_ESearch_

Entrez E-Utilities は非常に柔軟ですが、必要なデータのみを取得するには、結果をフィルタリングする必要があります。

ただし、このデータをさらに分析する予定で、シーケンスの最新バージョンを最新の状態にする必要も、さまざまな種類のデータを動的に取得する必要もない場合は、必要なデータを ftp からダウンロードし、ローカルで処理/フィルタリングするだけです。これは、Entrez に対してクエリを実行するよりも高速かもしれません (私の意見では、バッチでクエリを実行すると少し遅くなります)。

于 2014-03-22T13:35:41.580 に答える