module Bio::Blast::Remote::GenomeNet::Information
Information for GenomeNet BLAST search.
Private Instance Methods
_parse_databases()
click to toggle source
gets information from remote host and parses database information
# File lib/bio/appl/blast/genomenet.rb, line 97 def _parse_databases if defined? @parse_databases return nil if @parse_databases end databases = {} dbdescs = {} key = nil host = Bio::Blast::Remote::Genomenet::Host http = Bio::Command.new_http(host) result = http.get('/tools/blast/') #p result.body result.body.each_line do |line| case line when /\"set\_dbtype\(this\.form\,\(prot|nucl)\\)\"/ key = $1 databases[key] ||= [] dbdescs[key] ||= {} when /\<input *type\=\"radio\" *name\=\"dbname\" *value\=\"([^\"]+)\"[^\>]*\>([^\<\>]+)/ db = $1.freeze desc = $2.strip.freeze databases[key].push db dbdescs[key][db] = desc end end # mine-aa and mine-nt should be removed [ 'prot', 'nucl' ].each do |mol| ary = databases[mol] || [] hash = dbdescs[mol] || {} [ 'mine-aa', 'mine-nt' ].each do |k| ary.delete(k) hash.delete(k) end databases[mol] = ary.freeze dbdescs[mol] = hash end [ databases, dbdescs ].each do |h| prot = h['prot'] nucl = h['nucl'] h.delete('prot') h.delete('nucl') h['blastp'] = prot h['blastx'] = prot h['blastn'] = nucl h['tblastn'] = nucl h['tblastx'] = nucl end @databases = databases @database_descriptions = dbdescs @parse_databases = true true end