| Class | Bio::KEGG::Keggtab |
| In: |
lib/bio/db/kegg/keggtab.rb
|
| Parent: | Object |
Parse ‘keggtab’ KEGG database definition file which also includes Taxonomic category of the KEGG organisms.
The ‘keggtab’ file is included in
File format is something like
# KEGGTAB # # name type directory abbreviation # enzyme enzyme $BIOROOT/db/ideas/ligand ec ec alias enzyme (snip) # Human h.sapiens genes $BIOROOT/db/kegg/genes hsa H.sapiens alias h.sapiens hsa alias h.sapiens (snip) # # Taxonomy # (snip) animals alias hsa+mmu+rno+dre+dme+cel eukaryotes alias animals+plants+protists+fungi genes alias eubacteria+archaea+eukaryotes
| bioroot | [R] | Returns a string of the BIOROOT path prefix. |
| db_names | [R] |
Path for keggtab file and optionally set bioroot top directory. Environmental variable BIOROOT overrides bioroot.
# File lib/bio/db/kegg/keggtab.rb, line 54
54: def initialize(file_path, bioroot = nil)
55: @bioroot = ENV['BIOROOT'] || bioroot
56: @db_names = Hash.new
57: @database = Hash.new
58: @taxonomy = Hash.new
59: File.open(file_path) do |f|
60: parse_keggtab(f.read)
61: end
62: end
deprecated
# File lib/bio/db/kegg/keggtab.rb, line 141
141: def alias_list(db_name)
142: if @db_names[db_name]
143: @db_names[db_name].aliases
144: end
145: end
# File lib/bio/db/kegg/keggtab.rb, line 196
196: def child_nodes(node = 'genes')
197: return @taxonomy[node]
198: end
Returns a hash containing DB definition section of the keggtab file. If database name is given as an argument, returns a Keggtab::DB object.
# File lib/bio/db/kegg/keggtab.rb, line 102
102: def database(db_abbrev = nil)
103: if db_abbrev
104: @database[db_abbrev]
105: else
106: @database
107: end
108: end
deprecated
# File lib/bio/db/kegg/keggtab.rb, line 157
157: def db_by_abbrev(db_abbrev)
158: @db_names.each do |k, db|
159: return db if db.abbrev == db_abbrev
160: end
161: return nil
162: end
deprecated
# File lib/bio/db/kegg/keggtab.rb, line 148
148: def db_path(db_name)
149: if @bioroot
150: "#{@db_names[db_name].path.sub(/\$BIOROOT/,@bioroot)}/#{db_name}"
151: else
152: "#{@db_names[db_name].path}/#{db_name}"
153: end
154: end
deprecated
# File lib/bio/db/kegg/keggtab.rb, line 170
170: def db_path_by_abbrev(db_abbrev)
171: db_name = name_by_abbrev(db_abbrev)
172: db_path(db_name)
173: end
Returns an array of taxonomy names the organism belongs. (e.g. ‘eco’ -> [‘proteogamma’,’proteobacteria’,’eubacteria’,’genes’]) This method has aliases as keggorg2taxo, korg2taxonomy, keggorg2taxonomy.
# File lib/bio/db/kegg/keggtab.rb, line 225
225: def korg2taxo(keggorg)
226: tmp = Array.new
227: traverse = Proc.new {|keggorg|
228: @taxonomy.each do |k,v|
229: if v.include?(keggorg)
230: tmp.push(k)
231: traverse.call(k)
232: break
233: end
234: end
235: }
236: traverse.call(keggorg)
237: return tmp
238: end
deprecated
# File lib/bio/db/kegg/keggtab.rb, line 165
165: def name_by_abbrev(db_abbrev)
166: db_by_abbrev(db_abbrev).name
167: end
Returns an absolute path for the flat file database. (e.g. ’/bio/db/kegg/genes’, …)
# File lib/bio/db/kegg/keggtab.rb, line 128
128: def path(db_abbrev)
129: if @database[db_abbrev]
130: file = @database[db_abbrev].name
131: if @bioroot
132: "#{@database[db_abbrev].path.sub(/\$BIOROOT/,@bioroot)}/#{file}"
133: else
134: "#{@database[db_abbrev].path}/#{file}"
135: end
136: end
137: end
Returns an array of organism names included in the specified taxon label. (e.g. ‘proteobeta’ -> ["nme", "nma", "rso"]) This method has taxo2keggorgs, taxon2korgs, and taxon2keggorgs aliases.
# File lib/bio/db/kegg/keggtab.rb, line 203
203: def taxo2korgs(node = 'genes')
204: if node.length == 3
205: return node
206: else
207: if @taxonomy[node]
208: tmp = Array.new
209: @taxonomy[node].each do |x|
210: tmp.push(taxo2korgs(x))
211: end
212: return tmp
213: else
214: return nil
215: end
216: end
217: end
Returns a hash containing Taxonomy section of the keggtab file. If argument is given, returns a List of all child nodes belongs to the label node. (e.g. "eukaryotes" -> ["animals", "plants", "protists", "fungi"], …)
# File lib/bio/db/kegg/keggtab.rb, line 182
182: def taxonomy(node = nil)
183: if node
184: @taxonomy[node]
185: else
186: @taxonomy
187: end
188: end