def run
      if type.to_s != 'nucleotide'
        @validation_report = ValidationReport.new('', :unapplicable)
        return @validation_report
      end

      raise unless prediction.is_a?(Query)

      start = Time.new
      orfs = get_orfs

      longest_orf       = orfs.max_by { |_key, hash| hash[:coverage] }
      longest_orf_frame = longest_orf[1][:frame]
      coverage          = longest_orf[1][:coverage]
      translated_length = longest_orf[1][:translated_length]
      plot1             = plot_orfs(orfs, translated_length)

      @validation_report = ORFValidationOutput.new(@short_header, @header,
                                                   @description, orfs,
                                                   coverage, longest_orf_frame)
      @validation_report.run_time = Time.now - start

      @validation_report.plot_files.push(plot1)
      @validation_report
    rescue StandardError
      @validation_report = ValidationReport.new('Unexpected error', :error,
                                                @short_header, @header,
                                                @description)
      @validation_report.errors.push 'Unexpected Error'
    end
def run
      if type.to_s != 'nucleotide'
        @validation_report = ValidationReport.new('', :unapplicable)
        return @validation_report
      end

      raise unless prediction.is_a?(Query)

      start = Time.new
      orfs = get_orfs

      longest_orf       = orfs.max_by { |_key, hash| hash[:coverage] }
      longest_orf_frame = longest_orf[1][:frame]
      coverage          = longest_orf[1][:coverage]
      translated_length = longest_orf[1][:translated_length]
      plot1             = plot_orfs(orfs, translated_length)

      @validation_report = ORFValidationOutput.new(@short_header, @header,
                                                   @description, orfs,
                                                   coverage, longest_orf_frame)
      @validation_report.run_time = Time.now - start

      @validation_report.plot_files.push(plot1)
      @validation_report
    rescue StandardError
      @validation_report = ValidationReport.new('Unexpected error', :error,
                                                @short_header, @header,
                                                @description)
      @validation_report.errors.push 'Unexpected Error'
    end
Initilizes the object
 Params:
 +prediction+: a +Sequence+ object representing the blast query
 +hits+: a vector of +Sequence+ objects (representing blast hits)

 Check whether there is a main reading frame
 Output:
 +ORFValidationOutput+ object