docs: def lin_moma(self, wt_fluxes):
          """Minimize the redistribution of fluxes using a linear objective.
  
          The change in flux distribution is mimimized by minimizing the sum
          of the absolute values of the differences of wild type FBA solution
          and the knockout strain flux solution.
  
          This formulation bases the solution on the wild type fluxes that
          are specified by the user. If these wild type fluxes were calculated
          using FBA, then an arbitrary flux vector that optimizes the objective
          function is used. See [Segre`_02] for more information.
  
          Args:
              wt_fluxes: Dictionary of all the wild type fluxes. Use
                  :meth:`.get_fba_flux(objective)` to return a dictionary of
                  fluxes found by FBA.
          """
          reactions = set(self._adjustment_reactions())
  
          z_diff = self._z_diff
          v = self._v
  
          with self.constraints() as constr:
              for f_reaction, f_value in iteritems(wt_fluxes):
                  if f_reaction in reactions:
                      # Add the constraint that finds the optimal solution, such
                      # that the difference between the wildtype flux is similar
                      # to the knockout flux.
                      constr.add(
                          z_diff[f_reaction] >= f_value - v[f_reaction],
                          f_value - v[f_reaction] >= -z_diff[f_reaction])
  
              # If we minimize the sum of the z vector then we will minimize
              # the |vs_wt - vs| from above
              self._prob.set_objective(z_diff.sum(reactions))
  
              self._solve(lp.ObjectiveSense.Minimize)