{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import display\n",
"import re"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Predict heterologous pathways\n",
"\n",
"Predicting heterologous pathways is an important strategy to generate new viable strains. Because portfolio of available reactions is very large, computer assisted pathway design becomes essential. **Cameo** implements a shortest pathways search algorithm using an universal biochemical reaction database."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"If you're running this notebook on [try.cameo.bio](http://try.cameo.bio), things might run very slow due to our inability to provide access to the proprietary [CPLEX](https://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/) solver on a public webserver. Furthermore, Jupyter kernels might crash and restart due to memory limitations on the server.\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from cameo import models\n",
"from cameo.strain_design import pathway_prediction"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"model = models.bigg.iMM904"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"predictor = pathway_prediction.PathwayPredictor(model)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Pathway 1"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" equation | \n",
" lower_bound | \n",
" upper_bound | \n",
"
\n",
" \n",
" \n",
" \n",
" MNXR5340 | \n",
" H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR5336 | \n",
" 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR68718 | \n",
" H2O + 3,4-dihydroxybenzoate <=> 3-dehydroshiki... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" equation lower_bound \\\n",
"MNXR5340 H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... -1000 \n",
"MNXR5336 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... -1000 \n",
"MNXR68718 H2O + 3,4-dihydroxybenzoate <=> 3-dehydroshiki... -1000 \n",
"\n",
" upper_bound \n",
"MNXR5340 1000 \n",
"MNXR5336 1000 \n",
"MNXR68718 1000 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max flux: 3.36842\n"
]
},
{
"data": {
"text/html": [
"Pathway 2"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" equation | \n",
" lower_bound | \n",
" upper_bound | \n",
"
\n",
" \n",
" \n",
" \n",
" MNXR5340 | \n",
" H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR5336 | \n",
" 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR230 | \n",
" H(+) + 4-hydroxybenzoate + O2 + NADPH <=> H2O ... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" equation lower_bound \\\n",
"MNXR5340 H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... -1000 \n",
"MNXR5336 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... -1000 \n",
"MNXR230 H(+) + 4-hydroxybenzoate + O2 + NADPH <=> H2O ... -1000 \n",
"\n",
" upper_bound \n",
"MNXR5340 1000 \n",
"MNXR5336 1000 \n",
"MNXR230 1000 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max flux: 1.90533\n"
]
},
{
"data": {
"text/html": [
"Pathway 3"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" equation | \n",
" lower_bound | \n",
" upper_bound | \n",
"
\n",
" \n",
" \n",
" \n",
" MNXR4008 | \n",
" H(+) + 3-oxoadipate <=> H2O + 5-oxo-4,5-dihydr... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR184 | \n",
" 3-oxoadipyl-CoA + succinate <=> 3-oxoadipate +... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR5340 | \n",
" H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR5336 | \n",
" 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR228 | \n",
" CO2 + 5-oxo-4,5-dihydro-2-furylacetate <=> H(+... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR4119 | \n",
" 2.0 H(+) + 3-carboxy-cis,cis-muconate <=> 3,4-... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR209 | \n",
" CoA + 3-oxoadipyl-CoA <=> acetyl-CoA + succiny... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR3655 | \n",
" 2-(carboxymethyl)-5-oxo-2,5-dihydro-2-furoate ... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" equation lower_bound \\\n",
"MNXR4008 H(+) + 3-oxoadipate <=> H2O + 5-oxo-4,5-dihydr... -1000 \n",
"MNXR184 3-oxoadipyl-CoA + succinate <=> 3-oxoadipate +... -1000 \n",
"MNXR5340 H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... -1000 \n",
"MNXR5336 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... -1000 \n",
"MNXR228 CO2 + 5-oxo-4,5-dihydro-2-furylacetate <=> H(+... -1000 \n",
"MNXR4119 2.0 H(+) + 3-carboxy-cis,cis-muconate <=> 3,4-... -1000 \n",
"MNXR209 CoA + 3-oxoadipyl-CoA <=> acetyl-CoA + succiny... -1000 \n",
"MNXR3655 2-(carboxymethyl)-5-oxo-2,5-dihydro-2-furoate ... -1000 \n",
"\n",
" upper_bound \n",
"MNXR4008 1000 \n",
"MNXR184 1000 \n",
"MNXR5340 1000 \n",
"MNXR5336 1000 \n",
"MNXR228 1000 \n",
"MNXR4119 1000 \n",
"MNXR209 1000 \n",
"MNXR3655 1000 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max flux: 5.59223\n"
]
},
{
"data": {
"text/html": [
"Pathway 4"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" equation | \n",
" lower_bound | \n",
" upper_bound | \n",
"
\n",
" \n",
" \n",
" \n",
" MNXR5338 | \n",
" 2.0 H(+) + NADH + 3,4-dihydroxybenzoate <=> H2... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR1041 | \n",
" diphosphate + AMP + caffeoyl-CoA <=> CoA + ATP... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR4974 | \n",
" O2 + 2.0 trans-4-coumarate <=> 2.0 trans-caffeate | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR227 | \n",
" diphosphate + AMP + 4-coumaroyl-CoA <=> CoA + ... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR5340 | \n",
" H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR5336 | \n",
" 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR18369 | \n",
" CoA + H2O + 4-coumaroyl-CoA + NAD(+) <=> H(+) ... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR232 | \n",
" H(+) + CoA + 4-hydroxybenzoate <=> H2O + 4-hyd... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
" MNXR1039 | \n",
" acetyl-CoA + 3,4-dihydroxybenzaldehyde <=> H2O... | \n",
" -1000 | \n",
" 1000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" equation lower_bound \\\n",
"MNXR5338 2.0 H(+) + NADH + 3,4-dihydroxybenzoate <=> H2... -1000 \n",
"MNXR1041 diphosphate + AMP + caffeoyl-CoA <=> CoA + ATP... -1000 \n",
"MNXR4974 O2 + 2.0 trans-4-coumarate <=> 2.0 trans-caffeate -1000 \n",
"MNXR227 diphosphate + AMP + 4-coumaroyl-CoA <=> CoA + ... -1000 \n",
"MNXR5340 H(+) + NADH + O2 + vanillate <=> H2O + 3,4-dih... -1000 \n",
"MNXR5336 2.0 H(+) + NADH + vanillate <=> H2O + vanillin... -1000 \n",
"MNXR18369 CoA + H2O + 4-coumaroyl-CoA + NAD(+) <=> H(+) ... -1000 \n",
"MNXR232 H(+) + CoA + 4-hydroxybenzoate <=> H2O + 4-hyd... -1000 \n",
"MNXR1039 acetyl-CoA + 3,4-dihydroxybenzaldehyde <=> H2O... -1000 \n",
"\n",
" upper_bound \n",
"MNXR5338 1000 \n",
"MNXR1041 1000 \n",
"MNXR4974 1000 \n",
"MNXR227 1000 \n",
"MNXR5340 1000 \n",
"MNXR5336 1000 \n",
"MNXR18369 1000 \n",
"MNXR232 1000 \n",
"MNXR1039 1000 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max flux: 2.24390\n"
]
}
],
"source": [
"pathways = predictor.run(product=\"vanillin\", max_predictions=4)"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"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.9.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}