Module | Bio::Blast::Remote::DDBJ
In: | lib/bio/appl/blast/ddbj.rb

Remote BLAST factory using DDBJ Web API for Biology (xml.nig.ac.jp/).

### Methods

exec_ddbj new

### Classes and Modules

Module Bio::Blast::Remote::DDBJ::Information

### Public Class methods

new(program, db, options = [])

Creates a remote BLAST factory using DDBJ. Returns Bio::Blast object.

Note for future improvement: In the future, it might return Bio::Blast::Remote::DDBJ or other object.

[Source]

        # File lib/bio/appl/blast/ddbj.rb, line 26
    26:     def self.new(program, db, options = [])
    27:       Bio::Blast.new(program, db, options, 'ddbj')
    28:     end

### Public Instance methods

exec_ddbj(query)

executes BLAST and returns result as a string

[Source]

         # File lib/bio/appl/blast/ddbj.rb, line 95
     95:     def exec_ddbj(query)
     96:       options = make_command_line_options
     97:       opt = Bio::Blast::NCBIOptions.new(options)
     98:
     99:       # SOAP objects are cached
    100:       @ddbj_remote_blast ||= Bio::DDBJ::XML::Blast.new
    101:       #@ddbj_request_manager ||= Bio::DDBJ::XML::RequestManager.new
    102:       # always use REST version to prevent warning messages
    103:       @ddbj_request_manager ||= Bio::DDBJ::XML::RequestManager::REST.new
    104:
    105:       program = opt.delete('-p')
    106:       db = opt.delete('-d')
    107:       optstr = Bio::Command.make_command_line_unix(opt.options)
    108:
    109:       # using searchParamAsync
    110:       qid = @ddbj_remote_blast.searchParamAsync(program, db, query, optstr)
    111:       @output = qid
    112:
    113:       sleeptime = 2
    114:       flag = true
    115:       while flag
    116:         if $VERBOSE then
    117:           $stderr.puts "DDBJ BLAST: ID: #{qid} -- waitng #{sleeptime} sec."
    118:         end
    119:         sleep(sleeptime)
    120:
    121:         result = @ddbj_request_manager.getAsyncResult(qid)
    122:         case result.to_s
    123:         when /The search and analysis service by WWW is very busy now/
    124:           raise result.to_s.strip + '(Alternatively, wrong options may be given.)'
    125:         when /Your job has not completed yet/
    126:           sleeptime = 5
    127:         else
    128:           flag = false
    129:         end
    130:       end while flag
    131:
    132:       @output = result
    133:       return @output
    134:     end

[Validate]