code: def evaluate(self, model, threshold=0.1):
          
          with model:
              if self.medium is not None:
                  self.medium.apply(model)
              if self.objective is not None:
                  model.objective = self.objective
              model.add_cons_vars(self.constraints)
              threshold *= model.slim_optimize()
              growth = list()
              for row in self.data.itertuples(index=False):
                  with model:
                      exchange = model.reactions.get_by_id(row.exchange)
                      if bool(exchange.reactants):
                          exchange.lower_bound = -row.uptake
                      else:
                          exchange.upper_bound = row.uptake
                      growth.append(model.slim_optimize() >= threshold)
          return DataFrame({
              "exchange": self.data["exchange"],
              "growth": growth
          })
docs: Evaluate in silico growth rates.