{ "cells": [ { "cell_type": "markdown", "id": "cee144a1", "metadata": {}, "source": [ "## Generating Spike Trains with a Refractory Period\n", "\n", "BMTK's built-in SpikeGenerator options offer a convenient way to generate spike trains that you can send to virtual nodes in your network. You have already seen in some of the tutorials how to generate a simple Poisson spike train. This tutorial demonstrates some variants that generate more realistic spike trains by incorporating a refractory period. The first part uses a method that starts from a Poisson process and removes spikes that occur during the refractory period. The second part uses the GammaSpikeGenerator to directly generate spike trains with refractory properties. \n", "\n", "### Poisson Spike Generator\n", "Let's start by creating Poisson spike trains with a firing rate of 20 Hz for 50 model cells and examine the distribution of interspike intervals. " ] }, { "cell_type": "code", "execution_count": 1, "id": "f3230c85", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Actual Firing Rate (Hz): 19.84\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAxxUlEQVR4nO3dd5xU1fnH8c8zs4Uive1KW1BAEWvQGIm9i4oxaIzGYJoxMYklvyjGhqaImkRjiQYjij22KGqiIoEYYwVEqvRF6lKUJrhtnt8f9+4y4Padsjv7fb9e85o7996555wZ5uHZc+89x9wdERERkUwSSXcFRERERBJNCY6IiIhkHCU4IiIiknGU4IiIiEjGUYIjIiIiGScrlYV17drVCwoKUlmkiKTA9OnTN7h7t3TXozqKPSKZq7r4k9IEp6CggGnTpqWySBFJATNbnu461ESxRyRzVRd/dIpKREREMo4SHBEREck4SnBEREQk4yjBERERkYyjBEdEREQyjhIcERERyTgpvU28KgWjX6Fw7PB0V0NEpMkrGP1KvfZXbJWWrNYeHDMbZGYz4x5bzOxyM+tsZpPMbFH43CkVFRaRlkGxR0Qao9YEx90XuPtB7n4Q8BVgO/APYDQw2d0HAJPD1yIiCaHYIyKNUd9rcI4Hlrj7cmAEMCFcPwE4K4H1EhGJp9gjIvVS3wTnPODJcLmHu68Jl9cCPRJWKxGRXSn2iEi91DnBMbMc4Ezgmd23ubsDXs37LjazaWY2bf369Q2uqIi0TIo9ItIQ9enBORWY4e5F4esiM8sHCJ/XVfUmdx/n7kPdfWi3bk12smERaboUe0Sk3uqT4HybnV3EABOBUeHyKODFRFVKRCSOYo+I1FudEhwzawucCDwft3oscKKZLQJOCF+LiCSMYo+INFSdBvpz98+BLrut20hwZ4OISFIo9ohIQ2mqBhEREck4SnBEREQk4yjBERERkYyjBEdEREQyjhIcERERyThKcERERCTjKMERERGRjKMER0RERDKOEhwRERHJOEpwREREJOMowREREZGMowRHREREMo4SHBEREck4dUpwzKyjmT1rZh+b2Xwz+5qZdTazSWa2KHzulOzKikjLotgjIg2VVcf9/gy86u4jzSwHaAP8Gpjs7mPNbDQwGri6poPMXrW5UZUVkRYnYbGnYPQr9Sq4cOzwBlZZRJqCWntwzKwDcBTwIIC7l7j7JmAEMCHcbQJwVnKqKCItkWKPiDRGXU5R9QPWAw+Z2Ydm9jczawv0cPc14T5rgR5VvdnMLjazaWY2rXy7enBEpM4Ue0SkweqS4GQBhwD3ufvBwOcEXcKV3N0Br+rN7j7O3Ye6+9Bomw6Nra+ItByKPSLSYHVJcFYCK939vfD1swRBp8jM8gHC53W1HagNXzS0niLS8iQs9nRiK4PsE6KUJ62yItK01HqRsbuvNbMVZjbI3RcAxwPzwscoYGz4/GJtx8qzT8EdzBpZbRHJdImMPb1sPa/ljmaH5zDXC5gd68fsWD9meX+W+p7ENGKGSMap611UPwceD+9iWAp8j6D352kz+wGwHDi3toO05QvOv/Y2nvh9jTc8iIhUSEjsWei9+UXJ+RwQWcr+kWWcG53K97JeA+Bzz2WO96tMemZ7f5Z5nu66Emnm6pTguPtMYGgVm46vT2GlZHFF1rPgV6kXR0RqlajYU0w2E2PDmBgbBkCEGP1tNfvbssqk54LoZFpnlQCw1Vsz1wuYEwt6e+Z4P5Z6Pq6eHpFmo649OAmxzjtyaGQhLJ0Cex2XyqJFRCrFiLDYe7HYe/GP2JEARClnb1sVJDy2jCGRZXwn+gatskoB2OatmOd9mVPZ09NPp7dEmrCUJjif0Y5V3paeU26B/seqF0dEmoxyoizwPiwo78MzHAPsTHr2jyxjiC1j/8gyvh39N98Pe3q2ey7zvC+zY/1g5mbIOwC6DYJodhpbIiKQ4gTHMf5SNoLfrRwPSybD3ieksngRkXqJT3qe5WggOL21l61mfwtObQ2JLONb0anwQnBND9Fc6LEf5B8YPg6A7vtBdqu0tUOkJUppggPwdPkx/CRrIusfuZqDb5pW5/cVjH5FF/GJSNrFiLDIe7HIe/F87CggSHr62Rr2s0KGRArZb0UhQ1b9nQ72EAClHmWx92ROrIA53o+5sb48O+bHkLtHOpsijaCL0Ju+lCc4pWRxb9kIbsl+EBa9nuriRUQSLkaEJd6TJd6z8kJmcHrZeoZYIUMiy9jPCjkmOpNz7M1g8y2/gS57Bae18vYPenryDoQ9uqWtHSKZJOUJDsAz5Ufz4+jLFEy+Gdt1YFIRkQxhrPTurPTuvBo7LFzndGcTQyLLGH9SDqydBaumwdznd76tXX6Q9OSHiU/eAdCpQNcsitRTWhKcMrL4Y9k53F10DyMibwNnpKMaIiIpZqyjE/+OdYJj4k5Z7PgM1s6GNbOC57WzYPEb4OHIy7kdIG9/bsjag3nel3mxvizyXpSmJ4SLNAtp+3W8HDucu/Pe5Jern4GyMZCVm66qiIikV+tO0O+o4FGhdAesmxeX+MzivOgHtLFiAEo8ymLvxTzvy/xYn8rEZzO6rkcE0pjgOBE4YQy9Hzsbpj0Eh1+SrqqIiDQ92a2h51eCR2jI6Jfoa0UMtuUMjhQy2JZzZGQWI6NvVu6z0rsyP9aXed4X5pVD3hDoWAARjdcjLUt6+zf3Oo7/le/HsDdvh4MvgNx2aa2OiEhTFiPCMs9nmefzSuzwyvVd2cy+keXsa8sZHFnOYFvOcZEZ8HR4bU/OHtB9cJDs9BgSXNvTfbDu4pKMlt4Ex4xby85j4vbr4e174Nhr0lodEZHmaAMd+G/sAP7LAVRMmJ5LCQt+3heK5sDaOcHz7Odg2vjwXQad++1MeHrsFyx37KMLmiUjpP0KtVm+FwweAW/fDUO/D+16pLtKIiLNXjE50POQ4FHBHTav2JnwrJ0NRXNh/kuAB/vktg+Tnf2CXp4eQ6DHYPWwS7OT9gQHgONvhI//Cf/+DYy4J921ERHJTGZBD03HPrDPaTvXF2+DdfOhaDYUzQuSnlnPQPHmnft07BsmO/vt7O3p3A8i0dS3Q6QO6pTgmFkhsJWg87PM3YeaWWfg70ABUAic6+6fNagWXfaCr/4Y3rkXDvtRMLy5iLR4SY89EsjdA3ofGjwquMPmlUGyUzQnfJ4LC/8FHgv2yWoN3fcJpqLoMTjs8dkP9uiennaIxDF3r32nIMgMdfcNcetuAz5197FmNhro5O5X13Sc3PwBnj/qziq3Fd44jI1jh7DIe3FeyXUUjj19l+2aqkGk6TKz6e4+NAnHLSTJsUd2qlOMLd0B6xdUJj5v/e8/DIqsoJttqdxlg7dnQaw3C7w3H3tvFsR6s9B7sYP6z8fVVOO+pmpoOqqLP405RTUCwil3YQIwFagxyNSodUfuKBvJb7Mf4uTINOD0Wt8iIi1SYmOP1E92a9jzoOABfGdq8B99FzYzKLKCfWwFg2wFgyKfcF5kSuW4PTE3PvHuLPDeLPBeLIj1YYH3otDzKGsiV0tIZqnrvyoHXjczB/7q7uOAHu6+Jty+Fqjy6mAzuxi4GCDavuY5Vp4sP44Lo5O4JusJKLtGg/+JSEpijzTeRjrwdqwDbzOkcl2EGL1tHfvYCvaxTxgUCZKfEyLTiWYFZw9KPMoS35MF3puFsTD58d6s8q7BeGkiDVTXBOfr7r7KzLoDk8zs4/iN7u5hAPqSMCCNg6CbuKZCyonyu7ILeCTnVnjvfhh2WR2rJyIZKiWxR5IjRoTlnsdyz+M1Dt3lFva9bDUDbSWDIisYaCsZGlnIWdG3K9+7zVuxyHvBi/+C7vtCt32Ca3za5ek2dqmTOiU47r4qfF5nZv8ADgOKzCzf3deYWT6wLhEVejN2IJPLD+aw12+h3f7nQvv8RBxWRJqhVMYeSZ1icpjnBczzAojtXL8H2xloKxkYWckgCxKfDTNepKs9WrnPZm/DQu/FoljQ01OxvIH2QJD46HoXgTokOGbWFoi4+9Zw+STgZmAiMAoYGz6/mKhK3VT2XSblXAWvXwcjH0zUYUWkGUlH7JH02kYbZvhAZpQP3GV9Z7YwMLKSARYkPgMiqzgt+h7n278r9/nU92CR92JBrDe8vzrs8dkX2nZNdTOkiahLD04P4B8WdAlmAU+4+6tm9gHwtJn9AFgOnJuoSn3iPbi//Awum/MsfGXUrhPQiUhLkfLYI03Tp7Tn3dhg3mVw3FqnG5sYGFkZ9PqEPT9nRd+Cf07auVubLkGyU/HoHj637aZTXRmu1gTH3ZcCXxqYxt03Ascno1IAfyk7k8u6TodX/g8ueStZxYhIE5Wu2CPNhbGeTqyPdeJ/7B+33im85mBY/3HcYwHMfnbXgQtbd9414ek6MHjWNT4Zo8ncm7f7mALF5MCpt8GT34L37gP2Tk/FRERaiPqO7dI0GXToGTz2jsuD3WHrWlg/P0h41n8M6z6GOc/BF3GJT24H6DYQug2CroPCnp+B0KGPZmRvZppMglOlQafAoNNg6q3kMTbdtRERkebKLLhppX0+7HXczvXusK0oSHo2LNzZ47PwdfjwsZ37ZbWGrgMqE56TI9tY7D1Z7j00jk8T1fS/lVNugXsP5+bsh8Ev/FLX4e4jHNdnxGONjiwi0sKZBael2uVB/6N33bb907ikJ3z+5B2Y/TR/zQl2KfUoy70Hi70nSzyfxbGe4fKebG/AyM1NWUN6+NL5f2zTT3A6FcCxv+akSdfDvBdhv7PSXSMREWkJ2nSGPocHj3jF2zhjzEPsbavYK7KavW01e9sqjo/MIDurvHK3Vd6FJbE9WeJ7wgdrg+t8ug4M5urSdT5J1/QTHIDDf8rs1x5k/3/+KsiwW3dKd41ERKSlyt2D2d6f2d5/l3F8siijrxUFiY+tZu9IkPicG5kKr7wW9/4OwemurgPjngcGs7NHs1PenEzVpBOcylNI0SxGl17MK9uvh9evhxH3pLtqIiLSRKVrIswysljiPVniPYMVlZ054Z1dGxbChkXh80JYOhU+emLnASJZ0KlfmPQMgC5xz227JKSOLUmTTnDizfUCOOLn8L87Yf9zvnyuVEREpEmKu7Nrr2N33VS8NUx64hKfDYtg8RtQXrJzv9ad45KevXcmP536QVZOapvTTDSbBAeAY0bDvBcpfPhHnFIyli/QZJwiItKM5baDnocEj3ixcti0HDYsho0Vyc9iWDwJZsbd3WVR6NQXugzggflRlno+yzyfJbF81tORiukrWqLmleBkt4Yz76JgwhlcnfUUN5WNSneNREREEi8Shc79gwcn7brti82wcXGQ8GxYGCZAi7kwupBWVlq52zZvxTLPY6nvGTzH9mSp57HM8/mc1qltTxo0rwQHoN9RPFR2Mt/Leo3XY0N5J7ZfvQ+RGYNZiYhIi9SqA/T8SvCIs+/ol9iTjfSLrKW/raafraW/reEQW8QZkXeIZHnlvkXekWWez9JYHoVh0rPU81nh3SkhMy50bn4JDnBr2XkcHfmI27P/yinFGgBQRETEibCKbqyKdeOtXaavgFxK6GPr6G+r6W9hAhRZy0nR6XS1LZX7lbuxyruyzPNZFiY+wXMeq7wbMZrPaM7NLsEJel9y+b/SS3gm5yauzXqcgtFtNGCfiIhkjESfaSgmh0Xei0Xe60vb2rONfraWAltL/8ha+tkaCmwth0QW0c527DyGZ7HCu1PoPSj0ip6fPApjeaymC15F8pOuO9qgHgmOmUWBacAqdz/dzPoBTwFdgOnAhe5eUtMxEmmGD2Rc+en8JOslXosNBZTgiGSiphZ7RDLNFvbgI9+bj3zvXcb1AacrW+hna+gXWUN/W0vfMBEaFplLa9v5syv2bJZ798rEJz75WUunKpOfZKtPD85lwHygffj6VuAOd3/KzO4HfgDcl+D61Zj93VE2kmMjM7kt+wH4/BJo2zXRxYtI+qUl9kjLoesyq2NsoAMbvAMflO+z25YYPfiMfpEg4elrRZW9QEdHZpEbd7FzRfKz3PPien96sNzzWO1dknbaq04Jjpn1Iugi+R1wpZkZcBxwfrjLBGAMKQ4yJWRzRelPeSHnenjhp3D+31NZvIgkWVONPSItnRNhLV1YG+vCO+x6s48RI59PKYispcCKwl6fIvpaEUdGZu1yp1eJR8PTXnks9x7w3qrw7rF+0LFPo0Z2rmsPzp3AVUC78HUXYJO7l4WvVwI9q3qjmV0MXAwQbd+twRWFqrPs+d6XW8rOZ8yiR7jxusuAkxtVhog0KXfSBGKPSGO1pF4iJ8JqurI61pW3GbLLtoqen4JIkPAUhL0+BVbE1yLz4F+vVu5b5hFWexcKPY9PwiQo/rm2sfBqTXDM7HRgnbtPN7Nj6t1Q93HAOIDc/AFey+4N8nD5yRwZmc2vs57gvdi+yShCRFKsOcQeEamf+J6fdxn8pa3d2BQkPpEi+lgRBRY8nx55l472+S57r/VOLPce7DYVaqW69OAMA840s9OAVgTnwf8MdDSzrPAvqV7Aqnq1MqGMX5X+mFdzR3N39t1QMgpy2qSvOiKSCM0g9ohI4hjr6cR678S03a75geBur762jgJbSx9bR18rom+kqNqj1Xplj7tf4+693L0AOA/4t7tfAEwBRoa7jQJebEBrEuZT2nNl6U8YEFkFr16dzqqISAI0l9gjIqmxhWAW95diR3Bv+VlcVfZjvlVyQ7X7N+bS5asJLvpbTHBe/MFGHCsh3ortzz1lI2DGIzDzidrfICLNUZOLPSLS9NRroD93nwpMDZeXAoclvkqNc0fZSH6296fw8pWQdwDkDan9TSLSpDWH2CMiTUvzGXO5jsqJwjcfDObqePq78MWW2t8kIiIiGSXjEhwA2vWAkePhs0J48VLw4AaKlnSbnoiISEuWmQkOQMEwOOFGmD8R/vfndNdGREREUihzExyAI34Bg8+CN8Zw0a9/V6+3qrdHRESk+crsBMcMzvoL5A3hrux76G+r010jERERSYHMTnAActrCeU9QSpQHsv8IX2xOd41EREQkyTI/wQHo2IeflFxOH1sHz/2QKOXprpGIiIgkUcYmOLtfQ/O+78uNZRfBote5MesRQFPTiIiIZKqMTXCq8kT58XDEL/hu1iR+FNVFxCIiIpmqRSU4AP3+fRgvlx/OtdlPMDzybrqrIyIiIknQ4hIcJ8IvSy/h/dgg/pT9F1j+TrqrJCIiIgnW4hIcgGJyuLjkSlZ6N3jq27BhUbqrJCIiIgnUIhMcgE2046LSq8Ci8Ng3+eroRzW4n4iISIaoNcExs1Zm9r6ZfWRmc83spnB9PzN7z8wWm9nfzSwn+dVNrBXeAy54BrZ/ymM5t9AJTcwp0lRkcuwRkeSrSw9OMXCcux8IHAScYmaHA7cCd7j73sBnwA+SVstk6nkInP8UvW0dj+SMhS82qydHpGnI7NgjIklVa4LjgW3hy+zw4cBxwLPh+gnAWcmoYEoUfJ1LSq9gkK2Ax8+lNV+ku0YiLV6LiD0ikjR1ugbHzKJmNhNYB0wClgCb3L0s3GUl0LOa915sZtPMbFr59tRMk1DRA1Mw+pVae2Mqtk+NHcRlpT+Dle/z1+w7yKG08v3xx6jLMUUkMZpb7BGRpqNOCY67l7v7QUAv4DBgn7oW4O7j3H2ouw+NtunQsFqmyL9iX4Uz7+Go6Gzuyb6LbMpqf5OIJE1LiT0iknj1uovK3TcBU4CvAR3NLCvc1AtYldiqJU69elwOvoDrSy/ipOh07gt7cupyfPXqiCRPc409IpI+dbmLqpuZdQyXWwMnAvMJgs3IcLdRwItJqmPKPVp+EteWfp8Toh/yQPYfyaUk3VUSaXFaYuwRkcTJqn0X8oEJZhYlSIiedveXzWwe8JSZ/Rb4EHgwifVMucfLT6CELG7NeoDx2bdDyUkU3DA13dUSaUlaZOwRkcSoNcFx91nAwVWsX0pwTjxjPVN+DGUe5Q/Z98Pj59CW7/M5rdNdLZEWoSXHHhFpvBY7knFd/SN2JJeXXgqfvMujObfQka27bK/vtTe6XkdERCT5lODUwUuxI+DcCexny3k25yb2ZEO6qyQiIiI1UIJTV/uewYUlo+lum3g+90YompvuGomIiEg1lOBQ99NM7/u+nFNyQ/Bi/KlQ+L8k1kpEREQaSglOPS3wPpxdfBO06wGPfoNTIu+nu0oiIiKyGyU4DbCarhy08pew50Hcn3MnP42+QDBFTnLp4mQREZG6UYLTQJtoB9+dyAvlR3BV9tPcmX0vlO5Id7VEREQEJThfUq9ekuxWXF56KbeVnstZ0bfh4eGwdW3yKiciIiJ1ogSn0Yy/lJ/Fj0uugHXz4YHjYPXMdFdKRESkRVOCkyCvxQ7ltG3XAQYPngQzHtllu66fERERSR0lOAk0zwvg4qnQ92sw8efwwqVQsj3d1RIREWlxlOA0QpW9Mnt0g+88D0ddBTMfgwdPhI1LUl85ERGRFqzWBMfMepvZFDObZ2ZzzeyycH1nM5tkZovC507Jr24zEYnCcdfCBc/CllUw7hhOjbyX7lqJNCuKPSLSGHXpwSkDfunug4HDgUvNbDAwGpjs7gOAyeHrFm+XXp0BJ8KP/wtdB3Bfzp/5+3UjaMMXqStfpHlT7BGRBqs1wXH3Ne4+I1zeCswHegIjgAnhbhOAs5JUx+atY2/4/mvcXXYWI6P/4Z8513CQLU53rUSaPMUeEWmMel2DY2YFwMHAe0APd18TbloL9Ehs1TJINJs/lp3LeSXXk2XlPJszBv5zG5SXpbtmIs2CYo+I1FedExwz2wN4Drjc3bfEb3N3p5q5CszsYjObZmbTyrdvblRlm4vqThN94PtwavFYXop9Dab8DsafDOs+rvexdRpKWhLFHhFpiDolOGaWTRBgHnf358PVRWaWH27PB9ZV9V53H+fuQ919aLRNh0TUuVnbShuuKL0UvvkgfLoU/nok/Od2KC9Nd9VEmhzFHhFpqLrcRWXAg8B8d/9T3KaJwKhweRTwYuKr13QkvNdk/5Fw6fuwz+kw5bfwwLGw5iP1zoiEFHtEpDHq0oMzDLgQOM7MZoaP04CxwIlmtgg4IXwt9bFHNzjnIfjW47BtHYw7ltFZT0LxtnTXTKQpUOwRkQbLqm0Hd38LsGo2H5/Y6mSWit6YwrHDa95x39OhYBi8fj2XfPgo3DuDSzacw6uxQykce3riyhFpRhR7RKQxNJJxU9G6E4y4h7OLx0DrztyfcyePZI+FDbqlXEREpL6U4KTZ7tfczPCB7LX8Km4sHcVBkcVw39dg0g3whe4CERERqSslOE1QOVEmlJ/M8cV/hCEj4X93wV0Hc2H0dbLQ2DkiIiK1UYKTJPE9M3W9M2r3/dbTEb5xH8OLfwvdB/Ob7Id5LedqTohMB/cGH1dERCTTKcFpBuZ6Pxj1Ej8o+SUAf8v5I4w/hcMj89JcMxERkaZJCU5zYcbk2Fc4ueRWriv9HmxazlM5v+Wt64/gEFsINK6nRr08IiKSSZTgNDNlZPFY+Ynwiw+5ufRCBkVW8HzuGMZn36ZJPEVEREK1joMjTVR2a8aXn8qT5ccyKvo6P856mRdyb+Dt8sGwuBXsdRxYdUOIiIiIZDb14DQT1Z1C2kEr7i8/k2HFd/Gb0gvoH1kDj50N446Guf+AWHmKayoiIpJ+SnAyxHZa8WD5cI4qvhPOvBtKPodnLoJ7DuWC6Bua/kFERFoUJTgZpoRsOOS7wUSe5z4Crdrzu+zx8KfBPHjdeRx9zYONLkMXJIuISFOnBCdTRaIweAT8aEow/cOAE/hu9HWm5PwSHj8HFr0BsVi6aykiIpIUusg4TQpGv1I5OWZNPSLVbavzIH/X/BMYCCOvYNi047ggazKXrX4LHv8mdOrHbesO5bnyo4DODa5/dXXT5J8iIpIutfbgmNl4M1tnZnPi1nU2s0lmtih87pTcakoirKMTd5SNhCvmwtkPQPueXJX9NG/n/pzx2bfBvIlQVpLuaopUUvwRkYaqyymqh4FTdls3Gpjs7gOAyeFrqadkXstSMPqV6nt/rpsEB5wL33uFo4v/xH3lZzI4shyevhD+tC+8eg1nXHM3BaNfTkl9RGrwMIo/ItIAtSY47v4m8Oluq0cAE8LlCcBZia2WpMpyz+MPZd/iiOK74fxnoO/X4P0HeCn3OqbkXAn//h2sX5DuakoLpfgjIg3V0IuMe7j7mnB5LdCjuh3N7GIzm2Zm08q3b25gcZJou/emxIjAwJPgW4/BrxZxVemPWO1d4c3b4d7D4L6vw1t3wMYlaapxw6nnKOPUKf4o9oi0bI2+i8rdHfAato9z96HuPjTapkNji5NUaN2Jp8uP5YLSa+GXH3NT6YWQlQtvjIG7D+HVnKu5MutpWD0TvNqvXiTpaoo/ij0iLVtD76IqMrN8d19jZvnAukRWStJrlx6Pdnk8VH4qN/7oHr5+zcOcGJnGydFpXBp9Eca9AB16wz7D+c5/O/FBbBDF5FR/LJHEUPwRkVo1NMGZCIwCxobPLyasRtJkrfRuPFR+Kg+Vn0pntnB8dAa391gB0x7isZxidngO78QGMzV2IP+JHZju6krmUvwRkVrVmuCY2ZPAMUBXM1sJ3EgQWJ42sx8Ay4Fzk1lJaXo+pT3PlB/D7ecPh5LPuWjMHRwdmcXRkY+4OXtmsNOf7+amrL35b+wA3o8NYgt7pLXO0vwo/ohIQ9Wa4Lj7t6vZdHyC6yJJVNWpot3X1bRPjaeactoyNXYwU2MHA9DHijg68hFHb/iIc6JvMiprEjE35npfeO1tKPg69PkatO64SzmFY4fXOIBgXdV1oMH4NmlQwqZJ8UdEGkojGUvCfeI9eLT8JB4tP4kcSjnIFnN4ZD6HR+bB+w/AO/cABvkHQMGR0PswurM13dUWEZEMormopFFqG8CvhGze9325q/xszi+9DkZ/Ahe9AseMhtz2QcLz9Hd5v9WlrLxxL+7Ovoubr/0ZZ13z5zqPqtyQqS6amuZSTxGR5kI9OJJa2a2CU1QFXw9el5XA2lncfN/DHBJZxMGRxZwRfTfYdsvvIG9/yD9w56P7vsEt6yIiIjVQgpOBmnpvwC7XyGTlQK+hjC8vYnz5qQD04FMOjizm/qPLYM1HMPsZmPZg8OZINnPKejLkK0dWJj1t2bHLcetTh1TQ5KMiIqmnBEeanCI682rsMDg5TAhiMdhUGCQ7az7i0/+8AQv+CR8+CsDcVsAdNzE+uzMLvRcLY71Y6L2gZHva2iAiIumlBEfSpq53TBX8+l/hUg6FY8fw3TcOpfBXp8GWVbBmFrc9+gJX9YmR99n7DIvMITerLNj999czNac7i7xncPdWl7349vMbePLqCzBieD0vQUvEHV4iIpIaSnCkeTKDDr2gQy/+Uu5c9c3hnPbBK0Qpp68VMdBWcv9JbZgzeTJ722r44G9Q9gVP5gB3/I55uTkUeh7Lwgcffgad+0PHPtAuHyLRdLdQREQaQQmOpFRdxt6paVv8uqq2lxNlqe/JUt+TglcBhgBQOOZU2Lqa8299nCe+0ZXHX5xEga1lkK3gxMh0eHHizoNEsqB9zyDZ6diXP33wBau8K1+1brBpf/YaO5MlY89sUHsTrb69SuqFEpGWQgmOtAyRCHToxduxIXDocH77XF7lpijlLPnVfvBZIWz6BDavCJ43fQJLJnNl9pqdx7nzNyzKNfhD96Cnp/2e4XM+tNtz53O7PGilCR5FRNJFCY40S/XpCaptezlRCm7/GIDCsd+r3L9iZOVcSsi3jfSyDfSy9eTbRvI2fUbe5k/pYbPJs//Q0T7/0nG3ey5TcjqykQ5s8A7w0iRo240bJhdx8/nHQttuHP/XeUy+fiRGbJe7reJ7WqpbX10b49+n3hoRaamU4IjUopgcCj2fQs+vdp/C3xwHW9fAljXh82qe/NfbdLfP6MIW+tkamL8Mtm/k5myHZyYAMDkXuO1XLMyN8int+NTbw8P3cW92Mbz0OrTuxMXRtWxiD5gf46u2AIoKoHWn4CEiIlUyd09ZYbn5Azx/1J0pK0+kKhU9Ick6doXdyygcO5z+o1+iE1vpapvpYlvoyha6VC4Hzx1tGx35nAHtSmHHZxArrba8LzybVu27QasOTC8qY6u34ZgD+vPkR5vYRmt+dMKBkNueX728jNvPH8aFj89nm7fmH1ecAq3as9/v32bu788OTuHFqW/vj5lNd/ehdX5Diin2iGSu5beeXmX8UQ+OSArFiLCRDmz0DlDL3xaFvxoO7gy+5nk6so23LzuYb9/9Kk9eMDBIfHZ8xsOvTeeSvTvBjs/YvraQjrYNiuZybHQ97dgOU/8JwO3ZwDPjeDQnPPhfbgTCMYRu/iHk7AE5bSC7DeS05bmcYpjwV8hpG65rA9ltd9lnl2cRkSamUQmOmZ0C/BmIAn9z97EJqZWIBMzYTiu20wryD+Cd2ArYb2fPythXXuGSEcHrCyuuwfnZcA6vWP79KVC8lSNuepG3rziUs+98jfa2nYfP3weKt/Lb59/nuhN6QfFWKPkcSrdDyXa2r14OpTtg+8Zd1lP6OXgs9Z9DFRR/RKQmDU5wzCwK3AucCKwEPjCzie4+L1GVE0mGdE1lUd9y67p/TRdcF/z61XCpKwV3LAMGgkPBYwCtgOFcd+yXT0VdOPoVCn9Y1ek2J5dSWlPMzNHDwsTnc7jpK3VuVyIo/ohIbRrTg3MYsNjdlwKY2VPACEABRiRjGcXkUEwOdOydzooo/ohIjRp8kbGZjQROcfcfhq8vBL7q7j/bbb+LgYvDl0OAOQ2vbqN0BTao7BZRdktsc7rLHuTu7VJVWF3iTxpiTyo+/2SXkQltyJQyMqENqSqjr7t3231l0i8ydvdxwDgAM5uWrjstVHbLKbsltrkplJ2OcmuS6tiTCWVkQhsypYxMaEOqyqhO/WYb3NUqIL6Pule4TkQk2RR/RKRGjUlwPgAGmFk/M8sBzgMm1vIeEZFEUPwRkRo1+BSVu5eZ2c+A1whu0xzv7nNredu4hpaXACq75ZTdEtvcospuQPxJRf0yoYxMaEOmlJEJbUhVGVVK6UjGIiIiIqnQmFNUIiIiIk2SEhwRERHJOClJcMzsFDNbYGaLzWx0ksvqbWZTzGyemc01s8vC9WPMbJWZzQwfpyWp/EIzmx2WMS1c19nMJpnZovA54dNAm9mguLbNNLMtZnZ5stptZuPNbJ2ZzYlbV2U7LXBX+P3PMrNDklD27Wb2cXj8f5hZx3B9gZntiGv//Ukou9rP2MyuCdu9wMxOTkLZf48rt9DMZobrE93u6n5XKfnOG1n3pMWf6j6XZDCzqJl9aGYvJ+n4Hc3s2fB3NN/MvpaEMq4IP6c5ZvakmbVKwDHrHIsSePwq400iy4jb9kszczPrmowyzOznYVvmmtltiS7DzA4ys3fDODTNzA5rTBn14u5JfRBcALgE6A/kAB8Bg5NYXj5wSLjcDlgIDAbGAP+XgvYWAl13W3cbMDpcHg3cmoLPfC3QN1ntBo4CDgHm1NZO4DTgX4ABhwPvJaHsk4CscPnWuLIL4vdLUrur/IzDf3cfAblAv/B3EE1k2btt/yNwQ5LaXd3vKiXfeSPqndT4U93nkqS2XAk8AbycpONPAH4YLucAHRN8/J7AMqB1+Ppp4KIEHLfOsSiBx68y3iSyjHB9b4IL6Zez2/8rCWrHscAbQG74unsSyngdODVcPg2Ymsh/VzU9UtGDUzmkuruXABVDqieFu69x9xnh8lZgPsEPK51GEAQPwuezklze8cASd1+erALc/U3g091WV9fOEcAjHngX6Ghm+Yks291fd/ey8OW7BOOiJFw17a7OCOApdy9292XAYoLfQ8LLNjMDzgWebOjxaym7ut9VSr7zRkhq/ElVvDGzXsBw4G+JPnZ4/A4E/zk9CODuJe6+KQlFZQGtzSwLaAOsbuwB6xmLEnL8RMebGn7bdwBXAY2+G6iaMn4CjHX34nCfdUkow4H24XIHEvCd11UqEpyewIq41ytJUcJhZgXAwcB74aqfhV2K4xvTZVkLB143s+kWDBUP0MPd14TLa4EeSSq7wnns+h9dKtoN1bcz1f8Gvk/Qe1ChX9i1/x8zOzJJZVb1Gaey3UcCRe6+KG5dUtq92++qqXzn1UlZPaqIN4l0J8F/dMmayr0fsB54KPw38zcza5vIAtx9FfAH4BNgDbDZ3V9PZBlxUhlzd483CWFmI4BV7v5Roo8dZyBwpJm9F8aJQ5NQxuXA7Wa2guD7vyYJZVQpYy8yNrM9gOeAy919C3AfsBdwEMGP649JKvrr7n4IcCpwqZkdFb/Rg366pN2bb8GgZ2cCz4SrUtXuXSS7ndUxs2uBMuDxcNUaoI+7H0zYxW9m7at7fwOl5TPezbfZNalNSrur+F1VStd33hTU9Lkk4NinA+vcfXoij7ubLIJTC/eF/2Y+Jzi1kzBh4j+CIJnaE2hrZt9JZBlVSea/yyriTaKO2wb4NXBDIo9bhSygM8Fp5F8BT4e9wYn0E+AKd+8NXEHYS5gKqUhwUj6kupllEwSbx939eQB3L3L3cnePAQ/QiFMFNQn/Sqno6vtHWE5RRfd8+NyobsBanArMcPeisB4paXeounam5N+AmV0EnA5cEAY1wtNDG8Pl6QTXYwxMZLk1fMapancWcDbw97g6JbzdVf2uSPN3XgdJr0c1n0siDQPONLNCglNsx5nZYwkuYyWw0t0rep+eJUh4EukEYJm7r3f3UuB54IgEl1Eh6TG3qniTQHsRJIIfhd97L2CGmeUluJyVwPPhqeT3CXoIG3UxcxVGEXzXEPzhnbKLjFOR4KR0SPUw+3wQmO/uf4pbH3/+/xskYWZhM2trZu0qlgkuRJtD0N5R4W6jgBcTXXacXf6ST0W741TXzonAdy1wOEHX9JqqDtBQZnYKQRf+me6+PW59NzOLhsv9gQHA0gSXXd1nPBE4z8xyzaxfWPb7iSw7dALwsbuvjKtTQttd3e+KNH7ndZTU+FPD55Iw7n6Nu/dy9wKC+v/b3RPa8+Hua4EVZjYoXHU8MC+RZRCcmjrczNqEn9vxBNcsJUNSY2518SZR3H22u3d394Lwe19JcDH72gQX9QLBhcaY2UCCi8sTPfP3auDocPk4YFEN+yZWbVchJ+JBcOX0QoK/Iq9NcllfJ+iOnAXMDB+nAY8Cs8P1E4H8JJTdn+AujY+AuRVtBboAkwm+2DeAzklqe1tgI9Ahbl1S2k2QRK0BSgl+fD+orp0Ed9LcG37/s4GhSSh7McG1FhXf+f3hvt8Mv4uZwAzgjCSUXe1nDFwbtnsB4Z0EiSw7XP8wcMlu+ya63dX9rlLynTey7kmLP9V9LklsyzEk7y6qg4BpYVteADoloYybgI8J/gh4lPDunUYes86xKIHHrzLeJLKM3bYX0vi7qKpqRw7wWPh9zACOS0IZXwemE/y/+B7wlWT8+63qoakaREREJONk7EXGIiIi0nIpwREREZGMowRHREREMo4SHBEREck4SnBEREQk4yjBSQMz21aHfS4PR7NMZj32NLNnw+WLzOyeBh7nYTMbWcs+x5hZsgb12r2cKmdbNrODzazRo2ia2c/M7PuNPY5IOij+JI/iT9OiBKfpupxgMro6qxjYra7cfbW71xgYEugY6jlqaThCbyL9GrgrAccZD/w8AccRaaouR/FH8aeZU4KTRmG2P9XMnjWzj83s8XDk118QzNUyxcymhPueZGbvmNkMM3smnPsGMys0s1vNbAZwjpn9wszmWTDx41PhPmPM7NHw/YvM7Efh+gIz+9LIxmY2PNy3a3Xl1tCmQjO7Kdx/tpntY8EkhJcAV5jZTDM7Mhxp9zkz+yB8DNutrv8DHjWzd81sv7jjTzWzoWZ2WFivD83s7bgRWKurVzvgAA8nrgvLmWBm/zWz5WZ2tpndFtb5VQuG38fMxsZ9nn8A8GDk0kIzS9mQ4yKJpvij+JPxUjWioB67jPa4LXw+BthMMM9IBHiHYLJOiBu5kmBukDeBtuHrq4Eb4va7Ku7YqwlHBwU6hs9jCEaRbB0eawVBACsA5oT7XATcQzDVwH+BTjWVu1t7HgZGxtXn5+HyT4G/xdXh/+Le80RcW/sQDHVfsd90oHX4+grgpnA5H1gQLrcHssLlE4Dn4j7TL430SjAc+XNxr8cAbwHZwIHAdsKRhgnmEDuLYDTUBVA5IGbHuPdfC/wy3f+W9NCjvg/FH8WflvJIdBec1N/7Hs4hZGYzCX70b+22z+HAYOB/Fkz0mkMQjCr8PW55FvC4mb1AMNx6hRfdfQewI/yr7DCCIcbjHQcMBU5y9y0WzGJcU7nVqZhYbTrBJJBVOQEYbDsnrm0f99fZxLCuAE8DrwM3AucSTAII0AGYYGYDCIbKz66lTvnA+t3W/cvdS81sNhAFXg3Xzyb4Hl4GvgAetOC8evy59XXAPrWUKdLUKf4EFH8ykBKc9CuOWy6n6u/EgEnu/u1qjvF53PJw4CjgDOBaM9s/XL/7nBxVzdGxhGA+rYEEc9LUVm51KtpUXXsg+IvxcHf/In5lGHAq2+Puq8xso5kdAHyLoKsZ4DfAFHf/RtgFPbWWOu0AWlVVT3ePmVmph38aEcyom+XuZWE38PHASOBnBEGY8Fg7EGneFH/iKP5kFl2D03RtBdqFy+8Cw8xsb6ictXzg7m8wswjQ292nEHTndgAq/ioZYWatzKwLQTfqB1WUuZxgksZHwvPOdSq3Ae2B4K+iygvlzOygGt77d4KZezu4+6xwXQdgVbh8UR3Knw/sXce6VtRpj7DMfxJ0VR8Yt3kgyZ2ZXSSdFH92UvxpppTgNF3jgFfNbIq7ryf4ET1pZrMIummr6p6MAo+FXZ4fAne5+6Zw2yxgCkHQ+I27r66qUHf/GLgAeIbgPHNdyq2Ll4BvVFzkB/wCGBpePDePnX8ZVeVZ4DyC7uIKtwG3mNmH1KEnMmxXh/Biv7pqB7wctv0t4Mq4bcOASfU4lkhzovizk+JPM6XZxFsAMxtDcGHhH9Jdl3QysyuAre7+t0Ye52DgSne/MDE1E8lcij8BxZ/UUw+OtCT3ses1Bw3VFbg+AccRkZZD8SfF1IMjIiIiGUc9OCIiIpJxlOCIiIhIxlGCIyIiIhlHCY6IiIhkHCU4IiIiknH+HxqFNQm+vkDbAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import pytest\n", "import numpy as np\n", "import os\n", "from matplotlib import pyplot as plt\n", "import warnings\n", "\n", "from bmtk.utils.reports.spike_trains import PoissonSpikeGenerator\n", "from bmtk.utils.reports.spike_trains import SpikeTrains\n", "\n", "def plot_isi(psg, lam=20/1000, plotline=False):\n", " df = psg.to_dataframe()\n", " isi = np.empty([0])\n", " for n in psg.node_ids():\n", " spk_times = df[df['node_ids']==n]['timestamps']\n", " isi = np.append(isi, np.diff(np.array(spk_times)))\n", " fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(8,3))\n", " edges = np.arange(0,201,1)\n", " ax[0].hist(isi, bins=edges)\n", " ax[0].set_xlim((0, 200))\n", " ax[0].set_xlabel('Interspike Interval (ms)')\n", " \n", " edges = np.arange(0,22,1)\n", " ax[1].hist(isi/(edges[1]-edges[0]), bins=edges)\n", " ax[1].set_xlim((0, 20))\n", " ax[1].set_xlabel('Interspike Interval (ms)')\n", " ax[1].set_xticks(np.arange(0,20,2))\n", "\n", " fig.tight_layout()\n", " counts, bins = np.histogram(isi,bins=40)\n", " \n", " if plotline:\n", " x = np.arange(0,201,1)\n", " y = np.zeros(x.shape[0])\n", " y = lam*np.exp(-lam*x)*len(isi)\n", " ax[0].plot(x,y)\n", " ax[1].plot(x[:22],y[:22])\n", " \n", " \n", "start_time = 0.0\n", "end_time = 3.0\n", "nodes = range(50)\n", "\n", "psg = PoissonSpikeGenerator(population='test', seed=200)\n", "psg.add(node_ids=nodes, firing_rate=20.0, times=(start_time, end_time))\n", "plot_isi(psg, plotline=True)\n", "\n", "actual_fr = psg.n_spikes()/(end_time-start_time)/len(nodes)\n", "print(f'Actual Firing Rate (Hz): {actual_fr}')" ] }, { "cell_type": "markdown", "id": "36d500c7", "metadata": {}, "source": [ "On the left, we see the interspike interval (ISI) histogram over the range from 0 to 200 ms, normalized by the bin width. This approaches the expected exponential distribution for the density function of inter-event times in a Poisson process. On the right side, we plot a close up of the region between 0 and 20 ms and note that there is no refractory period. \n", "\n", "Next, we can use the ```abs_ref``` parameter to add a 2 ms absolute refractory period and notice an effect on the ISI histogram below 2 ms (no spikes are allowed). This method of removing spikes with intervals below the absolute refractory period reduces the effective firing rate. BMTK attempts to correct for this such that the intended firing rate is achieved, but is only able to do so up to a maximal firing rate limit (in this case about 184 Hz) above which an error will be thrown. If high firing rates are desired, consider the GammaSpikeGenerator described in the second part of this tutorial." ] }, { "cell_type": "code", "execution_count": 2, "id": "1cc0fd7a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Actual Firing Rate (Hz): 19.673333333333332\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "psg = PoissonSpikeGenerator(population='test', seed=200)\n", "psg.add(node_ids=nodes, firing_rate=20.0, times=(start_time, end_time), abs_ref=0.002)\n", "plot_isi(psg)\n", "\n", "actual_fr = psg.n_spikes()/(end_time-start_time)/len(nodes)\n", "print(f'Actual Firing Rate (Hz): {actual_fr}')" ] }, { "cell_type": "markdown", "id": "274a8963", "metadata": {}, "source": [ "Now let's add a relative refractory period modeled as a reduced probability of firing that exponentially approaches 1 with a time constant of 3 ms, starting from after the absolute refractory period." ] }, { "cell_type": "code", "execution_count": 3, "id": "59094b21", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Actual Firing Rate (Hz): 20.186666666666667\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "psg = PoissonSpikeGenerator(population='test', seed=200)\n", "psg.add(node_ids=nodes, firing_rate=20, times=(start_time, end_time), abs_ref=0.001, tau_ref= 0.003)\n", "plot_isi(psg)\n", "\n", "actual_fr = psg.n_spikes()/(end_time-start_time)/len(nodes)\n", "print(f'Actual Firing Rate (Hz): {actual_fr}')" ] }, { "cell_type": "markdown", "id": "aeef9dab", "metadata": {}, "source": [ "We can also use a time-varying firing rate to generate an inhomogeneous Poisson spike train and add refractory properties in the same way. The top panels show the ISI distribution, and the bottom panels show the intended firing rate and the PSTH of the generated spike train." ] }, { "cell_type": "code", "execution_count": 4, "id": "0eb9f929", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Actual Firing Rate (Hz): 24.646666666666665\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAbVElEQVR4nO3de7RkZXnn8e/PbkFR6UZRpkOTNCqaRRyjTA8hgzoMOAbB2JhhHFyOYiTDMvEGmlGUNUpWVtbgJdG4zJDVAQIqQRAvMN5GQmCMGUGb+1VpFaTb5hKNaMSo4DN/7H2wOJw653TVrnPZ5/tZq9bZ9dau93131amnnnr33u9OVSFJktQnj1jsDkiSJHXNBEeSJPWOCY4kSeodExxJktQ7JjiSJKl3Vi92BwD23HPP2rBhw2J3Q9KIrrzyyn+sqicudj9GYfyRlrdh8WdJJDgbNmxgy5Yti90NSSNKcvti92FUxh9peRsWf9xFJUmSescER5Ik9Y4JjiRJ6h0THEmS1DsmOJIkqXfmTHCSnJnk7iQ3zPDYm5NUkj3b+0nygSRbk1yX5IBJdFrSymD8kTSq+ZwmfhbwQeBDg4VJ9gFeAHx7oPiFwH7t7TeA09q/O2XDSZ/htlOP3NmnSeqfs1jg+LPYNpz0mZ1a31gpzWzOEZyq+iLwvRkeeh/wFqAGyjYBH6rG5cDaJOs66amkFcf4I2lUIx2Dk2QTsL2qrp320N7AHQP3t7VlM9VxfJItSbbcc889o3RD0gpk/JE0Hzs9k3GS3YC30wwPj6yqNgObAXZdt1/NsbokTSz+7MxuIXcJScvDKJdqeAqwL3BtEoD1wFVJDgS2A/sMrLu+LZOkLhh/JM3LTu+iqqrrq+pJVbWhqjbQDAMfUFV3AhcBr2zPZjgIuLeqdnTbZUkrlfFH0nzN5zTxc4EvA09Psi3JcbOs/lngm8BW4K+AP+ikl5JWJOOPpFHNuYuqql42x+MbBpYLeO343ZIk44+k0TmTsSRJ6h0THEmS1DsmOJIkqXdMcCRJUu+MMg/ORO3sdVgkaSkzpkmLwxEcSZLUOyY4kiSpd0xwJElS75jgSJKk3jHBkSRJvbNkzqLyTANJy4GxSloeHMGRJEm9Y4IjSZJ6Z84EJ8mZSe5OcsNA2XuS3JLkuiSfTLJ24LG3Jdma5GtJfmtC/Za0Ahh/JI1qPiM4ZwGHTyu7GHhGVT0T+DrwNoAk+wPHAL/WPud/JVnVWW8lrTRnYfyRNII5E5yq+iLwvWllX6iq+9u7lwPr2+VNwEer6idV9S1gK3Bgh/2VtIIYfySNqotjcF4NfK5d3hu4Y+CxbW3ZwyQ5PsmWJFseuO/eDrohaQUy/kia0VgJTpKTgfuBc3b2uVW1uao2VtXGVbutGacbklYg44+k2Yw8D06SVwEvAg6rqmqLtwP7DKy2vi2TpM4YfyTNZaQRnCSHA28BXlxV9w08dBFwTJJdk+wL7Ad8ZfxuSlLD+CNpPuYcwUlyLnAIsGeSbcA7ac5a2BW4OAnA5VX1mqq6Mcn5wE00Q8evraoHuuzwhpM+w22nHtlllZKWqKUWf7T4dnYmab8vVq45E5yqetkMxWfMsv6fAH8yTqckCYw/kkbnTMaSJKl3THAkSVLvmOBIkqTeMcGRJEm9Y4IjSZJ6xwRHkiT1jgmOJEnqHRMcSZLUOyY4kiSpd0a+2OZCmZqW2+m2JWnheWkELVeO4EiSpN5Z8iM4U7zIpiQtfY74aKlwBEeSJPXOnAlOkjOT3J3khoGyxye5OMmt7d892vIk+UCSrUmuS3LAJDsvqd+MP5JGNZ8RnLOAw6eVnQRcUlX7AZe09wFeCOzX3o4HTuumm5JWqLMw/kgawZwJTlV9EfjetOJNwNnt8tnAUQPlH6rG5cDaJOs66qukFcb4I2lUox5kvFdV7WiX7wT2apf3Bu4YWG9bW7aDaZIcT/Mri1W7P/FhDXhQsaQhJh5/lhMP6pVmNvZBxlVVQI3wvM1VtbGqNq7abc243ZC0Ahl/JA0z6gjOXUnWVdWOdgj47rZ8O7DPwHrr27KR7OwvE0krwoLEn74yrmqlGHUE5yLg2Hb5WODCgfJXtmczHATcOzCULEldMP5ImtOcIzhJzgUOAfZMsg14J3AqcH6S44DbgZe2q38WOALYCtwH/O4E+ixphTD+SBrVnAlOVb1syEOHzbBuAa8dt1Pz4TWqpP5bqvFH/eVB2/3hTMaSJKl3THAkSVLvmOBIkqTeMcGRJEm9Y4IjSZJ6Z9SJ/haFE1RJUr8Y1zUpjuBIkqTeMcGRJEm9Y4IjSZJ6xwRHkiT1jgmOJEnqHRMcSZLUO8vqNPFhvPCmJGk5mPRp8X4P/sJYIzhJTkxyY5Ibkpyb5FFJ9k1yRZKtSc5LsktXnZWkKcYfSbMZOcFJsjfwBmBjVT0DWAUcA7wLeF9VPRX4J+C4LjoqSVOMP5LmMu4xOKuBRydZDewG7AAOBS5oHz8bOGrMNiRpJsYfSUONnOBU1XbgvcC3aQLLvcCVwPer6v52tW3A3jM9P8nxSbYk2fLAffeO2g1JK5DxR9JcRj7IOMkewCZgX+D7wMeAw+f7/KraDGwG2HXdfjVqP6bzgGOp/5Zq/JGWm5096Hk5fbeOs4vq+cC3quqeqvoZ8AngYGBtO2QMsB7YPmYfJWk644+kWY2T4HwbOCjJbkkCHAbcBFwKHN2ucyxw4XhdlKSHMf5ImtU4x+BcQXMw31XA9W1dm4G3Am9KshV4AnBGB/2UpAcZfyTNZayJ/qrqncA7pxV/EzhwnHp3xqQnTZK0NC2F+CP5HbR0eakGSZLUOyY4kiSpd0xwJElS75jgSJKk3jHBkSRJvTPWWVSLxaPWJUnz4ffFyuUIjiRJ6p1lOYIzHxtO+syyumaGJElL3XK6dpUjOJIkqXdMcCRJUu+Y4EiSpN4xwZEkSb1jgiNJknpnrAQnydokFyS5JcnNSX4zyeOTXJzk1vbvHl11VpKmGH8kzWbc08T/HPh8VR2dZBdgN+DtwCVVdWqSk4CTgLeO2c68OKGTtKIsqfgjLQV+D/7CyCM4SdYAzwPOAKiqn1bV94FNwNntamcDR43XRUl6KOOPpLmMs4tqX+Ae4K+TXJ3k9CSPAfaqqh3tOncCe8305CTHJ9mSZMsD9907RjckrUDGH0mzGifBWQ0cAJxWVc8GfkQzHPygqiqgZnpyVW2uqo1VtXHVbmvG6MZoHMaTlrVlHX8kTd44Cc42YFtVXdHev4Am4NyVZB1A+/fu8booSQ9j/JE0q5ETnKq6E7gjydPbosOAm4CLgGPbsmOBC8fqYYeGjdo4miMtL8sx/khaWOOeRfV64Jz2DIZvAr9LkzSdn+Q44HbgpWO2MTIvuCn12pKOP5JGG0Do6nt7rASnqq4BNs7w0GHj1CtJczH+SJrNuCM4y4K7piRJWlm8VIMkSeodExxJktQ7vd9F5W4oSZKWj66+tx3BkSRJvWOCI0mSescER5Ik9Y4JTstjdSRJ6g8TnAEmOZIk9YMJjiRJ6h0THEmS1DsmOJIkqXdMcCRJUu+MneAkWZXk6iSfbu/vm+SKJFuTnJdkl/G7ufR4QLK0uFZq7JE0P12M4LwRuHng/ruA91XVU4F/Ao7roI0lxeRGWhJWXOyRNH9jJThJ1gNHAqe39wMcClzQrnI2cNQ4bUjSdMYeSXMZdwTn/cBbgJ+3958AfL+q7m/vbwP2numJSY5PsiXJlgfuu3fMbkhaYd7PiLEHjD/SSjBygpPkRcDdVXXlKM+vqs1VtbGqNq7abc2o3dhpG076zJy7mOazzuC6khbOuLEHFi/+SFo4q8d47sHAi5McATwK2B34c2BtktXtL6n1wPbxu7lwTFikJa+XsUdSt0Yewamqt1XV+qraABwD/F1VvRy4FDi6Xe1Y4MKxeylJLWOPpPmYxDw4bwXelGQrzX7xMybQhiRNZ+yR9KBxdlE9qKouAy5rl78JHNhFvZI0G2OPpGGcyViSJPWOCc4sPOBYkqTlyQRnnmZKdkyAJElamkxwJElS75jgSJKk3jHBkSRJvWOCI0mSeqeTeXBWCg8qliRpeXAEpwODF+c0CZIkafGZ4EiSpN4xwZmDIzKSJC0/JjjzsLNJjkmRJEmLywRHkiT1zsgJTpJ9klya5KYkNyZ5Y1v++CQXJ7m1/btHd91d/hzdkcZn/JE0l3FGcO4H3lxV+wMHAa9Nsj9wEnBJVe0HXNLeX/FMbKROGX8kzWrkBKeqdlTVVe3yD4Gbgb2BTcDZ7WpnA0eN2cdla/D08bnWkzR/xh9Jc+nkGJwkG4BnA1cAe1XVjvahO4G9hjzn+CRbkmx54L57u+iGpBXI+CNpJmMnOEkeC3wcOKGqfjD4WFUVUDM9r6o2V9XGqtq4arc143ZjSXAkRlpYxh9Jw4yV4CR5JE1wOaeqPtEW35VkXfv4OuDu8bq4PM032TEpkkZj/JE0m3HOogpwBnBzVf3ZwEMXAce2y8cCF47evX4wiZG6ZfyRNJdxRnAOBl4BHJrkmvZ2BHAq8B+T3Ao8v70vxk90TJSkBxl/JM1q5KuJV9WXgAx5+LBR613JphKY2049cuhjkow/kubmTMaLyKRFkqTJMMGRJEm9Y4KzBHU5suMokSRpJRr5GByNbqakw0REkqTuOIKzRM2W8ExdAsKkSJKkmZngLGFdJTAmQpKklcYER5Ik9Y4JzhI3zq6owedNr6eL44Dm2o0mSdJiMcFZZoYlJtPL55N8mIRIkvrKBKdHRklYph+wPCxZWo7J0HLssySpGyY4PbNQyUiXu7MkSeqaCc4Ks9iJxnx3pc3Vz6V+qvyk+zWfaQQm2ba7OSUtdSY4kiSpdyaW4CQ5PMnXkmxNctKk2lnpJvULeqYRkrlGTYb9ql+IS0/Mp42uzkgb1XwnbxynrUnPnbQcRmyMPZJgQglOklXAXwAvBPYHXpZk/0m0paVlZ09Nn/7cnVl/Z/szyrrD+jP9oOyZdtsMW3/c/s12QPiw5w1LVIclsnPVsVQZeyRNmdS1qA4EtlbVNwGSfBTYBNw0ofa0SEY9cwvgtlOPnLGO6V+209cbtv7gutMfn6l81P7vjPmMhIw7J1FX2zdq8rXEEh9jjyQAUlXdV5ocDRxeVb/X3n8F8BtV9bqBdY4Hjm/vPgO4ofOOzG1P4B9XULuL2bbt9rvdp1fV4xah3YeYT+xpyxcy/kz6PbF+61/J9QP8SlU9cXrhol1NvKo2A5sBkmypqo0L3YeV1u5itm27/W93odscx0LGH+u3futfnO+7SR1kvB3YZ+D++rZMkibJ2CMJmFyC81VgvyT7JtkFOAa4aEJtSdIUY48kYEK7qKrq/iSvA/4PsAo4s6punOUpmyfRj3lYae0uZtu2a7sTN0Lsgcn33fqt3/oXwUQOMpYkSVpMzmQsSZJ6xwRHkiT1zqInOAs1rXqSfZJcmuSmJDcmeWNbfkqS7UmuaW9HTKDt25Jc39a/pS17fJKLk9za/t2j4zafPrBN1yT5QZITJrG9Sc5McneSGwbKZty+ND7Qvt/XJTmg43bfk+SWtu5PJlnblm9I8uOB7f7LMTZ5WNtDX9skb2u3+WtJfqvjds8baPO2JNe05Z1t8yyfn4m/z5Myydgz7PXqWpJVSa5O8ukJ1L02yQXt5+nmJL/Zcf0ntq/NDUnOTfKoDuqcdyzqsP4ZY05X9Q889uYklWTPrutP8vp2G25M8u4u60/yrCSXtzFoS5IDR61/p1XVot1oDgL8BvBkYBfgWmD/CbW1DjigXX4c8HWaqdxPAf5wwtt5G7DntLJ3Aye1yycB75rw63wn8CuT2F7gecABwA1zbR9wBPA5IMBBwBUdt/sCYHW7/K6BdjcMrjehbZ7xtW3/z64FdgX2bf/nV3XV7rTH/xR4R9fbPMvnZ+Lv8yRuk449w16vCWzHm4C/AT49gbrPBn6vXd4FWNth3XsD3wIe3d4/H3hVB/XOOxZ1WP+MMaer+tvyfWgOnL+dad8lHfT/PwB/C+za3n9Sx/V/AXhhu3wEcFnX/6vDbos9gvPgtOpV9VNgalr1zlXVjqq6ql3+IXAzzYdssWyiCSC0f4+aYFuHAd+oqtsnUXlVfRH43rTiYdu3CfhQNS4H1iZZ11W7VfWFqrq/vXs5zTwonRuyzcNsAj5aVT+pqm8BW2n+9zttN0mAlwLnjlL3HO0O+/xM/H2ekInGnoWIN0nWA0cCp3dZb1v3GpovqzMAquqnVfX9jptZDTw6yWpgN+A741a4k7Gok/q7jDmzfL7fB7wFGOusoCH1/z5walX9pF3n7o7rL2D3dnkNHbzP87XYCc7ewB0D97exAElHkg3As4Er2qLXtcOLZ44zfDmLAr6Q5Mo0U8QD7FVVO9rlO4G9JtDulGN46JfepLcXhm/fQr7nr6YZRZiybzuc/3+TPHdCbc702i7UNj8XuKuqbh0o63ybp31+lsL7PIoF698M8aYr76f50vt5x/VCM9J4D/DX7f/P6Uke01XlVbUdeC/wbWAHcG9VfaGr+qdZyFg7PeaMLckmYHtVXdtlvQOeBjw3yRVtnPi3Hdd/AvCeJHfQvOdv67j+oRY7wVlwSR4LfBw4oap+AJwGPAV4Fs0H7U8n0OxzquoAmiscvzbJ8wYfrGbsbiLn66eZ7OzFwMfaooXY3oeY5PYNk+Rk4H7gnLZoB/DLVfVs2mH9JLsPe/6IFvy1neZlPDSR7XybZ/j8PGgx3uelbrbXa8x6XwTcXVVXdlXnNKtpdjWc1v7//Ihm904n2uR/E00i9UvAY5L8167qH2bCsXZ6zOmizt2AtwPv6KrOGawGHk+zK/m/A+e3o8Fd+X3gxKraBziRdlRwISx2grOg06oneSRNsDmnqj4BUFV3VdUDVfVz4K8YcdfBbNpfK1NDf59s27hrasi+/TvysOAcXghcVVV3tX2Y+Pa2hm3fxN/zJK8CXgS8vA1otLuHvtsuX0lz/MXTumx3ltd2IbZ5NfA7wHkD/el0m2f6/LCI7/OYFuI9men16srBwIuT3Eaze+3QJB/psP5twLaqmhp1uoAm4enK84FvVdU9VfUz4BPAv+uw/kETj7UzxZyOPIUmCby2fa/XA1cl+VcdtrEN+ES7O/krNCOCIx/IPINjad5faH5oL9hBxoud4CzYtOptRnoGcHNV/dlA+eBxAS+h46sKJ3lMksdNLdMckHYDzXYe2652LHBhl+0OeMiv+klv74Bh23cR8Mo0DqIZmt4xUwWjSHI4zbD9i6vqvoHyJyZZ1S4/GdgP+GZX7bb1DnttLwKOSbJrkn3btr/SZds0Xxi3VNW2gf50ts3DPj8s0vvcgYnGnller05U1duqan1VbaDp+99VVWcjIFV1J3BHkqe3RYcBN3VVP82uqYOS7Na+VofRHKc0CRONtcNiTheq6vqqelJVbWjf6200B6/f2WEzn6I50JgkT6M5oLzLq39/B/j37fKhwK2zrNutuY5CnvSN5qjqr9P8ujx5gu08h2Zo8jrgmvZ2BPBh4Pq2/CJgXcftPpnmDI1rgRunthF4AnAJzZv9t8DjJ7DNjwG+C6wZKOt8e2kSqB3Az2g+gMcN2z6as2r+on2/rwc2dtzuVppjK6be479s1/1P7et/DXAV8NsT2Oahry1wcrvNX6M9o6Crdtvys4DXTFu3s22e5fMz8fd5UjcmGHuGvV4T2o5DmMxZVM8CtrTb8Clgj47r/yPgFpofAh+mPYtnzDrnHYs6rH/GmNNV/dMev43xzqKaqf+7AB9p34ergEM7rv85wJU034FXAP+m6//VYTcv1SBJknpnsXdRSZIkdc4ER5Ik9Y4JjiRJ6h0THEmS1DsmOJIkqXdMcJaAJP88j3VOaGe1nGQ/finJBe3yq5J8cMR6zkpy9BzrHJJkUhN7TW9nxistJ3l2krFn1UzyuiSvHrceaaEZeybH2LP4THCWjxNoLkg3b1OTvM1XVX2nqmYNDh06hJ2cubSdrbdLbwc+0EE9ZwKv76AeaSk6AWOPsWcZMsFZQtqM/7IkFyS5Jck57Uywb6C5XsulSS5t131Bki8nuSrJx9pr3pDktiTvSnIV8J+TvCHJTWkuAPnRdp1Tkny4ff6tSf5bW74hycNmNk5yZLvunsPanWWbbkvyR+361yf51TQXH3wNcGKSa5I8t5119+NJvtreDp7W138APpzk8iS/NlD/ZUk2Jjmw7dfVSf7fwAysw/r1OOCZ1V7Arm3n7CR/n+T2JL+T5N1tnz+fZtp9kpw68Hq+F6Ca2UtvS7JgU5BLXTL2GHt6aaFmFPQ26+yP/9z+PQS4l+Z6I48AvkxzoU4YmMGS5johXwQe095/K/COgfXeMlD3d2hnCAXWtn9PoZlV8tFtXXfQBLENwA3tOq8CPkhzyYG/B/aYrd1p23MWcPRAf17fLv8BcPpAH/5w4Dl/M7Ctv0wzxf3UelcCj27vnwj8Ubu8Dvhau7w7sLpdfj7w8YHX9GGzvNJMTf7xgfunAF8CHgn8OnAf7YzDNNcPO4pmRtSvwYMTZK4deP7JwJsX+3/Jm7eduRl7jD19vnU97KbxfaXa6wkluYbmg/+laescBOwP/EOai77uQhOQppw3sHwdcE6ST9FMtz7lwqr6MfDj9pfZgTTTjA86FNgIvKCqfpDmCsaztTvM1IXWrqS5IORMng/sn19cxHb3gV9oF7V9BTgf+ALwTuClNBcBBFgDnJ1kP5op8h85R5/WAfdMK/tcVf0syfXAKuDzbfn1NO/Dp4F/Ac5Is299cP/63cCvztGmtJQZexrGnp4wwVl6fjKw/AAzv0cBLq6qlw2p40cDy0cCzwN+Gzg5yb9uy6dfo2Oma3Z8g+ZaWk+juSbNXO0OM7VNw7YHml+NB1XVvwwWtkHnwe2pqu1JvpvkmcB/oRluBvhj4NKqekk7DH3ZHH36MfComfpZVT9P8rNqfx7RXF13dVXd3w4FHwYcDbyOJhDT1vVjpOXL2DPA2LP8eQzO8vFD4HHt8uXAwUmeCg9esfxp05+Q5BHAPlV1Kc2Q7hpg6pfJpiSPSvIEmqHUr87Q5u00F2z8ULvveV7tjrA90PwyevBguSTPmuW559FcvXdNVV3Xlq0BtrfLr5pH+zcDT51nX6f69Ni2zc/SDFf/+sDDT2NyV2aXFpOx5xeMPcuICc7ysRn4fJJLq+oemg/SuUmuoxmqnWmIchXwkXbY82rgA1X1/fax64BLaQLHH1fVd2ZqtKpuAV4OfIxmX/N82p2P/w28ZOpAP+ANwMb2ALqb+MWvo5lcABxDM2Q85d3A/0xyNfMYmWy3a017wN98PQ74dLvtXwLeNPDYwcDFO1GXtFwYe37B2LOMeDXxFSjJKTQHF753sfuymJKcCPywqk4fs55nA2+qqld00zOpn4w9DWPPwnAERyvZaTz0uINR7Qn8jw7qkbQyGHsWgCM4kiSpdxzBkSRJvWOCI0mSescER5Ik9Y4JjiRJ6h0THEmS1Dv/H4dPA7PhqAlpAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Test Poisson spike generator inhomogeneous with abs and rel refractory periods\n", "\n", "fr_t = np.arange(start_time, end_time, 0.005)\n", "fr_vec = 25+25*np.sin(2*np.pi*2*fr_t)\n", "\n", "psg = PoissonSpikeGenerator(population='test', seed=200)\n", "psg.add(node_ids=nodes, firing_rate=fr_vec, times=fr_t)\n", "plot_isi(psg)\n", "\n", "actual_fr = psg.n_spikes()/(end_time-start_time)/len(nodes)\n", "print(f'Actual Firing Rate (Hz): {actual_fr}')\n", "\n", "df = psg.to_dataframe()\n", "spk_times = df[df['node_ids']==0]['timestamps']\n", "fig, ax = plt.subplots(1,2,figsize=(8,3))\n", "ax[0].plot(fr_t,fr_vec)\n", "ax[0].set_xlabel('Time (s)')\n", "ax[0].set_ylabel('Spk/s')\n", "edges = np.arange(0,3000,50) # 50 ms bins should have on average 50/20 = 2.5 sp/bin\n", "ax[1].hist(spk_times/1000, bins=edges/1000)\n", "ax[1].set_xlabel('Time (s)')\n", "ax[1].set_ylabel('Spk/bin')\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "id": "e77acd33", "metadata": {}, "source": [ "Similarly, we can apply an absolute and relative refractory period to the inhomogeneous spike train:" ] }, { "cell_type": "code", "execution_count": 5, "id": "7a3edb26", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Actual Firing Rate (Hz): 22.226666666666667\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAaHElEQVR4nO3dfbRsdX3f8fdHrviACCo3lPCQixF0EatibwktailYg2K8mFKKy1qIpCxTUUFTvciq4sofBTXxYSU1iwIBlfAgPkAlsRACNaaC3gvIM4p6kYs83BhRo0RFv/1j7wPD4TzO7Dlzzj7v11qzzp49e34PM2e+853f3vu3U1VIkiT1yRMm3QBJkqSumeBIkqTeMcGRJEm9Y4IjSZJ6xwRHkiT1jgmOJEnqnXkTnCRnJ3kgyc0D6z6Q5PYkNyb5bJKdBx47OcmdSe5I8ltjarekVcD4I2lYCxnBOQc4bNq6K4DnV9ULgK8DJwMk2Q84GviN9jn/M8l2nbVW0mpzDsYfSUNYM98GVfXFJOumrbt84O41wJHt8gbggqr6KfDtJHcCBwBfnquOXXbZpdatWzfXJpKWsc2bN/99Va3tulzjj6T5zBZ/5k1wFuCNwIXt8u40AWfK1nbd4yQ5HjgeYK+99mLTpk0dNEXSJCS5a0JVG3+kVW62+DPSQcZJTgEeBs5b7HOr6oyqWl9V69eu7fyHn6SeM/5ImsvQIzhJjgVeDRxaj17Q6h5gz4HN9mjXSVJnjD+S5jPUCE6Sw4B3Aq+pqp8MPHQpcHSSJyXZG9gH+MrozZSkhvFH0kLMO4KT5HzgYGCXJFuB99KctfAk4IokANdU1Zuq6pYkFwG30gwdv7mqfjGuxkvqN+OPpGHl0dHdyVm/fn15kJ+0ciXZXFXrJ92OYRh/pJVttvjjTMaSJKl3ujhNfEms23gZW047fNLNkCTNYd3Gyxa1vXFd4+IIjiRJ6h0THEmS1DsmOJIkqXdMcCRJUu+smIOMp5s6kM0D1CRJXfEg6f5wBEeSJPWOCY4kSeodExxJktQ7JjiSJKl3THAkSVLvmOBIkqTeMcGRJEm9Y4IjSZJ6xwRHkiT1zoqdyXi6dRsvc0ZJSVKvOLPy8BzBkSRJvTPvCE6Ss4FXAw9U1fPbdc8ELgTWAVuAo6rq+0kCfAR4FfAT4Niquq7LBs80UrPYDFfSyrDc4o8mb6WPaPh9tXQWMoJzDnDYtHUbgSurah/gyvY+wCuBfdrb8cDHummmpFXqHIw/koYwb4JTVV8E/mHa6g3Aue3yucARA+s/Xo1rgJ2T7NZRWyWtMsYfScMa9hicXavq3nb5PmDXdnl34O6B7ba26x4nyfFJNiXZtG3btiGbIWkVMv5ImtfIBxlXVQE1xPPOqKr1VbV+7dq1ozZD0ipk/JE0m2ETnPunhn7bvw+06+8B9hzYbo92nSR1xfgjaV7DzoNzKXAMcFr795KB9SckuQD4TeAHA0PJQ5nviHOPSJdWnSWLPzLGzsfXZ/layGni5wMHA7sk2Qq8lyawXJTkOOAu4Kh287+kOUXzTprTNH93DG2WtEoYfyQNa94Ep6peN8tDh86wbQFvHrVRkgTGH0nDcyZjSZLUO8v6WlTu25SkbhlXtVo4giNJknrHBEeSJPWOCY4kSeodExxJktQ7JjiSJKl3lvVZVNN59L8k9YtxXePiCI4kSeqdFTWCM8WMX5K0EH5frF6O4EiSpN4xwZEkSb1jgiNJknrHBEeSJPWOCY4kSeodExxJktQ7JjiSJKl3RkpwkpyU5JYkNyc5P8mTk+yd5Nokdya5MMn2XTVWkqYYfyTNZegEJ8nuwFuB9VX1fGA74GjgdOBDVfUc4PvAcV00VJKmGH8kzWfUXVRrgKckWQM8FbgXOAS4uH38XOCIEeuQpJkYfyTNaugEp6ruAT4IfIcmsPwA2Aw8WFUPt5ttBXYftZGSNMj4I2k+Q1+LKskzgA3A3sCDwKeAwxbx/OOB4wH22muvYZvxOFPXHdly2uGdlSlpeVmu8UdaaRZ7ra6V9N06yi6qlwPfrqptVfVz4DPAQcDO7ZAxwB7APTM9uarOqKr1VbV+7dq1IzRD0ipk/JE0p1GuJv4d4MAkTwUeAg4FNgFXAUcCFwDHAJcstuB1Gy9bUVmipCU3tvgzaX3+RS0tpVGOwbmW5mC+64Cb2rLOAN4FvD3JncCzgLM6aKckPcL4I2k+o4zgUFXvBd47bfW3gANGKVeS5mP8kTQXZzKWJEm9Y4IjSZJ6xwRHkiT1jgmOJEnqHRMcSZLUOyOdRbWcOZeOJEndWknzNDmCI0mSescER5Ik9Y4JjiRJ6h0THEmS1DsmOJIkqXdMcCRJUu8s29PEF3sqmiStRsZKaWaragRntkBggJAkqV9WVYIjSZJWBxMcSZLUOyY4kiSpd0xwJElS74x0FlWSnYEzgecDBbwRuAO4EFgHbAGOqqrvj1LPQk0/WNgLbkr9tdzij7QcLLeTZoZpT1ff26OO4HwE+EJVPQ94IXAbsBG4sqr2Aa5s70tS14w/kmY1dIKTZCfgZcBZAFX1s6p6ENgAnNtudi5wxGhNlKTHMv5Ims8oIzh7A9uAP09yfZIzk+wA7FpV97bb3AfsOtOTkxyfZFOSTdu2bRuhGcNZbsN4khZlRccfSeM3SoKzBngx8LGq2h/4MdOGg6uqaPaNP05VnVFV66tq/dq1a0dohqRVyPgjaU6jJDhbga1VdW17/2KagHN/kt0A2r8PjNZESXoc44+kOQ2d4FTVfcDdSZ7brjoUuBW4FDimXXcMcMlILZSkaYw/kuYz6sU23wKcl2R74FvA79IkTRclOQ64CzhqxDpG5vE2Ui+tiPgjaTJGSnCq6gZg/QwPHTpKuePk3DhSP6zE+CNp6TiTsSRJ6h0THEmS1DsmOJIkqXdMcCRJUu+Y4EiSpN4xwZEkSb0z6jw4y95i5sDxFHJJkiarq7nrHMGRJEm9Y4IjSZJ6p/e7qObiJRwkSeonR3AkSVLvmOAMydEfSZKWLxMcSZLUOyY4kiSpd0xwWu5ykiSpP0xwJElS75jgSJKk3hk5wUmyXZLrk3y+vb93kmuT3JnkwiTbj97M5cXdWdLkrcbYI2nhuhjBeRtw28D904EPVdVzgO8Dx3VQx7JlsiNNzKqOPZLmNlKCk2QP4HDgzPZ+gEOAi9tNzgWOGKUOSZrO2CNpPqOO4HwYeCfwy/b+s4AHq+rh9v5WYPcR65Ck6T6MsUfSHIZOcJK8GnigqjYP+fzjk2xKsmnbtm3DNmMo7laSVq5RY09bxsTij6SlMcoIzkHAa5JsAS6gGR7+CLBzkqmLeO4B3DPTk6vqjKpaX1Xr165dO0Izurdu42UmQdLyNVLsgeUdfyR1Y+gEp6pOrqo9qmodcDTwN1X1euAq4Mh2s2OAS0Zu5TJgwiMtD6st9kgazjjmwXkX8PYkd9LsFz9rDHVI0nTGHkmPWDP/JvOrqquBq9vlbwEHdFGuJM3F2CNpNs5kPM3grih3S0mStDKZ4EiSpN4xwZEkSb1jgrMAi9lV5W4tSZImzwRHkiT1jgmOJEnqHRMcSZLUOyY48/CYGkmSVp5OJvpbLaYnOyY/kiQtT47gSJKk3jHBkSRJvWOCI0mSescER5Ik9Y4JzhLzwGRJksbPBEeSJPWOCc4YOEojSdJkmeB0YN3Gy+ZMakx4JElaWiY4HTKRkSRpeRg6wUmyZ5Krktya5JYkb2vXPzPJFUm+0f59RnfNlSTjj6T5jTKC8zDwjqraDzgQeHOS/YCNwJVVtQ9wZXtfkrpk/JE0p6ETnKq6t6qua5d/BNwG7A5sAM5tNzsXOGLENvaCu6+k7hh/JM2nk2NwkqwD9geuBXatqnvbh+4Ddp3lOccn2ZRk07Zt27poxopl8iMNz/gjaSYjJzhJngZ8Gjixqn44+FhVFVAzPa+qzqiq9VW1fu3ataM2Q9IqZPyRNJuREpwkT6QJLudV1Wfa1fcn2a19fDfggdGa2G+O3kjDMf5ImssoZ1EFOAu4rar+eOChS4Fj2uVjgEuGb97KNt/8OJKGY/yRNJ81Izz3IOANwE1JbmjXvRs4DbgoyXHAXcBRiym0zwlBn/smLbGxxJ9x8HMvTcbQCU5VfQnILA8fOmy5kjQf44+k+YwygqMh+YtOkqTx8lINkiSpd0xwxsRRGkmSJscER5Ik9Y7H4CxzgyNBW047fIItkSRp5XAEZxlZ6Lw57v6SJGluJjiSJKl3THAkSVLvmOAsE4O7naaWp++KGmbXlLuzJEmrkQnOMjWuxMRjfCRJq4EJTo8sJjGZbduZ1pvwSJJWGhMcSZLUOyY4K9TgKeXzjcYsZrRGkqQ+cKK/FWbYA49NZiRJq4kjOD017jOuhk2YTLT6xfdT0nJlgtMTg7uj5vvSmX5K+mwHFi90ZuXlapJtHyUB9Ew3SRqdCY4kSeodExwB848ILGZkaPq24xgJmvSxRzMdC9XFxIwLqXPU92rUEaKVPrInaXUYW4KT5LAkdyS5M8nGcdWjpTXf2VuL/eKbaxfZbNsvtC1dWsyX+mLnGBq2DzPtRhzmjLn5dlPOtc18ZU+CsUcSjOksqiTbAX8K/DtgK/DVJJdW1a3jqE+TM8xIwUITmoU+f7GJx5bTDp/1uYOPTT0+fd1i6p5e51R5S3U23GLen4UmlcuZsUfSlHGN4BwA3FlV36qqnwEXABvGVJckTTH2SAIgVdV9ocmRwGFV9Xvt/TcAv1lVJwxsczxwfHv3+cDNnTdkfrsAf7+K6p1k3dbb73qfW1U7TqDex1hI7GnXL2X8Gfd7YvmWv5rLB/i1qlo7feXEJvqrqjOAMwCSbKqq9UvdhtVW7yTrtt7+17vUdY5iKeOP5Vu+5U/m+25cu6juAfYcuL9Hu06SxsnYIwkYX4LzVWCfJHsn2R44Grh0THVJ0hRjjyRgTLuoqurhJCcA/wfYDji7qm6Z4ylnjKMdC7Da6p1k3dZrvWM3ROyB8bfd8i3f8idgLAcZS5IkTZIzGUuSpN4xwZEkSb0z8QRnqaZVT7JnkquS3JrkliRva9efmuSeJDe0t1eNoe4tSW5qy9/UrntmkiuSfKP9+4yO63zuQJ9uSPLDJCeOo79Jzk7yQJKbB9bN2L80Ptq+3zcmeXHH9X4gye1t2Z9NsnO7fl2Shwb6/WcjdHm2umd9bZOc3Pb5jiS/1XG9Fw7UuSXJDe36zvo8x+dn7O/zuIwz9sz2enUtyXZJrk/y+TGUvXOSi9vP021J/lXH5Z/UvjY3Jzk/yZM7KHPBsajD8meMOV2VP/DYO5JUkl26Lj/JW9o+3JLk/V2Wn+RFSa5pY9CmJAcMW/6iVdXEbjQHAX4TeDawPfA1YL8x1bUb8OJ2eUfg68B+wKnAH4y5n1uAXaatez+wsV3eCJw+5tf5PuDXxtFf4GXAi4Gb5+sf8Crgr4AABwLXdlzvK4A17fLpA/WuG9xuTH2e8bVt/8++BjwJ2Lv9n9+uq3qnPf5HwHu67vMcn5+xv8/juI079sz2eo2hH28H/gL4/BjKPhf4vXZ5e2DnDsveHfg28JT2/kXAsR2Uu+BY1GH5M8acrspv1+9Jc+D8XUz7Lumg/f8W+GvgSe39X+m4/MuBV7bLrwKu7vp/dbbbpEdwlmxa9aq6t6qua5d/BNxG8yGblA00AYT27xFjrOtQ4JtVddc4Cq+qLwL/MG31bP3bAHy8GtcAOyfZrat6q+ryqnq4vXsNzTwonZulz7PZAFxQVT+tqm8Dd9L873dab5IARwHnD1P2PPXO9vkZ+/s8JmONPUsRb5LsARwOnNlluW3ZO9F8WZ0FUFU/q6oHO65mDfCUJGuApwLfHbXARcaiTsrvMubM8fn+EPBOYKSzgmYp//eB06rqp+02D3RcfgFPb5d3ooP3eaEmneDsDtw9cH8rS5B0JFkH7A9c2646oR1ePHuU4cs5FHB5ks1ppogH2LWq7m2X7wN2HUO9U47msV964+4vzN6/pXzP30gzijBl73Y4//8meemY6pzptV2qPr8UuL+qvjGwrvM+T/v8LIf3eRhL1r4Z4k1XPkzzpffLjsuFZqRxG/Dn7f/PmUl26KrwqroH+CDwHeBe4AdVdXlX5U+zlLF2eswZWZINwD1V9bUuyx2wL/DSJNe2ceJfdlz+icAHktxN856f3HH5s5p0grPkkjwN+DRwYlX9EPgY8OvAi2g+aH80hmpfUlUvBl4JvDnJywYfrGbsbizn66eZ7Ow1wKfaVUvR38cYZ/9mk+QU4GHgvHbVvcBeVbU/7bB+kqfP9vwhLflrO83reGwi23mfZ/j8PGIS7/NyN9frNWK5rwYeqKrNXZU5zRqaXQ0fa/9/fkyze6cTbfK/gSaR+lVghyT/qavyZzPmWDs95nRR5lOBdwPv6arMGawBnkmzK/m/ARe1o8Fd+X3gpKraEziJdlRwKUw6wVnSadWTPJEm2JxXVZ8BqKr7q+oXVfVL4H8x5K6DubS/VqaG/j7b1nH/1JB9+3foYcF5vBK4rqrub9sw9v62Zuvf2N/zJMcCrwZe3wY02t1D32uXN9Mcf7Fvl/XO8douRZ/XAL8DXDjQnk77PNPnhwm+zyNaivdkpterKwcBr0myhWb32iFJPtlh+VuBrVU1Nep0MU3C05WXA9+uqm1V9XPgM8C/7rD8QWOPtTPFnI78Ok0S+LX2vd4DuC7JP+uwjq3AZ9rdyV+hGREc+kDmGRxD8/5C80N7yQ4ynnSCs2TTqrcZ6VnAbVX1xwPrB48LeC0dX1U4yQ5Jdpxapjkg7Waafh7TbnYMcEmX9Q54zK/6cfd3wGz9uxT4z2kcSDM0fe9MBQwjyWE0w/avqaqfDKxfm2S7dvnZwD7At7qqty13ttf2UuDoJE9Ksndb91e6rJvmC+P2qto60J7O+jzb54cJvc8dGGvsmeP16kRVnVxVe1TVOpq2/01VdTYCUlX3AXcneW676lDg1q7Kp9k1dWCSp7av1aE0xymNw1hj7WwxpwtVdVNV/UpVrWvf6600B6/f12E1n6M50Jgk+9IcUN7l1b+/C/ybdvkQ4BtzbNut+Y5CHveN5qjqr9P8ujxljPW8hGZo8kbghvb2KuATwE3t+kuB3Tqu99k0Z2h8Dbhlqo/As4Arad7svwaeOYY+7wB8D9hpYF3n/aVJoO4Ffk7zATxutv7RnFXzp+37fROwvuN676Q5tmLqPf6zdtt/377+NwDXAb89hj7P+toCp7R9voP2jIKu6m3XnwO8adq2nfV5js/P2N/ncd0YY+yZ7fUaUz8OZjxnUb0I2NT24XPAMzou/33A7TQ/BD5BexbPiGUuOBZ1WP6MMaer8qc9voXRzqKaqf3bA59s34frgEM6Lv8lwGaa78BrgX/R9f/qbDcv1SBJknpn0ruoJEmSOmeCI0mSescER5Ik9Y4JjiRJ6h0THEmS1DsmOMtAkn9cwDYntrNajrMdv5rk4nb52CR/MmQ55yQ5cp5tDk4yrom9ptcz45WWk+yfZORZNZOckOSNo5YjLTVjz/gYeybPBGflOJHmgnQLNjXJ20JV1Xeras7g0KGDWeTMpe1svV16N/DRDso5G3hLB+VIy9GJGHuMPSuQCc4y0mb8Vye5OMntSc5rZ4J9K831Wq5KclW77SuSfDnJdUk+1V7zhiRbkpye5DrgPyR5a5Jb01wA8oJ2m1OTfKJ9/jeS/Jd2/bokj5vZOMnh7ba7zFbvHH3akuR97fY3JXlemosPvgk4KckNSV7azrr76SRfbW8HTWvr3wGfSHJNkt8YKP/qJOuTHNC26/ok/29gBtbZ2rUj8IJqL2DX1nNukr9NcleS30ny/rbNX0gz7T5JTht4PT8IUM3spVuSLNkU5FKXjD3Gnl5aqhkFvc05++M/tn8PBn5Ac72RJwBfprlQJwzMYElznZAvAju0998FvGdgu3cOlP1d2hlCgZ3bv6fSzCr5lLasu2mC2Drg5nabY4E/obnkwN8Cz5ir3mn9OQc4cqA9b2mX/ytw5kAb/mDgOX8x0Ne9aKa4n9puM/CU9v5JwPva5d2AO9rlpwNr2uWXA58eeE0fN8srzdTknx64fyrwJeCJwAuBn9DOOExz/bAjaGZEvQMemSBz54HnnwK8Y9L/S968LeZm7DH29PnW9bCbRveVaq8nlOQGmg/+l6ZtcyCwH/B3aS76uj1NQJpy4cDyjcB5ST5HM936lEuq6iHgofaX2QE004wPOgRYD7yiqn6Y5grGc9U7m6kLrW2muSDkTF4O7JdHL2L79IFfaJe2bQW4CLgceC9wFM1FAAF2As5Nsg/NFPlPnKdNuwHbpq37q6r6eZKbgO2AL7Trb6J5Hz4P/BNwVpp964P71x8AnjdPndJyZuxpGHt6wgRn+fnpwPIvmPk9CnBFVb1uljJ+PLB8OPAy4LeBU5L883b99Gt0zHTNjm/SXEtrX5pr0sxX72ym+jRbf6D51XhgVf3T4Mo26DzSn6q6J8n3krwA+I80w80AfwhcVVWvbYehr56nTQ8BT56pnVX1yyQ/r/bnEc3VdddU1cPtUPChwJHACTSBmLash5BWLmPPAGPPyucxOCvHj4Ad2+VrgIOSPAceuWL5vtOfkOQJwJ5VdRXNkO5OwNQvkw1JnpzkWTRDqV+doc67aC7Y+PF23/OC6h2iP9D8MnrkYLkkL5rjuRfSXL13p6q6sV23E3BPu3zsAuq/DXjOAts61aantXX+Jc1w9QsHHt6X8V2ZXZokY8+jjD0riAnOynEG8IUkV1XVNpoP0vlJbqQZqp1piHI74JPtsOf1wEer6sH2sRuBq2gCxx9W1XdnqrSqbgdeD3yKZl/zQupdiP8NvHbqQD/grcD69gC6W3n019FMLgaOphkynvJ+4H8kuZ4FjEy2/dqpPeBvoXYEPt/2/UvA2wceOwi4YhFlSSuFsedRxp4VxKuJr0JJTqU5uPCDk27LJCU5CfhRVZ05Yjn7A2+vqjd00zKpn4w9DWPP0nAER6vZx3jscQfD2gX47x2UI2l1MPYsAUdwJElS7ziCI0mSescER5Ik9Y4JjiRJ6h0THEmS1DsmOJIkqXf+P37VTR16aRP/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "psg = PoissonSpikeGenerator(population='test', seed=200)\n", "psg.add(node_ids=nodes, firing_rate=fr_vec, times=fr_t, abs_ref=0.002, tau_ref=0.003)\n", "plot_isi(psg)\n", "\n", "actual_fr = psg.n_spikes()/(end_time-start_time)/len(nodes)\n", "print(f'Actual Firing Rate (Hz): {actual_fr}')\n", "\n", "df = psg.to_dataframe()\n", "spk_times = df[df['node_ids']==0]['timestamps']\n", "fig, ax = plt.subplots(1,2,figsize=(8,3))\n", "ax[0].plot(fr_t,fr_vec)\n", "ax[0].set_xlabel('Time (s)')\n", "ax[0].set_ylabel('Spk/s')\n", "edges = np.arange(0,3000,50) # 50 ms bins should have on average 50/20 = 2.5 sp/bin\n", "ax[1].hist(spk_times/1000, bins=edges/1000)\n", "ax[1].set_xlabel('Time (s)')\n", "ax[1].set_ylabel('Spk/bin')\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "id": "58144ef6", "metadata": {}, "source": [ "### Gamma Spike Generator\n", "\n", "An alternative way to simulates a relative refractory period is to use a Gamma renewal process rather than a Poisson process.\n", "\n", "The refractory properties are controlled by the shape parameter ```a```. To give an intuitive sense of the effect of the shape parameter, the distributions for a range of ```a``` values is plotted below. Larger values of ```a``` correspond to slower recovery." ] }, { "cell_type": "code", "execution_count": 6, "id": "0269a33e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(110, 207.06, 'Shape parameter = 1.9')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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69czbNgwPvWpT9GlSxdGjhzJokWLmnzPyVLPTzq98vJy/vmf/5nPfOYzXHPNNYwfP56RI0fG5+fk5LB69Wp++tOf8qMf/YgnnniCiy++mOXLl9OlSxdefvll7rvvPp5//nkglhjXrl3Lpz71KUpKShgzZgzdunVj4cKFvP7665xyyincdtttLFiwgFtuueUT9TnjjDN4++23eeqpp7jrrrt48cUXGT58OCtXrsTMeOKJJ/jBD37Aj38cG6do3bp1vPbaa5x++ukcOHCApUuXctppp7F582YmTJgQ32Rcs2YN69ev56yzzmLAgAF87WtfY9WqVcyePZu5c+fy8MMPc+edd3L33XczfPhw/vznP3Pttdeyfv16vv71r9O9e3e++c1vAvDlL3856XLH1yfRvn37GDEi+SBuzzzzDHl5ec1ed5deein3338/H374IaeffjovvfQSxcXFzf6cZJT8pNPr3r07tbW1LF++nGXLljF+/HhmzpzJpEmTALjpppsAGDp0aLxXsWfPHiorK9m8eTNmxuHDh+OfN2rUKM4+++z4e1977TW6dOlCbW0tJSUlABw8eJBzzjknaX0mTJgQf7777rsB2LZtG+PHj6ehoYFDhw7Rv3//+PJjx46NJ5rDhw8zdepU6urqyM7OZtOmTfHlSkpK6NMnNtzHhRdeSHl5OQD5+fksW7YMgJdffpl169bF37N3717279//iTo2tVxifRL16NGDurq6pG1uqUsuuYRvfetblJeX061bNwoLC8nOzk7LZyv5SSRkZ2dTVlZGWVkZ+fn5VFVVxZNf4+ZwdnY2R47Exib/9re/zVVXXcXixYupr6+nrKws/lmxcXY45rW7U1lZyfe+970T1iXx/Y3Td9xxB/fccw9jx46lurqaGTNmxJfp1q1bfHrWrFn07t2bNWvWcPToUU477bT4vMZ2AGRlZcVfZ2Vlxdt19OhRVq5cecz7kmlqucT6JAqj5wcwefJkJk+eDMB9991H377pGTNe+/yk09u4cSObN//vWNt1dXX069evyffs2bOH886LjX89f/78Y+YtXbqU3bt3c/DgQX7zm99w5ZVXcvXVV/PrX/+aHTtioyru3r2brVuT31Bk4cKF8efLL7/8E/GqqqqarFefPn3Iysri6aefTrpfsSnl5eXMnTs3/rqxp9ajRw/27dt3wuWa0tjzS/Zo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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.stats import gamma\n", "\n", "fr = 20.0\n", "binsize = 5\n", "bin_list = np.arange(0,202,binsize)\n", "\n", "a = 1 # Exponential, i.e., Poisson process for a = 1 \n", "r = gamma.rvs(a,loc=0, scale=1/(a*fr), size=3000)\n", "\n", "fig, ax = plt.subplots(4, figsize =(5,9))\n", "ax[0].hist(r*1000, bins=bin_list)\n", "yl = ax[0].get_ylim()\n", "ax[0].text(110, 0.85*yl[1], 'Shape parameter = {shape}'.format(shape = a))\n", "\n", "a = 1.3\n", "r = gamma.rvs(a,loc=0, scale=1/(a*fr), size=3000)\n", "ax[1].hist(r*1000, bins=bin_list)\n", "yl = ax[1].get_ylim()\n", "ax[1].text(110, 0.85*yl[1], 'Shape parameter = {shape}'.format(shape = a))\n", "\n", "a = 1.6\n", "r = gamma.rvs(a,loc=0, scale=1/(a*fr), size=3000)\n", "ax[2].hist(r*1000, bins=bin_list)\n", "yl = ax[2].get_ylim()\n", "ax[2].text(110, 0.85*yl[1], 'Shape parameter = {shape}'.format(shape = a))\n", "\n", "a = 1.9\n", "r = gamma.rvs(a,loc=0, scale=1/(a*fr), size=3000)\n", "ax[3].hist(r*1000, bins=bin_list)\n", "yl = ax[3].get_ylim()\n", "ax[3].text(110, 0.85*yl[1], 'Shape parameter = {shape}'.format(shape = a))\n" ] }, { "cell_type": "markdown", "id": "3c49b23e", "metadata": {}, "source": [ "We can use the GammaSpikeGenerator to generate spike trains by specifying the desired firing rate and shape parameter values:" ] }, { "cell_type": "code", "execution_count": 7, "id": "fbed5144", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Actual Firing Rate (Hz): 22.226666666666667\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAZBklEQVR4nO3df9RkdX3Y8fdHFgSR36x0A2weDKCHthHslpKi1gCxyBoXU0rxWLqckO5JGlTQ1KxyarDpOV2MicYTj+kWKBtFAUGFQmMhZKkxFXSXX8vPgLhUlgU2RhQToqKf/nG/D8w+zjwzz8y988zeeb/OmfPcuXPnfr/fmWc+85nv997vjcxEkiSpTV6y2BWQJEmqmwmOJElqHRMcSZLUOiY4kiSpdUxwJElS6ywZZ2EHH3xwzszMjLNISWOwefPmv87MpYtdj16MPVJ79Yo/Y01wZmZm2LRp0ziLlDQGEfHYYtdhPsYeqb16xR+HqCRJUuuY4EiSpNYxwZEkSa1jgiNJklrHBEeSJLWOCY4kSWqdsZ4m3qSZtTcCsHXdyhfuzy5LkqTJN/tdXgd7cCRJUuuY4EiSpNYxwZEkSa1jgiNJklrHBEeSJLXOQGdRRcRW4Fngx8DzmbkiIg4ErgJmgK3AmZn5nWaqKWkaGXskDWshPTi/mJnHZuaKcn8tcEtmHgXcUu5LUt2MPZIWbJQhqlXAhrK8ATh95NpIUn/GHkl9DTrRXwI3RUQC/y0z1wOHZOb28viTwCHdnhgRa4A1AMuXL19wBedO4Ndr3aDPlbRLWbTYo+kxzORyk/i9stB2TGIb6jRogvO6zNwWEa8Abo6IBzsfzMwsAeinlIC0HmDFihVdt5GkHow9koYy0BBVZm4rf58GvgAcDzwVEcsAyt+nm6qkpOlk7JE0rL49OBGxN/CSzHy2LL8J+M/A9cBqYF35e12TFZ1V53UqvF6VNLkmLfZI41Tnd920GmSI6hDgCxExu/1nMvNLEfF14OqIOBd4DDizuWpKmkLGHklD65vgZOajwGu6rP82cHITlZIkY4+kUTiTsSRJah0THEmS1DomOJIkqXVMcCRJUuuY4EiSpNYxwZEkSa0z6KUaFsWkTHTkhICStOuYlO8OLS57cCRJUuuY4EiSpNZpXYJj16QkSWpdgiNJkmSCI0mSWmeizqKaHV7qdcaSw0+SNFkWGpen9YxUv7/Gzx4cSZLUOiY4kiSpdVqZ4NgVKEnSdGtlgiNJkqbbVCQ49uhIkjRdpiLBkSRJ08UER5Iktc7A8+BExG7AJmBbZr4lIo4ArgQOAjYDZ2fmD4etyCjDSA5BSe3VdOzRi4ylqtti/k8tpAfn3cADHfcvBj6amUcC3wHOrbNiklQYeyQt2EAJTkQcBqwELin3AzgJuKZssgE4vYH6SZpixh5Jwxq0B+djwPuAn5T7BwHPZObz5f7jwKHdnhgRayJiU0Rs2rFjxyh1XVR23UqL4mNMeeyRNJy+CU5EvAV4OjM3D1NAZq7PzBWZuWLp0qXD7ELSFDL2SBrFIAcZnwi8NSJOA/YE9gX+ENg/IpaUX1KHAduaq6akKWTskTS0vj04mfn+zDwsM2eAs4A/z8x3ABuBM8pmq4HrGqtlTeYbZppZe+NOjzskJS2uNsUeSeM3yjw4vw28JyIeoRoXv7SeKknSvIw9kvoaeB4cgMy8Fbi1LD8KHF9/lSRpZ8YeSQu1oARnEg06lOSQkyRJw9vVvke9VIMkSWodExxJktQ6EztE1VRX2MzaG9m6buVQj/d7riSpXrvasIgmhz04kiSpdUxwJElS65jgjGC263TuJIGSJGlxmeBIkqTWMcGRJEmtM7FnUQ1i2GEhh5MkSdOu7d+F9uBIkqTWMcGRJEmts+hDVJM8ed4o3XeT3C5Ju6aFxiRjkKaZPTiSJKl1THAkSVLrLPoQ1aAW69pUC90X2C0sSW3X9jOQ2sAeHEmS1DomOJIkqXUmYojKrj5Jqp+xVdPMHhxJktQ6JjiSJKl1+g5RRcSewJeBl5btr8nM34mII4ArgYOAzcDZmfnDOiq1K3Wr7kp1lXYlixF71DxjpsZlkB6cHwAnZeZrgGOBUyPiBOBi4KOZeSTwHeDcxmopaRoZeyQNrW+Ck5Xvl7u7l1sCJwHXlPUbgNObqKCk6WTskTSKgc6iiojdqLqCjwQ+AXwDeCYzny+bPA4c2uO5a4A1AMuXLwcmv4uyifp5bSpp4eqOPU2a9LgmTZuBDjLOzB9n5rHAYcDxwKsHLSAz12fmisxcsXTp0uFqKWkqGXskDWtBZ1Fl5jPARuAXgP0jYrYH6DBgW71Vk6SKsUfSQvVNcCJiaUTsX5b3An4JeIAq2JxRNlsNXNdQHRu3kK7lmbU3Drz9QraVtLNpiD2SmjPIMTjLgA1lLPwlwNWZeUNE3A9cGRH/BbgTuLTBekqaPsYeSUPrm+Bk5j3AcV3WP0o1Ji5JtTP2SBqFMxlLkqTWMcGRJEmtY4IjSZJaxwRnkfU7y2r2cc/GkiRpcCY4kiSpdUxwGjBqb8vc59t7I0nSwpjgSJKk1jHBkSRJrWOCMySHjSRJmlwmOJIkqXVMcCRJUuuY4EiSpNYxwZEkSa1jgiNJklrHBGcCzKy9caizsjyTS5Kk7kxwJElS65jgSJKk1lky7gKneVils+1b162c97Xo9djs+q3rVtZbOUk7meZYJbWBPTiSJKl1THAkSVLr9E1wIuLwiNgYEfdHxH0R8e6y/sCIuDkiHi5/D2i+uu3Wr0vcLnNNE2OPpFEM0oPzPPDezDwGOAH4zYg4BlgL3JKZRwG3lPuSVBdjj6Sh9U1wMnN7Zt5Rlp8FHgAOBVYBG8pmG4DTG6qjpClk7JE0igUdgxMRM8BxwO3AIZm5vTz0JHBIj+esiYhNEbFpx44do9S1VeoabnLYStPA2CNpoQZOcCLi5cC1wPmZ+b3OxzIzgez2vMxcn5krMnPF0qVLR6qspOlj7JE0jIESnIjYnSrAXJGZny+rn4qIZeXxZcDTzVRR0rQy9kga1iBnUQVwKfBAZv5Bx0PXA6vL8mrguvqrJ2laGXskjWKQmYxPBM4GtkTEXWXdB4B1wNURcS7wGHBmIzWUNK2MPZKG1jfBycyvANHj4ZPrrY4kVYw9kkbhTMZTwrOtJEnTxARHkiS1jgmOJElqnUEOMtYYLeYEgDNrb2TrupW1lC9J0mKyB0eSJLWOCY4kSWodE5yWGXWIa2btjZ5xJUna5ZngSJKk1jHBkSRJrWOCMwZND/nMHVZyiEmSNO1McCRJUuuY4EiSpNYxwdlFLeYwlENgkqRJZ4IjSZJaxwRHkiS1jgnOFFnI2VZ1TvjnkJYkadxMcCRJUuuY4EiSpNYxwWmRJoaC+g1jTZpJrJMkafxMcCRJUuv0TXAi4rKIeDoi7u1Yd2BE3BwRD5e/BzRbTUnTyPgjaViD9OBcDpw6Z91a4JbMPAq4pdzXLqyuoai523Z7rsNIWoDLMf5IGkLfBCczvwz8zZzVq4ANZXkDcHq91ZIk44+k4S0Z8nmHZOb2svwkcEivDSNiDbAGYPny5cSQBao+bb3yeK+2zKy9ka3rVo65NmrQQPFnbuyRNF1GPsg4MxPIeR5fn5krMnPF0qVLRy1Okl4wX/wx9kjTbdgE56mIWAZQ/j5dX5UkaV7GH0l9DZvgXA+sLsurgevqqY4mVb+hrDYNdWniGX8k9TXIaeKfBb4KvCoiHo+Ic4F1wC9FxMPAKeW+JNXK+CNpWH0PMs7Mt/d46OSa6yJJOzH+SBrWsGdRDWXLtu+ybJwFaqzmmwOn22P9zmzy7CfVZcu27zqMKk0ZL9UgSZJaxwRHkiS1zliHqLRra/qyC00MSTksIUnTyR4cSZLUOiY4kiSpdRyiUu0GHRYaZvhodhir87lNnmnlmVyStGuyB0eSJLWOCY4kSWodExwNZVxnJw1STh118WwrSWoXExxJktQ6JjiSJKl1PItKE6XXUNF817Wa73mDlNXEWVKefSVJi8seHEmS1DomOJIkqXVMcDTxhj3DaZgJB2fW3rjTrdt23db3GjbrN5zm2VuS1AwTHEmS1DomOJIkqXVMcNQ6vYaGOh8b9kys+bbp9/x+Z4h11qvuyQsHOTtt1DIkaZKY4EiSpNYxwZEkSa0z0kR/EXEq8IfAbsAlmbmullpJNRtlKKWuiQU7nzfMGV5QTUrYOYlgt8kKuz0+d3+9tu/3/LnPXUzGH0nzGboHJyJ2Az4BvBk4Bnh7RBxTV8UkqRfjj6R+RhmiOh54JDMfzcwfAlcCq+qpliTNy/gjaV6RmcM9MeIM4NTM/LVy/2zgn2XmeXO2WwOsKXf/EXDv8NUdycHAX1v2VJQ9jW1e7LJflZn7jKuwQeLPIsSecbz+TZfRhja0pYw2tGFcZfxsZi6du7Lxi21m5npgPUBEbMrMFU2X2Y1lT0/Z09jmSSh7Mcqdz7hjTxvKaEMb2lJGG9owrjJ6GWWIahtweMf9w8o6SWqa8UfSvEZJcL4OHBURR0TEHsBZwPX1VEuS5mX8kTSvoYeoMvP5iDgP+N9Up2lelpn39Xna+mHLq4FlT0/Z09jmqSp7iPgzjvq1oYw2tKEtZbShDeMqo6uhDzKWJEmaVM5kLEmSWscER5Iktc5YEpyIODUiHoqIRyJibcNlHR4RGyPi/oi4LyLeXdZfFBHbIuKucjutofK3RsSWUsamsu7AiLg5Ih4ufw9ooNxXdbTtroj4XkSc31S7I+KyiHg6Iu7tWNe1nVH5eHn/74mI1zZQ9u9FxINl/1+IiP3L+pmIeK6j/X/cQNk9X+OIeH9p90MR8S8bKPuqjnK3RsRdZX3d7e71uRrLez5i3RuLP71elyZExG4RcWdE3NDQ/vePiGvK5+iBiPiFBsq4oLxO90bEZyNizxr2OXAsqnH/XeNNnWV0PPbeiMiIOLiJMiLinaUt90XEh+suIyKOjYjbShzaFBHHj1LGgmRmozeqAwC/AbwS2AO4GzimwfKWAa8ty/sAf0U1lftFwG+Nob1bgYPnrPswsLYsrwUuHsNr/iTws021G3gD8Frg3n7tBE4D/hQI4ATg9gbKfhOwpCxf3FH2TOd2DbW762tc/u/uBl4KHFE+B7vVWfacx38f+GBD7e71uRrLez5CvRuNP71el4ba8h7gM8ANDe1/A/BrZXkPYP+a938o8E1gr3L/auCcGvY7cCyqcf9d402dZZT1h1MdSP8Yc75XamrHLwJ/Bry03H9FA2XcBLy5LJ8G3Frn/9V8t3H04Ix1SvXM3J6Zd5TlZ4EHqD5Yi2kVVfCg/D294fJOBr6RmY81VUBmfhn4mzmre7VzFfAnWbkN2D8iltVZdmbelJnPl7u3Uc2LUrse7e5lFXBlZv4gM78JPEL1eai97IgI4Ezgs8Puv0/ZvT5XY3nPR9Bo/BlXvImIw4CVwCV177vsfz+qL6dLATLzh5n5TANFLQH2ioglwMuAJ0bd4QJjUS37rzvezPPZ/ijwPmDks4F6lPEbwLrM/EHZ5ukGykhg37K8HzW854MaR4JzKPCtjvuPM6aEIyJmgOOA28uq80qX4mWjdFn2kcBNEbE5qqniAQ7JzO1l+UngkIbKnnUWO3/RjaPd0Lud4/4f+FWq3oNZR5Su/f8TEa9vqMxur/E42/164KnMfLhjXSPtnvO5mpT3vJex1aNLvKnTx6i+6H7SwL6h6mHcAfyP8j9zSUTsXWcBmbkN+Ajw/4DtwHcz86Y6y+gwzpg7N97UIiJWAdsy8+66993haOD1EXF7iRP/tIEyzgd+LyK+RfX+v7+BMrpq7UHGEfFy4Frg/Mz8HvBJ4OeAY6k+XL/fUNGvy8zXUl3l+Dcj4g2dD2bVT9fYuflRTXr2VuBzZdW42r2TptvZS0RcCDwPXFFWbQeWZ+ZxlC7+iNi31/OHtCiv8RxvZ+ektpF2d/lcvWCx3vNJMN/rUsO+3wI8nZmb69zvHEuohhY+Wf5n/pZqaKc2JfFfRZVM/Qywd0T82zrL6KbJ/8su8aau/b4M+ADwwTr328US4ECqYeT/CFxdeoPr9BvABZl5OHABpZdwHMaR4Ix9SvWI2J0q2FyRmZ8HyMynMvPHmfkT4L8zwlDBfMqvlNmuvi+Ucp6a7Z4vf0fqBuzjzcAdmflUqcdY2l30audY/gci4hzgLcA7SlCjDA99uyxvpjoe4+g6y53nNR5Xu5cAvwJc1VGn2tvd7XPFIr/nA2i8Hj1elzqdCLw1IrZSDbGdFBGfrrmMx4HHM3O29+kaqoSnTqcA38zMHZn5I+DzwD+vuYxZjcfcbvGmRj9HlQjeXd73w4A7IuIf1FzO48Dny1Dy16h6CEc6mLmL1VTvNVQ/vMd2kPE4EpyxTqless9LgQcy8w861neO/7+NBq4sHBF7R8Q+s8tUB6LdS9Xe1WWz1cB1dZfdYadf8uNod4de7bwe+HdROYGqa3p7tx0MKyJOperCf2tm/l3H+qURsVtZfiVwFPBozWX3eo2vB86KiJdGxBGl7K/VWXZxCvBgZj7eUada293rc8UivucDajT+zPO61CYz35+Zh2XmDFX9/zwza+35yMwngW9FxKvKqpOB++ssg2po6oSIeFl53U6mOmapCY3G3F7xpi6ZuSUzX5GZM+V9f5zqYPYnay7qi1QHGhMRR1MdXF73lb+fAP5FWT4JeHiebevV7yjkOm5UR07/FdWvyAsbLut1VN2R9wB3ldtpwKeALWX99cCyBsp+JdVZGncD9822FTgIuIXqjf0z4MCG2r438G1gv451jbSbKonaDvyI6sN3bq92Up1J84ny/m8BVjRQ9iNUx1rMvud/XLb9V+W9uAu4A/jlBsru+RoDF5Z2P0Q5k6DOssv6y4Ffn7Nt3e3u9bkay3s+Yt0biz+9XpcG2/JGmjuL6lhgU2nLF4EDGijjQ8CDVD8CPkU5e2fEfQ4ci2rcf9d4U2cZcx7fyuhnUXVrxx7Ap8v7cQdwUgNlvA7YTPW9eDvwT5r4/+1281INkiSpdVp7kLEkSZpeJjiSJKl1THAkSVLrmOBIkqTWMcGRJEmtY4KzCCLi+wNsc36ZzbLJevxMRFxTls+JiD8acj+XR8QZfbZ5Y0Q0NanX3HK6Xm05Io6LiJFn0YyI8yLiV0fdj7QYjD/NMf5MFhOcyXU+1cXoBjY7sdugMvOJzJw3MNTojSxw1tIyQ2+dPgB8vIb9XAa8s4b9SJPqfIw/xp9dnAnOIirZ/q0RcU1EPBgRV5SZX99Fda2WjRGxsWz7poj4akTcERGfK9e+ISK2RsTFEXEH8K8j4l0RcX9UF368smxzUUR8qjz/4Yj492X9TET81MzGEbGybHtwr3LnadPWiPhQ2X5LRLw6qosQ/jpwQUTcFRGvLzPtXhsRXy+3E+fU9S+BT0XEbRHxDzv2f2tErIiI40u97oyI/9sxA2uveu0D/HyWC9eVcjZExF9ExGMR8SsR8eFS5y9FNf0+EbGu4/X8CEBWM5dujYixTTku1c34Y/xpvXHNKOhtp9kev1/+vhH4LtV1Rl4CfJXqYp3QMXMl1bVBvgzsXe7/NvDBju3e17HvJyizgwL7l78XUc0iuVfZ17eoAtgMcG/Z5hzgj6guNfAXwAHzlTunPZcDZ3TU551l+T8Al3TU4bc6nvOZjrYup5rqfna7zcBe5f4FwIfK8jLgobK8L7CkLJ8CXNvxmv7UTK9U05Ff23H/IuArwO7Aa4C/o8w0THUNsdOpZkN9CF6YEHP/judfCLx3sf+XvHlb6M34Y/yZllvdXXBauK9luYZQRNxF9aH/ypxtTgCOAf4yqgu97kEVjGZd1bF8D3BFRHyRarr1Wddl5nPAc+VX2fFUU4x3OglYAbwpM78X1VWM5yu3l9kLq22mughkN6cAx8SLF67dt+PX2fWlrgBXAzcBvwOcSXURQID9gA0RcRTVVPm796nTMmDHnHV/mpk/iogtwG7Al8r6LVTvww3A3wOXRjWu3jm2/jTw6j5lSpPO+FMx/rSQCc7i+0HH8o/p/p4EcHNmvr3HPv62Y3kl8Abgl4ELI+Ifl/Vzr8nR7Rod36C6ntbRVNek6VduL7Nt6tUeqH4xnpCZf9+5sgScF9qTmdsi4tsR8fPAv6Hqagb4XWBjZr6tdEHf2qdOzwF7dqtnZv4kIn6U5acR1RV1l2Tm86Ub+GTgDOA8qiBM2ddzSLs2408H40+7eAzO5HoW2Kcs3wacGBFHwgtXLT967hMi4iXA4Zm5kao7dz9g9lfJqojYMyIOoupG/XqXMh+jukjjn5Rx54HKHaI9UP0qeuFAuYg4dp7nXkV15d79MvOesm4/YFtZPmeA8h8AjhywrrN1enkp839RdVW/puPho2n2yuzSYjL+vMj4s4sywZlc64EvRcTGzNxB9SH6bETcQ9VN2617cjfg06XL807g45n5THnsHmAjVdD43cx8oluhmfkg8A7gc1TjzIOUO4j/Cbxt9iA/4F3AinLw3P28+Muom2uAs6i6i2d9GPivEXEnA/RElnbtVw72G9Q+wA2l7V8B3tPx2InAzQvYl7QrMf68yPizi/Jq4lMgIi6iOrDwI4tdl8UUERcAz2bmJSPu5zjgPZl5dj01k9rL+FMx/oyfPTiaJp9k52MOhnUw8J9q2I+k6WH8GTN7cCRJUuvYgyNJklrHBEeSJLWOCY4kSWodExxJktQ6JjiSJKl1/j+EKoPeDVoRfAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from bmtk.utils.reports.spike_trains import GammaSpikeGenerator\n", "\n", "gsg = GammaSpikeGenerator(population='test', seed=100)\n", "gsg.add(node_ids=nodes, firing_rate=20.0, a=1.5, times=(start_time, end_time))\n", "plot_isi(gsg)\n", "\n", "actual_fr = psg.n_spikes()/(end_time-start_time)/len(nodes)\n", "print(f'Actual Firing Rate (Hz): {actual_fr}')" ] }, { "cell_type": "markdown", "id": "6dbd9820", "metadata": {}, "source": [ "### Application to Coefficient of Variation\n", "\n", "One way that we can see the effect of the refractory period is on the regularity of the spiking pattern, which is often measured using the coefficient of variation (CV) of the ISIs.\n", "\n", "A perfect Poisson process should have a CV of 1, regardless of the firing rate. Indeed that is what we see, plus some noisiness." ] }, { "cell_type": "code", "execution_count": 8, "id": "5c0341c8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0, 1.1)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def cv(psg):\n", " df = psg.to_dataframe()\n", " isi = np.empty([0])\n", " for n in psg.node_ids():\n", " spk_times = df[df['node_ids']==n]['timestamps']\n", " isi = np.append(isi, np.diff(np.array(spk_times)))\n", " return np.std(isi)/np.mean(isi)\n", "\n", "frs = np.logspace(0,2,10)\n", "cvs = np.empty(frs.shape)\n", "for i, fr in enumerate(frs):\n", " psg = PoissonSpikeGenerator(population='test', seed=200)\n", " psg.add(node_ids=nodes, firing_rate=fr, times=(start_time, end_time))\n", " cvs[i] = cv(psg)\n", " \n", "plt.plot(frs, cvs)\n", "plt.ylabel('CV')\n", "plt.xlabel('Firing rate (spk/s)')\n", "plt.ylim((0,1.1))" ] }, { "cell_type": "markdown", "id": "ceae9947", "metadata": {}, "source": [ "However, when we add a refractory period, we see that the CV drops and the firing pattern becomes more regular with increased firing rate. The intervals are short due to the high firing rate, yet they cannot be too short due to the refractory period, compressing the ISI distribution. " ] }, { "cell_type": "code", "execution_count": 9, "id": "9a97d0f6", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "frs = np.logspace(0,2,10)\n", "cvs = np.empty(frs.shape)\n", "for i, fr in enumerate(frs):\n", " psg = PoissonSpikeGenerator(population='test', seed=200)\n", " psg.add(node_ids=nodes, firing_rate=fr, times=(start_time, end_time), abs_ref=0.001, tau_ref= 0.003)\n", " cvs[i] = cv(psg)\n", " \n", "plt.plot(frs, cvs)\n", "plt.ylabel('CV')\n", "plt.xlabel('Firing rate (spk/s)')\n", "plt.ylim((0,1.1))\n", "\n", "plot_isi(psg)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.16" } }, "nbformat": 4, "nbformat_minor": 5 }