class SequenceServer::BLAST::Job

Extends SequenceServer::Job to describe a BLAST job.

Public Class Methods

new(params) click to toggle source
Calls superclass method
# File lib/sequenceserver/blast/job.rb, line 10
def initialize(params)
  if params.key?(:xml)
    super do
      @imported_xml_file = File.basename params[:xml]
      # Copy over the XML file to job directory so that a job dir in
      # itself is self-contained. This will help with tests among
      # other things.
      FileUtils.cp(params[:xml], dir)
      @databases = []
      done!
    end
  else
    validate params
    super do
      @method = params[:method]
      @query = params[:sequence]
      @qfile     = store('query.fa', params[:sequence])
      @databases = Database[params[:databases]]
      @advanced  = params[:advanced].to_s.strip
      @options   = @advanced + defaults
      # The following params are for analytics only
      @num_threads = config[:num_threads]
      @query_length = calculate_query_size
      @number_of_query_sequences = calculate_number_of_sequences
      @databases_ncharacters_total = calculate_databases_ncharacters_total
    end
  end
end