Skip to content

Close the proton leak when fitting the measured rates - #14

Merged
edkerk merged 1 commit into
masterfrom
feat/block-reactions
Sep 25, 2026
Merged

edkerk merged 1 commit into
masterfrom
feat/block-reactions

Conversation

@edkerk

@edkerk edkerk commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

With the measured oxygen fitted, the proton leak (r_2129) carried most of the
respiration at high C/N. It has no enzyme and no bound, so it is a free oxygen sink.

CN4 CN22 CN38 CN75 hGR
leak, mmol/gDW/h 0 4.9 18.6 37.7 0
P/O 1.22 0.95 0.57 0.19 1.20

The published run had no leak flux (and under-predicted oxygen: 1.10 against 6.66
measured at CN75). The cause is that the built models can carry no maintenance ATP: the
most non-growth ATP they can support is 0 in every condition, and 5.3, 8.1, 14.8 and 4.9
at CN22, CN38, CN75 and hGR with every enzyme cap removed, which matches the sampled
conventional model (4.7, 9.0, 15.5, 5.1). The rate fit raises each cap only as far as the
rates need, so the oxygen goes through the free leak.

Change

--block RXN ... closes the named reactions (bounds 0, 0) before anything else is
applied; an unknown ID is an error. The README recipe now closes r_2129.

Result

With the leak closed all five conditions build, P/O is 1.10 to 1.20 everywhere, and the
non-growth ATP shows up as maintenance: 4.9 at CN38 and 8.2 at CN75. The exchange fit is
unchanged (mean residual 0.127 against 0.123). The protein pool used rises where the leak
had absorbed oxygen (CN22 57 to 74, CN38 62 to 79, CN75 64 to 102 mg/gDW). TCA median
capacity usage at CN38 and CN75 falls (16 to 4 and 44 to 6%).

fit_ngam is still uninformative under --fit-rates (0, error inf); the maintenance
comes out of the solution instead.

Tests

Two on a small model and two on the real model (blocking, and an unknown reaction), and an
integration build of CN22 with the leak closed: zero leak flux, growth at the dilution rate,
P/O above 0.9. 197 tests pass on Gurobi.

--block sets the bounds of the named reactions to zero. The proton leak (r_2129) has
no enzyme and no bound, so with the measured oxygen fitted it absorbed most of the
respiration at high C/N (P/O 0.19 at CN75); the built models can carry no maintenance
ATP because the rate fit raises each cap only as far as the rates need. With the leak
closed the respiration is coupled (P/O 1.1-1.2) and the maintenance appears as non-growth
ATP use. The README recipe closes it.
@edkerk
edkerk merged commit 0e96dfd into master Sep 25, 2026
3 checks passed
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