{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction and Data Format\n", "## Types of decoders\n", "\n", "There are four decoders included in the **replay_trajectory_classification** package:\n", "+ `SortedSpikesDecoder`\n", "+ `ClusterlessDecoder`\n", "+ `SortedSpikesClassifier`\n", "+ `ClusterlessClassifier`.\n", "\n", "You can import them for use by running the following lines of code:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Cupy is not installed or GPU is not detected. Ignore this message if not using GPU\n" ] } ], "source": [ "from replay_trajectory_classification import (SortedSpikesDecoder, ClusterlessDecoder,\n", " SortedSpikesClassifier, ClusterlessClassifier)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If `Decoder` is in the name it indicates that a single movement model is used to decode position.\n", "\n", "If `Classifier` is in the name it means that multiple movement models are used to decode position and classify the type of movement.\n", "\n", "`SortedSpikes` and `Clusterless` indicate the type of data the decoder uses:\n", "+ `SortedSpikes` means the decoder takes in clustered single unit data.\n", "+ `Clusterless` means the decoder takes in unsorted multiunit spikes and associated spike waveform features---like those that would usually be used to spike sort such as spike width, spike amplitude, etc.\n", "\n", "\n", "Next, we will explore the expected data format for `SortedSpikes` and `Clusterless` decoders in turn. Both the `Decoder` and `Classifier` take the same data format.\n", "\n", "## Sorted Spikes Data Format\n", "\n", "We can see from the docstring of the fit function of `SortedSpikesDecoder` that there are two main variables that are required:\n", "+ **position** - the 1D or 2D position of the animal at each time bin\n", "+ **spikes** - 0 if there is no spike and 1 if there is a spike for each cell for each time bin\n", "\n", "**NOTE**: Time bins should be small (typically 1 or 2 ms)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0mSortedSpikesDecoder\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mposition\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mspikes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mis_training\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Parameters\n", "----------\n", "position : np.ndarray, shape (n_time, n_position_dims)\n", "spikes : np.ndarray, shape (n_time, n_neurons)\n", "is_training : None or bool np.ndarray, shape (n_time), optional\n", " Time bins to be used for encoding.\n", "\n", "Returns\n", "-------\n", "self\n", "\u001b[0;31mFile:\u001b[0m ~/Documents/GitHub/replay_trajectory_classification/replay_trajectory_classification/decoder.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "SortedSpikesDecoder.fit?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example Data\n", "Let's look at some simulated data to get an intuition for these data types. We simulate spikes of 19 cells with 360,000 time bins (360 seconds) of data:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from replay_trajectory_classification.sorted_spikes_simulation import make_simulated_run_data\n", "\n", "time, position, sampling_frequency, spikes, place_fields = make_simulated_run_data()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that this numpy array is a matrix with time bins in the first dimension and cells on the second dimension" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(360000, 19)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spikes.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and that there is a 1 each time a cell spikes and a 0 each time there is not a spike. For example, for the first cell, there is only one spike at 17 ms in the first 100 ms of time:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spikes[:100, 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualize the spikes as a spike raster:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/QAAAHMCAYAAAB7k+OLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB9TElEQVR4nOzdeZgcV33v/3dV9d4z3bNv2ndZtiXvuwGDsQEDNuayBYKNAwkJJCZcSFiSGEhuTH4JXJJASCAEMOQGCDbGYTPgFeNVlmwttmXJ2rfZp3um9646vz9aamk8I2lmNDM9PfN5PY8eTVedqvl2nz51zrfqVI1ljDGIiIiIiIiISFWxKx2AiIiIiIiIiIyfEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqVNGE/uGHH+ZNb3oTHR0dWJbF3XffPWx9Z2cnN998Mx0dHUQiEV73utexffv2ygQrIiIiIiIiMoNUNKFPpVKsW7eOL3/5yyPWGWO44YYb2LlzJz/+8Y/ZuHEjixYt4uqrryaVSlUgWhEREREREZGZwzLGmEoHAWBZFj/60Y+44YYbAHjxxRdZtWoVW7Zs4cwzzwTAdV1aWlr4u7/7O97//vdXMFoRERERERGRypqx99DncjkAQqFQeZnjOAQCAR555JGTbpdMJsv/EokE3d3dzJDzFiIiIiIiIiKTwlfpAE5k9erVLFq0iE9+8pP827/9G9FolC9+8YscPnyYQ4cOnXC722+/nc9+9rMjlicSCWKx2FSGLJPoj5/bw52d/XgvW35ubYRNg2ncaYjhtmUdfGn3YRLusShswBz593I2sDgc5NFLzpiG6ERmh4PZPOc/9tyobarSXtNQy3+uW1bpMESqyrXrt7FpMDOiTd9z7nLevHFHRWI6kd+f38TnVsyvdBgiVekPt+7mnq6BEWNyG0aM3yvJAa5pivPNs5dUOpQpM2Ov0Pv9fu68805efPFFGhoaiEQiPPjgg7z+9a/HcZwTbvfJT36SRCJR/rdv375pjFomy18s6+Ds2jAAPqv0RX1vRyP/duYiVkVLszYitgVA/Mj/k+mKuhreN6+J76xdUm4kFvB/Vy8oxwWwIhzg2qYYNtAW9PMvaxZNeiwis1lHKMDfr1pAyJr8djweEdvmjxc2c7R3aQn4+MfVCysak0g1+tLqhSwMBYDSQDpoW3xmWQcX1dXwmWUdHG3pi4J+PjCv8ZT7+18t9SwMBkYsn8gRY1UkWP55dTTE/17cNoG9iAjAXy3vYE1NaUx8tD3WOjZfPmMhoROMzdcc1wbH6sbm+LDXo+35yroojX4fFqW8wQ8sDAWwgFXREJ9bMW/cv7eazNh76I+XSCTI5/M0Nzdz8cUXc8EFF/CVr3xlTPtNJpPE43Fdoa9SnjHYllX+/0TLPWPwjMGxLHLFIgGfD3N0mW2XyxljyBaLBGwbc+S1Y9vkikV8loXfV5q0Yr8suci7LoHjTiR5R5rN0XIvj09ExudoV3S0Qyq6LlgWPtsm77pYxmDZNrYxuIBj2+W2b1HqQzAG1xh8tk3BdcEYjGVhHdmPMQbLsnA9b0R7tY+UM8ftQ0Qm7mjbNAzvU1/exjxjym3z+L7UO9JO7SPlXM/DPbJPAL/jlPvio8ePgufhs6xyv3+0vGNZYFnlY8bRvl9ETt/Rdlv0vGF959HXxeP63KP/Hx1XH23D+WIRLIuC6xLy+XCO9P1Bxyn3zXnXxbYs/I6D6x2bA2AdadvGGAwMO+7MlfH5jJ1yf7x4vHRmZvv27axfv56//uu/rnBEMl1efgA40XL7SGMGCPn9pUKWVb7aVt7esogGRp7p942y7HiBl80KOVE8IjIx1pE2dLQlBXzHuqeQb3hXdfyrYW3PssozagK+Ubq3o8eLk8zysiwLn9qzyGmzX9amj3p5G7OPJNvHbwMj26lj27y85R7ftx8tUy5/3BhgxDZq4yKT5mg7fPmJ8KOvRztBfnRc/fKxe+gEfb9lWQSPez3aCTnLssrHm6P/z5XxeUUT+qGhIXbsOHY/1a5du3jmmWdoaGhg4cKF/Pd//zfNzc0sXLiQzZs3c+utt3LDDTdwzTXXVDBqERERERERkcqraEK/fv16rrrqqvLrj370owDcdNNNfOtb3+LQoUN89KMfpbOzk/b2dt773vfyl3/5l5UKV0RERERERGTGmDH30E8V3UMvIiIiIiIis5GeCCIiIiIiIiJShZTQi4iIiIiIiFQhJfQiIiIiIiIiVUgJvYiIiIiIiEgVUkIvIiIiIiIiUoWU0IuIiIiIiIhUISX0IiIiIiIiIlVICb2IiIiIiIhIFVJCLyIiIiIiIlKFlNCLiIiIiIiIVCEl9CIiIiIiIiJVyFfpAESM8XDdLLbtp1gcwnEieF6RVOoAPl+IcLgNy7KBIsY4gAtYWJaF5xk8L43PFwc8CoVBLMvCtkM4TuDIdif6vQZj8lhWAMuycN0cxniAASxK57vyQBjPGyKbHcDnCxMKNWNMDmMsHMeHZflw3Qxg4zjBKf+8RKqB5xWxLAAHYwrYdgDXzeG6ORzHT6n7KbVBYwyW5S+3J2OKGFPaT6EwiOMEcJwQxnhH1pfabWn7IrYdGPH7XTcPFLHtMFYpEFzXpVgcwLZDWJYP2wbPs/C8FGBjTJFisYjfH8QYi0JhCJ/Pj8/XgG17WJb/yO90sW3/dHyMIjOW5xUo9ZUu4MMYF9fNAgbHCWKMTaHQg+c5OI5FMNgMgDGFI8eBMLbte9k+81iWb1jfbYyLMd5J29zR/tzzSvv3+UKATbE4hDEGvz9aPqaAORKng2UZjDH4fNHycUJkLju+vXlekWJxCJ+vBsuyysuNMXheBs+zsawilhUkm+3Gth0CgThgY9vOkTF1afx+bKydBazyeNnzCliWjWU5w+I4OoawLF/5uFA65nhYVhAoAH6gQKGQwfPyhEJN5TGB5xUoFJL4fDEAXHcIx4lhWS6W5Z917V0JvVRUOr2XQ4d+hDHupO/bshza2t5ENLp0xLpCIcHBg3dSKAwcGaz7yec7J/R7HKcG1x0CIBJZRnv7m2fdgUJkPPr6nqCv71HAlBN0ywpiTO4UW1pEo0tJpXZSOrE2km2H8bwMjhPBGBfPyxEOL6K9/c3lAX939wMkEhuPlA8xf/47yWT20d1932m9L7+/nmJxEGOK1NauoaXlWrV1mXOMMfT0PEAi8cy4t335caCp6dXU1Z2DMUUOH/4JqdRObDtIW9ubiUQWMDi4ja6uX2CMSyy2lubm14xoc8ViioMH7ySf75nwe7LtIAsX3ozPF53wPkSqXSKx+Ug/6REMLiCX23fcWhvwiEZXkE7vHUN/Ppzj1OI4kfJYOxJZiuNEGBzcgmX5aG19HTU1KwHo73+K3t5HAIPf30Ch0PeyvZViObEIkD5JLFE6Om4sn2ScDTTlXirq8OGfTkkyD6WzjJ2dP8eYkYlBb+9vKBQSABSLfRNO5oFyMg+QTr9EJrN/wvsSqXb5fB99fb/laEJuTPHI/2Pp/A2p1EucKJkH8LwMAK6bxvNK+8xk9pBMbgYgmz1cTuZL5bN0dd1Hd/f9438zL1Mo9Jffz+Dgc6RSO057nyLVJpPZN6FkHkYeB3p6HgQgmXzuyIk88LwcXV2/wPOK5WS+VGYT6fSeEfvs63vstJL5Y7/zV6e1D5Fq5roZurt/zdFEeXgyT3l5KrV93Ml8af+Dw8ba6fROBge3AKVxQmdnqa3n8/309v6Go+OAkcn8sVhO7MTJfCmW9Gmf4J9plNBLRXlefhr2PzI5KE2RP3HScHq/Mzsl+xWpBqXpdNPNOtKmR29/npdmKtp7Zd6rSGVNbh9XGpgfnYZ7lOtmj0z9HX7Cf/T2PTnxqO+Wuaw0nX1qxsVjUbrVziufqJ/i31YeM8wWSuilourqzp3S/cfj60a9jz4ef/nvnZymYNtBIpFFk7IvkWoUCrUSDLZOePvR7oc/FcvyU1u75sjvn1e+Z+6ouroLCYUWTjim435T+SfHiVJTs2wS9ilSXSKRxUeeW3P6wuFSu6ytXTWs7dfVnY/jBKmtPaO8zOeLEYksHrGPWGztpMRSX3/RpOxHpBr5fLVEIsffouqMWs62Q6fxW44fa/txnJryq9ras7BtP8FgC8Fg+3Hlpua2trq686dkv5VimdHmI88iyWSSeDxOIpEgFoudegOZVsYY0uldR6bZ2uTz3dh2lFyuH9ftoXRP7RoikXnk8z04Trh8dd1xashmD+G6aWKxsygUEkemwNoEg83U1KwkGl1ywntcc7kucrlOgsF2bNvP4OAL5PMDGJOn9MCOKJ6XwRhDJtOJ5yWwLD+x2DlHrvh5hMMLCYU6SCQ2YFk+6uouOvIwHpG5y/MKR9p06cE3xeIQgUAbyeRGstkuAoEmgsEGCoUkhUICzyvg99cQjS4nGl1MKrUbY1yKxSGGhl7AcWqIRpfiOEH8/nry+R4CgWY8L0+xmCAcXoTfX3vc78+TSDxLoZCgtvYMwuF5APT2Psrg4HZ8vgiBQD0+X4xCoZ9stgfPK+C6KcDD54vgeR6el8VxAkQiSwiHOwiF5lEo9OO6mSPxhCvzAYtUmOvmSKVewnUzRx4W6eG6KdLpXbhukUhkAcVimnR6N6X+OkJDw2UEg3UMDe2iUOgjFGqnvv6C8j6LxSHS6d34fDHC4QVHHsJlSKd34rq5I21u9P41n+8lnd5LJnMIz0sTiSzDtiMkk+sxxqKmZjk+XwSwyOX6yeUOlR++Z1lQV3cR4XD7qPsWmSuM8UildmCMSySylETiWdLp3YTDCwkGm/C8PNHoUvL5XgYHny/PrPE8l2x2L2BRU7MMny+G319fnmVjWTbBYAs+Xy19fY9j2zb19ZcCHqnULhwnRCRybLxeejD2SwAEg61ks/uxLD+FQh+umyccnndkRo1FPp9icPBZwBCLnYPfHyEUamdgYDOZzG6CwbYjz8nqIRpdheP48PsbCIc7KvQpTw0l9CIiIiIiIiJVSFPuRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKqSEXkRERERERKQK+SodgMw+hcIAu3b9M/l8D+3t/4vGxivLyzc+8wEGBzcCFjU1qwmHF+K5ObK5A7huBssKYNsOkcgybNsPwPx576au7oJRf5fnFdm79+sMDj1Hff2lzOt4F5ZlTen7y+f72LX7nxka3E468xKFwgCOE6Gj4+04dg27dn+xXNa2Y4TDbbhuhtaW64hGl9PTez+RyBIWL/ojHCc0pbGKTIVkcjP79n0L2wmyeNGHCIfnAaW2sWXrrfT3Pw14R0q7WJaPxoZXUN9wOfv2/Qe53CGMMdh2gGCwlebma1i65CMMDT3P/v134DgRFi/+EKFQOwCJxAb27f8OPl8NSxZ/mGCwdUreV3f3Lznc+T+EQvNYsvjD+Hw17N37TXa89EWMyQLmyD8AC7+/gXjsPFLp7eSyh7CdMGvO+DzNza+dkvhEKmVw8Hn27vsG+VwPhWLqSD9usO0Q8dhF9A/8FnABBzD4/XUsW/px5s17+7THOtoY5NChO+nuuY9CYQC/v47mpqtpb7+RXL6HXbv+maGhbQwNbcN1hwAH2w5g2xGMyeK6Kfz+Bi44/04ikfnT/n5EptLhw/dw4OD3Sad3k8/3Ai4+X4xwaCH5QjeFQoJgsJ2Ghivp7PwRrpsiFJrHBeffRSBQN2VxFQr97Nz1zxTyvXR0vJ2GhstPuY0xHvv2f5sDB+4inX7uyFKLYLANx4mQzR7C87KAQzDYTDDYTrE4gOumiMfO48wzv0gq9SJ79/0HthVg8eI/IhxeMGXvcTJZxhhz6mLVK5lMEo/HSSQSxGKxSoczJ6x/+h0kEhvKry+88EfEas/i0ceuJZPZMc692ViWwyUX/4JIZPGItTt2/H/s2fu1I68Mq1f9DfPmvWvCsY/FU0+9heTgFo4lLONlARbtbW9hzZr/bxIjE5l6uVwnjz72GjwvB1iEgq1ceul92HaARx+9mkx214T229z8Bnp778PzCoBFODyfSy/5FdnsAR57/FqMKQIWkcgiLrn4XixrcieY9fU/xsaN7+Fo+2xqejULF76fDRveOe59XX7ZbwmF2iY1PpFKyed7efSxV+O6KY6d0Bqb8879HvX1F05NYCdQGoOUTjgALF36p+zc+YUR5c5c8yX27PlXhlIvMpb+3LaDvOqVWyb92CNSKV3d97J58x9NaFu/v4FXXPnUJEd0zFPr/xfJ5LPl1xdd+GNqa9ecdJs9e7/Ojh2fn/DvbGh4BYnEelw3S+lEQDOXXXo/th2c8D6ni45KMqmMcUkk1lPqHEv/BgaewvOKE0jmATyMKZBIPjPq2r6+Rzh21cymv//xCUY+Nq6bIzm4iYkn81CK1aOv/7eTFJXI9EkObsHzMpTagEs2d5Bs9hCum5twMg/Q3//YkZMEpf1mMnvI5btJJJ7BmHx5eTq9k3yhb1Ley/Df/zhHry6CR3//Y3R2/mRC++rte3gyQxOpqMGh549cuR7/9Z/unl9OfkAncWwM4nJ0DNLTcz+ltn2MZTn09f2GodQLjLU/97wchSk49ohUSqnfm9is1qlsC55XIJncyLBcIrH+lNv19z12Wr83kdiA66Y5Ot7I5Q6TzR48rX1OFyX0MqksyyEaXcXxnWdt7VnYto9AYCJXrEpXy2przhh1bSy2lmNfY0Nt7ZkT+B1jZ9sBIuElnH7TcY7ELlJdaqIrsCwfpbZp4/fXEwy2YtsB/P7mCe83VnsmpXZV2m8g0ETA30hNzeqXLW/F76s7/Tcy4vefRSkJAHCorT2LhoZXTmhfdfHRbxESqUbRyDIsKzChbRvqL5vkaE5utDFIPH4ex9p2iTEusdg6QqH5jL0/d/BNwbFHpFJK/d7EJmo7TnRygzmObfuJRJYzLJeoOfnVeYDa2Fmn9Xuj0WVYlp+j4w2fL04wWB2z7TTlXiZdJnOA7dv/hly+i/nz3k17+43l5euffgf5/CEA/P4mgsFWjHHJ5ToxJo9l+bEsh1CwHdspTXFZuOD3aGm5dtTf5bpptu/4PIPJzTQ0XsmSxX+CbU/toyEymX28uP3/MDS0/ci9wHksy0dT02uxbR+dnfccV9rB74/jeXkaGl5Fbc0KenruIxJdzsoVf4HfH5/SWEWmQm/vQ+za/VUcJ8TyZX9WngaXyexj4zO3kMnsfNkWFtHoKurrL+bAgR9iTOrIchufU0ND45WsXvXXDCTWs2fP1/A5UZYv/wQ1NSuB0r3te/b+Oz5fLSuWf5JodPmUvK99+7/D4cM/IhxawIqVf0kw0MQLL9zGgYP/yWiDHssqDTqy2QO47iCW5WP5sj9j4cJbpiQ+kUrp6/stu3Z/mXy+j0JhkEKh88gam3BoMZns8DZvWQEWLnw/y5f972mPdfgY5Hdoa3sLu/d8le6ueym6aXxOhJaW17Fo0QfJZPawffvtDA1tI5s7DBTL76v0mCkPKGJZQc4//3vEdSJeZhFjDHv3fo0DB75HNteNMZkja3z4/Q247hCel8XnxIjFz6G//xGMKeI4MS44/05qapZOWWyZzP4j7biH+fPfQ3vbDafcxvPy7HjpHzh48Ee47rEZBLYdBvx43iBH+3LHjuD46vC8DJ6XpaZmFeeecweJxAZ27/4Kth1k+fI/m/ILhZNFCb2IiIiIiIhIFdKUexEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQr5KByCzUz6fp6+vj2KxiOu6GGNwXZdsNgtANBrF5/Nh2zbRaJRYLIZlWeVt0+k0kUiEQCBQybcxLtlslqGhISzLwnEc+vr6MMZQV1dHoVAgEAgQCAQoFovU1tZiWRbJZJJisYjf76e2tpZMJlNeb9s63yaVlcvlSCaTWJZFLBbDdV1yuRyhUIiBgQG6u7uBUnsGaGhoACAYDFIoFLAsi5qaGgCGhoYwxpS/+9XGdV0GBwcJBAKEw2F27drFwMAANTU1BINBUqkUhUKh/DmFw2GampoIBoOVDl3klIaGhhgYGKC+vh6fz0cmkyESidDX10dPTw8+n4/GxkZyuRyFQqHcb4dCoUqHPqmMMQwNDZHL5RgaGsLn8xGJRHAcB2MM6XQav99PMpkEYP78+fj9fgYHB/H5fOVjochMYoxhcHCw3CcXi0VSqRTBYJDOzs7yumAwSF1dHY7jYFkWPp+PmpqaEX12Op2mUChQU1OD4zgVelfjNzQ0hOu65TG267oMDQ1RLBYxxpDL5TDGDMs9bNsmHA5TLBZndBu3jDGm0kFMpWQySTweJ5FIEIvFKh3OnJBMJnnuuefGtU19fT0rV65kcHCQ559/HmMMtm1zxhlnUFtbO0WRTp7e3l62b98+5vKBQADHcchkMuVlfr+fQqEAlBKkM888U0m9VMzAwAAvvPBC+bVlWUyku2hqasLzPPr6+oBjbb2akvpCocCWLVvI5XLj3vass84qn9QQmYkOHjzI3r17J7Tt8uXLaWpqmuSIKsMYw4svvkh/f/+4tgsGg+Vjw4IFC5g3b95UhCcyIZ7n8cILL5RPQjU0NJBIJHBdd0zbNzQ0sGLFinKfffzxIhQKcdZZZ+Hzzfzrw3v27OHQoUNAaYy9atUqnnvuufKFxrFqb29n0aJFUxHiaVG2IJNu//79496mv7+fbDbLwYMHy0mD53kcPHhwssObEuN9z/l8flgyD5STeYBUKjXuQYXIZDpw4MCw1xM999vT01NO5qHU1tPp9GnFNt16enomlMzDxI6HItPpdL6j+/btm8RIKiudTk+o3z3+2LBv374JHytFpsLg4GA5mQfo6+sbczJ/tPzR8aoxZlibz2az9Pb2Tl6wU6RYLJaTeSiNsfft2zfuZB7g0KFDFIvFyQxvUiihl0k30avKlmWNuGpXLVeop+JqYzVdwZTZZyq/f9X23T6deKvlGCZz1+l8v6utLZ/MZLyX2fR5yOww2d/rl++vGr7zo8V4On3zTHzPGmnIpFuwYMG4G0prayuhUIgFCxaUp+74fD7mz58/FSFOukWLFo2rgUcikRG3gITD4fLPdXV11NfXT1p8IuO1cOHCYe3Ytu0JdWLz58+nra2t/Lq1tXXYd70aNDc3D7tvbqzHN9u2WbBgwVSFJTIpFi9ePOz1WL/flmWN2LaahcNhWltbx73d8bfULFmyZEYO9mXuqq2tpbGxsfy6ra1tXM+namtrK/fZlmWxZMmSYfuuhltuHMcZNk2+rq6OhQsXTuiW3kWLFs3I5wboHnqZEkcfNGGMoVgsYts2xWKx/MCJaDSK3+/HGEMwGBz2YJ2jD94KBoMzstGcyNH3B6WTEYlEAigd8AqFAn6/H8dxcF23/H6z2Sye5+E4TvlBYkfXa1Aglea6LplMBsuyCIfDuK5LsVgkEAgwNDREIpEoP+iuUChQV1eH67r4/X5c18W27fLA4WjbqNaHxBljyGaz+Hw+fD4fvb299Pf3E4vFyp+H53lEo1Fc1yUYDBKLxXSFXqpCPp8nlUpRU1ODbdvlh1+m02n6+vpwHIf6+npyuVz5+x0Oh6vi3tnxyuVyFIvFcnsPBALl/jiXy+H3+8vjm6amJmzbLpf1+/0Vjl5kpKMPfDvaJ3ueRzabJRAIkEgkGBwcLK87mitZloVt26P22YVCgWKxWHVj1Xw+P2yMfbRfN8ZgjCnf+nr8cc2yrPIDrR3HmbEP61ZCLyIiIiIiIlKFdOlAREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQr9IBSHVKpVJ85zvf4fDhwwAEg0FyudywMpZl0dbWxlve8hZaWloqEeaM4Hke9957L1u3biUWi2HbNj09PRhjCIfDXHnllfziF7+gUCiM2DYYDNLR0cFb3vIWYrFYBaKXuerJJ5/kgQceIJ/PE4lEWLt2LevXryeXy+E4DuFwmFe96lVccMEFlQ51xsjn8/zbv/0bvb29Jy3n8/lYuHAhN954IzU1NdMUncgx+Xye//mf/2H79u3k83k8zyuvcxyHD3zgAwwODvLzn/8cz/N49atfzdq1aysY8cywa9cuvvvd7+K6LlD6rIwxGGMAaGlp4eabbyYcDlcyTBEAtmzZwg9/+MPya5/PR1NTU3nsHolEuPLKK7n00ksrFeKMsWnTJu677z4GBweHHQ+PF4/Hef/7309tbe00R3dqljl6FJqlkskk8XicRCKhhGgSfe97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Z+nfv5dQba3uoZeTGt899O3Ytk3+yD30jbqHflqd9B765AC5ZEL30MsIw+6hX3ce0YZGdq9/gr59u0e/h76/l/p5C3QPfQXpHvoppoReREREREREZiNNuRcRERERERGpQkroRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKuSrdAAyfVID/by0/gly6RTtK1aTSSaI1jdgjMfjd/0AXyDAorXn0Lt/L8FIlKXnXkDHyjMqHbaMUaKrk80P/IquXS+RTQ2x5JzzOOfaNxKuqa10aDLNskNDbH/yUVID/TR0zGPf88/Ru3c3kXiMK3/nfcRbWisdooxBNjXE3s3P0n/4ENmhQWoaGgjV1NCzdw+WZdG8eCkti5fSOG9BpUOVKWQ8j71bNlEs5Fh09rlgWezc8BQHd7zAwReeo//wIUKRKOFYnKYFi3jlu28mGK2pdNhyAoVslt2bNxKKRLF9fn7zX9/CzRe4+MZ3svyCiwBIJwZ47K7vkc9kOP8N19OyeGmFo5bpkBka5Omf3E0gHOaCN74F23HY/sSj7Fj/OLGWNoznkurro2PVGay69AoC4UilQ5ZT2P/8VrY/9Rh1rW0U83n2P7+VwZ4uVl56JWdf9VqidfWT8nssY4yZlD3NUMlkkng8TiKRIBaLVTqcihk4fIg7PnErhUx6XNtd+r/exWVve/cURSWTpXPnDv7zUx/FGG/Y8mAkys1f/Co19Q0VikymW2qgnzv+7I9JJwZOWOZ9//dfaeiYP31Bybilkwm++4lbGeztOWk5y7Z580c/xfILL5mmyGS6/eyf/4HnH3kQgObFS3Ech8MvbT9hecfn54Nf+w4hJfUzTj6b4T8/9VH6Duwbdf3Fb3kH6655A1//8C0Y1y0vf90f/SlnvvI10xWmVEBmaJCv/eFNFPN5AOItrSxaex6bfv3zUcvXNjXz3v/vn9XOZ7Bn7v0p9/3HV0+43rJtPvpf90zK79KU+zli8wO/HHcyD/DE3f+N8bxTF5SKevLHPxyRzAPk0ileODIQlLlh26MP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yTycfLAgc1MqNTKZB3jyidIZ5aeegHy+tCybhQ1PT298UjI4eOpkHmDvXjh4cOrjkZlv27axJ/NwLJmH0nctkZj8mGR0xpQGcyeTy8H6p6YnHpn5HvnNqZN5GNt3S6bW8XV1ouumxeKxMgP98NzW6YlNKs914dHfTuouldDPBu5JDvBjOfjL3HKy74TxSt+n4zugk32/ZOqMp+167tTFIdXjdL8H+h5Nr7FMkFSdyFHj6YtdfW8qaiJjb43X5w5jJr2+ldDPBg0NpamTo7n44umNRWa+2lromDdy+Zlnle6nP+98sJ3SMseBdeumNz4picXGNmWyqWn0+pS5Z8XK8d0LX3/cVO5ly6CufvJjktFZFpx//snLOA6cc970xCMz30XjGM+Np6xMvgsvOnWZ42+TC4dh9RlTF4/MLD5faaw9iXQP/WxhDOzeBdtehIAPGhph4SLdeyejMwZ27YL9+0oPw5u/AFpajnUwQ0PQ3weNTZP2wA6ZAGPg0EHYtxeiNaUpuKlUKXHr6S49/HLhotLAXwRK99F3Hi49NOvgIUgMlO7L3LcPctlSW1+8GOrqSs/G6OwstfvWVj2HoRK6Okt1UyxCLA5trdDTW3pAVlvb8IeVivT3Q2qo9NDErs7SVXufU2r3mUypHbe0lh6uKJV1tK6aW2DL5tKxtqWl9NDLSLSU0KXTpQcQt7SWHmgtc0tPT+mizCRQQi8iIiIiIiJShTTlXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkK/SAcipFTo7Ofy5vya9cSN2KETsTW/EF4+T/PnPsaNRin39FLu68Le30/LRP6XmyisrHbJUkWJvLwc+8QkyTzyJMYbwuecSmDeP5L33gs+HZVmYQoH49W+m/bbbKh3urFTs7ubQbbeRfnoDBjDZLORyw8r4F8wnsHgxLR/7OKFVKysTqFQVd2iIfb//+2SffwFfRweRCy8kceedUCiA42DV1mKGhqBYBL+fmle+kva//hy++vpKh17V0uvX0/1P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DVMVUtV7IbVpzMk8QG+hm8PZg1MYkcxFB7P7xjyO7C/0cii3f4ojmh02Jh4bV/mtgxunKBKRkZTQzzAhe2JX2UO2ptzL5AlYwXGVD9mRKYpkdgnZYSyscW8XnOBxQeREJnqbVsSpmeRIZo+wHR33NiHNrJNJFrTH13+rfxmb8bZvjctlOimhn2Gagq2si104rm0WhpexILxkiiKSuejq5jdi44ypbNSp4bKGV09xRLPDpQ1XUeMrTVeudUa/F9nCotZXV34d89Vxft3l0xGezCFXNF5N+LgTcSdq702B1vLPDf5mzoqdN+WxVaszatfSHGgbc/nz45fpPluZdK3BeZxdO7Z2ek78Ylp0u9yYXNpwFVGndkxlI06Ui+qvnOKIRI7RPfQzVNErkHWzWAaMZQCbgB2g6BXJuikivtJVEtuyCTjjOxsrMhbGGNJuioAdxAKyhRxZkyJsRcmSKZ2ttrzyd1HGxhhDwRTwW36MMQwVk+TdAh4utf5agk4Y27LJuTnAlD5/a/xX9UVOxRhDxs0QsAP4bB9DhSTGWDi2AxYE7QCO5SPv5vFw9fDVMcq6GSxj4eISsIOl/tzL4sNPniy1TgzLsvHZundepk7RK1A0RTLFDH7bR9iJ4poiWEdP4BndOz8B6WIKvxUg52ZJu2nqAnVYlsVQLkWy0EtrZD5BR/22TC8l9CIiIiIiIiJVSFPuRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKuSrdABzmWc8bGvkOZWiW8T1XCzbwmf5MBgsy8K27BNuIzJVjDEYzIjvnWe88jrHcspl9B0dyTMeRbeIMQa/z19e5lgOnvHK7dsYA4BlWZUMV+aoolfEsRwAXOPieR6e8fA7fhzboegV8dkaNhxtp0D5uFdwCzi2U17v2A65Yg7bsrEtu9zGRSrF87xj31evQMAJkHfz+G2/+pxRvHws4xkPAIvSZ2VZVnkcdLTtj7adyHRQz1wB6UKajz74UR49+CiLYov48mu+zKLYIowxvPnuN7M7uXvENhYWEX+E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eC/8HEI1eiiezF4vfyje/ichdvxD8Vzo3Vm6LcUrUr0PxdsAyYNg3NLDvvxB8IVKDwhqXF5KPhJ7j3so3jpw9PxRmaWOPhRvx68gEDvyULyW0kPx8ACruh6Kl+6Bgf1QTMGKa497KN5WGDwAS67UQ/Fk9jrhQ/EOHHko3jNHHoo3BIXUCR6Kd/eRh+L9ToUeirftyEPxGoevKz8ULwgLL4W+7VDIlfr3dJceiidVTQm9iIiIiIiISBXSlHsRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUK+SgdQafdv6mX1/Ch7ujN0DeSxLYgGbRIZr1xm7aIaasI+tu4dAuDMhTW01gXZ15Ph6R1JzCj7tYB4xGEo5+J50FjrJxpy2N+bxRiLlniA85bFCPh0TkXmhmzeZeOuJIMZl476IF0DORIZFwC/DUWPYW3paNMoesP347Mh4LNJ571SO4v6uGx1PUG/ze7ONFv3DVF0DfU1fi5cEScccMrbDmYKPLylj7x78lgtSrFYFgT9NhG/TV+qOKyM37FwPUM06HDhijjxqH9Cn4vIbJHKujyzK0k657KwOUQ277K3J0txlPZmW+D3Wfgcm1TWHbbcAiwbim7pZ78DoaCD60J9jY81C2p4bt8QPYMFjDEEfDar59UwvylU3o8xhie3JzjUl8MAkaDN2kU1PL8/TSJdHBHP0d/tjdKhR4M2mbyH41icuyTGvMbQyEIis8jOw2l2Hk4TDNisW1zL3p4sB3qz2BZk8h7ucf1y2A+Zwsh9WFapn4xHfGQLHj7HYu2iGA21w/vKfNHj2V1JuhN5ip7BGKgN+7hkVR1diTw7DqUI+GzWLq5hX0+Og31ZjAHLsmiq9eHYNgf6MuSLR44XPgvjGQreyJiOigRsLl9TT01ozqdBMktYxpjR8tFZI5lMEo/HSSQSxGKxEet/9HjnmPZzfEdvW/CatY386tne04ptflOIC5fHT2sfItXikef76UnkRz0Bdroaa/2ctaiWh7b0jVj+ijMbyq9/9nQXucLkRxD0Wbz+/GYsy5r0fYtUi/s39ZJMF6ekjR9lAeGgTTo3crT+mrWNxCKlAfq2A0M8ty81JTFce24TkaBz6oIiVag7keeR5/uBYwlyvjg5rdrvlPpKxz7WV67fkWBfT3ZE2WjQIZU7drLPZ1sURzvjNkHRoM015zZP2v5EKkmXh8fo+GOIZ6B/KH/a+0ymRjmlKTJLJVOFKRvoD2aKDI5y1S35smVTkcwD5IqGgjurz42KnNJgZmqTeSjNnMnmR7/0Npg51t77hqaufz1+RoHIbJM8rh0ZIF80TNap6oJryL3s0nniBGPhdG54Oyt6kxcHQCrnMcuvacocMucTeovSWb9TCfrt0jRAIOS3aa0LnvaBpa1e0/Zk7mhvCAJMaod8VFtdgKaYf8S+2+oDw17HI1MzvS4e8eF3dHVe5rbWuqlr48errxl5e4tjW8Om8i4YZVq8PQkjHscu3eYjMls1xwJY1rF2XBt2JuVEnQXUhBzCgeENsb1h9LFwU8xfvgUHIBqyJ/WEYVPMr1l1MmvM+Sn3m3YPsqwtzKH+HHu7M/h9No21fnYeTlNwS8n7Zavi+HwOLx1OA7CsLUI05DCUKfLYtn7SWQ/bKc3JPzorKRK0md8Yon+oQK7osaAxTCRks6szi+sZFjQGWdoW0cFE5gzPM+w4nGYo69JeF6B7MM+ergzGlKbGZ3IuQ1kP24agzyYSdPDZ0DNYKN9Hb1ule2hrQj66EqVZMvMaQ5y5oAbbthhIFXhu7xDZgktbfYhV86LDpvYVXY8nXxygK1Eo789xwHXh6AV2x4JIyKHoevgcm3jER03I4UBfjqEj9/wHfFBXEyCdc2msDXDmwho9D0PmvKJr2HEoRSbvMb8xRL7osbsrzUCqiOsaDGBM6TkYkZCPmrBDwLHY25PF8yDgtwj7HWwbbNsik3MxBuJRP5GgTdErnTxb0hJid1eW3qECxaJHOOiwpDVMPDI80d95OM2OQylcD1rrAqyaF+Wlw2kO9GbLU4gdCyzbwhhDJOhQKHqlq5KFUrxBn0VrfZDewQIhv8O6JTXUhvW8DJnd+gbz7OnOEvTbrGiP0J3Mc3ggj2U8khmXTN6lUCydJJvfGGRPZ5aj19PDAQsLC59jEQ44NMb8ZHKle+hXdEQJ+of3lcYYdnZm6B3Mk866FD1DSzzAmQtrSaaL7Okqjc1XdEToSeY51J/D9QyObdFUG8C2YX9vlmS6eOQ5WD5sy9CVKDDaxDkLWNAUYt2SGD6diJdZYs4n9CIiIiIiIiLVSJeURERERERERKqQEnoRERERERGRKqSEXkRERERERKQKKaEXERERERERqUJK6EVERERERESqkBJ6ERERERERkSqkhF5ERERERESkCimhFxEREREREalCSuhFREREREREqpASehEREREREZEqpIReREREREREpAopoRcRERERERGpQkroRURERERERKqQEnoRERERERGRKjTjE/qHH36YN73pTXR0dGBZFnfffXelQxIRERERERGpOF+lAziVVCrFunXreN/73sdb3/rWSd//rp4UP9t8kJ9tPsSBvgxF1yXvQcCxWNgYZXFTlHXz68gVXdbv6WPTviTz68P847vOJeSz+ft7t2HbFh985VJ+8uwhdvakuG5tO687sw3LsiY9XpG54pl9A6zf3cfa+XVctKSBdL7IVx94ie1dgziWxfOHB2muCRAKOOzvzxD22wR8Dn4LetIF6iJ+GiIBhnJFXr26hdZYiO6hPOcuiLN+dz8b9/YzmC0SC/vJ5F06B3PUhnz8r/Pn88pVzfxs0yFiYR8hn8OhZI7XrG5hcVO00h+LSNV4/lCS3+7oYVVbLVeuaOahbV38z7MH2dWT4lAiQ9E1+B2LbNHQUhvk6jNa+NnWw/gsi6DPpjOZpakmyIrWGnb1pokFfcyvj/Cr5ztxXQ+fbVFwPWzHxm9bnLeogcZogKDP5nAyw86eDJcsrae1NsTmA0lesbKJVM7lm7/dSSrvEgv5uXJFM3/2ulXc/cxBfrujh0uWNPCeSxax9WCSp3b3cfa8OBcvbaz0RylSNboHc/xs8yFqgj5euaqZn24+xEPbutndk2IoWyAc9BENOPQM5UimC7jGAGBbEPA7WFhctqyRv3zjGu5/oYuCZzDG4HdsntjZy8a9fRSKMJQrYLCIh30EfDaObbOwIUJdxMdjL/URCTj88atXcNXqFv7+3m2k80X+5DUrWN5SW+FPSGTyWcYcaUlVwLIsfvSjH3HDDTeMeZtkMkk8HieRSBCLxUasX/UXPyNXnNhH4LMtit7o2370tSv5k9esmNB+Rea6+1/o5Pe+vZ6jR6cvvG0dX3lgBzt7UtPy+yMBh0ze5WjrtoCQ3+Enf3IFy5prpiUGkWq2fncf7/ja43iewQCvO7OVX2ztrHRYowr6rGHjgHXz42w6kAADBvji29dx43nzKxegSJXoT+W59ksP0z2Yw1DqS9N5d0L7si04wRB7XPyORcE9dtLg1x99JUvVj8ssM+On3I9XLpcjmUwO+3cyhQkm88AJk3mAbz+6e8L7FZnrfvDU/mGvv/XormlL5gHSxyXzUBrU54ouP3n20LTFIFLN7txwAKDcju57oatywZzCy0/qP7s/ARyL/f89sXeaIxKpTg9v76brSDIPTDiZh8lJ5oFyMn90nz9Yv/8kpUWq06y7Qv+Zz3yGz372syOWn+gKvYiIiIiIiEg1mnUJfS6XI5fLlV8bY8jn8zQ1NemedhEREREREZk1ZvxD8cYrGAwSDAYrHYaIiIiIiIjIlJp199CLiIiIiIiIzAUz/gr90NAQO3bsKL/etWsXzzzzDA0NDSxcuLCCkYmIiIiIiIhUzoy/h/7BBx/kqquuGrH8pptu4lvf+tb0ByQiIiIiIiIyA8z4hH4qGWMYHBysdBgiIiIiIiIyx9TW1p72g9tn/JT7qdTT00NLS0ulwxAREREREZE5pquri+bm5tPax5xO6AOBAAD79u3T36ifYZLJJAsWLFDdzFCqn5lLdTNzqW5mNtXPzKW6mblUNzOb6mfmOlo3R/PR0zGnE/qj0xtisZi+5DOU6mZmU/3MXKqbmUt1M7OpfmYu1c3MpbqZ2VQ/M9fpTrcH/dk6ERERERERkaqkhF5ERERERESkCs3phD4YDHLbbbcRDAYrHYq8jOpmZlP9zFyqm5lLdTOzqX5mLtXNzKW6mdlUPzPXZNbNnP6zdSIiIiIiIiLVak5foRcRERERERGpVkroRURERERERKqQEnoRERERERGRKqSEXkRERERERKQKzdmE/l/+5V9YsmQJoVCI888/n9/85jeVDmlOevjhh3nTm95ER0cHlmVx9913D1tvjOEzn/kMHR0dhMNhXvWqV7F169bKBDvH3H777Vx44YXU1tbS0tLCDTfcwLZt24aVUf1Uxle/+lXWrl1LLBYjFotx6aWX8vOf/7y8XvUyc9x+++1YlsVHPvKR8jLVT+V85jOfwbKsYf/a2trK61U3lXXgwAHe85730NjYSCQS4ZxzzuHpp58ur1f9VM7ixYtHtB3LsvjQhz4EqG4qqVgs8hd/8RcsWbKEcDjM0qVL+dznPofneeUyqp/KGRwc5CMf+QiLFi0iHA5z2WWX8dRTT5XXT0rdmDnoe9/7nvH7/ebrX/+6ee6558ytt95qotGo2bNnT6VDm3N+9rOfmU9/+tPmzjvvNID50Y9+NGz95z//eVNbW2vuvPNOs3nzZvOOd7zDtLe3m2QyWZmA55Brr73WfPOb3zRbtmwxzzzzjLnuuuvMwoULzdDQULmM6qcy7rnnHvPTn/7UbNu2zWzbts186lOfMn6/32zZssUYo3qZKZ588kmzePFis3btWnPrrbeWl6t+Kue2224zZ555pjl06FD5X1dXV3m96qZy+vr6zKJFi8zNN99snnjiCbNr1y7z61//2uzYsaNcRvVTOV1dXcPaza9+9SsDmAceeMAYo7qppL/5m78xjY2N5ic/+YnZtWuX+e///m9TU1NjvvSlL5XLqH4q5+1vf7tZs2aNeeihh8z27dvNbbfdZmKxmNm/f78xZnLqZk4m9BdddJH54Ac/OGzZ6tWrzSc+8YkKRSTGmBEJved5pq2tzXz+858vL8tmsyYej5t//dd/rUCEc1tXV5cBzEMPPWSMUf3MNPX19ebf//3fVS8zxODgoFmxYoX51a9+ZV75yleWE3rVT2XddtttZt26daOuU91U1p//+Z+bK6644oTrVT8zy6233mqWLVtmPM9T3VTYddddZ2655ZZhy2688Ubznve8xxijtlNJ6XTaOI5jfvKTnwxbvm7dOvPpT3960upmzk25z+fzPP3001xzzTXDll9zzTU8+uijFYpKRrNr1y4OHz48rK6CwSCvfOUrVVcVkEgkAGhoaABUPzOF67p873vfI5VKcemll6peZogPfehDXHfddVx99dXDlqt+Km/79u10dHSwZMkS3vnOd7Jz505AdVNp99xzDxdccAFve9vbaGlp4dxzz+XrX/96eb3qZ+bI5/N897vf5ZZbbsGyLNVNhV1xxRXcd999vPjiiwA8++yzPPLII7zhDW8A1HYqqVgs4rouoVBo2PJwOMwjjzwyaXUz5xL6np4eXNeltbV12PLW1lYOHz5coahkNEfrQ3VVecYYPvrRj3LFFVdw1llnAaqfStu8eTM1NTUEg0E++MEP8qMf/Yg1a9aoXmaA733ve2zYsIHbb799xDrVT2VdfPHF3HHHHdx77718/etf5/Dhw1x22WX09vaqbips586d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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns\n", "\n", "fig, ax = plt.subplots(figsize=(12, 5))\n", "spike_ind, neuron_ind = np.nonzero(spikes)\n", "cmap = plt.get_cmap('tab20')\n", "\n", "c = [cmap.colors[ind] for ind in neuron_ind]\n", "ax.scatter(time[spike_ind], neuron_ind + 1, c=c, s=5)\n", "ax.set_yticks((1, spikes.shape[1]))\n", "ax.set_ylim((1, spikes.shape[1]))\n", "ax.set_ylabel('Cells')\n", "\n", "ax.set_xlabel('Time [s]')\n", "ax.set_xlim((0.0, 90.0))\n", "sns.despine(offset=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also have a position variable which has the same number of time points and has one position dimension:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(360000,)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "position.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot position over time:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(6, 4))\n", "\n", "ax.plot(time, position, linewidth=2)\n", "ax.set_ylabel(\"Position [cm]\")\n", "ax.set_xlabel(\"Time [s]\")\n", "sns.despine(offset=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary\n", "So we have two numpy arrays that contain the data we need to fit and evaluate the model:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(360000, 19)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spikes.shape" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(360000,)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "position.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Clusterless Data Format\n", "\n", "The `Clusterless` decoders take the same information as the `SortedSpikes` decoders with one exception: the actual multiunit spikes and their associated waveform features. This variable is called **multiunits** and it has time bins on the first dimension, the marks (or associated wave form features) in the second dimension, and the electrodes in the last dimension." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0mClusterlessDecoder\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mposition\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiunits\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mis_training\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Parameters\n", "----------\n", "position : array_like, shape (n_time, n_position_dims)\n", "multiunits : array_like, shape (n_time, n_marks, n_electrodes)\n", "is_training : None or array_like, shape (n_time,)\n", "\n", "Returns\n", "-------\n", "self\n", "\u001b[0;31mFile:\u001b[0m ~/Documents/GitHub/replay_trajectory_classification/replay_trajectory_classification/decoder.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ClusterlessDecoder.fit?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example Data\n", "\n", "For the multiunits array, if there is no spike in a particular time bin, there are only NaNs. If there is a spike, then the values of the associated waveform feature are filled in. Let's loook at some example simulated data:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from replay_trajectory_classification.clusterless_simulation import make_simulated_run_data\n", "\n", "(time, position, sampling_frequency,\n", " multiunits, _) = make_simulated_run_data()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that there are 350,000 time bins, 4 mark dimensions (wave form features), and 5 electrodes:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(350000, 4, 5)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "multiunits.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we look at the first electrode and find the first spike, we see that time bins with spikes are rows that have numbers whereas time bins without spikes are filled with NaNs:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-0.72764399, 0.07943942, -0.84090555, 0.05599292],\n", " [ nan, nan, nan, nan],\n", " [ nan, nan, nan, nan],\n", " [ nan, nan, nan, nan],\n", " [ nan, nan, nan, nan],\n", " [ 0.50361385, 1.83678763, 0.79913282, -1.14966708],\n", " [ nan, nan, nan, nan],\n", " [ nan, nan, nan, nan],\n", " [ nan, nan, nan, nan],\n", " [ nan, nan, nan, nan]])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spike_ind = np.nonzero(np.any(~np.isnan(multiunits[:, :, 0]), axis=1))[0]\n", "\n", "multiunits[spike_ind[0]:spike_ind[0] + 10, :, 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These four values represent waveform features of this electrode at the time of the spike. Likewise, if we look at the second electrode, we can see that there was no spike in the first 10 time bins." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan],\n", " [nan, nan, nan, nan]])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "multiunits[:10, :, 1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Track Graph\n", "\n", "If you are using 1D position but want to represent an environment more complicated than a linear track, you need to constract a graph representation of the track that indicates how the 1D position can connect. We refer to this as the **track_graph**. This is done using the NetworkX package." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we define the x- and y-position of the nodes. The nodes are automatically named by their order:\n", "+ node \"0\" has position (0, 0)\n", "+ node \"1\" has position (1, 0)\n", "+ node \"2\" has position (1, 1)\n", "+ node \"3\" has position (0, 1)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "node_positions = [(0, 0), # xy position of node 0\n", " (1, 0), # xy position of node 1\n", " (1, 1), # xy position of node 2\n", " (0, 1), # xy position of node 3\n", " ]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we can define how the nodes are connected by their node names. So if we want node \"0\" and node \"1\" to be connected, then we specify (0, 1)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "edges = [(0, 1), # connects node 0 and node 1\n", " (1, 2), # connects node 1 and node 2\n", " (2, 3), # connects node 2 and node 3\n", " ]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we can construct a graph of the track by using the function `make_track_graph`, which will return a NetworkX Graph object:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from replay_trajectory_classification import make_track_graph\n", "\n", "\n", "track_graph = make_track_graph(node_positions, edges)\n", "\n", "track_graph" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "NodeView((0, 1, 2, 3))" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "track_graph.nodes" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "EdgeView([(0, 1), (1, 2), (2, 3)])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "track_graph.edges" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualize the **track_graph** by using our `plot_track_graph` function:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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Nja2THtsbKz27t1b4Tr79u0r13/w4ME6cOCAioqK6qxWT1abcfy50tJS5ebmqkWLFnVRoleo7TiuXLlS3377rebOnVvXJXqF2ozjli1b1KdPH7388stq27atunbtqqefflpXrlypj5I9Um3GsV+/fjp37pzi4+NlWZYuXLigjRs36r777quPkhuMhjLP8COlHigzM1MlJSUKCwsr0x4WFqb09PQK10lPT6+wf3FxsTIzMxUeHl5n9Xqq2ozjz/35z39WXl6eRo4cWRcleoXajOOJEyc0a9YsJSYmym7nnxmpduN46tQp7d69W4GBgdq8ebMyMzP15JNP6uLFi8Ze51ObcezXr5/WrFmjuLg4/fjjjyouLtbw4cP1+uuv10fJDUZDmWc44uPBbDZbmfeWZZVrq65/Re2mcXYcr1m3bp1eeOEFbdiwQaGhoXVVnteo6TiWlJTokUce0bx589S1a9f6Ks9rOPN9LC0tlc1m05o1a3Trrbdq6NChWrRokVatWmX0UR/JuXE8evSopk6dqueff15JSUnaunWrUlJSNHny5PootUFpCPMM/yvmgUJCQuTr61vu/14yMjLKpe1rWrduXWF/u92uli1b1lmtnqw243jNhg0bNGHCBL3//vu655576rJMj+fsOObm5urAgQNKTk7WlClTJF2dwC3Lkt1u1/bt23XXXXfVS+2epDbfx/DwcLVt21bBwcGOtqioKFmWpXPnzqlLly51WrMnqs04LliwQP3799czzzwjSerZs6eaNGmiAQMG6MUXX/SaIxXu1lDmGY74eCB/f39FR0crISGhTHtCQoL69etX4ToxMTHl+m/fvl19+vSRn59fndXqyWozjtLVIz3jxo3T2rVruQZAzo9jUFCQDh8+rEOHDjlekydP1k033aRDhw6pb9++9VW6R6nN97F///767rvvdPnyZUfb8ePH5ePjo3bt2tVpvZ6qNuOYn58vH5+y052vr6+kfx2xQPUazDzjpouqUY1rt2uuWLHCOnr0qDV9+nSrSZMm1unTpy3LsqxZs2ZZo0ePdvS/dpvhjBkzrKNHj1orVqzwytsMXc3ZcVy7dq1lt9utpUuXWmlpaY7XpUuX3PURPIKz4/hz3NV1lbPjmJuba7Vr1876zW9+Yx05csTauXOn1aVLF2vixInu+ggewdlxXLlypWW3261ly5ZZ3377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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from replay_trajectory_classification import plot_track_graph\n", "\n", "fig, ax = plt.subplots()\n", "plot_track_graph(track_graph, ax=ax)\n", "ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True)\n", "ax.set_xlabel(\"x-position\")\n", "ax.set_ylabel(\"y-position\")\n", "sns.despine(offset=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can change how these points are connected by changing the edges:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "edges = [(0, 1), # connects node 0 and node 1\n", " (0, 3), # connects node 0 and node 3\n", " (1, 2), # connects node 1 and node 2\n", " ]\n", "\n", "track_graph = make_track_graph(node_positions, edges)\n", "\n", "fig, ax = plt.subplots()\n", "plot_track_graph(track_graph, ax=ax)\n", "ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True)\n", "ax.set_xlabel(\"x-position\")\n", "ax.set_ylabel(\"y-position\")\n", "sns.despine(offset=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We could also change the node positions:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "node_positions = [(5.5, 7), # xy position of node 0\n", " (1, -5), # xy position of node 1\n", " (1, 1), # xy position of node 2\n", " (0, 1), # xy position of node 3\n", " ]\n", "\n", "track_graph = make_track_graph(node_positions, edges)\n", "\n", "fig, ax = plt.subplots()\n", "plot_track_graph(track_graph, ax=ax)\n", "ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True)\n", "ax.set_xlabel(\"x-position\")\n", "ax.set_ylabel(\"y-position\")\n", "sns.despine(offset=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are two other parameters when using `track_graph` with the decoders. These specify how the edges correspond to 1D position:\n", "+ **edge_order** -- The order of the edges in 1D position in terms of their node pairs e.g. (0, 1) represents the edge connecting node 0 to node 1.\n", "+ **edge_spacing** -- The spacing between the edges. This is necessary when edges are not connected to each other in 2D space, because the smoothing used by the model will inappropriately smooth into a non-adjacent edge. This will always be one less than the number of edges.\n", "\n", "\n", "For example, we might linearize the above track by doing the following by specifying the following edge order and spacing:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "edge_order = [(2, 1), # node 2 to node 1\n", " (1, 0), # node 1 to node 0\n", " (0, 3), # node 0 to node 3\n", " ]\n", "edge_spacing = 0 # no spacing between edges" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualize the linearization layout by using `plot_graph_as_1D`:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from replay_trajectory_classification import plot_graph_as_1D\n", "\n", "fig, ax = plt.subplots(figsize=(10, 1))\n", "plot_graph_as_1D(track_graph, edge_order, edge_spacing,\n", " ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we wanted, we could put spaces between each edge. For example if we want 5 cm spaces between edges:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "edge_order = [(2, 1), # node 2 to node 1\n", " (1, 0), # node 1 to node 0\n", " (0, 3), # node 0 to node 3\n", " ]\n", "edge_spacing = 5\n", "\n", "fig, ax = plt.subplots(figsize=(10, 1))\n", "plot_graph_as_1D(track_graph, edge_order, edge_spacing,\n", " ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also change the spacing by depending on the edges:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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n3QrpsaOHatHHnlEjz/+uCIjI+V0OrVgwQKv4lLp+++/13333afIyEiFhYUpISFBu3fvdhv/G2+8obi4OIWHh+tXv/qVysvLtXTpUjmdTsXExOh3v/tdvfoGALijGAGAJvD0009r7ty5ysjIUK9evTRt2jTXwfaBAwc0ceJETZ06Vfv379fatWv15ZdfatasWa79S0tLtXDhQu3bt08bN25Udna2kpOTq/Tz+OOPa/HixcrMzNSgQYM8GltwcLCCgoJ06dIlnTt3TrfeeqvatWun9PR0vffee/r0009dYykrK9OUKVM0ZswY7d+/Xzt37tSMGTNks9mqtDt37lzdc889rkulcnNzNWrUqCrb/fDDD5o0aZKGDRumffv26eWXX9af//xnPf/8827brV69WmFhYdq9e7eWLl2q5557Tlu2bPHoPVYqLi7WmDFj9M9//lMpKSnat2+fHn/8cVVUVLi2+cc//qGPPvpIH3/8sf7617/qjTfe0G233abvv/9eaWlp+v3vf69nnnlGu3bt8qpvAEA1DADAK0lJSWby5Mk1rpdkNmzYYIwxJjs720gyK1eudK0/ePCgkWQyMzONMcZMnz7dzJgxw62Nbdu2mYCAAHP+/Plq+/jqq6+MJFNUVGSMMWbr1q1Gktm4cWOd479yfBcuXDALFy40ksymTZvMa6+9Ztq1a2eKi4td23/44YcmICDAnDx50uTn5xtJJjU1tdq258+fb+Lj412vq/usKj+TvXv3GmOMmTdvnundu7epqKhwbfPSSy+Z8PBwU15ebowxZsyYMebGG290a2fYsGHmiSeeqPF9Vtf3q6++aiIiIkx+fn6N4w8NDTWFhYWuZRMnTjTdunVzjcUYY3r37m0WL17stm9lDE6fPl3jmAAA7jgzAgBN4MqzFLGxsZLkusxqz549evPNNxUeHu76mThxoioqKpSdnS1J2rt3ryZPnqyuXbsqIiJCY8eOlSTl5OS49ZOQkODReKZNm6bw8HCFhoZq+fLlWrZsmRITE5WZman4+HiFhYW5tr3hhhtUUVGhw4cPKzIyUsnJyZo4caJuv/12vfjii8rNza335yJJmZmZGjlypNvZlRtuuEHFxcX6/vvvXct+eqYnNjbW7VI1T2RkZGjw4MG13t/RrVs3RUREuF536NBB/fr1U0BAgNsyb/sGAFRFMQIATSA4ONj178qD7spLgyoqKvTQQw8pIyPD9bNv3z5lZWXp2muvVUlJiSZMmKDw8HC9/fbbSk9P14YNGyRdvnzrSlcWEbX5wx/+oIyMDOXm5qqgoECPPfaYpMs3vld3ydWV4161apV27typUaNGae3aterVq1eDLlmqrk9jjFufkvtnWLnuysurPBESElLnNtX144u+AQBVUYwAgMWGDBmigwcPqkePHlV+7Ha7Dh06pFOnTmnJkiUaPXq0+vTp0+C/yjudTvXo0UMxMTFuy/v166eMjAy3m+e3b9+ugIAA9erVy7Vs8ODBeuqpp7Rjxw4NGDBA7777brX92O12lZeX1zqWfv36aceOHa4CRLp8Q39ERIQ6depUn7dXo0GDBikjI0MFBQU+bRcAUD8UIwBQD2fPnnU7k5GRkVHlkilPPfHEE9q5c6cefvhhZWRkKCsrSykpKZo9e7YkKS4uTna7XX/84x919OhRpaSkaOHChb58Oy4PPPCAWrVqpaSkJH3zzTfaunWrZs+erenTp6tDhw7Kzs7WU089pZ07d+r48ePavHmzvvvuO/Xt27fa9rp166b9+/fr8OHDOnXqlC5dulRlm1//+tc6ceKEZs+erUOHDun999/X/PnzNWfOHLdLo3xh2rRpcjqdmjJlirZv366jR49q3bp1PnmsMQDAexQjAFAPqampGjx4sNvPb3/723q1NWjQIKWlpSkrK0ujR4/W4MGD9Zvf/MZ1b0l0dLTefPNNvffee+rXr5+WLFmiZcuW+fLtuISGhuqTTz5RQUGBhg0bprvuuks333yzVqxY4Vp/6NAh3XnnnerVq5dmzJihWbNm6aGHHqq2vQcffFC9e/dWQkKCoqOjtX379irbdOrUSZs2bdJXX32l+Ph4zZw5U7/85S/1zDPP+Pz92e12bd68WTExMZo0aZIGDhyoJUuWKDAw0Od9AQDqZjNXnhcHAMBPJCcn68yZM67vfGlsqampGjdunE6fPq22bds2SZ8A0NxxZgQA4Lc++OADhYeH64MPPmjUfvr376/ExMRG7QMA/BFnRgAAfikvL0+FhYWSLj8G2NMnjdXH8ePHXffDXHPNNT6/1wUA/BXFCAAAAABL8KcbAAAAAJagGAEAAABgCYoRAAAAAJagGAEAAABgCYoRAAAAAJagGAEAAABgCYoRAAAAAJagGAEAAABgCYoRAAAAAJb4XzAuJK2iuZ+sAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "edge_order = [(2, 1), # node 2 to node 1\n", " (1, 0), # node 1 to node 0\n", " (0, 3), # node 0 to node 3\n", " ]\n", "edge_spacing = [0, 5]\n", "\n", "fig, ax = plt.subplots(figsize=(10, 1))\n", "plot_graph_as_1D(track_graph, edge_order, edge_spacing,\n", " ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's try a more complicated track, where you should put spacing in between edges:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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VhzqVlpaqpycHElSaGiovL29HVwRAMBd1HRDkyurV/CZP3++mjdvbv1vd/sluKL33ntP8+bNU0pKivURAp6enoqNjdXkyZM1bNgwB1cIAHB1vr6++vbbb9WlSxdHl2I3nOpyQUuWLNGkSZM0duxY9evXTxERETIMQ1lZWUpKStJ///d/a/78+Ro/fryjSwUc5sKFC0pJSVFwcLC6du1aad7Fixf13nvvaeTIkQ6qDnAuU6ZMqXb6K6+8ogcffFAhISGSpHnz5jVmWQ3C5uDzzTffyNvbWzfccIMk6aOPPtKyZcvUtWtXzZo1Sz4+Pg1SqL24Q/C55ppr9Ne//lUPPfRQtfOXLVum//qv/9KxY8cauTLAORw+fFgJCQlKT0+XxWJR79699e677yoyMlKSlJWVpaioKKd/4CrQWDw8PNS9e/cqT2lOTk5WXFycmjVrJovFoi+++MIxBdqRzQ8wfOSRR3T48GFJ0rFjxzRs2DA1bdpU77//vp555hm7F4iqMjIyFB8fX+P8nj17KiMjoxErApzLX/7yF91www3Kzs7WDz/8oICAAPXq1Uvp6emOLg1wSs8//7zy8vL017/+VVu2bLG+PD09tXz5cm3ZssUtQo90BcHn8OHD+s1vfiNJev/993XHHXfonXfe0fLly7VmzRp714dqxMTE6PXXX69x/pIlSxQTE9OIFQHOZefOnXrhhRcUGhqqDh06aP369UpMTFTv3r05EgpUY9q0aVq9erUeffRRPfXUUyotLXV0SQ2m3g8wvMwwDOs3tH/22We65557JEnR0dHWu4vQsBYsWKDExERt3rxZ/fr1U1hYmCwWi7KysrR582adPHlSn376qaPLBBzmwoULlZ4uL0mvvfaaPDw8rP+zBqCym2++WSkpKXrssccUFxent99+2y1vZrI5+MTFxem5557T3XffreTkZC1evFiSlJaWpvDwcLsXiKp69eqlAwcOaMmSJdq5c6eysrJkGIYiIiI0dOhQPfroo2rdurWjywQc5rrrrtPevXur3Iny6quvyjAMDR482EGVAc7N399f//rXv7Rq1Sr169fPLa+Ds/ni5v/85z8aPny40tPTNWXKFM2cOVOS9Pjjjys3N9fp/0/KHS5uBlC7OXPmaPv27dqwYUO188ePH68lS5ZYj14DqOqnn35SSkqK7r77bjVr1szR5diN3W5nv3jxojw9PZ3+AXoEHwAAzMvmU12XpaSk6NChQ7JYLOrSpYtuuukme9YFAABgdzYHn+zsbA0bNkzJyckKCgqSYRjKy8tTnz59tGrVKrVs2bIh6gQAALhqNt/O/vjjj6ugoEAHDhzQmTNndPbsWX333XfKz8/XxIkTG6JGVOPIkSPq37+/jhw54uhSAJdAzwC2cdeesfmIz8aNG/XZZ59Vuluia9eueu2115SQkGDX4lCzgoICbd68WQUFBY4uBXAJ9AxgG3ftGZuP+FRUVFR7AbO3tzd3SAAAAKdmc/C566679MQTT+jnn3+2Tjt16pQmT56svn372rU4AAAAe7I5+CxcuFAFBQVq166drr32WnXo0EHt27dXQUGBXn311YaoEQAAwC5svsYnOjpa33zzjZKSkvT999/LMAx17dpVd999d0PUBwAAYDdX/Byffv36qV+/fvasBQAAoEHZfKpLkj7//HPdc8891lNd99xzjz777DN71wYAAGBXV3SNz4ABA9S8eXM98cQTmjhxogICAjRw4EAtXLiwIWoEAACwC5tPdc2ZM0fz58/XhAkTrNMmTpyoXr166fnnn680HQAAwJnYfMQnPz9fAwYMqDI9ISFB+fn5dikKAACgIdgcfAYPHqx169ZVmf7RRx9p0KBBdikKAACgIdh8qqtLly56/vnntXXrVsXHx0uSvvrqK3355Zd68skn9Y9//MM6lu/uAgAAzsTm4LN06VK1aNFCBw8e1MGDB63Tg4KCtHTpUut7i8VC8AEAAE7F5uCTlpbWEHUAAAA0uCt6js9lX375pYqLi+1VCwAAQIO6quCTmJioU6dO2asWAACABnVVwccwDHvVAQAA0OCuKvjYw6JFi9S+fXv5+fkpNjZW27dvr9dyX375pby8vPSb3/ymYQsEAABuw+bgM3r0aG3btk2S9Prrrys8PPyKN7569WpNmjRJM2bMUGpqqnr37q3ExESlp6fXulxeXp5Gjhypvn37XvG2AQCA+dgcfAoKCpSQkKCOHTsqLS1N586du+KNz5s3T2PGjNHYsWPVpUsXLViwQNHR0Vq8eHGtyz3yyCN64IEHrM8RAgAAqA+bg8+aNWt06tQpTZgwQR988IHatWunxMREffDBByotLa33ekpKSpSSkqKEhIRK0xMSErRz584al1u2bJl+/PFHzZw5s17bKS4uVn5+fqUXAAAwpyu6xickJERPPPGEUlNT9fXXX6tDhw4aMWKEoqKiNHnyZB05cqTOdeTk5Ki8vLzKqbLw8HBlZmZWu8yRI0c0depUrVy5Ul5e9XsE0Zw5cxQYGGh9RUdH12s5AADgfq7q4uaMjAxt3rxZmzdvlqenpwYOHKgDBw6oa9eumj9/fr3WYbFYKr03DKPKNEkqLy/XAw88oNmzZ6tTp071rnHatGnKy8uzvk6ePFnvZQEAgHux+cnNpaWlWr9+vZYtW6bNmzerW7dumjx5soYPH67mzZtLklatWqVHH31UkydPrnE9oaGh8vT0rHJ0Jzs7u9oLpgsKCrR3716lpqZqwoQJkqSKigoZhiEvLy9t3rxZd911V5XlfH195evra+uPCQAA3JDNwScyMlIVFRX605/+pK+//rra28n79++voKCgWtfj4+Oj2NhYJSUlaejQodbpSUlJGjJkSJXxAQEB2r9/f6VpixYt0hdffKEPPvhA7du3t/VHAQAAJmNz8Jk/f77uvfde+fn51TimRYsW9fpOrylTpmjEiBGKi4tTfHy83njjDaWnp2vcuHGSLp2mOnXqlFasWCEPDw/FxMRUWj4sLEx+fn5VpgMAAFTH5uAzYsQIu2182LBhys3N1bPPPquMjAzFxMRow4YNatu2raRL1xDV9UwfAACA+rI5+Njb+PHjNX78+GrnLV++vNZlZ82apVmzZtm/KAAA4JYc/pUVAAAAjYXgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATIPgAwAATMPhwWfRokVq3769/Pz8FBsbq+3bt9c4du3aterXr59atmypgIAAxcfHa9OmTY1YLQAAcGUO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06ZNde2111rfR0ZGKjs7+6q2DeDqcXEzgEZ17Ngx/fzzz6qoqNCJEyfUrVs3RUVFVbqlvD4XE1ssFhn/c1OqxWKpNM8wDOu0xMREnThxQv/+97/12WefqW/fvnrsscc0d+7cK6rfqOFG2F9uU7oUwGqqF4DjcMQHQKMpKSnR8OHDNWzYMD333HMaM2aMsrKy5OXlpQ4dOlhfvww+3377rS5cuGB9/9VXX8nf31+tW7dWhw4d5OPjox07dljnl5aWau/everSpYt1WsuWLTV69Gi9/fbbWrBggd54441q6/Px8ZF06Tb3mnTt2lVlZWXavXu3dVpubq4OHz5caZsAnBPBB0CjmTFjhvLy8vSPf/xDzzzzjLp06aIxY8bUukxJSYnGjBljvUB55syZmjBhgjw8PNSsWTM9+uijevrpp7Vx40YdPHhQDz/8sIqKiqzr/dvf/qaPPvpIR48e1YEDB/TJJ5/UGFDatm0ri8WiTz75RKdPn9b58+erjOnYsaOGDBmihx9+WDt27NC3336rBx98UK1atdKQIUOu/pcEoEERfAA0iq1bt2rBggV66623FBAQIA8PD7311lvasWOHFi9eXONyffv2VceOHXX77bfrvvvu06BBgzRr1izr/BdffFF/+MMfNGLECN100006evSoNm3apBYtWki6dBRn2rRp6tatm26//XZ5enpq1apV1W6rVatWmj17tqZOnarw8HBNmDCh2nHLli1TbGys7rnnHsXHx8swDG3YsKHK6S0AzocnNwNwWqNHj9a5c+f04YcfOroUAG6CIz4AAMA0CD4AAMA0ONUFAABMgyM+AADANAg+AADANAg+AADANAg+AADANAg+AADANAg+AADANAg+AADANAg+AADANP4/Qz6vmc+Gg9gAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "node_positions = [(-1, 1), # xy position of node 0\n", " (-1, 0), # xy position of node 1\n", " (0, 0), # xy position of node 2 *\n", " (0, 1), # xy position of node 3\n", " (1, 0), # xy position of node 4\n", " (1, 1), # xy position of node 5\n", " ]\n", "\n", "edges = [(0, 1), # connects node 0 and node 1\n", " (1, 2), # connects node 1 and node 2\n", " (2, 3), # connects node 2 and node 3\n", " (2, 4), # connects node 2 and node 4\n", " (4, 5), # connects node 4 and node 5\n", " ]\n", "\n", "track_graph = make_track_graph(node_positions, edges)\n", "\n", "fig, ax = plt.subplots()\n", "plot_track_graph(track_graph, ax=ax, draw_edge_labels=True)\n", "ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True)\n", "ax.set_xlabel(\"x-position\")\n", "ax.set_ylabel(\"y-position\")\n", "sns.despine(offset=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this case, the edge 2 (between nodes 2 and 3) has to be placed separately from the other edges in 1D position, so a gap is needed. One possible scheme would be:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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Ckzyww8/KCYmRqmpqbr++uvNDgcmioiI0J///Gfdd999ZocCPykoKFCvXr302muv6dlnn1XPnj310ksvmR0W/GTGjBlatmyZnE6n2aHAJI8++qg2bNhwWWdJeXVkpLi4WNu3b9fQoUPLPT906FBt3Lix1kEAaLjOnDkj6eIHUfw0lZaWauHChSosLFS/fv3MDgd+NHHiRN1yyy266aabzA4FJklPT1fz5s3Vtm1b3X333Tp48KDZIcGPUlJSlJSUpDvuuEMxMTFKTEzUm2++6dUYXjUj2dnZKi0tVbNmzco936xZM504ccKriQE0fIZhaMqUKbruuuvUrVs3s8OBn+3evVthYWEKCgrShAkTtHTpUnXp0sXssOAnCxcu1DfffMNZET9hffv21XvvvadVq1bpzTff1IkTJ9S/f3/l5OSYHRr85ODBg5o3b57at2+vVatWacKECXrggQf03nvveTyGrTYTWyyWcj8bhlHhOQBXvkmTJmnXrl366quvzA4FJujYsaOcTqdOnz6txYsXa9y4cUpNTaUh+Qk4evSoHnzwQa1evVqNGjUyOxyYZPjw4e7/7t69u/r166err75a7777rqZMmWJiZPAXl8ulpKQkzZo1S5KUmJioPXv2aN68ebr33ns9GsOrIyNRUVEKCAiocBQkKyurwtESAFe2yZMnKyUlRWvXrlXLli3NDgcmsNvtateunZKSkjR79mwlJCTo5ZdfNjss+MH27duVlZWl3r17y2azyWazKTU1Va+88opsNptKS0vNDhEmCA0NVffu3ZWenm52KPCTuLi4Cn+A6ty5s1c3tvKqGbHb7erdu7fWrFlT7vk1a9aof//+3gwFoIEyDEOTJk3SkiVL9MUXX6ht27Zmh4R6wjAMnT9/3uww4Ac33nijdu/eLafT6X4kJSVpzJgxcjqdCggIMDtEmOD8+fNKS0tTXFyc2aHATwYMGFDh9v779+9X69atPR7D69O0pkyZorFjxyopKUn9+vXT/PnzlZGRoQkTJng7FBqogoICHThwwP3zoUOH5HQ6FRERofj4eBMjgz9MnDhRH374oZYvXy6Hw+E+UtqkSRMFBwebHB385fHHH9fw4cPVqlUr5efna+HChVq3bp1WrlxpdmjwA4fDUeE6sdDQUEVGRnL92E/I1KlTdeuttyo+Pl5ZWVl69tlnlZeXp3HjxpkdGvzkD3/4g/r3769Zs2bpzjvv1NatWzV//nzNnz/f4zG8bkbuuusu5eTkaObMmcrMzFS3bt20YsUKrzogNGxff/21hgwZ4v657LzQcePG6Z133jEpKvhL2W29Bw8eXO75BQsWKDk52f8BwRQnT57U2LFjlZmZqSZNmqhHjx5auXKlfvazn5kdGgA/OXbsmEaPHq3s7GxFR0fr2muv1ebNm/lM+BPSp08fLV26VI899phmzpyptm3b6qWXXtKYMWM8HsPr7xkBAAAAAF/w+hvYAQAAAMAXaEYAAAAAmIJmBAAAAIApaEYAAAAAmIJmBAAAAIApaEYAAAAAmIJmBAAAAIApaEYAwMcsFouWLVtmdhimmDFjhnr27FntNocPH5bFYpHT6azTWJKTk2WxWPzy+2jTpo17rtOnT9fpXABwJaEZAQAvJScna9SoUVW+npmZqeHDh/svIC+VfWi2WCxyOBxKSkrSkiVLfDL21KlT9fnnn7t/ruzfqlWrVsrMzFS3bt18Mmd1br75Zr/8PrZt26bFixfX6RwAcCWiGQEAH4uNjVVQUJCpMRiGoZKSkipfX7BggTIzM7Vt2zYlJCTojjvu0KZNmy573rCwMEVGRla7TUBAgGJjY2Wz2S57vpoEBQX55fcRHR2tiIiIOp0DAK5ENCMA4GOXnhZUdkrSkiVLNGTIEIWEhCghIaHCB/+NGzfq+uuvV3BwsFq1aqUHHnhAhYWF7tc/+OADJSUlyeFwKDY2Vr/61a+UlZXlfn3dunWyWCxatWqVkpKSFBQUpPXr11cZY3h4uGJjY9WpUye9/vrratSokVJSUiRJu3fv1g033KDg4GBFRkZq/PjxKigoKDfXNddco9DQUIWHh2vAgAE6cuSIpPKnac2YMUPvvvuuli9f7j4Ss27dukpP00pNTdU111yjoKAgxcXF6dFHHy3XTA0ePFgPPPCApk2bpoiICMXGxmrGjBle/V7KHDt2THfffbciIiIUGhqqpKQkbdmypVz8b7/9tuLj4xUWFqbf/e53Ki0t1fPPP6/Y2FjFxMToT3/6U63mBgCURzMCAH7wxBNPaOrUqXI6nerQoYNGjx7t/rC9e/duDRs2TLfddpt27dqlRYsW6auvvtKkSZPc+xcXF+uZZ57Rzp07tWzZMh06dEjJyckV5pk2bZpmz56ttLQ09ejRw6PYAgMDZbPZdOHCBRUVFenmm29W06ZNtW3bNn300Uf67LPP3LGUlJRo1KhRGjRokHbt2qVNmzZp/PjxslgsFcadOnWq7rzzTvepUpmZmerfv3+F7Y4fP64RI0aoT58+2rlzp+bNm6e///3vevbZZ8tt9+677yo0NFRbtmzR888/r5kzZ2rNmjUevccyBQUFGjRokL7//nulpKRo586dmjZtmlwul3ub//znP/r000+1cuVK/fOf/9Tbb7+tW265RceOHVNqaqqee+45Pfnkk9q8ebNXcwMAKmEAALwybtw4Y+TIkVW+LslYunSpYRiGcejQIUOS8dZbb7lf37NnjyHJSEtLMwzDMMaOHWuMHz++3Bjr1683rFarcfbs2Urn2Lp1qyHJyM/PNwzDMNauXWtIMpYtW1Zj/JfGd+7cOeOZZ54xJBkrVqww5s+fbzRt2tQoKChwb//JJ58YVqvVOHHihJGTk2NIMtatW1fp2NOnTzcSEhLcP1f2b1X2b7Jjxw7DMAzj8ccfNzp27Gi4XC73Nn/729+MsLAwo7S01DAMwxg0aJBx3XXXlRunT58+xiOPPFLl+6xs7jfeeMNwOBxGTk5OlfGHhIQYeXl57ueGDRtmtGnTxh2LYRhGx44djdmzZ5fbt+x3cOrUqSpjAgCUx5ERAPCDS49SxMXFSZL7NKvt27frnXfeUVhYmPsxbNgwuVwuHTp0SJK0Y8cOjRw5Uq1bt5bD4dDgwYMlSRkZGeXmSUpK8iie0aNHKywsTCEhIXrxxRc1d+5cDR8+XGlpaUpISFBoaKh72wEDBsjlcmnfvn2KiIhQcnKyhg0bpltvvVUvv/yyMjMza/3vIklpaWnq169fuaMrAwYMUEFBgY4dO+Z+7sdHeuLi4sqdquYJp9OpxMTEaq/vaNOmjRwOh/vnZs2aqUuXLrJareWe83ZuAEBFNCMA4AeBgYHu/y770F12apDL5dL9998vp9PpfuzcuVPp6em6+uqrVVhYqKFDhyosLEwffPCBtm3bpqVLl0q6ePrWpS5tIqrzl7/8RU6nU5mZmcrNzdXDDz8s6eKF75WdcnVp3AsWLNCmTZvUv39/LVq0SB06dLisU5Yqm9MwjHJzSuX/Dcteu/T0Kk8EBwfXuE1l8/hibgBARTQjAGCyXr16ac+ePWrXrl2Fh91u1969e5Wdna05c+Zo4MCB6tSp02X/VT42Nlbt2rVTTExMuee7dOkip9NZ7uL5DRs2yGq1qkOHDu7nEhMT9dhjj2njxo3q1q2bPvzww0rnsdvtKi0trTaWLl26aOPGje4GRLp4Qb/D4VCLFi1q8/aq1KNHDzmdTuXm5vp0XABA7dCMAEAtnDlzptyRDKfTWeGUKU898sgj2rRpkyZOnCin06n09HSlpKRo8uTJkqT4+HjZ7Xb99a9/1cGDB5WSkqJnnnnGl2/HbcyYMWrUqJHGjRunb7/9VmvXrtXkyZM1duxYNWvWTIcOHdJjjz2mTZs26ciRI1q9erX279+vzp07VzpemzZttGvXLu3bt0/Z2dm6cOFChW1+//vf6+jRo5o8ebL27t2r5cuXa/r06ZoyZUq5U6N8YfTo0YqNjdWoUaO0YcMGHTx4UIsXL/bJbY0BAN6jGQGAWli3bp0SExPLPf74xz/WaqwePXooNTVV6enpGjhwoBITE/XUU0+5ry2Jjo7WO++8o48++khdunTRnDlzNHfuXF++HbeQkBCtWrVKubm56tOnj26//XbdeOONevXVV92v7927V7/85S/VoUMHjR8/XpMmTdL9999f6Xi//e1v1bFjRyUlJSk6OlobNmyosE2LFi20YsUKbd26VQkJCZowYYLuu+8+Pfnkkz5/f3a7XatXr1ZMTIxGjBih7t27a86cOQoICPD5XACAmlmMS4+LAwBwhUhOTtbp06fd3/lS19atW6chQ4bo1KlTCg8P98ucANDQcWQEAHDF+vjjjxUWFqaPP/64Tufp2rWrhg8fXqdzAMCViCMjAIArUlZWlvLy8iRdvA2wp3caq40jR464r4e56qqrfH6tCwBcqWhGAAAAAJiCP90AAAAAMAXNCAAAAABT0IwAAAAAMAXNCAAAAABT0IwAAAAAMAXNCAAAAABT0IwAAAAAMAXNCAAAAABT0IwAAAAAMMX/AqlOMbNA+327AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "center_well_id = 3\n", "edge_order = [(3, 2),\n", " (2, 1),\n", " (1, 0),\n", " (2, 4),\n", " (4, 5)\n", " ]\n", "edge_spacing = [0, 0, 1, 0]\n", "\n", "fig, ax = plt.subplots(figsize=(10, 1))\n", "plot_graph_as_1D(track_graph, edge_order, edge_spacing,\n", " ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The edge spacing is 0 between edges 2 and edges 1 because they are connected. Likewise the edge spacing is 0 between edges 1 and 0 because they are connected.\n", "\n", "**Importantly**, the edge spacing between edges 0 and 3 is 1 because edge 0 and 3 are not directly connected and we don't want to smooth positions on edge 0 onto edge 3. Note that this depends on the size of your bandwidth (for the `Clusterless` decoder) or the knot spacing (for the `SortedSpikesDecoder`).\n", "\n", "Finally let's try a track shaped like a circle." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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ZQq2SE9Pl8fjoUwBAACUIyQkRAkJCZQpP0WZgi1M01S7du3UsmVLu6MAAAD4NcMwtHLlSuXn59sdBT9BmYItTNNUcnKy3TEAAAD8XnJystxutzIzM+2Ogp+gTKHa7dq1S7t27WKKHwAAQAW0adNGrVu3ZqqfH6JModqZpimXy6W4uDi7owAAAAQEwzAoU36IMoVqZ5qmevfurZiYGLujAAAABATDMLR161bt27fP7ij4EYdlWZbdIapLXl6eYmJilJubq+joaLvjBK3du3crOztbvXv3tjsKAABAQCgsLNSyZcuUkJAgl8tldxz8B2UKtvB4PNysFwAAoBJKS0spUn6G0SxsQZECAACoHIqU/2FECwAAAABVQJkCAAAAaoCsrCw988wzdscIKpQpAAAAoAYoLi7Wyy+/rCBaEsF2IXYHQM1UUlKixYsXa/PmzdqzZ49atWqlwYMHq0uXLnZHAwAACFg/XsTrp//dtm1bNW7cWAsXLtTQoUPtjBk0WM0PXpefn69nnnlG//znP3XFFVeodevWOnTokI4fP642bdro9ttv1+233253TAAAgIBSXFyssLCwcl8zYcIERURE6N///nc1pQpunJmC102ePFnz589XRkaG+vXrp++//16HDx/WN998o7S0ND333HPKzc3VQw89ZHdUAACAgDF16lT95S9/Ubdu3dS9e3eFhoYqOjpa3bp1U3h4uCIiInTdddfpiSeesDtq0ODMFLzuuuuuU+vWrfXqq6+e81xpaamee+45TZkyRfPnz9cVV1xhQ0IAAIDAs2bNGr3yyivKz8/Xxo0bFRoaqlq1amnXrl2KiopS27ZtVVBQoK1bt+rEiROMd6sBZ6bgdR07dtSKFSt06NAhXXbZZWc953K59Jvf/EYzZ87U4sWLKVMAAAAV1LNnT02bNk25ubmKiYnRoUOH9N1336lWrVrKysrSV199JYfDoZ07d2rPnj3q3Lmz3ZFrPM5Mwes2bdqkMWPGKD4+Xg888IA6duyoiIiIsucPHTqk9u3ba/ny5erUqZONSQEAAGqe06dPnzX2gu9QpuATc+fO1eOPP66srCz17t1bcXFxatOmjb755hulpKSoUaNGWrhwod0xAQAAApplWXI4HGX/Lansz/A9yhR8asGCBfr888+1ePFinThxQp06dVLPnj01adIktWzZ0u54AAAAQJVR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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "angle = np.linspace(-np.pi, np.pi, num=12, endpoint=False)\n", "radius = 2\n", "\n", "node_positions = np.stack((radius * np.cos(angle), radius * np.sin(angle)), axis=1)\n", "\n", "node_ids = np.arange(node_positions.shape[0])\n", "edges = np.stack((node_ids, np.roll(node_ids, shift=1)), axis=1)\n", "\n", "track_graph = make_track_graph(node_positions, edges)\n", "\n", "fig, ax = plt.subplots(figsize=(10, 10))\n", "plot_track_graph(track_graph, ax=ax, draw_edge_labels=True)\n", "ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True)\n", "ax.set_xlabel(\"x-position\")\n", "ax.set_ylabel(\"y-position\")\n", "sns.despine(offset=5)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "edge_spacing = 0\n", "n_nodes = len(track_graph.nodes)\n", "edge_order = np.stack((np.roll(np.arange(n_nodes-1, -1, -1), 1),\n", " np.arange(n_nodes-1, -1, -1)), axis=1)\n", "\n", "fig, ax = plt.subplots(figsize=(n_nodes // 2, 1))\n", "plot_graph_as_1D(track_graph,\n", " edge_spacing=edge_spacing,\n", " edge_order=edge_order,\n", " ax=ax)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 11],\n", " [11, 10],\n", " [10, 9],\n", " [ 9, 8],\n", " [ 8, 7],\n", " [ 7, 6],\n", " [ 6, 5],\n", " [ 5, 4],\n", " [ 4, 3],\n", " [ 3, 2],\n", " [ 2, 1],\n", " [ 1, 0]])" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "edge_order" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8.13 ('replay_trajectory_classification')", "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.13" }, "vscode": { "interpreter": { "hash": "4a7f66fcc594c8d455cfdc63d8322c72751e859b788d96111d5579960745f043" } } }, "nbformat": 4, "nbformat_minor": 4 }