class Bio::TogoWS::REST

Description

Bio::TogoWS::REST is a REST client for the TogoWS web service.

Details of the service are desribed in the following URI.

Examples

For light users, class methods can be used.

print Bio::TogoWS::REST.entry('genbank', 'AF237819')
print Bio::TogoWS::REST.search('uniprot', 'lung cancer')

For heavy users, an instance of the REST class can be created, and using the instance is more efficient than using class methods.

t = Bio::TogoWS::REST.new
print t.entry('genbank', 'AF237819')
print t.search('uniprot', 'lung cancer')

References

Constants

BASE_URI

URI of the TogoWS REST service

DEFAULT_RETRIEVAL_DATABASES

preset default databases used by the retrieve method.

Attributes

debug[RW]

If true, shows debug information to $stderr.

Public Class Methods

convert(*arg) click to toggle source

The same as #convert.

# File lib/bio/io/togows.rb, line 345
def self.convert(*arg)
  self.new.convert(*arg)
end
entry(*arg) click to toggle source

The same as #entry.

# File lib/bio/io/togows.rb, line 335
def self.entry(*arg)
  self.new.entry(*arg)
end
entry_database_list(*arg) click to toggle source

The same as #entry_database_list

# File lib/bio/io/togows.rb, line 355
def self.entry_database_list(*arg)
  self.new.entry_database_list(*arg)
end
new(uri = BASE_URI) click to toggle source

Creates a new object.


Arguments:

  • (optional) uri: String or URI object

Returns

new object

# File lib/bio/io/togows.rb, line 141
def initialize(uri = BASE_URI)
  uri = URI.parse(uri) unless uri.kind_of?(URI)
  @pathbase = uri.path
  @pathbase = '/' + @pathbase unless /\A\// =~ @pathbase
  @pathbase = @pathbase + '/' unless /\/\z/ =~ @pathbase
  @http = Bio::Command.new_http(uri.host, uri.port)
  @header = {
    'User-Agent' => "BioRuby/#{Bio::BIORUBY_VERSION_ID}"
  }
  @debug = false
end
retrieve(*arg) click to toggle source

The same as #retrieve.

# File lib/bio/io/togows.rb, line 350
def self.retrieve(*arg)
  self.new.retrieve(*arg)
end
search_database_list(*arg) click to toggle source

The same as #search_database_list

# File lib/bio/io/togows.rb, line 360
def self.search_database_list(*arg)
  self.new.search_database_list(*arg)
end

Public Instance Methods

convert(data, inputformat, format) click to toggle source

Data format conversion.

Example:

t = Bio::TogoWS::REST.new
blast_string = File.read('test.blastn')
t.convert(blast_string, 'blast', 'gff')

Arguments:

  • (required) text: (String) input data

  • (required) inputformat: (String) data source format

  • (required) format: (String) output format

Returns

String or nil

# File lib/bio/io/togows.rb, line 310
def convert(data, inputformat, format)
  response = post_data(data, 'convert', "#{inputformat}.#{format}")

  prepare_return_value(response)
end
entry(database, ids, format = nil, field = nil) click to toggle source

Retrieves entries corresponding to the specified IDs.

Example:

t = Bio::TogoWS::REST.new
kuma = t.entry('genbank', 'AF237819')
# multiple IDs at a time
misc = t.entry('genbank', [ 'AF237819', 'AF237820' ])
# with format change
p53 = t.entry('uniprot', 'P53_HUMAN', 'fasta')

Arguments:

  • (required) database: (String) database name

  • (required) ids: (String) an entry ID, or (Array containing String) IDs. Note that strings containing “,” are regarded as multiple IDs.

  • (optional) format: (String) format. nil means the default format (differs depending on the database).

  • (optional) field: (String) gets only the specified field if not nil

Returns

String or nil

# File lib/bio/io/togows.rb, line 241
def entry(database, ids, format = nil, field = nil)
  begin
    a = ids.to_ary
  rescue NoMethodError
    ids = ids.to_s
  end

  arg = [ 'entry', database ]
  if a then
    b = a.dup
    (a.size - 1).downto(1) { |i| b.insert(i, :",") }
    arg.concat b
  else
    arg.push ids
  end

  arg.push field if field
  arg[-1] = "#{arg[-1]}.#{format}" if format
  response = get(*arg)

  prepare_return_value(response)
end
entry_database_list() click to toggle source

Returns list of available databases in the entry service.


Returns

Array containing String

# File lib/bio/io/togows.rb, line 319
def entry_database_list
  database_list('entry')
end
internal_http() click to toggle source

Debug purpose only. Returns Net::HTTP object used inside the object. The method will be changed in the future if the implementation of this class is changed.

# File lib/bio/io/togows.rb, line 160
def internal_http
  @http
end
retrieve(ids, hash = {}) click to toggle source

Intelligent version of the entry method. If two or more databases are specified, sequentially tries them until valid entry is obtained.

If database is not specified, preset default databases are used. See DEFAULT_RETRIEVAL_DATABASES for details.

When multiple IDs and multiple databases are specified, sequentially tries each IDs. Note that results with no hits found or with server errors are regarded as void strings. Also note that data format of the result entries can be different from entries to entries.


Arguments:

  • (required) ids: (String) an entry ID, or (Array containing String) IDs. Note that strings containing “,”

  • (optional) hash: (Hash) options below can be passed as a hash.

    • (optional) :database: (String) database name, or (Array containing String) database names.

    • (optional) :format: (String) format

    • (optional) :field: (String) gets only the specified field

Returns

String or nil

# File lib/bio/io/togows.rb, line 186
def retrieve(ids, hash = {})
  begin
    a = ids.to_ary
  rescue NoMethodError
    ids = ids.to_s
  end
  ids = a.join(',') if a
  ids = ids.split(',')

  dbs = hash[:database] || DEFAULT_RETRIEVAL_DATABASES
  begin
    dbs.to_ary
  rescue NoMethodError
    dbs = dbs.to_s.empty? ? [] : [ dbs.to_s ]
  end
  return nil if dbs.empty? or ids.empty?

  if dbs.size == 1 then
    return entry(dbs[0], ids, hash[:format], hash[:field])
  end

  results = []
  ids.each do |idstr|
    dbs.each do |dbstr|
      r = entry(dbstr, idstr, hash[:format], hash[:field])
      if r and !r.strip.empty? then
        results.push r
        break
      end
    end #dbs.each
  end #ids.each
  
  results.join('')
end
search_database_list() click to toggle source

Returns list of available databases in the search service.


Returns

Array containing String

# File lib/bio/io/togows.rb, line 326
def search_database_list
  database_list('search')
end