バイオインフォマティクスプログラム中で、NCBIの管理するデータベースに登録された配列ファイルをダウンロードしたいことがたまにあります。手作業は何かと煩雑なので。そこで、Biopythonを利用して指定したアクセッション番号の配列データを自動でダウンロードするプログラムを作ったので、そのまとめです。完成したコードはこのページの一番下に載せてあります。Entrezについてコードの補足コードEntrezについてプログラムによるダウンロードの需要は広く全世界であるようで、NCBIはEntrez(アントレと読むらしいです)と呼ばれるデータベースを用意しアクセスを受け付けています。Entrezの使用に関しては色々と注意事項があるようです。詳しくはNCBIのガイドラインをご覧ください。個人的に重要だと感じたのは以下の3点です。アクセス元の身元が分かるようにメールアドレスをスクリプト中で明示する。Entrezへのアクセスは1秒間に3回までとする。Biopythonなら自動で調整してくれます。ヒトの全ゲノム配列など、巨大なデータについてはFTPを利用するなど別の方法を検討する。連絡先を伝えることで、過度なアクセスをしてしまった場合などの問題発生時に、メールで連絡を受け取れるようにします。アクセス禁止は絶対に避けたいはずですので、記載することをおすすめします。Biopythonならメールアドレスの指定も簡単です。関数ごとに引数で指定しても良いのですが、煩雑な上に忘れそうなので、スクリプトのトップでグローバルに指定します。今回は、以下のようにアクセッション番号が記載されたファイルを渡すと、各番号に対応したGenbankファイルを自動でダウンロードしてくれるPythonスクリプトを作成しました。ダウンロードするデータはバクテリアの全ゲノム情報を想定しています。Num1Num2Num3アクセッション番号を利用して、Entrezからファイルをダウンロードするには、Biopythonのefetch関数を使うと簡単です。以下はBiopythonの公式チュートリアルに載っている使用例です。print(handle.read())db引数で利用するデータベースの種類を、id引数でダウンロードするファイルのアクセッション番号を指定しています。rettypeとretmodeについては理解が不十分なのですが、ダウンロードしたいファイルの形式に合わせて適宜変更する必要があるようです。FASTAファイルをダウンロードする場合はrettype="fasta"と指定します。今回はCDS情報まで記載されたGenbankファイルをダウンロードしたいので、dbに"nucleotide"を、retmodeに"gbwithparts"を、retmodeに"text"を指定しました。Biostarsのこちらの回答を参考にしましたが、NCBIのサイトにも一応記載があります。ダウンロードするファイルの種類に応じて適宜引数を変更する必要があります。詳しい情報を知りたい方は、Biopythonの公式チュートリアルが分かりやすいのでおすすめです。trimAL,...オーソログ推定プログラムのOrthoFinderですが、便利なことにオ...2019-01-23BiopythonでFASTA形式をPhylip形式に変換する解析に使うプログラムの中には、FASTA形式の配列ファイルではな...2019-01-10Biopythonで入力ファイルがFASTA形式か調べる与えられた配列ファイルをプログラムで処理する際に、ファイル...2018-10-26FastTreeの使い方まとめFastTreeは近似最尤法による系統樹推定プログラムです。大規模...2018-10-21IQ-Treeの使い方まとめIQ-Treeは最尤法による系統樹作成プログラムです。»プロフィール取り留めのないブログですがお役に立てれば幸いです。(7)月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。