BioRubyによるKEGGデータベースへのアクセス

環境変数の設定

環境変数SOAP_USE_PROXY, http_proxyを設定する。
ただし、環境変数は、言語により大文字・小文字の区別があるので注意すること。

  • http_proxy - BioRubyの設定
  • HTTP_proxy - Perlの設定
.cshrc
    setenv SOAP_USE_PROXY on
    setenv http_proxy [プロキシのURI]

.bashrc
    export SOAP_USE_PROXY=on
    export http_proxy=[プロキシのURI]

.profile
    SOAP_USE_PROXY=on
    export SOAP_USE_PROXY
    http_proxy=[プロキシのURI]
    export http_proxy



公式サイト



KEGGデータベースへのアクセス(KEGG API使用)



BioRubyの使用方法
BioRubyシェルを起動して、BioRubyコマンド(xxx)を実行する方法

% bioruby
bioruby> xxx

ファイル(xxx.rb)を編集して、rubyから実行する方法

% ruby xxx.rb



データベース情報(メタ情報)の取得
対象データベース : SSDB, PATHWAY, GENES, LIGAND

  • keggdbs / list_databases()

  • KEGG を提供しているゲノムネットで現在利用できるデータベースの一覧を出力する。

    例)リスト出力のBioRubyシェルコマンド

    bioruby> keggdbs

    例)リスト出力のプログラム list_databases.rbの内容

    #!/usr/bin/env ruby
    #require 'pp'
    require 'bio'
     
    serv = Bio::KEGG::API.new
     
    list = serv.list_databases()
    #pp list
    list.each do |elem|
        print elem.entry_id,"\t",elem.definition,"\n"
    end

  • keggorgs / list_organisms()

  • KEGG に含まれている生物種(org)のリスト



    例)リスト出力のBioRubyシェルコマンド

    結果はソートされる。
    
    bioruby> keggorgs

    例)リスト出力のプログラム list_organisms.rbの内容

    結果はソートされない。
    
    #!/usr/bin/env ruby
    #require 'pp'
    require 'bio'
     
    serv = Bio::KEGG::API.new
     
    list = serv.list_organisms()
    #pp list
    list.each do |elem|
        print elem.entry_id,"\t",elem.definition,"\n"
    end

  • keggpathways(org) / list_pathways(org)

  • KEGG に含まれている指定した生物(hsa)のパスウェイのリスト



    例)リスト出力のBioRubyシェルコマンド

    bioruby> keggpathways("hsa")

    例)リスト出力のプログラム list_pathways.rbの内容

    #!/usr/bin/env ruby
    #require 'pp'
    require 'bio'
     
    serv = Bio::KEGG::API.new
     
    list = serv.list_pathways("hsa")
    #pp list
    list.each do |elem|
        print elem.entry_id,"\t",elem.definition,"\n"
    end



DBGETシステムに対するメソッド
ゲノムネットのDBGETのコマンドをそのまま実行できる。コマンドとしても、rbファイル上でも、使用可能。
  • binfo(string)

  • 指定したデータベースのエントリ数や更新日など詳しい最新情報を返す。

    • 返り値は"\n"区切りstring



    例)BioRubyシェル上でのメソッドの実行

    結果をファイルに保存する。
    
    bioruby> str = binfo('pathway')
    bioruby> savefile "binfo.txt", str

    例)プログラムtest_binfo.rbの内容

    #!/usr/bin/env ruby
    require 'bio'
     
    serv = Bio::KEGG::API.new
    str = serv.binfo('')
    puts str

  • bfind(string)

  • データベースに対するキーワード検索することができる。データベース名とキーワード(100個以下)を指定する。

    • 返り値は"\n"区切りstring



    例)BioRubyシェル上でのメソッドの実行

    結果を画面に出力する。
    
    bioruby> str = bfind("gb E-cadherin human")
    bioruby> puts str

  • bget(string)

  • 指定したdb:entry_idのデータベースエントリを返す。コマンドラインオプションを文字列で渡す。一度に取得できるエントリの数は100個以下。

    • 返り値は"\n"区切りstring



    例)BioRubyシェル上でのメソッドの実行

    結果を画面に出力する。
    
    bioruby> str = bget("eco:b0002 bsu:BG10065 cpd:C00209")
    bioruby> puts str

  • btit(string)

  • 指定したentry_id(100個以下)に対応するdefinitionを返す。

    • 返り値は"\n"区切りstring definition "\n"



    例)BioRubyシェル上でのメソッドの実行

    結果を画面に出力する。
    
    bioruby> str = btit("hsa:1798 mmu:13478 dme:CG5287-PA cel:Y60A3A.14")
    bioruby> puts str

  • bconv(string)

  • 外部データベースのIDを、KEGGのIDに変換する。

    • 返り値は"\n"区切りstring prefix:ID "\t" KEGG_prefix:KEGG_ID "\n"



    対応データベース

        外部データベース  データベース名の prefix
        ----------------  -----------------------
        NCBI GI           ncbi-gi:
        NCBI GeneID       ncbi-geneid:
        GenBank           genbank:
        UniGene           unigene:
        UniProt           uniprot:
        OMIM              omim:

    例)プログラムtest_pconv.rbの内容

    #!/usr/bin/env ruby
    require 'bio'
     
    serv = Bio::KEGG::API.new
    str = serv.bconv("ncbi-gi:10047086 ncbi-geneid:14751")
    puts str



LinkDB
  • get_linkdb_by_entry(entry_id, db, start, max_results)

  • 指定したentry_idから直接または間接的にリンクされているエントリの経路を、dbで指定したデータベースにたどれるまで検索する。

    • 返り値はArrayOfLinkDBRelation



    例)プログラムget_linkdb_by_entry.rbの内容

    #!/usr/bin/env ruby
    #require 'pp'
    require 'bio'
     
    serv = Bio::KEGG::API.new
     
    list = serv.get_linkdb_by_entry('eco:b0002', 'pathway', 1, 10)
    #pp list
    list.each do |elem|
        print elem.entry_id1,"\t",elem.entry_id2,"\t",elem.type,"\t",elem.path,"\n"
    end



KEGG APIメソッド
データベース情報取得以外のKEGG APIのメソッドをBioRubyシェル上で実行するには、keggapiに続けて呼び出せばよい。

  • 利用可能なメソッドの一覧は、KEGG API Japanese manualを参照のこと。
  • 返り値の型とその内部構造は、ppコマンドで確認できる。



例)BioRubyシェル上でのメソッドの実行

結果を画面に出力する。

bioruby> list = keggapi.get_genes_by_pathway("path:hsa05210")
bioruby> pp list
bioruby> puts list



BioRuby Tips

FixnumのPublicメソッドの一覧出力

$ ruby -e 'p 1.type; p 1.methods'



メソッドの返り値のチェック方法
ppクラスを使用して、メソッドの返り値の型とその内部構造をチェックできる。



例)ppクラス使用例

test_pp.rbの内容

#!/usr/bin/env ruby
require 'pp'
require 'bio'
 
serv = Bio::KEGG::API.new
list = serv.get_elements_by_pathway('path:hsa05210')
pp list