diff --git a/dist/genessa-0.1.tar.gz b/dist/genessa-0.1.tar.gz index 5b80647..bf2f959 100644 Binary files a/dist/genessa-0.1.tar.gz and b/dist/genessa-0.1.tar.gz differ diff --git a/genessa/signals/signals.pyx b/genessa/signals/signals.pyx index ea5bd09..cdb592a 100644 --- a/genessa/signals/signals.pyx +++ b/genessa/signals/signals.pyx @@ -57,8 +57,10 @@ cdef class cSignal: # get first non-null argument if len(args) > 0: argument = args[0] - else: + elif len(kwargs) > 0: argument = [v for k,v in kwargs.items() if v is not None][0] + else: + argument = 1. # check whether value is a collection (for multi-valued subclasses) try: @@ -390,6 +392,9 @@ cdef class cMultiPulse(cSignal): self.t_off[i] = t_off[i] self.off[i] = off[i] self.on[i] = on[i] + + # populate memory with signal update times + for i in xrange(self.I*2): self.update_times[i] = update_times[i] # set values to off state @@ -420,7 +425,7 @@ cdef class cMultiPulse(cSignal): if not self.on: raise MemoryError('Could not allocate memory for on values.') - self.update_times = PyMem_Malloc(self.I * sizeof(double)) + self.update_times = PyMem_Malloc(2 * self.I * sizeof(double)) if not self.update_times: raise MemoryError('Could not allocate memory for update times.') @@ -478,8 +483,13 @@ cdef class cMultiPulse(cSignal): self.value[index] = self.off[index] # determine next update - for index in xrange(self.I): + for index in xrange(2*self.I): next_update = self.update_times[index] if next_update > t: self.next_update = next_update break + + # if past the last update, set update to end + if index == (2*self.I-1) and next_update <= t: + self.next_update = DBL_MAX + diff --git a/notebooks/debugging.ipynb b/notebooks/debugging.ipynb new file mode 100644 index 0000000..1dc808a --- /dev/null +++ b/notebooks/debugging.ipynb @@ -0,0 +1,277 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from genessa.kinetics.massaction import MassAction\n", + "from genessa.solver.stochastic import MonteCarloSimulation\n", + "from genessa.networks.networks import Network\n", + "\n", + "# define decay reaction\n", + "decay = MassAction(stoichiometry=[-1], k=2)\n", + "synthesis = MassAction(stoichiometry=[1], k=1, input_dependence=1)\n", + "\n", + "# add both reactions to the network\n", + "network = Network(N=1, I=2, reactions=[decay, synthesis])\n", + "\n", + "# instantiate solver\n", + "solver = MonteCarloSimulation(network, ic=[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from genessa.signals.signals import cSquareWave, cSignal, cSquarePulse, cMultiPulse\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "signal = cMultiPulse([1., 1.], [3., 10.])\n", + "\n", + "timeseries = solver.run(N=1, duration=10, dt=0.01, signal=signal)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# define the state dimension of interest\n", + "species = 0\n", + "\n", + "# create figure\n", + "fig, ax = plt.subplots(figsize=(6, 4))\n", + "ax.set_xlabel('Time (min)')\n", + "ax.set_ylabel('Level')\n", + "\n", + "# add a black line for each individual trajectory \n", + "for trajectory in timeseries.states[:, species, :]:\n", + " ax.plot(timeseries.t, trajectory, '-k', lw=0.5)\n", + "\n", + "# add a red line for the mean of all simulated trajectories\n", + "_ = ax.plot(timeseries.t, timeseries.mean[species], '-r')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "15.0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wave.get_next_update(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "timeseries = solver.run(N=100, duration=5, dt=0.01, signal=wave)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def test(*args, **kwargs):\n", + " if len(args) > 0:\n", + " argument = args[0]\n", + " elif len(kwargs) > 0:\n", + " argument = [v for k,v in kwargs.items() if v is not None][0]\n", + " else:\n", + " argument = 1.\n", + " \n", + " print(argument)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0\n" + ] + } + ], + "source": [ + "test()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1, 1, 10, 10])" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "t_on = [1, 1]\n", + "t_off = [10, 10]\n", + "\n", + "update_times = np.sort(np.hstack((t_off, t_on)))\n", + "\n", + "update_times" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "metabolism", + "language": "python", + "name": "metabolism" + }, + "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.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/oscillators.ipynb b/notebooks/oscillators.ipynb index bef0be8..ecea692 100644 --- a/notebooks/oscillators.ipynb +++ b/notebooks/oscillators.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 8, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -98,13 +98,13 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "from genessa.demo.oscillators import Oscillator\n", "\n", - "oscillator = Oscillator(transcription=True, omega=1)" + "oscillator = Oscillator(transcription=True, omega=100)" ] }, { @@ -116,54 +116,54 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " Rxn Reactants Products Propensity Parameter\n", - "--------------------------- ----------- ---------- ----------------------- -------------------\n", - " p decay 0 [0] 0.01000\n", - " P0 translation 1 [0] 0.90000\n", - " P0 decay 1 [1] 0.01000\n", - " t decay 2 [2] 0.01000\n", - " T0 translation 3 [2] 0.90000\n", - " T0 decay 3 [3] 0.01000\n", - " P0 transcript deg. 0 1 / (1 + 0.2/[0]) 0.70000\n", - " T0 transcript deg. 2 1 / (1 + 0.2/[2]) 0.70000\n", - " P0 phosphorylation 1 4 1 / (1 + 2.0/[1]) 8.00000\n", - " P1 dephosphorylation 4 1 1 / (1 + 2.0/[4]) 1.00000\n", - " P1 decay 4 [4] 0.01000\n", - " P1 phosphorylation 4 5 1 / (1 + 2.0/[4]) 8.00000\n", - " P2 dephosphorylation 5 4 1 / (1 + 2.0/[5]) 1.00000\n", - " P2 decay 5 [5] 0.01000\n", - " T0 phosphorylation 3 6 1 / (1 + 2.0/[3]) 8.00000\n", - " T1 dephosphorylation 6 3 1 / (1 + 2.0/[6]) 1.00000\n", - " T1 decay 6 [6] 0.01000\n", - " T1 phosphorylation 6 7 1 / (1 + 2.0/[6]) 8.00000\n", - " T2 dephosphorylation 7 6 1 / (1 + 2.0/[7]) 1.00000\n", - " T2 decay 7 [7] 0.01000\n", - " P2 deg. 5 1 / (1 + 0.2/[5]) 2.00000\n", - " T2 deg. 7 1 / (1 + 0.2/[7]) 2.00000 + 2.0[IN_0]\n", - " C association 5, 7 8 [5][7] 1.20000\n", - " C dissociation 8 5, 7 [8] 0.60000\n", - " C decay 8 [8] 0.01000\n", - " C import 8 9 [8] 0.60000\n", - " C export 9 8 [9] 0.20000\n", - " nC decay 9 [9] 0.01000\n", - " T0 transcription 2 1.00000\n", - "T0 transcription repression 1 / (1 + ([9]/1.0)^4.0)\n", - " P0 transcription 0 1.00000\n", - "P0 transcription repression 1 / (1 + ([9]/1.0)^4.0)\n" + " Rxn Reactants Products Propensity Parameter\n", + "--------------------------- ----------- ---------- ------------------------- ---------------------\n", + " p decay 0 [0] 0.01000\n", + " P0 translation 1 [0] 0.90000\n", + " P0 decay 1 [1] 0.01000\n", + " t decay 2 [2] 0.01000\n", + " T0 translation 3 [2] 0.90000\n", + " T0 decay 3 [3] 0.01000\n", + " P0 transcript deg. 0 1 / (1 + 20.0/[0]) 70.00000\n", + " T0 transcript deg. 2 1 / (1 + 20.0/[2]) 70.00000\n", + " P0 phosphorylation 1 4 1 / (1 + 200.0/[1]) 800.00000\n", + " P1 dephosphorylation 4 1 1 / (1 + 200.0/[4]) 100.00000\n", + " P1 decay 4 [4] 0.01000\n", + " P1 phosphorylation 4 5 1 / (1 + 200.0/[4]) 800.00000\n", + " P2 dephosphorylation 5 4 1 / (1 + 200.0/[5]) 100.00000\n", + " P2 decay 5 [5] 0.01000\n", + " T0 phosphorylation 3 6 1 / (1 + 200.0/[3]) 800.00000\n", + " T1 dephosphorylation 6 3 1 / (1 + 200.0/[6]) 100.00000\n", + " T1 decay 6 [6] 0.01000\n", + " T1 phosphorylation 6 7 1 / (1 + 200.0/[6]) 800.00000\n", + " T2 dephosphorylation 7 6 1 / (1 + 200.0/[7]) 100.00000\n", + " T2 decay 7 [7] 0.01000\n", + " P2 deg. 5 1 / (1 + 20.0/[5]) 200.00000\n", + " T2 deg. 7 1 / (1 + 20.0/[7]) 200.00000 + 2.0[IN_0]\n", + " C association 5, 7 8 [5][7] 0.01200\n", + " C dissociation 8 5, 7 [8] 0.60000\n", + " C decay 8 [8] 0.01000\n", + " C import 8 9 [8] 0.60000\n", + " C export 9 8 [9] 0.20000\n", + " nC decay 9 [9] 0.01000\n", + " T0 transcription 2 100.00000\n", + "T0 transcription repression 1 / (1 + ([9]/100.0)^4.0)\n", + " P0 transcription 0 100.00000\n", + "P0 transcription repression 1 / (1 + ([9]/100.0)^4.0)\n" ] }, { "data": { "text/plain": [] }, - "execution_count": 22, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -188,12 +188,12 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 43, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEKCAYAAADuEgmxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3XlclWX+//HXBxDccEdARFEUFctdS8xSmkwts5qcSi37zrRNttjynWmqKWuarH4t35qWaZmW0WydymXSNJcWMU1MUEBQXFBiU3NDRITr98c59+1hPyiHI5zP8/Hg4Tn3ue+b6/boeZ9rua9LjDEopZRS7vDzdgGUUko1HhoaSiml3KahoZRSym0aGkoppdymoaGUUsptGhpKKaXcpqGhlFLKbRoaSiml3KahoZRSym0B3i7AmejUqZOJiorydjGUUqpRSUxM3GeMCTmdYxt1aERFRbFhwwZvF0MppRoVEdl9usdq85RSSim3aWgopZRym4aGUkopt2loKKWUcpuGhlJKKbdpaCillHKbhoZSSim3aWgopZqk9evX8/3333u7GE1Oo765TymlqjNr1iwyMjLIysqiZcuW3i5Ok6E1DaVUk5Sens7+/fv597//7e2iNCkaGkqpJmf//v0cOHAAgBdffBFjjJdL1HRoaCilmpyMjAwAxo8fT0ZGBtnZ2Vx11VW89tprXi5Z46ehoZRqcqzQmDRpEgApKSksWLCA+fPne7NYTYKGhlKqUUpJSeHKK6/k+PHjlV5LT08nICCA3/zmNwB8/fXXGGPYsGEDJ06caOiiNikaGkqps0p+fr5bSx688cYbLFiwgG3btlV6LSMjg+joaHr27ElAQABfffUVAMXFxfz888/1XmZfoqGhlPKqPXv28MADD3Dy5EkAnnzySS688EKKi4urPcYYw6JFiwDYt2+fvf3QoUPceeedrFu3jpiYGAICAujevTvp6en2PgkJCR66Et+goaGUFxlj2L59u7eL4VUff/wxzz//PCkpKQBs3bqVoqKiGmsEqamp7Nq1CygfGsuXL+fVV19l79699OnTB4Do6GgAunTpQvfu3Vm7dq2HrsQ3aGgo5UVff/01MTExHgsOYwyvvfYav/76q0fOXx+sWsDOnTsByMzMBKjxw92qZUD50MjOzgbg+eef55577gGgV69eAMTExBAXF8f3339PWVlZPV6Bb9HQUMqLduzYgTGmynb5+rBhwwZmzpzJhx9+6JHzV6ekpITS0lK39rVGOu3cuZOSkhJ273asRFpTaPzwww/ExMQAlUMjKCiIe++9l65duwKnahoxMTGMHz+e3NxcNm7cWPeLUoCGhlJeVVBQAJz6hlzfEhMTgVPf4hvKuHHj6NmzZ7kaQXVcQ2P37t2UlpYSFBRUY99DamoqQ4YMoU2bNpVCo0uXLoiIvc01NCZOnIiIsHjx4tO9NJ+noaGUFzXV0EhOTiYrK4tp06bVeDf24cOHyc3NBWDXrl1209QVV1xBdnY2WVlZlY45duwYu3btol+/fnTq1KlSaERERJTbf8iQIbRs2ZK4uDg6derEyJEjNTTOgIaGUg0sJSXFblNvqNCwOo0bQklJCQcOHKB9+/YcOXKE/fv3V9onJSWlXLNcUFAQO3futEPjtttuA2DBggWVjk1PT8cYQ2xsrFuhERkZSWFhISNHjgTg8ssvJzExkby8vPq5YB+joaFUA0pPT+ecc85h3rx5wKn2eE+ERnFxMVu2bAEcNY3k5GRefvlljh49Wq+/Z+7cufbvgVNBOGLECAC7j8KSlJTEOeecw5IlS+ymqdGjR7Nz5062b99OixYtiI+PZ9CgQfbfk6vU1FQAOzSsUDLGVBkaFVnhkZycfDqX6/M0NJTP+OWXXxgzZozHvtW748cffwQco6bAszWNzZs3U1JSwvDhwzlw4AD33HMP99xzD7GxsfZkftUpKipi3LhxbNq0qcb99u7dy4wZM3j22WftbdY3+OHDhwNUamKyOqF/+uknMjIyEBF+85vfUFhYyLp16+jZsyciwrRp01i/fj2rVq0qd9d3amoq/v7+9OrVq1xN4+DBgxQVFdUaGv369bPPo+rOY6EhIs1FZL2IJIlIiog87tz+nojsFJFNzp9Bzu0iIi+LyHYRSRaRIZ4qm/JN69ev59tvv+W///2vW/tv3Lix3j9YrOaiVatWYYzxaGh8++23AEyZMgWA1atX06dPH/bs2WOHV3UyMjJYvnw5n332WY37ffjhhxhjSEtLs7dZoVFdTcP6O01OTiYlJYWoqCj69u0LwLp16+z7K66//nr8/PyIj4+3r8E6vnfv3gQGBpYLDevvsLbQ6Ny5Mx06dChXZuU+T9Y0ioF4Y8xAYBAwXkTOd772v8aYQc4f66vMBKC38+dW4HUPlk35IOsD2p07go0xTJ48mRkzZtRrGazQyMnJIT09nX379uHv78++fftqvAO6rk6ePMkrr7zCqFGjGDt2rL195syZwKkRS9WxOqet8v7yyy/cdNNN7N27t9x+VvNRWlqa3eFthUZsbCwtW7asVNOwPqyTkpL49ttviYuLo0ePHgC0atWK2bNnA44P/++++46RI0eWG5KclpZGbGwsAJ06daKwsJCioiK3Q0NEiI2N1ZrGafJYaBgHq/G0mfOnpkntJwP/dh73I9BORMI9VT7le6zQcOeO4KSkJPbu3cuGDRvIycmpl99fWlrKpk2bmDhxIgBffPEFJ0+etD8AR48ezeDBg1m1atUZ/64vvviCXbt2cf/999sfyOCodbRv377ctBpVcQ0NYwyrV6/m/fffZ8KECRw8eBBwNH8lJydz7rnnUlhYyJ49e4BToREaGkr37t2rrWlkZmaSn59PfHw8ffv25frrr2fx4sWce+659r6jRo1iyJAh9nu3f/9+0tPTGTx4MOAIDWu7u6EBaGicAY/2aYiIv4hsAvKB5caYdc6X/u5sgnpRRIKc2yKAPS6H73VuU6peWM0YGRkZVY7oceV6f4G7zVm12bp1K8eOHePaa6+la9eufPrppwAMHDgQcLTxb9u2jQkTJtTpDm5jDEuWLOGVV14BHKOXnnjiCXr16sUVV1xBhw4dCA4Opl+/foSFhRETE+N2TaOgoIC9e/faz1NSUnjxxRcB+OCDD/D39+exxx4DToVBXl4eLVu2pHXr1nTr1q1cTcMaLmt96AOMHTuWwMBA5s+fz+jRoyuVJSQkhAMHDlBSUsLq1asBiI+PB06Fxr59++zQ6NKlS61/Z/369WP//v12GCn3eTQ0jDGlxphBQFdghIicA/wF6AsMBzoAf67LOUXkVhHZICIb9A1XdeH676W2Nv3FixczYsQIunXrVm9j+q0O4KFDhzJq1Ch7bqVBgwYBEBwczGeffUZxcbHdUe6OWbNmMXHiRO666y42b97Ma6+9xpYtW3j22Wfx9/dHRJg6dSq33347QJ1CAxy1jdzcXIKCghg+fDgrVqygrKyM+fPnc+mll3LRRRcBp5qd8vLyCA0NBahU07CGy1533XUAREVFlasJVaVz586AIxhWrVpFq1at7E5219D44YcfiI6OJigoqNpzWazandY26q5BRk8ZYw4Cq4DxxpgcZxNUMfAuMMK5WzYQ6XJYV+e2iud60xgzzBgzLCQkxNNFV01IQUEB/fv3p1mzZnz++efV7peXl8f69euZNGkSl112GcuXL6+XuYoyMjLw9/cnJibGHvYJjpvPAgICuOWWW7jkkkvo1KlTpaAyxvDBBx9w+PDhctuLiop46623mDRpEv7+/rzwwgs8+uijXHrppVx55ZX2fv/85z+5++67AejTpw979+6lsLCQ3Nxcvvzyy0plzcnJISIiAn9/fzs0wsPDiY+PZ926dSxdupQ9e/Ywffp0OnXqREhISLmahmtoFBQUcOzYMeDUh/TEiRPp0KEDl1xySa1/b1Zo5Ofns3LlSkaPHk2zZs2AU6GxefNmvvnmG66//vpazwenRlBpZ3jdeXL0VIiItHM+bgFcAmy1+inEcZ//lYA1wHshcKNzFNX5wCFjTP00JiuFIzS6d+/OzJkzeffddyut2fDll1/y17/+1W6OmjRpEgMGDODYsWP1Mrppx44ddOvWjWbNmpULjejoaNavX89TTz2Fv78/EydOZMmSJfZU4QArV65k+vTp3HvvveXOuXLlSoqKirjzzjsZP3487733HkVFRbz88svlptJwZc3ZtH37dubMmcNVV13FN998U26f3NxcevbsSZ8+fUhOTiYnJ4ewsDDGjh3LyZMnufnmm2nXrh1XXHEFUL6PwDU0unXrZl87OJq3AgICiImJISEhodxQ3epYobFlyxbS0tLKdex37dqV1q1b88gjj1BWVsa0adNqPR84+j2aNWtWqb9F1c6TNY1wYJWIJAM/4ejTWAx8ICKbgc1AJ+BJ5/5fATuA7cBbwB0eLJvyQQUFBYSEhDB79mxCQ0N56KGHyr3+7LPP8uSTT/LCCy8QGRnJgAED7HmLrDuVz8SOHTvo2bMn4GiSat68OeBosx88eLDdrDJp0iQOHDjABx98YB9rjVJ65513yjWtLVq0iNatW3PRRRfZH5j333+/HQxVsV5LT09n5cqVANx1113lVrTLzc0lLCyM3r17k5mZaT8fNWoUzZo1IycnhyeffJJWrVoBMHjwYDZu3EhxcXG50LjgggsIDAzk//2//wc4htn27duXwMBA+vTpQ7t27Wr9e7NCY9myZQCcd9559mvBwcF88sknFBcXM2TIEHvobm38/PyIjIzU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\n", + "image/png": "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\n", "text/plain": [ "
" ]