constraint-based metabolic modeling