\

PythonとBiopythonを使用して、NCBIのEntrezデータベースにアクセスする方法について説明します。BiopythonのBio.Entrezモジュールを使用すると、PubMedやGenBankのレコードにアクセスすることが可能になります。

Entrezとは

EntrezはPubMed, GenBank, GEO等のNCBIのデータベースに対する、ユーザー向けに作られたデータ取得システムです。ブラウザから直接アクセスして手動でクエリを行うこともできますが、BiopythonのBio.Entrezモジュールを介したプログラムによるアクセスも可能です。

Bio.Entrezモジュール

Bio.Entrezモジュールは、Entrez Programming Utilities (a.k.a EUtils)を利用しています。このモジュールはクエリ用のURLが正しいことを保証し、クエリの頻度が (NCBIの要求を満たすよう)最大でも一秒間に三度以下になることを保証します。

XMLのパース

Entrez Programming Utilitiesによって返されるアウトプットは大抵XMLフォーマットで書かれています。パースの方法はいくつかあります。

  1. Bio.Entrezのパーサーを使用してPythonのオブジェクトに変換する。
  2. Python標準ライブラリのDOMパーサを用いる。
  3. Python標準ライブラリのSAX (Simple API for XML)パーサを用いる。
  4. XMLのraw textを読み、文字列解析をして扱う。

ここでは、Bio.Entrezのパーサーについて説明します。

Bio.Entrezのパーサー

Bio.Entrezは、NCBIによって使用されるDTDファイルのほとんどを含んでいます。このDTDファイルを用いて取得したXMLのパースを行います。まれに、特定のXMLファイルと対応するDTDファイルが、Biopythonのディストリビューションから欠けている場合があります。具体的には、NCBIがDTDをアップデートした際に発生する可能性があります。

このような場合、Entrez.readが警告メッセージを表示し、欠けているDTDファイルのURLと名前を提示します。そしてパーサはXMLのパースを続行するため、DTDファイルをweb上から取得しようと試みます。しかし、DTDファイルがローカルにあった方がパースははるかに早く進みます。

以上がPythonとBiopythonを使用したNCBI XMLパーサーの基本的な使い方になります。これを基に、さらに深く学んでいくことをお勧めします。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です