Skip to content

Add LP/MILP/topological gap-filling algorithms#663

Merged
edkerk merged 1 commit into
develop3from
feat/gapfilling-algorithms
Jun 19, 2026
Merged

Add LP/MILP/topological gap-filling algorithms#663
edkerk merged 1 commit into
develop3from
feat/gapfilling-algorithms

Conversation

@edkerk

@edkerk edkerk commented Jun 19, 2026

Copy link
Copy Markdown
Member

Summary

Adds three new gap-filling strategies alongside the existing reference-model MILP in fillGaps, plus the supporting subroutines and tests.

  • fastGapFill / swiftGapFill (gapFillFastLP, via gapFillFastCore and gapFillSwiftCore) — LP-relaxation connectivity gap-filling (Thiele et al. 2014; SWIFTCORE single-LP variant, Tefagh & Boyd 2020). No MILP solver required.
  • GapFill MILP (gapFillMILP) — Kumar et al. 2007 global growth-floor MILP, with directionality-reversal repair (Big-M coupling) in addition to database-reaction addition.
  • Topological pre-screening (gapFillTopological) — Meneco-inspired BFS metabolite-producibility scope; identifies unreachable metabolites and prunes the candidate reaction set with no solver call.

fillGaps gains an algorithm name-value option ('reference' default, 'fastLP', 'swiftLP', 'gapfillMILP', 'topological') that dispatches to these while preserving the existing output signature.

Naming

New subroutine filenames are prefixed gapFill* to avoid clashes with COBRA Toolbox function names (fastcore.m, swiftcore.m, etc.).

Testing

tGapfilling extended with coverage for every new path. Full suite run on MATLAB R2024b: 21/21 passing (MILP-dependent tests exercised with an available MILP solver; LP/topological paths on GLPK).

Implement fastGapFill/swiftGapFill (gapFillFastLP via gapFillFastCore and gapFillSwiftCore), the Kumar 2007 growth-floor MILP with directionality reversal (gapFillMILP), and Meneco-style topological pre-screening (gapFillTopological). Wire them into fillGaps via an 'algorithm' name-value option. Subroutine filenames are prefixed gapFill* to avoid COBRA Toolbox collisions. Extend tGapfilling with coverage for all new paths.
@github-actions

Copy link
Copy Markdown

Function test results

224 tests   198 ✅  37s ⏱️
 22 suites   26 💤
  1 files      0 ❌

Results for commit f61c028.

@edkerk edkerk merged commit c0fc1f9 into develop3 Jun 19, 2026
4 checks passed
@edkerk edkerk deleted the feat/gapfilling-algorithms branch June 19, 2026 20:04
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