code: def optimize_ordering(fwtour, clm, phase, cpus):
      
      from .chic import score_evaluate_M
  
      # Prepare input files
      tour_contigs = clm.active_contigs
      tour_sizes = clm.active_sizes
      tour_M = clm.M
      tour = clm.tour
      signs = clm.signs
      oo = clm.oo
  
      def callback(tour, gen, phase, oo):
          fitness = tour.fitness if hasattr(tour, "fitness") else None
          label = "GA{}-{}".format(phase, gen)
          if fitness:
              fitness = "{0}".format(fitness).split(",")[0].replace("(", "")
              label += "-" + fitness
          if gen % 20 == 0:
              print_tour(fwtour, tour, label, tour_contigs, oo, signs=signs)
          return tour
  
      callbacki = partial(callback, phase=phase, oo=oo)
      toolbox = GA_setup(tour)
      toolbox.register("evaluate", score_evaluate_M,
                       tour_sizes=tour_sizes, tour_M=tour_M)
      tour, tour_fitness = GA_run(toolbox, ngen=1000, npop=100, cpus=cpus,
                                  callback=callbacki)
      clm.tour = tour
  
      return tour
docs: Optimize the ordering of contigs by Genetic Algorithm (GA).