diff --git a/notebooks/wu2004.ipynb b/notebooks/wu2004.ipynb
index b618ad7..d3d97c3 100644
--- a/notebooks/wu2004.ipynb
+++ b/notebooks/wu2004.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -31,9 +31,25 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 2,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/var/folders/k9/b8pxky2572sdtgy2vnxhcljw0000gn/T/ipykernel_86103/3008229323.py:4: DeprecationWarning: \n",
+ "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n",
+ "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n",
+ "but was not found to be installed on your system.\n",
+ "If this would cause problems for you,\n",
+ "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n",
+ " \n",
+ " import pandas as pd\n",
+ "WARNING (pytensor.tensor.blas): Using NumPy C-API based implementation for BLAS functions.\n"
+ ]
+ }
+ ],
"source": [
"import numpy as np\n",
"np.random.seed(0)\n",
@@ -51,7 +67,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -72,9 +88,17 @@
},
{
"cell_type": "code",
- "execution_count": 55,
+ "execution_count": 4,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Set parameter TokenServer to value \"leghorn.emsl.pnl.gov\"\n"
+ ]
+ }
+ ],
"source": [
"import cobra\n",
"\n",
@@ -126,7 +150,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
@@ -139,7 +163,7 @@
" [ 0, 1, 0, 0, -1, 0]])"
]
},
- "execution_count": 41,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
@@ -152,7 +176,7 @@
},
{
"cell_type": "code",
- "execution_count": 67,
+ "execution_count": 6,
"metadata": {},
"outputs": [
{
@@ -167,7 +191,7 @@
"Name: fluxes, dtype: float64"
]
},
- "execution_count": 67,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -180,7 +204,7 @@
},
{
"cell_type": "code",
- "execution_count": 83,
+ "execution_count": 7,
"metadata": {},
"outputs": [
{
@@ -218,6 +242,14 @@
"Ex = emll.create_elasticity_matrix(model)\n",
"display(Ex)\n",
"\n",
+ "#### Original code to geneate Ey and ll ####\n",
+ "# Ey = np.zeros((3, 2))\n",
+ "# Ey[0, 0] = 1 # bpg (+) PGM\n",
+ "# Ey[2, 1] = 1 # adp (+) PK\n",
+ "\n",
+ "# ll = emll.LinLogSymbolic2x2(N, Ex, Ey, v_star)\n",
+ "\n",
+ "# Updated code to generate Ey and ll corresponding to updated cobra model\n",
"Ey = np.zeros((6, 2))\n",
"Ey[0, 0] = 1 # 2pg_e (+) EX_2pg_e\n",
"Ey[5, 1] = 1 # pep_e (+) EX_pep_e\n",
@@ -235,7 +267,7 @@
},
{
"cell_type": "code",
- "execution_count": 84,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
@@ -338,7 +370,7 @@
"4 25.0 12.0 30.0 54.0 76.0 13.2 130.0 136.0"
]
},
- "execution_count": 84,
+ "execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
@@ -358,7 +390,7 @@
},
{
"cell_type": "code",
- "execution_count": 85,
+ "execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
@@ -389,7 +421,7 @@
},
{
"cell_type": "code",
- "execution_count": 86,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
@@ -398,7 +430,7 @@
"array([87., 87., 87.])"
]
},
- "execution_count": 86,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
@@ -409,7 +441,7 @@
},
{
"cell_type": "code",
- "execution_count": 87,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
@@ -418,7 +450,7 @@
"19"
]
},
- "execution_count": 87,
+ "execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
@@ -454,31 +486,6 @@
"ll = emll.LinLogLeastNorm(N, Ex, Ey, v_star)"
]
},
- {
- "cell_type": "code",
- "execution_count": 88,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "array([[1., 0.],\n",
- " [0., 0.],\n",
- " [0., 0.],\n",
- " [0., 0.],\n",
- " [0., 0.],\n",
- " [0., 1.]])"
- ]
- },
- "execution_count": 88,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "Ey"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -490,27 +497,7 @@
},
{
"cell_type": "code",
- "execution_count": 89,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(5, 6)"
- ]
- },
- "execution_count": 89,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "N.shape"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 90,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
@@ -519,7 +506,7 @@
"Text(0, 0.5, 'Probability density')"
]
},
- "execution_count": 90,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
@@ -559,7 +546,7 @@
},
{
"cell_type": "code",
- "execution_count": 91,
+ "execution_count": 13,
"metadata": {},
"outputs": [
{
@@ -611,9 +598,16 @@
"print(initialize_elasticity.__doc__)"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Sample prior predictive trace"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 92,
+ "execution_count": 14,
"metadata": {},
"outputs": [
{
@@ -637,7 +631,7 @@
},
{
"cell_type": "code",
- "execution_count": 93,
+ "execution_count": 15,
"metadata": {},
"outputs": [
{
@@ -651,8 +645,8 @@
"
\n",
" \n",
" - \n",
- " \n",
- " \n",
+ " \n",
+ " \n",
" \n",
"
\n",
"
\n",
@@ -1020,194 +1014,195 @@
" fill: currentColor;\n",
"}\n",
"
<xarray.Dataset>\n",
- "Dimensions: (chain: 1, draw: 500, Ey_dim_0: 6, Ey_dim_1: 2,\n",
- " ey_kinetic_entries_dim_0: 2, Ex_dim_0: 6,\n",
- " Ex_dim_1: 5, ex_kinetic_entries_dim_0: 10,\n",
- " ey_capacity_entries_dim_0: 10,\n",
- " ex_capacity_entries_dim_0: 20)\n",
+ "Dimensions: (chain: 1, draw: 500,\n",
+ " ey_kinetic_entries_dim_0: 2,\n",
+ " ex_kinetic_entries_dim_0: 10,\n",
+ " ex_capacity_entries_dim_0: 20, Ey_dim_0: 6,\n",
+ " Ey_dim_1: 2, Ex_dim_0: 6, Ex_dim_1: 5,\n",
+ " ey_capacity_entries_dim_0: 10)\n",
"Coordinates:\n",
" * chain (chain) int64 0\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 495 496 497 498 499\n",
+ " * ey_kinetic_entries_dim_0 (ey_kinetic_entries_dim_0) int64 0 1\n",
+ " * ex_kinetic_entries_dim_0 (ex_kinetic_entries_dim_0) int64 0 1 2 ... 7 8 9\n",
+ " * ex_capacity_entries_dim_0 (ex_capacity_entries_dim_0) int64 0 1 2 ... 18 19\n",
" * Ey_dim_0 (Ey_dim_0) int64 0 1 2 3 4 5\n",
" * Ey_dim_1 (Ey_dim_1) int64 0 1\n",
- " * ey_kinetic_entries_dim_0 (ey_kinetic_entries_dim_0) int64 0 1\n",
" * Ex_dim_0 (Ex_dim_0) int64 0 1 2 3 4 5\n",
" * Ex_dim_1 (Ex_dim_1) int64 0 1 2 3 4\n",
- " * ex_kinetic_entries_dim_0 (ex_kinetic_entries_dim_0) int64 0 1 2 ... 7 8 9\n",
" * ey_capacity_entries_dim_0 (ey_capacity_entries_dim_0) int64 0 1 2 ... 7 8 9\n",
- " * ex_capacity_entries_dim_0 (ex_capacity_entries_dim_0) int64 0 1 2 ... 18 19\n",
"Data variables:\n",
- " Ey (chain, draw, Ey_dim_0, Ey_dim_1) float64 0.98...\n",
" ey_kinetic_entries (chain, draw, ey_kinetic_entries_dim_0) float64 ...\n",
- " Ex (chain, draw, Ex_dim_0, Ex_dim_1) float64 -0.6...\n",
" ex_kinetic_entries (chain, draw, ex_kinetic_entries_dim_0) float64 ...\n",
- " ey_capacity_entries (chain, draw, ey_capacity_entries_dim_0) float64 ...\n",
" ex_capacity_entries (chain, draw, ex_capacity_entries_dim_0) float64 ...\n",
+ " Ey (chain, draw, Ey_dim_0, Ey_dim_1) float64 0.09...\n",
+ " Ex (chain, draw, Ex_dim_0, Ex_dim_1) float64 -0.3...\n",
+ " ey_capacity_entries (chain, draw, ey_capacity_entries_dim_0) float64 ...\n",
"Attributes:\n",
- " created_at: 2024-03-08T22:23:39.313824\n",
+ " created_at: 2024-03-09T23:44:54.466271\n",
" arviz_version: 0.17.0\n",
" inference_library: pymc\n",
- " inference_library_version: 5.10.3
- chain: 1
- draw: 500
- Ey_dim_0: 6
- Ey_dim_1: 2
- ey_kinetic_entries_dim_0: 2
- Ex_dim_0: 6
- Ex_dim_1: 5
- ex_kinetic_entries_dim_0: 10
- ey_capacity_entries_dim_0: 10
- ex_capacity_entries_dim_0: 20
chain
(chain)
int64
0
draw
(draw)
int64
0 1 2 3 4 5 ... 495 496 497 498 499
array([ 0, 1, 2, ..., 497, 498, 499])
Ey_dim_0
(Ey_dim_0)
int64
0 1 2 3 4 5
array([0, 1, 2, 3, 4, 5])
Ey_dim_1
(Ey_dim_1)
int64
0 1
ey_kinetic_entries_dim_0
(ey_kinetic_entries_dim_0)
int64
0 1
Ex_dim_0
(Ex_dim_0)
int64
0 1 2 3 4 5
array([0, 1, 2, 3, 4, 5])
Ex_dim_1
(Ex_dim_1)
int64
0 1 2 3 4
ex_kinetic_entries_dim_0
(ex_kinetic_entries_dim_0)
int64
0 1 2 3 4 5 6 7 8 9
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
ey_capacity_entries_dim_0
(ey_capacity_entries_dim_0)
int64
0 1 2 3 4 5 6 7 8 9
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
ex_capacity_entries_dim_0
(ex_capacity_entries_dim_0)
int64
0 1 2 3 4 5 6 ... 14 15 16 17 18 19
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n",
- " 18, 19])
Ey
(chain, draw, Ey_dim_0, Ey_dim_1)
float64
0.9801 -0.007329 ... -0.1911
array([[[[ 9.80092127e-01, -7.32893250e-03],\n",
- " [ 6.15546056e-02, -7.92250458e-02],\n",
- " [ 6.87687300e-03, 5.04049500e-02],\n",
- " [ 1.55490558e-02, 2.35903168e-02],\n",
- " [ 9.47272041e-03, 2.39524597e-02],\n",
- " [-6.39700648e-02, 3.79186733e-01]],\n",
- "\n",
- " [[ 1.43942867e-01, 7.97660052e-02],\n",
- " [ 9.86368660e-02, -9.56692850e-03],\n",
- " [-1.35160811e-01, 1.13512627e-02],\n",
- " [ 6.09708731e-02, -1.17556641e-01],\n",
- " [-3.65158103e-02, 7.21900411e-02],\n",
- " [ 8.46576201e-03, 1.66235917e+00]],\n",
- "\n",
- " [[ 5.76263750e-01, -2.02013425e-02],\n",
- " [ 2.21754139e-02, 7.57086453e-02],\n",
- " [-1.56786922e-02, 5.19219502e-02],\n",
- " [ 1.32562825e-02, -3.56687029e-02],\n",
- " [ 3.72340686e-02, 6.20610072e-02],\n",
- " [-6.12300363e-02, 4.03728247e-01]],\n",
- "...\n",
- " [[ 1.81008286e+00, 2.61554714e-04],\n",
- " [-5.57273083e-02, 1.30426061e-01],\n",
- " [ 2.90889677e-02, -5.58156970e-02],\n",
- " [ 3.59789872e-02, -7.81680404e-03],\n",
- " [ 1.91547496e-02, 2.04480540e-02],\n",
- " [-3.95517697e-02, 6.85689067e-01]],\n",
- "\n",
- " [[ 1.30000305e+00, 2.11494823e-01],\n",
- " [-1.68202537e-02, 4.64714420e-03],\n",
- " [-1.33828817e-01, 5.76033729e-03],\n",
- " [ 3.04313056e-02, -4.99407927e-02],\n",
- " [-3.23985338e-02, 6.44310159e-03],\n",
- " [ 2.02270415e-02, 1.01651139e+00]],\n",
- "\n",
- " [[ 1.18967451e+00, -7.95003210e-02],\n",
- " [ 4.02519784e-02, 3.54846317e-03],\n",
- " [-1.94175005e-02, -3.56566740e-03],\n",
- " [-1.87267936e-02, -1.06820926e-01],\n",
- " [ 2.28402949e-03, 2.33126440e-01],\n",
- " [-4.05092928e-02, -1.91137578e-01]]]])
ey_kinetic_entries
(chain, draw, ey_kinetic_entries_dim_0)
float64
0.9801 0.3792 ... 1.19 -0.1911
array([[[ 9.80092127e-01, 3.79186733e-01],\n",
- " [ 1.43942867e-01, 1.66235917e+00],\n",
- " [ 5.76263750e-01, 4.03728247e-01],\n",
- " [ 5.09667728e-01, 7.16174114e-01],\n",
- " [ 5.46497684e-01, 1.25723420e+00],\n",
- " [ 1.46051803e+00, 3.79579015e-01],\n",
- " [ 7.66039009e-01, 1.11317423e+00],\n",
- " [ 2.09937823e+00, 3.08530259e-01],\n",
- " [ 1.64116812e-01, -1.43084781e-02],\n",
- " [ 3.37531512e-01, 1.03887209e+00],\n",
- " [ 1.10741264e+00, 1.48458794e+00],\n",
- " [ 5.55879435e-01, 7.14118820e-01],\n",
- " [-7.55589652e-02, 1.76160962e+00],\n",
- " [ 5.02669186e-01, 2.31435193e+00],\n",
- " [ 1.01634091e+00, 4.33578169e-01],\n",
- " [ 1.33941940e-01, 8.59237061e-01],\n",
- " [ 5.73272682e-01, 9.24772498e-01],\n",
- " [ 4.77316266e-01, 1.78710481e-01],\n",
- " [ 5.07940765e-01, 4.32428693e-01],\n",
- " [ 2.66781821e-01, 5.14032254e-01],\n",
- "...\n",
- " [ 9.10991917e-02, 9.22490116e-01],\n",
- " [ 1.39578554e-01, 1.02109336e-01],\n",
- " [ 2.06812525e-01, 1.26624180e+00],\n",
- " [ 1.89548894e+00, 1.43352430e+00],\n",
- " [ 6.45660870e-01, 7.63315740e-01],\n",
- " [ 1.55844455e+00, 9.96748630e-01],\n",
- " [ 3.57450358e-01, 1.02648126e+00],\n",
- " [ 6.08438225e-01, 2.28331783e-01],\n",
- " [ 4.93188508e-01, 1.53093018e+00],\n",
- " [ 6.26259462e-01, -1.97396008e-01],\n",
- " [ 1.84224279e-03, 5.21310696e-01],\n",
- " [ 4.89096576e-01, 9.58394022e-01],\n",
- " [ 4.25201345e-01, 3.20932589e-01],\n",
- " [ 1.41807742e-01, 1.41736809e-01],\n",
- " [ 5.46244865e-01, 7.45094336e-01],\n",
- " [ 9.32080350e-01, 1.96965220e+00],\n",
- " [ 2.21893686e+00, -3.90885705e-01],\n",
- " [ 1.81008286e+00, 6.85689067e-01],\n",
- " [ 1.30000305e+00, 1.01651139e+00],\n",
- " [ 1.18967451e+00, -1.91137578e-01]]])
Ex
(chain, draw, Ex_dim_0, Ex_dim_1)
float64
-0.6869 -0.02314 ... 0.06179
array([[[[-6.86943711e-01, -2.31365973e-02, 9.62986918e-02,\n",
- " -7.61972328e-02, 5.77900682e-02],\n",
- " [ 1.78336224e-02, 1.65158341e-02, 2.11468877e-02,\n",
- " -4.79313638e-02, -1.55601279e+00],\n",
- " [ 2.66914511e-01, -1.18045831e+00, -2.70722675e-02,\n",
- " 2.72201485e-02, 1.73326976e-02],\n",
- " [ 9.92470752e-03, -2.22554089e-01, 3.74082221e-03,\n",
- " 1.15921101e-01, 7.56024961e-03],\n",
- " [-8.46508282e-02, -4.40675732e-02, -3.44393997e+00,\n",
- " 4.15032029e-01, 9.58664984e-01],\n",
- " [-2.37201328e-01, -1.14968052e-02, 5.33608577e-02,\n",
- " -1.38539765e-01, 6.04566247e-03]],\n",
- "\n",
- " [[-1.66832405e+00, -1.68852092e-03, 2.94651653e-02,\n",
- " 8.99758244e-04, 1.98248281e-02],\n",
- " [ 1.49869930e-02, 1.00833996e-01, -5.37950138e-02,\n",
- " 2.05095182e-02, -1.67703803e+00],\n",
- " [ 3.82563689e-01, -2.93572562e-01, -8.94743679e-02,\n",
- " -6.83650857e-02, -5.61738225e-02],\n",
- " [ 1.38285385e-01, 3.19392474e-01, 3.58234926e-02,\n",
+ " inference_library_version: 5.10.3
- chain: 1
- draw: 500
- ey_kinetic_entries_dim_0: 2
- ex_kinetic_entries_dim_0: 10
- ex_capacity_entries_dim_0: 20
- Ey_dim_0: 6
- Ey_dim_1: 2
- Ex_dim_0: 6
- Ex_dim_1: 5
- ey_capacity_entries_dim_0: 10
chain
(chain)
int64
0
draw
(draw)
int64
0 1 2 3 4 5 ... 495 496 497 498 499
array([ 0, 1, 2, ..., 497, 498, 499])
ey_kinetic_entries_dim_0
(ey_kinetic_entries_dim_0)
int64
0 1
ex_kinetic_entries_dim_0
(ex_kinetic_entries_dim_0)
int64
0 1 2 3 4 5 6 7 8 9
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
ex_capacity_entries_dim_0
(ex_capacity_entries_dim_0)
int64
0 1 2 3 4 5 6 ... 14 15 16 17 18 19
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n",
+ " 18, 19])
Ey_dim_0
(Ey_dim_0)
int64
0 1 2 3 4 5
array([0, 1, 2, 3, 4, 5])
Ey_dim_1
(Ey_dim_1)
int64
0 1
Ex_dim_0
(Ex_dim_0)
int64
0 1 2 3 4 5
array([0, 1, 2, 3, 4, 5])
Ex_dim_1
(Ex_dim_1)
int64
0 1 2 3 4
ey_capacity_entries_dim_0
(ey_capacity_entries_dim_0)
int64
0 1 2 3 4 5 6 7 8 9
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
ey_kinetic_entries
(chain, draw, ey_kinetic_entries_dim_0)
float64
0.09345 0.7692 ... 0.3079 1.242
array([[[ 9.34537308e-02, 7.69182221e-01],\n",
+ " [ 4.84518824e-01, 7.62468812e-01],\n",
+ " [ 8.77640493e-01, 1.51019670e+00],\n",
+ " [ 2.26553553e-01, 1.65187512e-01],\n",
+ " [ 1.32897481e+00, 1.77030453e+00],\n",
+ " [ 6.60692135e-01, 1.73370892e+00],\n",
+ " [ 8.84862367e-01, 4.84465243e-02],\n",
+ " [ 3.66752634e-01, 1.22475482e+00],\n",
+ " [ 3.69142334e-01, 6.47755921e-02],\n",
+ " [ 2.02010258e-01, 2.35315302e+00],\n",
+ " [ 6.97924835e-01, 4.76262277e-01],\n",
+ " [ 2.88866439e-01, 1.11096033e+00],\n",
+ " [-1.47736450e-01, 2.08852976e+00],\n",
+ " [ 2.20389264e-01, 9.72797490e-01],\n",
+ " [ 3.14145491e-01, 6.37057628e-01],\n",
+ " [ 5.18614425e-01, 2.65998071e-01],\n",
+ " [ 6.82987344e-01, 6.80665795e-01],\n",
+ " [ 2.06593082e+00, 8.92318881e-01],\n",
+ " [ 2.45372390e+00, 1.36271148e-01],\n",
+ " [ 1.61081549e-01, 2.49737652e-01],\n",
"...\n",
- " -5.42337029e-02, -8.41256460e-03],\n",
- " [-5.34995414e-03, 3.42461864e-01, 8.33893455e-02,\n",
- " -7.58010914e-01, -6.30645002e-02],\n",
- " [-2.00764699e-02, 7.56111642e-02, -2.23723412e+00,\n",
- " 1.06684976e+00, 5.11291270e-01],\n",
- " [ 6.41805298e-02, 1.04266851e-02, 1.60580294e+00,\n",
- " -4.18030196e-02, 3.22315157e-02]],\n",
- "\n",
- " [[-1.07100396e+00, 2.88284570e-02, -4.75285091e-02,\n",
- " -1.01527679e-02, -4.43013349e-02],\n",
- " [ 1.40446661e-01, 1.52185055e-01, -9.50987070e-02,\n",
- " 2.21869608e-02, -5.90826706e-01],\n",
- " [ 2.77633614e-01, -2.90770357e-01, 2.48642353e-02,\n",
- " 1.93166606e-02, 1.04857745e-01],\n",
- " [-8.43260982e-03, 5.23016717e-01, 5.47939487e-03,\n",
- " -1.35995567e-01, -4.28291372e-02],\n",
- " [ 2.40016753e-02, -6.45524152e-02, -3.73509433e-01,\n",
- " 2.24315989e-01, 1.27428166e+00],\n",
- " [-3.32538137e-02, -6.72813540e-02, 1.83228516e-01,\n",
- " 4.92530605e-02, 6.17897729e-02]]]])
ex_kinetic_entries
(chain, draw, ex_kinetic_entries_dim_0)
float64
0.6869 1.556 ... 1.274 0.1832
array([[[0.68694371, 1.55601279, 0.26691451, ..., 0.41503203,\n",
- " 0.95866498, 0.05336086],\n",
- " [1.66832405, 1.67703803, 0.38256369, ..., 0.87594136,\n",
- " 0.27166232, 1.09066142],\n",
- " [1.83599651, 1.35424365, 2.02806857, ..., 1.4702398 ,\n",
- " 0.68986045, 0.62157243],\n",
+ " [ 1.80055467e+00, 1.23323167e+00],\n",
+ " [ 1.15474002e+00, -2.34714493e-02],\n",
+ " [ 7.14204169e-01, 1.00823822e+00],\n",
+ " [-2.31215664e-01, 6.05060657e-01],\n",
+ " [ 4.36942135e-01, 1.25876216e+00],\n",
+ " [ 1.52345979e+00, 2.86590475e-01],\n",
+ " [ 1.24510066e+00, 1.01034669e+00],\n",
+ " [ 9.42487335e-01, 1.39602560e+00],\n",
+ " [ 1.95519911e+00, 2.20516889e+00],\n",
+ " [ 6.06818174e-02, 6.48843530e-01],\n",
+ " [ 1.39558625e+00, 9.78032058e-01],\n",
+ " [ 4.29217844e-01, 5.38059698e-01],\n",
+ " [ 7.08952767e-01, 1.10737255e-01],\n",
+ " [ 7.42677275e-01, 7.62321216e-01],\n",
+ " [ 1.85957202e+00, 9.19685509e-01],\n",
+ " [ 4.07741165e-01, 6.11466904e-01],\n",
+ " [ 4.01475995e-01, 1.07151855e+00],\n",
+ " [-7.34881601e-02, 1.18373363e+00],\n",
+ " [ 5.25727505e-01, 6.45598884e-01],\n",
+ " [ 3.07915332e-01, 1.24208219e+00]]])
ex_kinetic_entries
(chain, draw, ex_kinetic_entries_dim_0)
float64
0.3878 0.8951 ... 1.239 -0.2781
array([[[ 0.38777316, 0.89514704, 0.91948396, ..., 0.62028104,\n",
+ " 1.47819303, 0.6457047 ],\n",
+ " [-0.1937104 , 0.70417817, 0.79235814, ..., 0.87393331,\n",
+ " 0.27373947, 0.82956865],\n",
+ " [ 0.1583581 , 0.58572878, 1.47547804, ..., 1.23923881,\n",
+ " 0.24287713, 3.35160718],\n",
" ...,\n",
- " [1.2916394 , 0.38084465, 0.56716142, ..., 1.07786404,\n",
- " 0.96363819, 0.31915633],\n",
- " [1.13245741, 1.52188822, 0.00309283, ..., 1.06684976,\n",
- " 0.51129127, 1.60580294],\n",
- " [1.07100396, 0.59082671, 0.27763361, ..., 0.22431599,\n",
- " 1.27428166, 0.18322852]]])
ey_capacity_entries
(chain, draw, ey_capacity_entries_dim_0)
float64
-0.007329 0.06155 ... -0.04051
array([[[-0.00732893, 0.06155461, -0.07922505, ..., 0.00947272,\n",
- " 0.02395246, -0.06397006],\n",
- " [ 0.07976601, 0.09863687, -0.00956693, ..., -0.03651581,\n",
- " 0.07219004, 0.00846576],\n",
- " [-0.02020134, 0.02217541, 0.07570865, ..., 0.03723407,\n",
- " 0.06206101, -0.06123004],\n",
+ " [ 0.77063559, 0.75364294, 0.94370375, ..., 0.2055839 ,\n",
+ " 1.26107131, 1.44119865],\n",
+ " [ 0.08230018, 0.60611572, 1.95867705, ..., 0.93768972,\n",
+ " 0.57810439, 1.99576825],\n",
+ " [ 1.5100651 , 0.53553071, 0.92326245, ..., 0.60210084,\n",
+ " 1.23927434, -0.2781215 ]]])
ex_capacity_entries
(chain, draw, ex_capacity_entries_dim_0)
float64
0.04521 -0.05129 ... -0.0311
array([[[ 0.04521431, -0.0512936 , -0.05987865, ..., 0.00039824,\n",
+ " -0.08532333, 0.04079851],\n",
+ " [-0.0131591 , 0.03118034, -0.022018 , ..., 0.05727717,\n",
+ " -0.00213896, 0.04820278],\n",
+ " [-0.00024879, -0.01336701, -0.05531057, ..., -0.06749464,\n",
+ " -0.09094858, -0.00230825],\n",
" ...,\n",
- " [ 0.00026155, -0.05572731, 0.13042606, ..., 0.01915475,\n",
- " 0.02044805, -0.03955177],\n",
- " [ 0.21149482, -0.01682025, 0.00464714, ..., -0.03239853,\n",
- " 0.0064431 , 0.02022704],\n",
- " [-0.07950032, 0.04025198, 0.00354846, ..., 0.00228403,\n",
- " 0.23312644, -0.04050929]]])
ex_capacity_entries
(chain, draw, ex_capacity_entries_dim_0)
float64
-0.02314 0.0963 ... 0.04925 0.06179
array([[[-0.0231366 , 0.09629869, -0.07619723, ..., -0.01149681,\n",
- " -0.13853977, 0.00604566],\n",
- " [-0.00168852, 0.02946517, 0.00089976, ..., 0.06196752,\n",
- " 0.02834678, 0.00397934],\n",
- " [-0.00731676, 0.01089503, -0.04146735, ..., 0.02909182,\n",
- " 0.03340486, 0.01479266],\n",
+ " [-0.00049025, -0.03857214, -0.01288019, ..., -0.04130573,\n",
+ " -0.03551246, 0.2457068 ],\n",
+ " [ 0.04309233, 0.19570556, -0.0214568 , ..., -0.07602045,\n",
+ " 0.04894327, 0.01736919],\n",
+ " [-0.02179961, 0.14378324, -0.07634473, ..., 0.14057038,\n",
+ " -0.00043905, -0.03109769]]])
Ey
(chain, draw, Ey_dim_0, Ey_dim_1)
float64
0.09345 -0.1555 ... -0.03429 1.242
array([[[[ 9.34537308e-02, -1.55487088e-01],\n",
+ " [-1.16916149e-02, -1.07117538e-03],\n",
+ " [ 4.56997009e-02, -6.07832236e-02],\n",
+ " [ 5.58440056e-02, -2.66398510e-01],\n",
+ " [-1.59538772e-02, -8.35210651e-02],\n",
+ " [ 1.41021028e-01, 7.69182221e-01]],\n",
+ "\n",
+ " [[ 4.84518824e-01, 7.85179738e-02],\n",
+ " [-3.55748699e-02, -2.74938556e-02],\n",
+ " [-6.36646114e-03, 1.05453459e-01],\n",
+ " [-2.30019779e-02, 8.24803823e-02],\n",
+ " [-1.41138114e-01, -2.37303451e-02],\n",
+ " [-1.31712870e-01, 7.62468812e-01]],\n",
+ "\n",
+ " [[ 8.77640493e-01, -5.82966524e-03],\n",
+ " [-1.02250961e-01, 2.89415093e-01],\n",
+ " [ 1.92583835e-03, 8.54108049e-02],\n",
+ " [-8.39715752e-02, -1.24172641e-02],\n",
+ " [-1.11805674e-01, -6.48725388e-02],\n",
+ " [-3.18246554e-02, 1.51019670e+00]],\n",
+ "...\n",
+ " [[-7.34881601e-02, 9.12292721e-03],\n",
+ " [-7.13028927e-04, -1.82592672e-02],\n",
+ " [-2.60781850e-01, 1.08611574e-01],\n",
+ " [-1.31844365e-02, 2.69695163e-02],\n",
+ " [ 2.90977170e-02, -4.67875308e-02],\n",
+ " [-4.96216638e-02, 1.18373363e+00]],\n",
+ "\n",
+ " [[ 5.25727505e-01, 3.42783829e-03],\n",
+ " [ 1.27211707e-02, -9.85967134e-02],\n",
+ " [-2.23731080e-02, -4.22573029e-02],\n",
+ " [-5.79486634e-02, 3.41440767e-02],\n",
+ " [ 7.67713201e-02, 1.85222582e-02],\n",
+ " [ 6.88833167e-02, 6.45598884e-01]],\n",
+ "\n",
+ " [[ 3.07915332e-01, -7.35585824e-02],\n",
+ " [-4.28001800e-02, 5.45088794e-02],\n",
+ " [-4.27795193e-03, 1.03169819e-01],\n",
+ " [ 1.10511195e-01, 3.12700041e-03],\n",
+ " [-4.66698607e-02, 1.07540675e-01],\n",
+ " [-3.42939103e-02, 1.24208219e+00]]]])
Ex
(chain, draw, Ex_dim_0, Ex_dim_1)
float64
-0.3878 0.04521 ... -0.0311
array([[[[-3.87773157e-01, 4.52143145e-02, -5.12936043e-02,\n",
+ " -5.98786461e-02, 3.57674737e-03],\n",
+ " [-4.32439411e-03, 5.69244895e-02, 7.21801943e-03,\n",
+ " 5.67079513e-02, -8.95147042e-01],\n",
+ " [ 9.19483957e-01, -1.53485982e+00, -2.48930596e-03,\n",
+ " 3.19260440e-02, -2.35195852e-02],\n",
+ " [ 2.12384496e-02, 3.83850687e+00, -8.94455020e-03,\n",
+ " -6.14804682e-01, -5.56743687e-02],\n",
+ " [-4.53731795e-02, -2.70277174e-03, -1.99054662e+00,\n",
+ " 6.20281041e-01, 1.47819303e+00],\n",
+ " [-5.25265109e-02, 3.98244230e-04, 6.45704702e-01,\n",
+ " -8.53233325e-02, 4.07985053e-02]],\n",
+ "\n",
+ " [[ 1.93710404e-01, -1.31590976e-02, 3.11803394e-02,\n",
+ " -2.20179958e-02, 3.24965377e-02],\n",
+ " [-3.13767563e-03, 8.79904562e-02, -1.35757116e-02,\n",
+ " -1.27613829e-01, -7.04178173e-01],\n",
+ " [ 7.92358142e-01, -2.22375657e+00, 1.48346186e-01,\n",
+ " 1.50046952e-01, -1.61589575e-02],\n",
+ " [-2.96658294e-02, 9.16335185e-01, 1.59088637e-02,\n",
+ "...\n",
+ " 7.06355817e-02, -1.71415831e-02],\n",
+ " [ 2.24421314e-02, 1.81725275e+00, 1.36123797e-01,\n",
+ " -9.79338577e-01, -1.71622917e-02],\n",
+ " [-1.80457188e-01, -2.93238505e-02, -1.44563374e+00,\n",
+ " 9.37689722e-01, 5.78104392e-01],\n",
+ " [ 8.27428074e-02, -7.60204500e-02, 1.99576825e+00,\n",
+ " 4.89432707e-02, 1.73691921e-02]],\n",
+ "\n",
+ " [[-1.51006510e+00, -2.17996083e-02, 1.43783240e-01,\n",
+ " -7.63447298e-02, -1.27727150e-03],\n",
+ " [ 1.47658281e-01, 9.90909355e-03, 6.39347454e-04,\n",
+ " 3.86193271e-04, -5.35530707e-01],\n",
+ " [ 9.23262445e-01, -5.56582418e-01, 8.92427220e-02,\n",
+ " -4.90698297e-03, 2.43478348e-02],\n",
+ " [-7.82511119e-04, 5.61954674e-01, 4.62326009e-02,\n",
+ " -3.55742477e-01, 1.06054730e-01],\n",
+ " [-1.31666407e-02, 1.02315136e-02, -2.93148620e-01,\n",
+ " 6.02100838e-01, 1.23927434e+00],\n",
+ " [-1.36148282e-02, 1.40570380e-01, -2.78121499e-01,\n",
+ " -4.39045680e-04, -3.10976883e-02]]]])
ey_capacity_entries
(chain, draw, ey_capacity_entries_dim_0)
float64
-0.1555 -0.01169 ... -0.03429
array([[[-0.15548709, -0.01169161, -0.00107118, ..., -0.01595388,\n",
+ " -0.08352107, 0.14102103],\n",
+ " [ 0.07851797, -0.03557487, -0.02749386, ..., -0.14113811,\n",
+ " -0.02373035, -0.13171287],\n",
+ " [-0.00582967, -0.10225096, 0.28941509, ..., -0.11180567,\n",
+ " -0.06487254, -0.03182466],\n",
" ...,\n",
- " [ 0.00746956, -0.00025921, 0.12260726, ..., -0.05187676,\n",
- " 0.09149077, -0.01489737],\n",
- " [-0.02741032, -0.1356605 , -0.03127837, ..., 0.01042669,\n",
- " -0.04180302, 0.03223152],\n",
- " [ 0.02882846, -0.04752851, -0.01015277, ..., -0.06728135,\n",
- " 0.04925306, 0.06178977]]])
PandasIndex
PandasIndex(Index([0], dtype='int64', name='chain'))
PandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n",
+ " [ 0.00912293, -0.00071303, -0.01825927, ..., 0.02909772,\n",
+ " -0.04678753, -0.04962166],\n",
+ " [ 0.00342784, 0.01272117, -0.09859671, ..., 0.07677132,\n",
+ " 0.01852226, 0.06888332],\n",
+ " [-0.07355858, -0.04280018, 0.05450888, ..., -0.04666986,\n",
+ " 0.10754068, -0.03429391]]])
PandasIndex
PandasIndex(Index([0], dtype='int64', name='chain'))
PandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n",
" ...\n",
" 490, 491, 492, 493, 494, 495, 496, 497, 498, 499],\n",
- " dtype='int64', name='draw', length=500))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5], dtype='int64', name='Ey_dim_0'))
PandasIndex
PandasIndex(Index([0, 1], dtype='int64', name='Ey_dim_1'))
PandasIndex
PandasIndex(Index([0, 1], dtype='int64', name='ey_kinetic_entries_dim_0'))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5], dtype='int64', name='Ex_dim_0'))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4], dtype='int64', name='Ex_dim_1'))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype='int64', name='ex_kinetic_entries_dim_0'))
ey_capacity_entries_dim_0
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype='int64', name='ey_capacity_entries_dim_0'))
ex_capacity_entries_dim_0
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], dtype='int64', name='ex_capacity_entries_dim_0'))
- created_at :
- 2024-03-08T22:23:39.313824
- arviz_version :
- 0.17.0
- inference_library :
- pymc
- inference_library_version :
- 5.10.3
\n",
+ " dtype='int64', name='draw', length=500))
PandasIndex
PandasIndex(Index([0, 1], dtype='int64', name='ey_kinetic_entries_dim_0'))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype='int64', name='ex_kinetic_entries_dim_0'))
ex_capacity_entries_dim_0
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], dtype='int64', name='ex_capacity_entries_dim_0'))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5], dtype='int64', name='Ey_dim_0'))
PandasIndex
PandasIndex(Index([0, 1], dtype='int64', name='Ey_dim_1'))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5], dtype='int64', name='Ex_dim_0'))
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4], dtype='int64', name='Ex_dim_1'))
ey_capacity_entries_dim_0
PandasIndex
PandasIndex(Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype='int64', name='ey_capacity_entries_dim_0'))
- created_at :
- 2024-03-09T23:44:54.466271
- arviz_version :
- 0.17.0
- inference_library :
- pymc
- inference_library_version :
- 5.10.3
\n",
" \n",
" \n",
" \n",
@@ -1560,7 +1555,7 @@
"\t> prior"
]
},
- "execution_count": 93,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
@@ -1569,9 +1564,643 @@
"trace_prior"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Sample FCCs from the prior predictive trace, and organize into dataframe\n"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 94,
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " FCC_ref | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 6 | \n",
+ " 7 | \n",
+ " 8 | \n",
+ " 9 | \n",
+ " ... | \n",
+ " 490 | \n",
+ " 491 | \n",
+ " 492 | \n",
+ " 493 | \n",
+ " 494 | \n",
+ " 495 | \n",
+ " 496 | \n",
+ " 497 | \n",
+ " 498 | \n",
+ " 499 | \n",
+ "
\n",
+ " \n",
+ " Reaction | \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",
+ " ENO | \n",
+ " 0.047295 | \n",
+ " 8.026206 | \n",
+ " 0.063011 | \n",
+ " 0.124888 | \n",
+ " 0.195212 | \n",
+ " 0.016624 | \n",
+ " 0.106775 | \n",
+ " 0.005381 | \n",
+ " 0.918388 | \n",
+ " 0.152977 | \n",
+ " ... | \n",
+ " 0.441326 | \n",
+ " 0.345804 | \n",
+ " 0.039761 | \n",
+ " 0.018415 | \n",
+ " 0.060389 | \n",
+ " 0.075832 | \n",
+ " 1.643886 | \n",
+ " 0.068338 | \n",
+ " 0.017555 | \n",
+ " 0.176262 | \n",
+ "
\n",
+ " \n",
+ " EX_2pg_e | \n",
+ " 0.261289 | \n",
+ " -12.788574 | \n",
+ " 0.682338 | \n",
+ " 0.174929 | \n",
+ " 0.849662 | \n",
+ " 0.370961 | \n",
+ " -0.137570 | \n",
+ " 0.109006 | \n",
+ " 0.521470 | \n",
+ " -0.052516 | \n",
+ " ... | \n",
+ " 0.032697 | \n",
+ " 0.076065 | \n",
+ " -0.073643 | \n",
+ " 0.006826 | \n",
+ " 0.797295 | \n",
+ " 0.074228 | \n",
+ " -0.854880 | \n",
+ " 0.293006 | \n",
+ " 0.937428 | \n",
+ " 0.146382 | \n",
+ "
\n",
+ " \n",
+ " EX_pep_e | \n",
+ " 0.305514 | \n",
+ " 1.453545 | \n",
+ " 0.049101 | \n",
+ " 0.392880 | \n",
+ " -0.019426 | \n",
+ " 0.377481 | \n",
+ " 0.421938 | \n",
+ " 0.072107 | \n",
+ " -1.153854 | \n",
+ " 0.145936 | \n",
+ " ... | \n",
+ " 0.010383 | \n",
+ " 0.356143 | \n",
+ " 0.018649 | \n",
+ " 0.975294 | \n",
+ " -0.062271 | \n",
+ " 0.195938 | \n",
+ " 1.975325 | \n",
+ " 0.037652 | \n",
+ " -0.068944 | \n",
+ " 0.035734 | \n",
+ "
\n",
+ " \n",
+ " PGM | \n",
+ " 0.131881 | \n",
+ " 3.358388 | \n",
+ " 0.074327 | \n",
+ " 0.084372 | \n",
+ " 0.211194 | \n",
+ " 0.088608 | \n",
+ " -0.104577 | \n",
+ " 0.680955 | \n",
+ " 0.408771 | \n",
+ " 0.025443 | \n",
+ " ... | \n",
+ " 0.214996 | \n",
+ " 0.076071 | \n",
+ " 0.026660 | \n",
+ " -0.014842 | \n",
+ " 0.096365 | \n",
+ " 0.085245 | \n",
+ " -3.718252 | \n",
+ " 0.222637 | \n",
+ " 0.045473 | \n",
+ " 0.189378 | \n",
+ "
\n",
+ " \n",
+ " PK | \n",
+ " 0.092579 | \n",
+ " 0.850861 | \n",
+ " 0.106388 | \n",
+ " 0.064738 | \n",
+ " -0.069845 | \n",
+ " 0.104887 | \n",
+ " 0.493502 | \n",
+ " 0.045469 | \n",
+ " 0.015829 | \n",
+ " 0.156662 | \n",
+ " ... | \n",
+ " 0.101326 | \n",
+ " 0.136658 | \n",
+ " 0.037847 | \n",
+ " 0.030976 | \n",
+ " 0.049741 | \n",
+ " 0.160982 | \n",
+ " 1.319145 | \n",
+ " 0.135841 | \n",
+ " 0.033574 | \n",
+ " 0.124061 | \n",
+ "
\n",
+ " \n",
+ " SK_adp_c | \n",
+ " 0.161442 | \n",
+ " 0.099575 | \n",
+ " 0.024834 | \n",
+ " 0.158194 | \n",
+ " -0.166797 | \n",
+ " 0.041439 | \n",
+ " 0.219932 | \n",
+ " 0.087082 | \n",
+ " 0.289396 | \n",
+ " 0.571498 | \n",
+ " ... | \n",
+ " 0.199272 | \n",
+ " 0.009259 | \n",
+ " 0.950725 | \n",
+ " -0.016668 | \n",
+ " 0.058480 | \n",
+ " 0.407775 | \n",
+ " 0.634775 | \n",
+ " 0.242527 | \n",
+ " 0.034913 | \n",
+ " 0.328183 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
6 rows × 500 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ "FCC_ref 0 1 2 3 4 5 \\\n",
+ "Reaction \n",
+ "ENO 0.047295 8.026206 0.063011 0.124888 0.195212 0.016624 \n",
+ "EX_2pg_e 0.261289 -12.788574 0.682338 0.174929 0.849662 0.370961 \n",
+ "EX_pep_e 0.305514 1.453545 0.049101 0.392880 -0.019426 0.377481 \n",
+ "PGM 0.131881 3.358388 0.074327 0.084372 0.211194 0.088608 \n",
+ "PK 0.092579 0.850861 0.106388 0.064738 -0.069845 0.104887 \n",
+ "SK_adp_c 0.161442 0.099575 0.024834 0.158194 -0.166797 0.041439 \n",
+ "\n",
+ "FCC_ref 6 7 8 9 ... 490 491 \\\n",
+ "Reaction ... \n",
+ "ENO 0.106775 0.005381 0.918388 0.152977 ... 0.441326 0.345804 \n",
+ "EX_2pg_e -0.137570 0.109006 0.521470 -0.052516 ... 0.032697 0.076065 \n",
+ "EX_pep_e 0.421938 0.072107 -1.153854 0.145936 ... 0.010383 0.356143 \n",
+ "PGM -0.104577 0.680955 0.408771 0.025443 ... 0.214996 0.076071 \n",
+ "PK 0.493502 0.045469 0.015829 0.156662 ... 0.101326 0.136658 \n",
+ "SK_adp_c 0.219932 0.087082 0.289396 0.571498 ... 0.199272 0.009259 \n",
+ "\n",
+ "FCC_ref 492 493 494 495 496 497 \\\n",
+ "Reaction \n",
+ "ENO 0.039761 0.018415 0.060389 0.075832 1.643886 0.068338 \n",
+ "EX_2pg_e -0.073643 0.006826 0.797295 0.074228 -0.854880 0.293006 \n",
+ "EX_pep_e 0.018649 0.975294 -0.062271 0.195938 1.975325 0.037652 \n",
+ "PGM 0.026660 -0.014842 0.096365 0.085245 -3.718252 0.222637 \n",
+ "PK 0.037847 0.030976 0.049741 0.160982 1.319145 0.135841 \n",
+ "SK_adp_c 0.950725 -0.016668 0.058480 0.407775 0.634775 0.242527 \n",
+ "\n",
+ "FCC_ref 498 499 \n",
+ "Reaction \n",
+ "ENO 0.017555 0.176262 \n",
+ "EX_2pg_e 0.937428 0.146382 \n",
+ "EX_pep_e -0.068944 0.035734 \n",
+ "PGM 0.045473 0.189378 \n",
+ "PK 0.033574 0.124061 \n",
+ "SK_adp_c 0.034913 0.328183 \n",
+ "\n",
+ "[6 rows x 500 columns]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Sample prior FCCs\n",
+ "fcc_prior = np.array([ll.flux_control_coefficient(Ex=ex) for ex in trace_prior.prior['Ex'][0].to_numpy()])\n",
+ "\n",
+ "# Organize prior FCCs as a dataframe\n",
+ "priors_df = pd.DataFrame(fcc_prior[:, 0], columns=[r.id for r in model.reactions]\n",
+ " ).stack().reset_index(level=1)\n",
+ "priors_df['type'] = 'Prior'\n",
+ "\n",
+ "# Copy prior_df now for plotting later\n",
+ "plot_df = priors_df.copy\n",
+ "\n",
+ "# Resphape dataframe to have rows for FCC samples for each reaction\n",
+ "priors_df['FCC_ref'] = [x for x in priors_df.index]\n",
+ "priors_df = priors_df.rename(columns={'level_1': 'Reaction', 0: 'FCC'}).reset_index()\n",
+ "priors_df = priors_df.pivot(index='Reaction', values='FCC', columns='FCC_ref')\n",
+ "\n",
+ "display(priors_df)\n",
+ "\n",
+ "# Save FCC prior predictives\n",
+ "priors_df.to_csv('../tests/test_data/expected_wu2004_FCCpriors_updated.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " index | \n",
+ " Reaction | \n",
+ " FCC | \n",
+ " Type | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 2 | \n",
+ " 0 | \n",
+ " PGM | \n",
+ " 0.131881 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 0 | \n",
+ " ENO | \n",
+ " 0.047295 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 0 | \n",
+ " PK | \n",
+ " 0.092579 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 1 | \n",
+ " PGM | \n",
+ " 3.358388 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 1 | \n",
+ " ENO | \n",
+ " 8.026206 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 2991 | \n",
+ " 498 | \n",
+ " ENO | \n",
+ " 0.017555 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 2992 | \n",
+ " 498 | \n",
+ " PK | \n",
+ " 0.033574 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 2996 | \n",
+ " 499 | \n",
+ " PGM | \n",
+ " 0.189378 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 2997 | \n",
+ " 499 | \n",
+ " ENO | \n",
+ " 0.176262 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 2998 | \n",
+ " 499 | \n",
+ " PK | \n",
+ " 0.124061 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
1500 rows × 4 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " index Reaction FCC Type\n",
+ "2 0 PGM 0.131881 New\n",
+ "3 0 ENO 0.047295 New\n",
+ "4 0 PK 0.092579 New\n",
+ "8 1 PGM 3.358388 New\n",
+ "9 1 ENO 8.026206 New\n",
+ "... ... ... ... ...\n",
+ "2991 498 ENO 0.017555 New\n",
+ "2992 498 PK 0.033574 New\n",
+ "2996 499 PGM 0.189378 New\n",
+ "2997 499 ENO 0.176262 New\n",
+ "2998 499 PK 0.124061 New\n",
+ "\n",
+ "[1500 rows x 4 columns]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " level_0 | \n",
+ " index | \n",
+ " Reaction | \n",
+ " FCC | \n",
+ " Type | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0.0 | \n",
+ " PGM | \n",
+ " 0.131881 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 0.0 | \n",
+ " ENO | \n",
+ " 0.047295 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 4 | \n",
+ " 0.0 | \n",
+ " PK | \n",
+ " 0.092579 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 1.0 | \n",
+ " PGM | \n",
+ " 3.358388 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 9 | \n",
+ " 1.0 | \n",
+ " ENO | \n",
+ " 8.026206 | \n",
+ " New | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 2995 | \n",
+ " 498 | \n",
+ " NaN | \n",
+ " PGM | \n",
+ " -0.216049 | \n",
+ " Old | \n",
+ "
\n",
+ " \n",
+ " 2996 | \n",
+ " 498 | \n",
+ " NaN | \n",
+ " PK | \n",
+ " 0.876267 | \n",
+ " Old | \n",
+ "
\n",
+ " \n",
+ " 2997 | \n",
+ " 499 | \n",
+ " NaN | \n",
+ " ENO | \n",
+ " -0.160071 | \n",
+ " Old | \n",
+ "
\n",
+ " \n",
+ " 2998 | \n",
+ " 499 | \n",
+ " NaN | \n",
+ " PGM | \n",
+ " 1.124280 | \n",
+ " Old | \n",
+ "
\n",
+ " \n",
+ " 2999 | \n",
+ " 499 | \n",
+ " NaN | \n",
+ " PK | \n",
+ " 0.035792 | \n",
+ " Old | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
3000 rows × 5 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " level_0 index Reaction FCC Type\n",
+ "0 2 0.0 PGM 0.131881 New\n",
+ "1 3 0.0 ENO 0.047295 New\n",
+ "2 4 0.0 PK 0.092579 New\n",
+ "3 8 1.0 PGM 3.358388 New\n",
+ "4 9 1.0 ENO 8.026206 New\n",
+ "... ... ... ... ... ...\n",
+ "2995 498 NaN PGM -0.216049 Old\n",
+ "2996 498 NaN PK 0.876267 Old\n",
+ "2997 499 NaN ENO -0.160071 Old\n",
+ "2998 499 NaN PGM 1.124280 Old\n",
+ "2999 499 NaN PK 0.035792 Old\n",
+ "\n",
+ "[3000 rows x 5 columns]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAHKCAYAAADfIDUJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhXUlEQVR4nO3de3zO9f/H8ce184m2sc1hhLHJHJKQkjN9U8KIpYjQQUkOkUilhN+38k1IKSkd5BSRchzK5BA5LDbmOGYbM2bnw/X7Y+3K7NqJi22X5/122635vN+fz/X6rMvluffn/Xl/DEaj0YiIiIiIWIxNaRcgIiIiYm0UsEREREQsTAFLRERExMIUsEREREQsTAFLRERExMIUsEREREQsTAFLRERExMIUsEREREQsTAFLRERExMLsSruAmy0+Pp7PPvuMkJAQzp49i5OTE40bN+bZZ5+lZcuW+fqHhoYyb948Dh8+TGpqKnXq1CE4OJjevXtjMBhK4QxERESkvDFY86NyIiMjefrpp4mLi6N69eo0aNCAqKgoDh06hMFgYNasWXTq1MnU/9tvv2Xy5MnY29vTsmVL7O3t+eOPP0hJSaFHjx5Mnz7dYrW1b9+e+Ph4HB0d8fX1tdhxRURE5OaJiooiLS0NT09PQkJCCuxntQErMzOToKAgwsPDGThwIGPHjsXW1haApUuXMmHCBCpUqEBoaCgODg4cO3aMRx55BDc3NxYuXEj9+vUBOHv2LE8//TSnTp1ixowZdO3a1SL1NWnShNTUVIscS0RERG4tJycn9u3bV2C71V4iXL9+PeHh4TRv3pzx48fnaevduze//vorx44d4++//+buu+9m3rx5ZGdnM3jwYFO4AqhWrRqTJk1iyJAhzJ8/32IBy9HRkdTUVJycnPDz87PIMUVEROTmioyMJDU1FUdHx0L7WW3A+uWXXwAYMmSI2fbPP/88z583b94MQJcuXfL1vf/++6lYsSIHDhzg/PnzVK5c+Ybr8/X15dKlS/j5+bF8+fIbPp6IiIjcfEFBQYSFhRU5vcdqA9bBgwcBuPvuu0lISGDNmjUcPnwYOzs77r33Xh566CHTJcPz58+b5kPVrl0737FsbW2pU6cOf/31F+Hh4RYJWCIiImK9rDJgpaenc+bMGRwdHQkLC2P06NFcvHjR1P7tt98SGBjI3Llz8fb2JiYmBgAvL68C7xT08vICIC4u7uafgIiIiJRrVhmwrly5AkB2djYvvfQSTZo0YcyYMdSuXZuIiAimTJnCgQMHGDZsGIsXLyYlJQUAZ2fnAo+Ze601KSmpwD6LFi1i8eLFxaoxMjKyuKcjIiIi5YxVBqz09HQAMjIy8PPz4/PPP8fOLudUmzZtypdffsl//vMfDhw4wMaNG6lUqVKxj13YTZdxcXGEhYXdWPEiIiJS7lllwLp6JOrJJ580hatcFSpU4LHHHmP+/Pls376dvn37AhS6bEJaWhoALi4uBfbx8vIiMDCwWDXm3oUgIiIi1scqA5abmxsODg6kp6cXOMs/d3t8fDw+Pj5AzmT3gsTGxgLg7e1dYJ/g4GCCg4OLVWPuXQgiIiJifazyWYS2trbUq1cPwDSB/Vq5YapSpUq4u7vj4+NDSkoKp0+fztc3KyuLY8eOAeDv73+TqhYRERFrYZUBC6Bdu3YA/PTTT/najEYjW7duBaBFixZ5+q9bty5f/23btpGYmEhgYGChI1giIiIiYMUBKzg4mIoVKxIaGsrcuXNNk9ONRiMzZ87k4MGD3HnnnbRv3x6Afv36YWdnxyeffML+/ftNxzl79izvvPMOAM8///ytPxEREREpd6xyDhbkzJX64IMPGD58ODNmzGD58uX4+/sTERHByZMncXd35/3338fBwQGA+vXrM3LkSP773//yxBNP0KJFCxwdHdmxYwfJyckEBwebXeVdRERE5FpWG7AA2rRpw08//cTcuXMJDQ1l8+bNVK5cmT59+vDcc8/lmwA/ZMgQateuzYIFC9i3bx8GgwE/Pz+efPJJunfvXkpnISIiIuWNVQcsgDvvvJOpU6cWu3/Hjh3p2LHjTaxIRERErJ3VzsESERERKS0KWCLXuHLlCj///DNnzpwp7VJERKScsvpLhCIltXDhQtasWUONGjWYM2dOaZcjIiLlkEawRK6xZs0aALOLzoqIiBSHApaIiIiIhSlgiYiIiFiY5mCJiIiUUcuXL2f8+PEl3q9FixYsXLjwJlQkxaWAJSIiUkZVqlSJe+65J9/26OhooqOjcXBwoGHDhvna/f39b0V5UggFLBERkTKqbdu2tG3bNt/2jz/+mFmzZuHl5cX3339fCpVJUTQHS0RERMTCFLBERERELEwBS0RExIp88MEHBAQE0K1btwL7/PnnnwQEBNC8eXPS0tIACAgIICAggMuXL7NixQp69uxJkyZNaN26Nc8//zw7d+4s8Hjp6el89dVX9O3bl2bNmtG4cWMeeughpk6dSmxsrMXPsTxQwBIREbEivXr1AiAiIoLDhw+b7bNixQoAHnnkERwdHfO0zZw5k3HjxnHixAnq1q1LZmYmISEhDBgwgC+++CLfsWJjY+nTpw/vvfce+/bt44477qBu3bpER0ezYMECunXrxp9//mnZkywHFLBERESsSK1atWjWrBkAK1euzNeelpbGL7/8AkBQUFC+9oULF9KtWzd+++03li1bxrZt2xg+fDhGo5H//ve/7Nmzx9TXaDTy8ssvc+jQIZo1a8aaNWvYtGkTy5cvZ9u2bfTq1YuEhARefPFF4uLibtIZl00KWCIiIlYmdxRr1apVZGVl5WnbsGEDiYmJ1KtXj8aNG+fbt1GjRkyfPh03NzcAbG1teemll3j00UcxGo3Mnj3b1Hfjxo3s3bsXb29vPv/8c+rUqWNqq1ChAlOmTKFJkyZcvHiRBQsW3IQzLbsUsERERKzMww8/jIuLC3FxcYSGhuZp+/HHHwHzo1cAAwYMwNbWNt/24OBgAHbs2EFSUhKQE9YAOnXqhIuLS759DAYDjz32GAAhISHXeTblk9bBEhERsTIuLi48/PDDLFu2jJUrV/Lggw8CmAKXnZ2dKfhcy9yoFuRMggfIyMggKiqKgIAAIiIigJzwVNB8r8uXLwNw4sQJjEYjBoPhhs6tvFDAEhERsUK9evVi2bJlbNiwgaSkJFxdXfnpp5/IysqiQ4cOVK5c2ex+d9xxh9ntV49QJSYmAnDlyhXg35XlC5OVlUVSUpLp0qO1U8ASERGxQs2aNaN27docP36cDRs20L17d9Ok99w5WuakpKTg4eGRb3tuqALw9PQEwNnZGYA33niDp556ypLll3uagyUiImKlcudZrV+/ntOnTxMeHo6np6fZx+/kOnLkiNntuZcAXVxcqF69OgC1a9cudB/IGd3666+/iImJua5zKK8UsERERKxUz549sbOz4/fff2f16tUAPPbYY9jb2xe4z9KlS81uz33mYfv27U1rZ7Vv3x6ANWvWcOHCBbP7vf766/Tt25fRo0df93mURwpYIiIiVsrLy4sHH3yQlJQUPvvsM6DguwdzrVu3jo8++ojMzEwgZ1L7jBkzWLt2LQ4ODrz00kumvl27dsXf35/Lly8zePDgPCNZV65c4a233iI0NBSDwcCzzz57E86w7NIcLBERESvWu3dvQkJCSE5OJjAw0HQ3YEH8/f2ZM2cO3333HTVq1OD06dMkJCTg5OTE1KlT86x1ZW9vz5w5cxgyZAiHDh3i0UcfpXbt2jg7O3PixAmSk5MBGD9+PG3atLmp51nWKGCJiIhYsXbt2uHh4cHFixcLndyea9y4cZw8eZLvv/+e8PBwKlWqRIcOHRgyZAh+fn55+hqNRmrUqMGPP/7I999/z9q1a4mMjCQ1NRUPDw8efPBB+vfvT/PmzW/W6ZVZClgiIiLlzPDhwxk+fHix+iYmJnLlyhUcHBx49NFHi+xvY2PDk08+yZNPPllov08//ZTQ0FDGjh1LYGAggwcPZvDgwcWq6XagOVgiIiJWbMWKFWRkZNClS5cC17gqqczMTFavXk18fDxz5syxyDGtjUawRERErExERARubm789ddfzJw5E4CBAwda7PjZ2dmm70+dOmWx41oTBSwRERErM336dH7//XfTn/v06UOjRo0sdvyrA5aYp0uEIiIiVqZx48Y4OTnh6enJM888w6RJkyx6fAWsomkES0RExMqMGDGCESNGlGif8PDwYvc1Go0lLem2oxEsEREREQu7rQLWyy+/TEBAAMuXLzfbHhoayqBBg2jVqhVNmzalV69eLFmyREldRETkKgaDobRLKPNum4C1ZMkS1q5dW2D7t99+y6BBg9i1axcNGjSgZcuWREZGMnHiRF577bVbWKmIiEjZZmNz28SH63ZbzME6fvw47733XoHtx44d491336VixYosXLiQ+vXrA3D27FmefvppVqxYQdu2benateutKllERKTM0ghW0aw+gqanpzN69GhsbGxo0KCB2T7z5s0jOzubwYMHm8IVQLVq1Ux3XsyfP/+W1CsiIlLWaQSraFb/E5oxYwZhYWFMmjSJqlWrmu2zefNmALp06ZKv7f7776dixYocOHCA8+fP38xSRURExEpYdcAKDQ3lyy+/5JFHHqF79+5m+5w/f574+HgcHR2pXbt2vnZbW1vTk8NLcguriIiI3L6sNmDFx8czduxYqlSpwltvvVVgv5iYGAC8vLwKvKbs5eUFQFxcnMXrFBEREetjtZPcX3/9dS5cuMBXX31FxYoVC+yXkpICgLOzc4F9HB0dAUhKSir0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oIAlIiJSBF9f39Iu4YaU9/rLIwUsERGRIowZM6a0S5ByRpPcRURERCxMAUtERETEwhSwRERERCxMAUtERETEwhSwRERERCxMAUtERETEwhSwRERERCxMAUtERETEwhSwRERERCxMAUtERETEwhSwRERERCxMzyIUEREpwvvvv09UVFRpl3HdfH199TzFW0wBS0REpAhRUVFERkaWdhllUlJSEq+++ip79uzhwoULZGdnU7VqVe69914ef/xx7r777nz79O/fn507dzJ79mw6depU5GtERUXRsWNHKlSowO7du2/CWVieApaIiEhxGWzBwb20qyi+9AQwZt2UQ2dmZhIdHU1KSgpnzpzBz8+P1q1bk5aWRmRkJEuXLmXp0qU8/vjjvPHGGzg6Ot6UOsoqBSwREZHicnCHO3uWdhXFd/JHSLtg8cNeunSJ06dPk5GRgZOTE99//z0NGjTI02fbtm288cYbLFmyhGPHjvH1119jZ3f7xA5NchcREZESmTRpEhkZGbi4uFCjRo184QrggQceYOnSpfj6+vLnn38ya9asUqi09ChgiYiISLEdOnSIjRs3AuDj44PBYCiwr6enJ5MmTQLgyy+/5MqVK4UeOyUlhU8++YSuXbvSuHFj2rdvz4wZM0hLS7PcCdwit89YnYiIiNywtWvXAuDi4oK9vX2R/du0aYOPjw8xMTH8+uuv9O7d22y/pKQknnnmGf766y/c3d1p06YNly5dYt68eaZAV55oBEtERESKbd++fQA4OTkVq7/BYKB58+YAhIWFFdhv9uzZ/PXXX7Ro0YKNGzcya9YsFi5cyHfffUd0dPSNF36LWX3AWrlyJf3796d58+Y0bNiQtm3b8tprr3Hs2DGz/desWUNwcDAtWrSgWbNmPPnkk6a0LiIicrs7f/48QIkmrHt5eQFw7tw5s+0ZGRn88MMP2NjYMHXqVNzc3Extd999Ny+99NINVFw6rDZgGY1GRo8ezdixY9m7dy9+fn60adMGW1tbfvzxR4KCgti+fXueff7v//6PkSNHEh4ezj333EOTJk3Yt28fL7/8Mh999FEpnYmIiEjZkZVV8mUfigpjBw8e5MqVK9StWxdfX9987V26dCnxa5Y2q52D9dNPP7F69Wq8vb354osv8Pf3B3LeGDNnzmTu3LmMGTOG9evX4+LiQmhoKF988QXVq1fnm2++oVq1agAcPnyYgQMHMmfOHNq1a0eTJk1K87RERERKVdWqVYmMjCxR0IqLiwOgSpUqZttjYmIKba9evTq2trYlrLR0We0I1tKlSwEYPXq0KVwB2Nra8sorr1CvXj3Onz9PaGgoAHPnzgVg5MiRpnAFUL9+fV555RUA5s+ff4uqFxERKZsaNmwIQGpqarH3+euvvwC46667Cu1nNBoLbLOxKV+RpXxVWwIVK1bEz8+PZs2a5WszGAzUrl0bgNjYWK5cucLu3buxt7enQ4cO+fp36dIFg8HA1q1byc7Ovum1i4iIlFXdu3cHcu76y8jIKLL/9u3bOXHiBE5OTjz88MNm++SOXJ05c8Zse3x8fLFeqyyx2oA1e/Zs1qxZQ40aNfK1ZWVlme5kuHqos3r16ri6uubr7+npSeXKlUlOTubUqVM3vXYREZGyqk6dOqaQde7cuUIHHhISEnjzzTcBePLJJ6lQoYLZfg0bNsTd3Z1jx45x5MiRfO2bNm2yQOW3ltUGrMJ89913nDlzBg8PD+677z7TtV8fH58C98m9AyL3OrKIiMjt6vXXX8fBwYGUlBSioqI4fPhwvj47d+6kb9++nDx5kiZNmjBy5MgCj2dnZ0f//v0BePXVV/P8WxseHs4HH3xg+ZO4yax2kntBtm/fzv/93/8BOfOznJ2dSU5OBsDZ2bnA/XIfUpnb15xFixaxePHiYtWhp7KLiEh55erqSo0aNTh37hxJSUl0796devXqUbt2bbKysoiIiOD06dMABAUF8cYbbxS5KOlzzz3H/v372bJlCw899BAtW7YkPT2dHTt2EBgYSEJCwi04M8u5rQJWSEgIr7zyCunp6fTr14/HH38coER3JhQ2FBoXF1foImoiIlLOpSfkPEC5vEhPuGmHtrW1pXr16iQlJdG0aVP27t1LSEgITk5OVKtWjaeeeoqgoCACAwOLdTx7e3s++eQTvvvuO5YuXUpoaCgVKlTg8ccfZ9SoUbRs2fKmncvNcNsErIULFzJ16lSysrLo378/EyZMMLXlzrsq7I6I3Ocgubi4FNjHy8ur2G+kyMjIEt2BISIiZYAxC9IulHYVZYqrq2uJL+EtXLjQ7HZbW1v69+9vulx4tb///vu66istVh+wMjMzmTx5Mj/88AMGg4HRo0fz7LPP5umTO/eqsPlVsbGxAHh7exfYJzg4mODg4GLVFRQUpNEuEZFywtzil+VJea+/PLLqgJWamsqLL77I77//jpOTE9OnT+c///lPvn5169bFzs6O06dPk5aWZppvlSs+Pp4LFy7g7OxMzZo1b1X5IiJSRowZM6a0S5ByxmrvIszKyjKFK09PTxYuXGg2XEHOBPb77ruP9PR0QkJC8rWvXbsWo9FoetSOiIiISGGsNmB98skn/P7777i4uPD111/TuHHjQvsPGDAAgGnTpnHy5EnT9sOHD5ueQ3jtpUURERERc6zyEuGlS5f44osvgJw5U59++mmBfbt3786DDz5I27Zt6devH9999x3dunXjvvvuIysrix07dpCRkcHo0aNNjwcQERERKYxVBqydO3ea1qs6ceIEJ06cKLBvw4YNefDBBwGYNGkSDRs25Pvvv2fnzp04Ojpy9913M2jQIDp27HgrShcRERErYJUBq3PnzoSHh5d4P4PBQK9evejVq9dNqEpERERuF1Y7B0tERESktChgiYiIiFiYApaIiIiIhSlgiYiIiFiYApaIiIiIhSlgiYiIiFiYApaIiIiIhSlgyS2VmprKiRMnMBqNpV2KiIjITaOAJbeM0Whk3LhxDB8+nHXr1pV2OSIiIjeNApbcMmlpaRw7dgyAOXPmlHI1IiIiN48CltwyWVlZpu+zs7NLsRIREZGbSwFLbhkHB4fSLkFEROSWUMASERERsTAFLBERERELU8ASERERsTAFLBERERELU8ASERERsTAFLBG57V29hIiIiCUoYInIbe23336jb9++fP7556VdiohYEQUsEbmtffzxx6SlpbFy5crSLkVErIgClojc1lJSUkq7BBGxQgpYIiIiIhamgCUiIiJiYQpYIiIiIhamgCUiIiJiYQpYIoXIyMgo7RJERKQcUsASKUR0dHRplyAiUuZocd6iKWCJXOXSpUt5/nz69OlSqkREpOxKS0sr7RLKPAUskats2LAhz59DQkJ0mVBE5BqpqamlXUKZp4AlAhiNRr7++msWLFiQZ/uOHTt45513tBiliMhVNH2iaApYcsuU1Wv2WVlZfPzxxyxZsiRng8EWvO4D+woA7N27lwkTJuS7fCgicjsyGo3s2LEjz7aTJ0+WUjVllwLWNY4fP86YMWNo3749jRs3pkuXLsyYMYOkpKTSLq3cK2ujQLGxsaxYsYIxY8awfv36nI02juDbFTwaQo1u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Ash5vI859erVIyQkhPDw8AInyIuIiIjkKvGzCAGaN2/OTz/9RN++fXFycsJoNJr9qlq1KkOHDuXXX3+lXbt2Fi695GJiYli4cCGQM5/s6u0APj4+ZvfLvYNHa3iJiIhIcZR4BCuXu7s7b7/9NhMmTGDv3r0cO3aMS5cu4ezsjJeXF3Xq1KF+/fo3XGD//v3ZuXNnsfru2rWrwFuYExMTGTZsGElJSdx77708/PDDpraUlBQgZ86VObnbk5OTC339RYsWsXjx4mLVGhkZWax+IiIiUv5cd8DK5eDgQMuWLWnZsqUl6snHw8OjwJGla9nYmB+Qu3DhAkOHDiUsLIwaNWqY7mjMZWtrS3Z2dpHHL2oF5bi4OMLCwopVq4iIiFivEgWsK1euYGtri7Oz882qJ5+ZM2fe0P4RERG88MILREVFUadOHb788ss8i/YBuLq6kpCQQFpamtljpKamAuDi4lLoa3l5eREYGFisuiIjI03HFREREetSooB17733cu+99/LNN9/crHosasuWLYwcOZKkpCSaNWvG7Nmz8fDwyNfP29ubhIQE4uLi8kx+z5U798rb27vQ1wsODi72g7CDgoI02iUiImKlSjzJvbDLZAMGDGDKlCk3VJCl/PDDD7zwwgskJSXRrVs3FixYYDZcwb93Dx45csRs+9GjR/P0ExERESnMdd1FWJCdO3fy999/W/KQ12XFihW8+eabZGVl8eKLL/L+++8Xuup87h2O69aty9d28eJFduzYgaOjI61atbpZJYuIiIgVsWjAKguOHTvGm2++idFoZPjw4bz88stF7tOpUyeqV6/O5s2bWbRokWl7amoqEyZMIDk5mT59+uDp6XkzSxcRERErccN3EZY1s2fPJjU1FXt7e44fP86YMWPM9qtevTojR44EcpZhmD59OkOGDOHNN99k8eLF+Pr6snfvXmJjY2nYsKGpr4iIiEhRrC5gbd68Gch5ZM7q1asL7Fe/fv08oal58+YsWbKEWbNmsXPnTo4ePYqvry99+vRh0KBBuLq63uzSRURExEpYXcD6888/r3tff3//G14WQkRERMTq5mCJiIiIlDYFLBERERELK/ElwgsXLrBixYrrbgfo0aNHSV9WREREpNwoccA6efIk48ePN9tmMBgKbc/to4AlIiIi1qzEAauoBx7f7P1FREREyroSBazDhw/frDpE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rx0cHExwcHCx6gwKCtJol4iIiJWyursIL126BICdnfnsmLs9MzPTdMkv9+7Bgta5yt1e0F2GIiIiIlezuoCVu6RCQWtW/fbbbwDUq1cPe3t7ANq1awfA+vXrMRqNefpnZGSwcePGPP1ERERECmN1AatPnz7Y2dmxfv16vv766zxt+/btY/r06QA8/fTTpu1NmzalcePGRERE8L///c8UsrKyspgyZQrR0dG0b98ef3//W3ciIiIiUm5Z3RwsPz8/pkyZwsSJE5kyZQoLFy6kfv36nDt3joMHD5Kdnc0TTzxB79698+w3bdo0nnzySebOncu6deuoV68ehw4d4tSpU/j6+jJ58uRSOiMREREpb6xuBAugR48eLFmyhG7dupGWlsamTZs4efIk9913H7NmzeKtt97Kt4+fnx/Lli0jKCiIxMREQkJCMBgMDBgwgMWLFxc5wV1EREQkl9WNYOW66667eP/990u0T/Xq1Zk6depNqkhERERuF1Y5giUiIiJSmhSwRERERCxMAUvkGgWtoSYiIlJcClgi1xg1ahQODg489thjpV2KiIiUU/pVXeQaDz74IK1atdJIloiIXDeNYImYoXAlIiI3QgFLRERExMIUsEREREQsTAFLRERExMIUsEREREQsTAFLRERExMIUsEREREQsTAFLRERExMIUsEREREQsTAFLRERExMIUsEREREQsTAFLRERExMIUsEREREQsTE+0LSVRUVEAREZGEhQUVMrViIiISHFERkYC//47XhAFrFKSlpYGQGpqKmFhYaVcjYiIiJRE7r/jBVHAKiWenp7Ex8fj6OiIr69vaZdTbkVGRpKamoqTkxN+fn6lXY4IoPellD16T1pOVFQUaWlpeHp6FtrPYDQajbeoJhGLCwoKIiwsjMDAQJYvX17a5YgAel9K2aP35K2nSe4iIiIiFqaAJSIiImJhClgiIiIiFqaAJSIiImJhClgiIiIiFqaAJSIiImJhClgiIiIiFqaAJSIiImJhClgiIiIiFqaAJSIiImJhehahlGt9+vQhLi4OLy+v0i5FxETvSylr9J689fQsQhEREREL0yVCEREREQtTwBIRERGxMAUsEREREQvTJHe56Xbs2MGAAQPMttna2uLs7Ey1atW47777GDRoENWqVTPbNzY2ljVr1rBx40bOnDlDXFwcTk5OVKlShXvvvZfevXsTGBhY5OuvXr2aevXqFVrzCy+8wKZNmwCYOnUqQUFBxT1dKUcKe2+aM2DAACZMmABAQEAAAE8//TSvv/56gfscOnSIHj16UL16ddN76lrp6emsWLGCDRs28Pfff5OQkICDgwO1atWidevW9O3bl+rVq5fgzMTaXe/nalRUFB07dgQgPDy8wOMvW7aMiRMnkp2dzTPPPMO4ceMsfxJWTgFLbhkXFxfTX+xc2dnZJCUl8ddff/H111+zcuVKFixYQIMGDUx9jEYjn3zyCXPmzCEjIwNnZ2caNWpEo0aNSEtL4/Dhw3z33Xd899139OnTh0mTJmFvb19gHT///DOvvPJKge0JCQn89ttvN3y+Un6Ye2+a07Bhw3zbvv76azp27EjLli2v67UPHDjAiBEjOHPmDHZ2dgQGBnLPPfeQkJBAeHg4n376KfPnz+f111+nX79+1/UaYr2u93O1MIsWLeKtt97CaDTy8ssv8+KLL96M0q2eApbcMh4eHrz//vtm25KTk3nuuefYuXMnEydOZPny5aa2KVOmsHDhQpydnXnttdfo06cPDg4Oefbfvn07r7/+OosXL6ZChQqMHTs232tUrFiRy5cv88svvxQasNauXUtGRgYODg6kp6df38lKuVLYe7MoRqOR8ePH89NPP+Hm5laiffft28eAAQNITU0lKCiIkSNH4u3tbWpPT09n2bJlTJs2jbfffpvo6GhGjx59XXWKdbrez9WCLFy4kHfffReDwcCECRNKNMIreWkOlpQJLi4upksvYWFhnD59GoCtW7eycOFC7O3t+eKLL3jqqafyhSuAVq1a8fnnn+Pg4MBXX31FXFxcvj7VqlUjMDCQEydOcPDgwQJrWbVqFS4uLjRv3txCZyfWrGrVqpw5c4apU6eWaL+UlBSGDx9OamoqL774IlOnTs0TrgAcHBx44okn+Oqrr7C3t2fevHmEhoZasnyxYgV9rhZk/vz5vPvuu9ja2jJlyhSFqxukgCVlxp133mn6/vz58wB88cUXQM7cl2bNmhW6v5+fH8899xyDBw8mIyPDbJ9u3boBOZcJzYmOjmb37t107twZJyenEp+D3H7eeecdbG1tWbp0KZs3by72fosXLyYmJoY6deowfPjwQvvefffdPP300xiNRmbOnHmDFcvtxNznqjlz585l+vTp2Nvb8+GHH9KrV69bUZ5V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",
+ "text/plain": [
+ "