FBA Desk - notice The app's agent prompt is derived from the agent skill "cobrapy" (@k-dense-ai/cobrapy, skill version 1.3) in the repository k-dense-ai/scientific-agent-skills by K-Dense Inc. https://github.com/k-dense-ai/scientific-agent-skills (skills/cobrapy) The skill's front matter declares "GPL-2.0 license". No text of the skill is redistributed verbatim; the prompt was rewritten for this app. The in-browser analysis (lp.js, fbakit.js) is an independent JavaScript implementation: a dense bounded-variable primal simplex, and the definitions cobrapy 0.32.1 uses for model.slim_optimize(), cobra.flux_analysis.pfba, flux_variability_analysis (fraction_of_optimum), find_blocked_reactions, single_reaction_deletion / single_gene_deletion with find_essential_reactions / find_essential_genes (below 1% of the optimum, or infeasible), and Reaction.check_mass_balance. Default bounds follow cobrapy's configuration (-1000 / 1000). No cobrapy, optlang or GLPK code is included. It was checked against cobrapy 0.32.1 with its default GLPK solver (swiglpk) on the E. coli core model (aerobic, anaerobic, FVA at 90%), 200 random bound perturbations of it and 300 random small networks written in the page's text format and loaded into cobrapy through the page's model.json export - optimum, pFBA total flux, every FVA minimum and maximum, blocked reactions, every reaction and gene deletion, essential sets, the tenfold-bound optimum, every uptake gain and every mass imbalance. Relative tolerance 1e-6. The only disagreements found were deletions landing exactly on the 1% essentiality threshold, which the two solvers' rounding classifies differently; the page now flags such ties and leaves the essential counts out of the reproduction check when they occur. For minimised objectives, cobrapy's find_blocked_reactions and find_essential_* behave as if growth were maximised; the page does not report essentiality for a minimisation and leaves the blocked count out of the reproduction check. Example model: e_coli_core - the copy of the E. coli core model distributed with cobrapy (cobra.io.load_model "textbook"; cobrapy is LGPL-2.0-or-later OR GPL-2.0-or-later), written out unmodified in the page's text format (reaction strings, bounds, gene rules, formulas and charges). Orth, J. D., Fleming, R. M. T. & Palsson, B. O. (2010). Reconstruction and Use of Microbial Metabolic Networks: the Core Escherichia coli Metabolic Model as an Educational Guide. EcoSal Plus 4(1). https://doi.org/10.1128/ecosalplus.10.2.1 The anaerobic example is the same model with EX_o2_e set to [0, 1000]. The "toy fermenter" is a made-up teaching network and describes no real organism. cobrapy: Ebrahim, A., Lerman, J. A., Palsson, B. O. & Hyduke, D. R. (2013). COBRApy: COnstraints-Based Reconstruction and Analysis for Python. BMC Systems Biology 7, 74. https://doi.org/10.1186/1752-0509-7-74