lib/bio/io/keggapi.rb in bio-1.0.0 vs lib/bio/io/keggapi.rb in bio-1.1.0
- old
+ new
@@ -1,57 +1,230 @@
#
-# bio/io/keggapi.rb - KEGG API access class
+# = bio/io/keggapi.rb - KEGG API access class
#
-# Copyright (C) 2003, 2004 KATAYAMA Toshiaki <k@bioruby.org>
+# Copyright:: Copyright (C) 2003, 2004 Toshiaki Katayama <k@bioruby.org>
+# License:: The Ruby License
#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
+# $Id: keggapi.rb,v 1.14 2007/04/05 23:35:41 trevor Exp $
#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# $Id: keggapi.rb,v 1.11 2005/12/18 19:10:55 k Exp $
-#
require 'bio/io/soapwsdl'
require 'uri'
require 'net/http'
+require 'bio/command'
module Bio
class KEGG
+# == Description
+#
+# KEGG API is a web service to use KEGG system via SOAP/WSDL.
+#
+# == References
+#
+# For more informations on KEGG API, see the following site and read the
+# reference manual.
+#
+# * http://www.genome.jp/kegg/soap/
+# * http://www.genome.jp/kegg/soap/doc/keggapi_manual.html
+#
+# == List of methods
+#
+# As of KEGG API v5.0
+#
+# * list_databases
+# * list_organisms
+# * list_pathways(org)
+# * binfo(string)
+# * bget(string)
+# * bfind(string)
+# * btit(string)
+# * get_linkdb_by_entry(entry_id, db, start, max_results)
+# * get_best_best_neighbors_by_gene(genes_id, start, max_results)
+# * get_best_neighbors_by_gene(genes_id, start, max_results)
+# * get_reverse_best_neighbors_by_gene(genes_id, start, max_results)
+# * get_paralogs_by_gene(genes_id, start, max_results)
+# * get_similarity_between_genes(genes_id1, genes_id2)
+# * get_motifs_by_gene(genes_id, db)
+# * get_genes_by_motifs(motif_id_list, start, max_results)
+# * get_ko_by_gene(genes_id)
+# * get_ko_members(ko_id)
+# * get_oc_members_by_gene(genes_id, start, max_results)
+# * get_pc_members_by_gene(genes_id, start, max_results)
+# * mark_pathway_by_objects(pathway_id, object_id_list)
+# * color_pathway_by_objects(pathway_id, object_id_list, fg_color_list, bg_color_list)
+# * get_genes_by_pathway(pathway_id)
+# * get_enzymes_by_pathway(pathway_id)
+# * get_compounds_by_pathway(pathway_id)
+# * get_reactions_by_pathway(pathway_id)
+# * get_pathways_by_genes(genes_id_list)
+# * get_pathways_by_enzymes(enzyme_id_list)
+# * get_pathways_by_compounds(compound_id_list)
+# * get_pathways_by_reactions(reaction_id_list)
+# * get_linked_pathways(pathway_id)
+# * get_genes_by_enzyme(enzyme_id, org)
+# * get_enzymes_by_gene(genes_id)
+# * get_enzymes_by_compound(compound_id)
+# * get_enzymes_by_reaction(reaction_id)
+# * get_compounds_by_enzyme(enzyme_id)
+# * get_compounds_by_reaction(reaction_id)
+# * get_reactions_by_enzyme(enzyme_id)
+# * get_reactions_by_compound(compound_id)
+# * get_genes_by_organism(org, start, max_results)
+# * get_number_of_genes_by_organism(org)
+#
+# == KEGG API methods implemented only in BioRuby
+#
+# In BioRuby, returned values are added filter method to pick up
+# values in a complex data type as an array.
+#
+# #!/usr/bin/env ruby
+#
+# require 'bio'
+#
+# serv = Bio::KEGG::API.new
+# results = serv.get_best_neighbors_by_gene("eco:b0002", "bsu")
+#
+# # case 0 : without filter
+# results.each do |hit|
+# print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
+# end
+#
+# # case 1 : select gene names and SW score only
+# fields = [:genes_id1, :genes_id2, :sw_score]
+# results.each do |hit|
+# puts hit.filter(fields).join("\t")
+# end
+#
+# # case 2 : also uses aligned position in each amino acid sequence etc.
+# fields1 = [:genes_id1, :start_position1, :end_position1, :best_flag_1to2]
+# fields2 = [:genes_id2, :start_position2, :end_position2, :best_flag_2to1]
+# results.each do |hit|
+# print "> score: ", hit.sw_score, ", identity: ", hit.identity, "\n"
+# print "1:\t", hit.filter(fields1).join("\t"), "\n"
+# print "2:\t", hit.filter(fields2).join("\t"), "\n"
+# end
+#
+# Using filter method will make it easy to change fields to select and
+# keep the script clean.
+#
+# * Bio::KEGG::API#get_all_neighbors_by_gene(genes_id, org)
+# * Bio::KEGG::API#get_all_best_best_neighbors_by_gene(genes_id)
+# * Bio::KEGG::API#get_all_best_neighbors_by_gene(genes_id)
+# * Bio::KEGG::API#get_all_reverse_best_neighbors_by_gene(genes_id)
+# * Bio::KEGG::API#get_all_paralogs_by_gene(genes_id)
+# * Bio::KEGG::API#get_all_genes_by_motifs(motif_id_list)
+# * Bio::KEGG::API#get_all_oc_members_by_gene(genes_id)
+# * Bio::KEGG::API#get_all_pc_members_by_gene(genes_id)
+# * Bio::KEGG::API#get_all_genes_by_organism(org)
+#
+# These methods are wrapper for the methods without _all_ in its name
+# and internally iterate to retrive all the results using start/max_results
+# value pairs described above. For example,
+#
+# #!/usr/bin/env ruby
+#
+# require 'soap/wsdlDriver'
+#
+# wsdl = "http://soap.genome.jp/KEGG.wsdl"
+# serv = SOAP::WSDLDriverFactory.new(wsdl).create_driver
+# serv.generate_explicit_type = true
+#
+# start = 1
+# max_results = 100
+#
+# loop do
+# results = serv.get_best_neighbors_by_gene('eco:b0002', start, max_results)
+# break unless results # when no more results returned
+# results.each do |hit|
+# print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
+# end
+# start += max_results
+# end
+#
+# can be witten as
+#
+# #!/usr/bin/env ruby
+#
+# require 'bio'
+#
+# serv = Bio::KEGG::API.new
+#
+# results = serv.get_all_best_neighbors_by_gene('eco:b0002')
+# results.each do |hit|
+# print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
+# end
+#
+#
+# * Bio::KEGG::API#save_image(url, filename = nil)
+#
+# Some methods of the KEGG API will return a URL of the generated image.
+# This method save an image specified by the URL. The filename can be
+# specified by its second argument, otherwise basename of the URL will
+# be used.
+#
+# #!/usr/bin/env ruby
+#
+# require 'bio'
+#
+# serv = Bio::KEGG::API.new("http://soap.genome.jp/v3.0/KEGG.wsdl")
+#
+# list = ["eco:b1002", "eco:b2388"]
+# url = serv.mark_pathway_by_objects("path:eco00010", list)
+#
+# # Save with the original filename (eco00010.gif in this case)
+# serv.save_image(url)
+#
+# # or save as "save_image.gif"
+# serv.save_image(url, "save_image.gif")
+#
+# * Bio::KEGG::API#get_entries(entry_id_list)
+# * Bio::KEGG::API#get_aaseqs(entry_id_list)
+# * Bio::KEGG::API#get_naseqs(entry_id_list)
+# * Bio::KEGG::API#get_definitions(entry_id_list)
+#
+# These methods are for the shortcut and backward compatibility
+# (these methods existed in the older version of the KEGG API).
+#
class API < Bio::SOAPWSDL
SERVER_URI = "http://soap.genome.jp/KEGG.wsdl"
+ # Connect to the KEGG API's SOAP server. A WSDL file will be automatically
+ # downloaded and parsed to generate the SOAP client driver. The default URL
+ # for the WSDL is http://soap.genome.jp/KEGG.wsdl but it can be changed by
+ # the argument or by wsdl= method.
def initialize(wsdl = nil)
@wsdl = wsdl || SERVER_URI
@log = nil
@start = 1
@max_results = 100
create_driver
end
- attr_accessor :start, :max_results
+ # Returns current value for the 'start' count for the methods having
+ # start/max_results argument pairs or changes the default value for
+ # the 'start' count.
+ attr_accessor :start
+
+ # Returns current value for the 'max_results' number for the methods having
+ # start/max_results argument pairs or changes the default value for the
+ # 'max_results' count. If your request timeouts, try smaller value for
+ # the max_results.
+ attr_accessor :max_results
+
def method_missing(*arg)
begin
results = @driver.send(*arg)
rescue Timeout::Error
retry
end
results = add_filter(results)
return results
end
+
# def get_all_neighbors_by_gene(genes_id, org)
# get_all(:get_neighbors_by_gene, genes_id, org)
# end
def get_all_best_best_neighbors_by_gene(genes_id)
@@ -93,11 +266,11 @@
def save_image(url, filename = nil)
schema, user, host, port, reg, path, = URI.split(url)
filename ||= File.basename(path)
- http = Net::HTTP.new(host, port)
+ http = Bio::Command.new_http(host, port)
response, = http.get(path)
File.open(filename, "w+") do |f|
f.print response.body
end
return filename
@@ -198,11 +371,11 @@
puts ">>> KEGG API"
serv = Bio::KEGG::API.new
# serv.log = STDERR
- puts "--- parameters"
+ puts "# * parameters"
puts " wsdl : #{serv.wsdl}"
puts " log : #{serv.log}"
puts " start : #{serv.start}"
puts " max_results : #{serv.max_results}"
@@ -250,34 +423,34 @@
puts serv.bget("eco:b0002 eco:b0003")
puts "### btit('eco:b0002 eco:b0003')"
puts serv.btit("eco:b0002 eco:b0003")
- puts "--- get_entries(['eco:b0002', 'eco:b0003'])"
+ puts "# * get_entries(['eco:b0002', 'eco:b0003'])"
puts serv.get_entries(["eco:b0002", "eco:b0003"])
- puts "--- get_aaseqs(['eco:b0002', 'eco:b0003'])"
+ puts "# * get_aaseqs(['eco:b0002', 'eco:b0003'])"
puts serv.get_aaseqs(["eco:b0002", "eco:b0003"])
- puts "--- get_naseqs(['eco:b0002', 'eco:b0003'])"
+ puts "# * get_naseqs(['eco:b0002', 'eco:b0003'])"
puts serv.get_naseqs(["eco:b0002", "eco:b0003"])
- puts "--- get_definitions(['eco:b0002', 'eco:b0003'])"
+ puts "# * get_definitions(['eco:b0002', 'eco:b0003'])"
puts serv.get_definitions(["eco:b0002", "eco:b0003"])
- puts "--- get_definitions(('eco:b0001'..'eco:b0200').to_a)"
+ puts "# * get_definitions(('eco:b0001'..'eco:b0200').to_a)"
puts serv.get_definitions(("eco:b0001".."eco:b0200").to_a)
puts "=== LinkDB"
puts "### get_linkdb_by_entry('eco:b0002', 'pathway', 1, 5)"
list = serv.get_linkdb_by_entry("eco:b0002", "pathway", 1, 5)
list.each do |link|
puts [ link.entry_id1, link.entry_id2, link.type, link.path ].join("\t")
end
- puts "--- get_all_linkdb_by_entry('eco:b0002', 'pathway')"
+ puts "# * get_all_linkdb_by_entry('eco:b0002', 'pathway')"
list = serv.get_all_linkdb_by_entry("eco:b0002", "pathway")
list.each do |link|
puts [ link.entry_id1, link.entry_id2, link.type, link.path ].join("\t")
end
@@ -287,11 +460,11 @@
list = serv.get_neighbors_by_gene("eco:b0002", "all", 1, 5)
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
- puts "--- get_all_neighbors_by_gene('eco:b0002', 'bsu')"
+ puts "# * get_all_neighbors_by_gene('eco:b0002', 'bsu')"
list = serv.get_all_neighbors_by_gene("eco:b0002", "bsu")
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
@@ -299,11 +472,11 @@
list = serv.get_best_best_neighbors_by_gene("eco:b0002", 1, 5)
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
- puts "--- get_all_best_best_neighbors_by_gene('eco:b0002')"
+ puts "# * get_all_best_best_neighbors_by_gene('eco:b0002')"
list = serv.get_all_best_best_neighbors_by_gene("eco:b0002")
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
@@ -311,11 +484,11 @@
list = serv.get_best_neighbors_by_gene("eco:b0002", 1, 5)
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
- puts "--- get_all_best_neighbors_by_gene('eco:b0002')"
+ puts "# * get_all_best_neighbors_by_gene('eco:b0002')"
list = serv.get_all_best_neighbors_by_gene("eco:b0002")
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
@@ -323,11 +496,11 @@
list = serv.get_reverse_best_neighbors_by_gene("eco:b0002", 1, 5)
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
- puts "--- get_all_reverse_best_neighbors_by_gene('eco:b0002')"
+ puts "# * get_all_reverse_best_neighbors_by_gene('eco:b0002')"
list = serv.get_all_reverse_best_neighbors_by_gene("eco:b0002")
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
@@ -335,11 +508,11 @@
list = serv.get_paralogs_by_gene("eco:b0002", 1, 5)
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
- puts "--- get_all_paralogs_by_gene('eco:b0002')"
+ puts "# * get_all_paralogs_by_gene('eco:b0002')"
list = serv.get_all_paralogs_by_gene("eco:b0002")
list.each do |hit|
puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
end
@@ -389,11 +562,11 @@
end if list
puts "### get_motifs_by_gene('eco:b0002', 'all')"
list = serv.get_motifs_by_gene("eco:b0002", "all")
list.each do |motif|
- puts "--- motif result"
+ puts "# * motif result"
puts " motif_id : #{motif.motif_id}"
puts " definition : #{motif.definition}"
puts " genes_id : #{motif.genes_id}"
puts " start_position : #{motif.start_position}"
puts " end_position : #{motif.end_position}"
@@ -405,11 +578,11 @@
list = serv.get_genes_by_motifs(["pf:ACT", "ps:ASPARTOKINASE"], 1, 5)
list.each do |gene|
puts [ gene.entry_id, gene.definition ].join("\t")
end
- puts "--- get_all_genes_by_motifs(['pf:ACT', 'ps:ASPARTOKINASE'])"
+ puts "# * get_all_genes_by_motifs(['pf:ACT', 'ps:ASPARTOKINASE'])"
list = serv.get_all_genes_by_motifs(["pf:ACT", "ps:ASPARTOKINASE"])
list.each do |gene|
puts [ gene.entry_id, gene.definition ].join("\t")
end
@@ -431,11 +604,11 @@
list = serv.get_oc_members_by_gene("eco:b0002", 1, 5)
list.each do |gene|
puts gene
end
- puts "--- get_all_oc_members_by_gene('eco:b0002')"
+ puts "# * get_all_oc_members_by_gene('eco:b0002')"
list = serv.get_all_oc_members_by_gene("eco:b0002")
list.each do |gene|
puts gene
end
@@ -443,11 +616,11 @@
list = serv.get_pc_members_by_gene("eco:b0002", 1, 5)
list.each do |gene|
puts gene
end
- puts "--- get_all_pc_members_by_gene('eco:b0002')"
+ puts "# * get_all_pc_members_by_gene('eco:b0002')"
list = serv.get_all_pc_members_by_gene("eco:b0002")
list.each do |gene|
puts gene
end
@@ -469,11 +642,11 @@
fg_list = ["blue", "#00ff00"]
bg_list = ["#ff0000", "yellow"]
url = serv.color_pathway_by_objects("path:eco00053", obj_list, fg_list, bg_list)
puts url
- #puts "--- save_image(#{url})"
+ #puts "# * save_image(#{url})"
#filename = serv.save_image(url, "test.gif")
#filename = serv.save_image(url)
#puts filename
puts "==== objects on pathway"
@@ -614,11 +787,11 @@
list = serv.get_genes_by_organism("mge", 1, 5)
list.each do |gene|
puts gene
end
- puts "--- get_all_genes_by_organism('mge')"
+ puts "# * get_all_genes_by_organism('mge')"
list = serv.get_all_genes_by_organism("mge")
list.each do |gene|
puts gene
end
@@ -626,238 +799,6 @@
puts "### get_number_of_genes_by_organism(org)"
puts serv.get_number_of_genes_by_organism("mge")
end
-
-
-=begin
-
-= Bio::KEGG::API
-
-KEGG API is a web service to use KEGG system via SOAP/WSDL. For more
-informations on KEGG API, see the following site and its reference manual.
-
- * ((<URL:http://www.genome.jp/kegg/soap/>))
-
---- Bio::KEGG::API.new(wsdl = nil)
-
-Connect to the KEGG API's SOAP server. A WSDL file will be automatically
-downloaded and parsed to generate the SOAP client driver. The default URL
-for the WSDL is http://soap.genome.jp/KEGG.wsdl but it can be changed by
-the argument or by wsdl= method.
-
---- Bio::KEGG::API#wsdl
-
-Returns URL of the current WSDL file.
-
---- Bio::KEGG::API#wsdl=(url)
-
-Change the URL for WSDL file of the KEGG API if needed for some reason:
-
- serv = Bio::KEGG::API.new("http://133.103.100.186/KEGG.wsdl")
-
-or
-
- serv = Bio::KEGG::API.new
- serv.wsdl = "http://133.103.100.186/KEGG.wsdl"
-
-note that both can't read two or more different WSDL files.
-
---- Bio::KEGG::API#log
-
-Returns current logging IO.
-
---- Bio::KEGG::API#log=(io)
-
-Change the IO for logging. The argument is passed to wiredump_dev method
-of the SOAP4R, thus
-
- serv = Bio::KEGG::API.new
- serv.log = STDERR
-
-will print all the SOAP transactions in standard error.
-This feature is especially useful for debug.
-
---- Bio::KEGG::API#start
-
-Returns current value for the 'start' count for the methods having
-start/max_results argument pairs.
-
---- Bio::KEGG::API#start=(number)
-
-Changes the default value for the 'start' count.
-
---- Bio::KEGG::API#max_results
-
-Returns current value for the 'max_results' number for the methods having
-start/max_results argument pairs.
-
---- Bio::KEGG::API#max_results=(number)
-
-Changes the default value for the 'max_results' count.
-If your request timeouts, try smaller value for the max_results.
-
-=== KEGG API methods implemented only in BioRuby
-
-In BioRuby, returned values are added filter method to pick up
-values in a complex data type as an array.
-
- #!/usr/bin/env ruby
-
- require 'bio'
-
- serv = Bio::KEGG::API.new
- results = serv.get_best_neighbors_by_gene("eco:b0002", "bsu")
-
- # case 0 : without filter
- results.each do |hit|
- print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
- end
-
- # case 1 : select gene names and SW score only
- fields = [:genes_id1, :genes_id2, :sw_score]
- results.each do |hit|
- puts hit.filter(fields).join("\t")
- end
-
- # case 2 : also uses aligned position in each amino acid sequence etc.
- fields1 = [:genes_id1, :start_position1, :end_position1, :best_flag_1to2]
- fields2 = [:genes_id2, :start_position2, :end_position2, :best_flag_2to1]
- results.each do |hit|
- print "> score: ", hit.sw_score, ", identity: ", hit.identity, "\n"
- print "1:\t", hit.filter(fields1).join("\t"), "\n"
- print "2:\t", hit.filter(fields2).join("\t"), "\n"
- end
-
-Using filter method will make it easy to change fields to select and
-keep the script clean.
-
-
---- Bio::KEGG::API#get_all_neighbors_by_gene(genes_id, org)
---- Bio::KEGG::API#get_all_best_best_neighbors_by_gene(genes_id)
---- Bio::KEGG::API#get_all_best_neighbors_by_gene(genes_id)
---- Bio::KEGG::API#get_all_reverse_best_neighbors_by_gene(genes_id)
---- Bio::KEGG::API#get_all_paralogs_by_gene(genes_id)
---- Bio::KEGG::API#get_all_genes_by_motifs(motif_id_list)
---- Bio::KEGG::API#get_all_oc_members_by_gene(genes_id)
---- Bio::KEGG::API#get_all_pc_members_by_gene(genes_id)
---- Bio::KEGG::API#get_all_genes_by_organism(org)
-
-These methods are wrapper for the methods without _all_ in its name
-and internally iterate to retrive all the results using start/max_results
-value pairs described above. For example,
-
- #!/usr/bin/env ruby
-
- require 'soap/wsdlDriver'
-
- wsdl = "http://soap.genome.jp/KEGG.wsdl"
- serv = SOAP::WSDLDriverFactory.new(wsdl).create_driver
- serv.generate_explicit_type = true
-
- start = 1
- max_results = 100
-
- loop do
- results = serv.get_best_neighbors_by_gene('eco:b0002', start, max_results)
- break unless results # when no more results returned
- results.each do |hit|
- print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
- end
- start += max_results
- end
-
-can be witten as
-
- #!/usr/bin/env ruby
-
- require 'bio'
-
- serv = Bio::KEGG::API.new
-
- results = serv.get_all_best_neighbors_by_gene('eco:b0002')
- results.each do |hit|
- print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
- end
-
-
---- Bio::KEGG::API#save_image(url, filename = nil)
-
-Some methods of the KEGG API will return a URL of the generated image.
-This method save an image specified by the URL. The filename can be
-specified by its second argument, otherwise basename of the URL will
-be used.
-
- #!/usr/bin/env ruby
-
- require 'bio'
-
- serv = Bio::KEGG::API.new("http://soap.genome.jp/v3.0/KEGG.wsdl")
-
- list = ["eco:b1002", "eco:b2388"]
- url = serv.mark_pathway_by_objects("path:eco00010", list)
-
- # Save with the original filename (eco00010.gif in this case)
- serv.save_image(url)
-
- # or save as "save_image.gif"
- serv.save_image(url, "save_image.gif")
-
---- Bio::KEGG::API#get_entries(entry_id_list)
---- Bio::KEGG::API#get_aaseqs(entry_id_list)
---- Bio::KEGG::API#get_naseqs(entry_id_list)
---- Bio::KEGG::API#get_definitions(entry_id_list)
-
-For the shortcut and backward compatibility.
-
-
-=== General KEGG API methods
-
-For the methods listed below, consult the KEGG API manual at
-
- * ((<URL:http://www.genome.jp/kegg/soap/doc/keggapi_manual.html>))
-
---- list_databases
---- list_organisms
---- list_pathways(org)
---- binfo(string)
---- bget(string)
---- bfind(string)
---- btit(string)
---- get_linkdb_by_entry(entry_id, db, start, max_results)
-#--- get_neighbors_by_gene(genes_id, org, start, max_results)
---- get_best_best_neighbors_by_gene(genes_id, start, max_results)
---- get_best_neighbors_by_gene(genes_id, start, max_results)
---- get_reverse_best_neighbors_by_gene(genes_id, start, max_results)
---- get_paralogs_by_gene(genes_id, start, max_results)
---- get_similarity_between_genes(genes_id1, genes_id2)
---- get_motifs_by_gene(genes_id, db)
---- get_genes_by_motifs(motif_id_list, start, max_results)
---- get_ko_by_gene(genes_id)
---- get_ko_members(ko_id)
---- get_oc_members_by_gene(genes_id, start, max_results)
---- get_pc_members_by_gene(genes_id, start, max_results)
---- mark_pathway_by_objects(pathway_id, object_id_list)
---- color_pathway_by_objects(pathway_id, object_id_list, fg_color_list, bg_color_list)
---- get_genes_by_pathway(pathway_id)
---- get_enzymes_by_pathway(pathway_id)
---- get_compounds_by_pathway(pathway_id)
---- get_reactions_by_pathway(pathway_id)
---- get_pathways_by_genes(genes_id_list)
---- get_pathways_by_enzymes(enzyme_id_list)
---- get_pathways_by_compounds(compound_id_list)
---- get_pathways_by_reactions(reaction_id_list)
---- get_linked_pathways(pathway_id)
---- get_genes_by_enzyme(enzyme_id, org)
---- get_enzymes_by_gene(genes_id)
---- get_enzymes_by_compound(compound_id)
---- get_enzymes_by_reaction(reaction_id)
---- get_compounds_by_enzyme(enzyme_id)
---- get_compounds_by_reaction(reaction_id)
---- get_reactions_by_enzyme(enzyme_id)
---- get_reactions_by_compound(compound_id)
---- get_genes_by_organism(org, start, max_results)
---- get_number_of_genes_by_organism(org)
-
-=end