---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-14-843cfd449f25> in <module>()
----> 1 ko.run(max_evaluations=5000, n=10, mutation_rate=0.3, population_size=100)
/Users/niko/Dev/cameo/cameo/strain_design/heuristic/optimization.pyc in run(self, **kwargs)
391 candidate_size=self.max_size,
392 variable_candidate_size=self.variable_size,
--> 393 **kwargs)
394 return KnockoutOptimizationResult(model=self.model,
395 heuristic_method=self.heuristic_method,
/Users/niko/Dev/cameo/cameo/strain_design/heuristic/optimization.pyc in run(self, view, maximize, **kwargs)
198 view=view,
199 evaluator=self._evaluator,
--> 200 **kwargs)
201 for observer in self.observers:
202 observer.end()
/Users/niko/.virtualenvs/cameo2.7.9/lib/python2.7/site-packages/inspyred/ec/emo.pyc in evolve(self, generator, evaluator, pop_size, seeds, maximize, bounder, **args)
145 args.setdefault('num_selected', pop_size)
146 args.setdefault('tournament_size', 2)
--> 147 return ec.EvolutionaryComputation.evolve(self, generator, evaluator, pop_size, seeds, maximize, bounder, **args)
148
149
/Users/niko/.virtualenvs/cameo2.7.9/lib/python2.7/site-packages/inspyred/ec/ec.pyc in evolve(self, generator, evaluator, pop_size, seeds, maximize, bounder, **args)
432 i += 1
433 self.logger.debug('evaluating initial population')
--> 434 initial_fit = evaluator(candidates=initial_cs, args=self._kwargs)
435
436 for cs, fit in zip(initial_cs, initial_fit):
/Users/niko/Dev/cameo/cameo/strain_design/heuristic/optimization.pyc in _evaluator(self, candidates, args)
331 func_obj = KnockoutEvaluator(self.model, self._decoder, self.objective_function, self.simulation_method, kwargs)
332 try:
--> 333 results = view.map(func_obj, population_chunks)
334 except KeyboardInterrupt as e:
335 view.shutdown()
/Users/niko/Dev/cameo/cameo/parallel.pyc in map(self, *args, **kwargs)
226 class SequentialView(object):
227 def map(self, *args, **kwargs):
--> 228 return list(map(*args, **kwargs))
229
230 def apply(self, func, *args, **kwargs):
/Users/niko/Dev/cameo/cameo/strain_design/heuristic/optimization.pyc in __call__(self, population)
252
253 def __call__(self, population):
--> 254 res = [self.evaluate_individual(frozenset(i)) for i in population]
255 reset_model(self.model, self.cache)
256 return res
/Users/niko/Dev/cameo/cameo/util.pyc in wrapper(*args)
214 else:
215 logger.debug("Key not found")
--> 216 rv = function(*args)
217 memo[args] = rv
218 return rv
/Users/niko/Dev/cameo/cameo/strain_design/heuristic/optimization.pyc in evaluate_individual(self, individual)
269 raw=True,
270 **self.simulation_kwargs)
--> 271 fitness = self._calculate_fitness(solution, decoded)
272 except SolveError as e:
273 logger.debug(e)
/Users/niko/Dev/cameo/cameo/strain_design/heuristic/optimization.pyc in _calculate_fitness(self, solution, decoded)
282 if isinstance(self.objective_function, list):
283 logger.debug("evaluate multi objective")
--> 284 return inspyred.ec.emo.Pareto(values=[of(self.model, solution, decoded) for of in self.objective_function])
285 else:
286 logger.debug("evaluate single objective")
/Users/niko/Dev/cameo/cameo/strain_design/heuristic/objective_functions.pyc in __call__(self, model, solution, decoded_representation)
127 def __call__(self, model, solution, decoded_representation):
128 try:
--> 129 product_flux = round(solution.fluxes[self.product], config.ndecimals)
130 substrate_flux = round(abs(solution.fluxes[self.substrate]), config.ndecimals)
131 return round(product_flux / substrate_flux, config.ndecimals)
KeyError: <Reaction Ec_biomass_iJO1366_core_53p95M at 0x118ba0350>