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

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

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]