def run_assembler assembler
      # run the optimisation
      opts = @options.clone
      opts[:left] = opts[:left_subset]
      opts[:right] = opts[:right_subset]
      if @options[:optimiser] == 'sweep'
        logger.info("Using full parameter sweep optimiser")
        algorithm = Biopsy::ParameterSweeper.new(assembler.parameters)
      elsif @options[:optimiser] == 'tabu'
        logger.info("Using tabu search optimiser")
        algorithm = Biopsy::TabuSearch.new(assembler.parameters)
      else
        logger.error("Optimiser '#{@options[:optimiser]}' is not a valid optiion")
        logger.error("Please check the options using --help")
        exit(1)
      end
      exp = Biopsy::Experiment.new(assembler,
                                   options: opts,
                                   threads: @options[:threads],
                                   timelimit: @options[:timelimit],
                                   algorithm: algorithm,
                                   verbosity: :loud)
      exp.run
    end
def run_assembler assembler
      # run the optimisation
      opts = @options.clone
      opts[:left] = opts[:left_subset]
      opts[:right] = opts[:right_subset]
      if @options[:optimiser] == 'sweep'
        logger.info("Using full parameter sweep optimiser")
        algorithm = Biopsy::ParameterSweeper.new(assembler.parameters)
      elsif @options[:optimiser] == 'tabu'
        logger.info("Using tabu search optimiser")
        algorithm = Biopsy::TabuSearch.new(assembler.parameters)
      else
        logger.error("Optimiser '#{@options[:optimiser]}' is not a valid optiion")
        logger.error("Please check the options using --help")
        exit(1)
      end
      exp = Biopsy::Experiment.new(assembler,
                                   options: opts,
                                   threads: @options[:threads],
                                   timelimit: @options[:timelimit],
                                   algorithm: algorithm,
                                   verbosity: :loud)
      exp.run
    end
Run optimisation for the named assembler

 @param [String] assembler name or shortname