{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7a2b09cc-c5da-47d7-ba51-f492767a6518",
   "metadata": {},
   "source": [
    "# Events\n",
    "\n",
    "Events are sudden changes to counts in the simulation happening at specific times or due to the fulfilement of certain conditions. In this example we set the count of the meta-species A to 200 at every 5 seconds."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "71d02875-b3ad-4474-8d65-86ee2888fc87",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Species\n",
      "A,200\n",
      "\n",
      "Mappings\n",
      "A :\n",
      "A\n",
      "\n",
      "Parameters\n",
      "volume,1\n",
      "\n",
      "Reactions\n",
      "reaction_0,{'re': [(1, 'A')], 'pr': [], 'kin': 'A * 1'}\n",
      "\n",
      "Events\n",
      "event_0,{'trigger': 'true', 'delay': '10', 'assignments': [('A', '200')]}\n",
      "event_1,{'trigger': 'true', 'delay': '5', 'assignments': [('A', '200')]}\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Compiling model\n",
      "Starting Simulator\n",
      "Running simulation in parallel\n",
      "Simulation is Over\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from mobspy import *\n",
    "\n",
    "A = BaseSpecies()\n",
    "\n",
    "A >> Zero [1]\n",
    "\n",
    "A(200)\n",
    "S = Simulation(A)\n",
    "S.method = 'stochastic'\n",
    "S.duration = 15\n",
    "S.output_event = True\n",
    "\n",
    "with S.event_time(5):\n",
    "    A(200)\n",
    "\n",
    "with S.event_time(10):\n",
    "    set_counts({A: 200})\n",
    "\n",
    "print(S.compile())\n",
    "S.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0d21ab0d-ce99-4a71-bc79-53c9299f853f",
   "metadata": {},
   "source": [
    "As one can see, one can assign counts to events by putting the simulation under context. \n",
    "Once the simulation is under context every count assign to a meta-species will be assigned as an event. \n",
    "The count assignment is equal to the one presented in the Initial Conditions with both the queries and All operator working in similar maner. The set_count operator is also accepted for events. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e3505e6-472b-40db-ab62-d5b140089a97",
   "metadata": {},
   "source": [
    "Besides timed events, one has access to conditional events. Conditional events trigger once a specific logic expression has been satisfied. In the following model, we desing two meta-species, A and B with two characteristics each and we set their counts to 200 if they both go bellow 50. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "3f9188eb-84a8-42bc-97c6-a6a9ca530d2d",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Compiling model\n",
      "Starting Simulator\n",
      "Running simulation in parallel\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Species\n",
      "A.a1,100\n",
      "A.a2,100\n",
      "B.b1,120\n",
      "B.b2,120\n",
      "\n",
      "Mappings\n",
      "A :\n",
      "A.a1\n",
      "A.a2\n",
      "B :\n",
      "B.b1\n",
      "B.b2\n",
      "\n",
      "Parameters\n",
      "volume,1\n",
      "\n",
      "Reactions\n",
      "reaction_0,{'re': [(1, 'A.a1'), (1, 'B.b1')], 'pr': [], 'kin': 'A.a1 * B.b1 * 0.01 * volume^-1'}\n",
      "reaction_1,{'re': [(1, 'A.a2'), (1, 'B.b2')], 'pr': [], 'kin': 'A.a2 * B.b2 * 0.02 * volume^-1'}\n",
      "\n",
      "Events\n",
      "event_0,{'trigger': '( ( (A.a1 + A.a2) <= 50 ) && ( (B.b1 + B.b2) <= 50 ) ) ', 'delay': '0', 'assignments': [('A.a1', '100'), ('A.a2', '100'), ('B.b1', '120'), ('B.b2', '120')]}\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Simulation is Over\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "A, B = BaseSpecies()\n",
    "\n",
    "A.a1, A.a2, B.b1, B.b2\n",
    "\n",
    "A.a1 + B.b1 >> Zero [0.01]\n",
    "A.a2 + B.b2 >> Zero [0.02]\n",
    "\n",
    "All[A](100), All[B](120)\n",
    "S = Simulation(A | B)\n",
    "S.duration = 10\n",
    "S.output_event = True\n",
    "\n",
    "logic_expression = (A <= 50) & (B <= 50)\n",
    "with S.event_condition(logic_expression):\n",
    "    All[A](100), All[B](120)\n",
    "\n",
    "print(S.compile())\n",
    "S.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "194f9418-78b0-4525-9f80-52bbaa0072f5",
   "metadata": {},
   "source": [
    "Like in the results, MobsPy automatically maps A = A.a1 + A.a2 and B = B.b1 + B.b2. Once the counts of the species in all states go bellow the defined thresholds the event trigger and set the counts back up. \n",
    "\n",
    "Logical clauses in MobsPy must be isolated in parenthesis when combined to respect Python operator precedence other. As if the parenthesis where not there, Python would try to resolve the operator '&' (and) before the inequalities. The operator '|' symbolises or and the operator '&' simbolises and. Finally, the equality operator is not allowed as it can create compatibility issues with python. In the code bellow, there are some examples of MobsPy logical clauses."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "da032cc5-b958-4aa6-aba2-2c1d2bfb5aac",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Perform a query \n",
    "c1 = A.a1 <= 10 \n",
    "# Combine clauses\n",
    "c2 = ((A.a1 <= 10) | (B >= 5)) & (A.a2 >= 5)\n",
    "\n",
    "# EQUALITY IS NOT ALLOWED AND WILL PRODUCE ERRORS \n",
    "# The alternative is them \n",
    "c3 = (A <= 5) & (A >= 5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e99fdd73-49b9-452e-ac6c-894371dd7d67",
   "metadata": {},
   "source": [
    "Another aspect is to create simulations with a conditional duration by passing a logical clause. For instance, the simulation bellow runs until either A or B reach zero."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5e2fb56e-3242-4f49-bdad-40824edb06e7",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Compiling model\n",
      "Starting Simulator\n",
      "Running simulation in parallel\n",
      "Simulation is Over\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "A, B = BaseSpecies()\n",
    "\n",
    "A + B >> Zero [0.01]\n",
    "\n",
    "A(110), B(100)\n",
    "S = Simulation(A | B)\n",
    "S.method = 'stochastic'\n",
    "S.duration = (A <= 0) | (B <= 0)\n",
    "S.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5636f5df-f517-4623-9e08-d6ff695dcf07",
   "metadata": {},
   "source": [
    "As a important note, reactions CANNOT be added as events."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55b7ca50-bee4-4b65-9487-8bbf942db978",
   "metadata": {},
   "source": [
    "If one wishes to desing event assignments based around the value of meta-species, one can pass strings in the count assignment under an event context. For instance, the model bellow uses the meta-species I to count the number of times A reaches zero in an windown of time:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "f1685940-304f-4b05-aa31-bf4520c2d4b6",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Compiling model\n",
      "Starting Simulator\n",
      "Running simulation in parallel\n",
      "Simulation is Over\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Species\n",
      "A,10\n",
      "I,0\n",
      "\n",
      "Mappings\n",
      "A :\n",
      "A\n",
      "I :\n",
      "I\n",
      "\n",
      "Parameters\n",
      "volume,1\n",
      "\n",
      "Reactions\n",
      "reaction_0,{'re': [(1, 'A')], 'pr': [], 'kin': 'A * 1'}\n",
      "\n",
      "Events\n",
      "event_0,{'trigger': '(A) <= 0 ', 'delay': '0', 'assignments': [('A', '10'), ('I', '(I) + 1')]}\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "A, I = BaseSpecies()\n",
    "\n",
    "A >> Zero [1]\n",
    "\n",
    "A(10), I(0)\n",
    "S = Simulation(A | I)\n",
    "S.method = 'stochastic'\n",
    "S.duration = 15\n",
    "S.step_size = 0.01\n",
    "\n",
    "with S.event_condition(A <= 0):\n",
    "    A(10), I(f'{I} + 1')\n",
    "\n",
    "print(S.compile())\n",
    "S.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b524a60-5161-4d0a-8cdc-5e14801efeda",
   "metadata": {},
   "source": [
    "Again queries can be performed inside the string assignment. If a meta-species is used under this type of assignment the resulting string will be the sum of all the states."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "3dcfa0a6-1316-4dd2-9175-3a53f6be6ce5",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[91mERROR: At:     All[A](f'{A} + 1') \n",
      "Line number: 9 \n",
      "Reactant_Species count assignment does not support the type <class 'str'>\u001b[0m\n"
     ]
    },
    {
     "ename": "SystemExit",
     "evalue": "1",
     "output_type": "error",
     "traceback": [
      "An exception has occurred, use %tb to see the full traceback.\n",
      "\u001b[0;31mSystemExit\u001b[0m\u001b[0;31m:\u001b[0m 1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/fabriciocravo/opt/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py:3445: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.\n",
      "  warn(\"To exit: use 'exit', 'quit', or Ctrl-D.\", stacklevel=1)\n"
     ]
    }
   ],
   "source": [
    "A = BaseSpecies()\n",
    "\n",
    "A.a1, A.a2, A.a3\n",
    "\n",
    "S = Simulation(A)\n",
    "\n",
    "A(0)\n",
    "with S.event_time(5):\n",
    "    All[A](f'{A} + 1')\n",
    "    \n",
    "print(S.compile())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9dd8e493-c6da-42eb-b626-49b50daf6d7e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "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.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
