{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Production envelopes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Production envelopes (aka phenotype phase planes) will show distinct phases of optimal growth with different use of two different substrates. For more information, see [Edwards et al.](http://dx.doi.org/10.1002/bit.10047)\n", "\n", "Cobrapy supports calculating these production envelopes and they can easily be plotted using your favorite plotting package. Here, we will make one for the \"textbook\" _E. coli_ core model and demonstrate plotting using [matplotlib](http://matplotlib.org/)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scaling...\n", " A: min|aij| = 1.000e+00 max|aij| = 1.000e+00 ratio = 1.000e+00\n", "Problem data seem to be well scaled\n" ] } ], "source": [ "from cobra.io import load_model\n", "from cobra.flux_analysis import production_envelope\n", "\n", "model = load_model(\"textbook\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to make a phenotype phase plane to evaluate uptakes of Glucose and Oxygen." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "prod_env = production_envelope(model, [\"EX_glc__D_e\", \"EX_o2_e\"])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
carbon_sourceflux_minimumcarbon_yield_minimummass_yield_minimumflux_maximumcarbon_yield_maximummass_yield_maximumEX_glc__D_eEX_o2_e
0EX_glc__D_e0.00.0NaN0.0000005.692701e-14NaN-10.0-60.000000
1EX_glc__D_e0.00.0NaN0.0722441.310050e+00NaN-10.0-56.842105
2EX_glc__D_e0.00.0NaN0.1444882.620100e+00NaN-10.0-53.684211
3EX_glc__D_e0.00.0NaN0.2167323.930150e+00NaN-10.0-50.526316
4EX_glc__D_e0.00.0NaN0.2889755.240200e+00NaN-10.0-47.368421
\n", "
" ], "text/plain": [ " carbon_source flux_minimum carbon_yield_minimum mass_yield_minimum \\\n", "0 EX_glc__D_e 0.0 0.0 NaN \n", "1 EX_glc__D_e 0.0 0.0 NaN \n", "2 EX_glc__D_e 0.0 0.0 NaN \n", "3 EX_glc__D_e 0.0 0.0 NaN \n", "4 EX_glc__D_e 0.0 0.0 NaN \n", "\n", " flux_maximum carbon_yield_maximum mass_yield_maximum EX_glc__D_e \\\n", "0 0.000000 5.692701e-14 NaN -10.0 \n", "1 0.072244 1.310050e+00 NaN -10.0 \n", "2 0.144488 2.620100e+00 NaN -10.0 \n", "3 0.216732 3.930150e+00 NaN -10.0 \n", "4 0.288975 5.240200e+00 NaN -10.0 \n", "\n", " EX_o2_e \n", "0 -60.000000 \n", "1 -56.842105 \n", "2 -53.684211 \n", "3 -50.526316 \n", "4 -47.368421 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prod_env.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we specify the carbon source, we can also get the carbon and mass yield. For example, temporarily setting the objective to produce acetate instead we could get production envelope as follows and pandas to quickly plot the results." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "prod_env = production_envelope(\n", " model, [\"EX_o2_e\"], objective=\"EX_ac_e\", carbon_sources=\"EX_glc__D_e\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
carbon_sourceflux_minimumcarbon_yield_minimummass_yield_minimumflux_maximumcarbon_yield_maximummass_yield_maximumEX_o2_e
0EX_glc__D_e0.00.00.00.0000000.0000000.000000-60.000000
1EX_glc__D_e0.00.00.01.5789470.0526320.051748-56.842105
2EX_glc__D_e0.00.00.03.1578950.1052630.103496-53.684211
3EX_glc__D_e0.00.00.04.7368420.1578950.155245-50.526316
4EX_glc__D_e0.00.00.06.3157890.2105260.206993-47.368421
\n", "
" ], "text/plain": [ " carbon_source flux_minimum carbon_yield_minimum mass_yield_minimum \\\n", "0 EX_glc__D_e 0.0 0.0 0.0 \n", "1 EX_glc__D_e 0.0 0.0 0.0 \n", "2 EX_glc__D_e 0.0 0.0 0.0 \n", "3 EX_glc__D_e 0.0 0.0 0.0 \n", "4 EX_glc__D_e 0.0 0.0 0.0 \n", "\n", " flux_maximum carbon_yield_maximum mass_yield_maximum EX_o2_e \n", "0 0.000000 0.000000 0.000000 -60.000000 \n", "1 1.578947 0.052632 0.051748 -56.842105 \n", "2 3.157895 0.105263 0.103496 -53.684211 \n", "3 4.736842 0.157895 0.155245 -50.526316 \n", "4 6.315789 0.210526 0.206993 -47.368421 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prod_env.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "prod_env.plot(\n", " kind='line', x='EX_o2_e', y='carbon_yield_maximum');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Previous versions of cobrapy included more tailored plots for phase planes which have now been dropped in order to improve maintainability and enhance the focus of cobrapy. Plotting for cobra models is intended for another package." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 1 }