Python モジュール: Biopython

インストール

  • pip からインストール
    $ sudo pip install biopython

モジュールの読み込みと初期化

from Bio import Entrez
Entrez.email = "メールアドレス"
Entrez.tool = "ツール名"
  • Entrez.email: サーバに負荷をかけている場合に、指定したメールアドレス宛に連絡が届く (これを指定しない場合は利用できない)
  • Entrez.tool: アプリを作成した場合にここで指定したツール名が作用する (必須ではない)

データベース一覧の取得

dblist = Entrez.einfo()
dblist_parsed = Entrez.read(dblist)
print(dblist_parsed["Dblist"])
  • read() によって、キーが Dblist のみのディクショナリに変換される。
    • Dblist: [DbName1, DbName2, …]

データベース取得

db = Entrez.einfo(db = "データベース名")
print(Entrez.read(db))
  • einfo() にデータベース名を与えると、特定のデータベース情報を取得できる。
    • DbInfo: [Count, DbName, …, FieldList, …]
  • よく使うデータベースは、nucleotidenuccore

データベースの検索

result = Entrez.esearch(db = "データベース名", term = "検索条件", retmax = 100)
print(Entrez.read(result))
  • 指定データベースから、指定した条件で検索する。
  • ヒトの特定の遺伝子名の配列を検出するための条件: 遺伝子名[Gene] AND 遺伝子名[Title] AND Homo sapiens[Organism] AND Genomic DNA[Filter] AND RefSeq[Filter]“
  • retmax で表示する最大数を指定する。デフォルトは 20。
  • マッチしたデータ数は、result[“Counter”] に格納されている。
  • 詳細の ID は result[“IdList”] にリスト形式で格納されているが、retmax の分しか格納されない。

配列ファイル (Genbank, Fasta) の取得&保存

obj_gb = Entrez.efetch(db = "データベース名", id = 配列ID, rettype = "gb", retmode = "text")
obj_output = open(OUTPUT_PATH, "w")
obj_output.write(obj_gb.read())