Skip to content

get_enzyme_bottlenecks ranks by the re-solved change of the objective - #77

Merged
edkerk merged 5 commits into
developfrom
feat/bottlenecks-objective-gain
Nov 1, 2026
Merged

edkerk merged 5 commits into
developfrom
feat/bottlenecks-objective-gain

Conversation

@edkerk

@edkerk edkerk commented Oct 31, 2026

Copy link
Copy Markdown
Collaborator

Enzymes at their usage bound are solved again with the bound raised by fold_change (default 2, greater than 1) and ranked by the improvement of the objective, objective_gain; other enzymes have gain 0 without a solve. Ties keep the order of model.enzymes. shadow_price stays as a reference column and does not affect the order, because at a degenerate optimum it depends on the basis. multiple_active marks an enzyme when another capacity constraint, an enzyme at its bound or the protein pool, is active at the same optimum. df.attrs holds n_resolved and active_constraints. When no enzyme is at its usage bound, a warning says that no single enzyme limits the objective.

The columns are gene, objective_gain, shadow_price, flux, cap_usage, upper_bound, multiple_active; callers that read the table by position must use the column names.

Parity: CompMetEng/raven-gecko-parity#117.

The order no longer depends on the shadow price, which depends on the basis at a degenerate optimum. Enzymes at their bound are solved again with the bound raised by fold_change; multiple_active marks rows where another capacity constraint is active.
@edkerk
edkerk merged commit dad777a into develop Nov 1, 2026
5 checks passed
@edkerk
edkerk deleted the feat/bottlenecks-objective-gain branch November 1, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant