https://github.com/NikVard/memstim-hh
Tip revision: 3db0e522a6c40a756534723c3f127da7b7d19860 authored by NikVard on 09 June 2022, 17:36:36 UTC
[RESULTS] opt inp EC fin
[RESULTS] opt inp EC fin
Tip revision: 3db0e52
StimTest.ipynb
{
"cells": [
{
"cell_type": "markdown",
"id": "7965fd0c-a6d6-40a7-bcaa-f85563be00e5",
"metadata": {},
"source": [
"# STIMULATION\n",
"\n",
"### Testing Waveforms\n",
"\n",
"This is the stimulation playground. The function that generates the stimulation is going to be used to make different stimulation waveforms."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "e9380b72-14f0-4736-9010-fa4eff991e5d",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def generate_stim(duration, dt=1e-4, stim_type=\"monophasic\", I_stim=1., stim_on=0., nr_of_trains=5, nr_of_pulses=4, stim_freq=5, pulse_width=.2e-3, pulse_freq=100, ipi=.1e-3):\n",
" ''' Generate a pulse train to be used as the stimulation waveform.\n",
"\n",
" Parameters:\n",
" ---------------------------------------------------------------------------\n",
" * duration : stimulation waveform duration - [sec]\n",
" |\n",
" * dt : sampling rate - [sec]\n",
" |\n",
" * stim_type : \"monophasic\" | \"anodic-first\" | \"cathodic-first\"\n",
" |\n",
" * I_stim : stimulation amplitude - [nA]\n",
" |\n",
" * stim_on : stimulation start time - [sec]\n",
" |\n",
" * nr_of_trains : number of pulse trains i.e. groups of pulses - [1]\n",
" |\n",
" * nr_of_pulses : number of pulses per group - [1]\n",
" |\n",
" * stim_freq : stimulation frequency - [Hz]\n",
" |\n",
" * pulse_width : width (in time) of pulse ON phase - [sec]\n",
" |\n",
" * pulse_freq : pulse frequency; determines ON duration - [Hz]\n",
" |\n",
" * ipi : inter-pulse interval - [sec]\n",
" ---------------------------------------------------------------------------\n",
" '''\n",
" \n",
" # step 0: parse arguments and evaluate\n",
" if pulse_width > 1/pulse_freq:\n",
" raise ValueError('Pulse width is too large for given pulse frequency.')\n",
"\n",
"\n",
" # calculate single pulse duration\n",
" pd = 1./pulse_freq # pulse duration [sec]\n",
" pd_samples = int(pd/dt) # pulse duration [samples]\n",
" pw_samples = int(pulse_width/dt) # pulse width [samples]\n",
" ipi_samples = int(ipi/dt) # inter-pulse interval [samples]\n",
"\n",
" # step 1: create a single pulse\n",
" if stim_type.lower() == \"monophasic\":\n",
" # monophasic pulse\n",
" pulse = np.zeros((1,pd_samples), dtype=\"int\")\n",
" pulse[0,:pw_samples] = 1 # ON state\n",
" else:\n",
" # biphasic pulse\n",
" pulse = np.zeros((1,pd_samples), dtype=\"int\")\n",
" pulse[0,:pw_samples] # ON state\n",
" idx = 0\n",
" pulse[0,0:idx+pw_samples] = 1\n",
" idx += pw_samples\n",
" pulse[0,idx:idx+ipi_samples] = 0\n",
" idx += ipi_samples\n",
" pulse[0,idx:idx+pw_samples] = -1\n",
"\n",
" if stim_type.lower()==\"cathodic-first\":\n",
" pulse *= -1\n",
"\n",
" # step 2: repeat the pulse and add the delay between bursts\n",
" pulse_train = np.tile(pulse, nr_of_pulses)\n",
" delay = int(1/stim_freq/dt - len(pulse_train[0]))\n",
" pulse_train = np.append(pulse_train, np.zeros((1,delay)), axis=1)\n",
"\n",
" # step 3: repeat the whole group\n",
" waveform_ = np.tile(pulse_train, nr_of_trains) # temp array\n",
" \n",
" # step 4: create the stimulation waveform\n",
" tv = np.linspace(0, duration, int(duration/dt)+1)\n",
" stimulation = np.zeros(tv.shape, dtype=\"int\")\n",
"\n",
" # find the nearest time value to the stimulation start time\n",
" def find_nearest(array, value):\n",
" array = np.asarray(array)\n",
" idx = (np.abs(array - value)).argmin()\n",
" return array[idx], idx\n",
"\n",
" v, i = find_nearest(tv, stim_on)\n",
"\n",
" # step 5: clip the waveform, removing unused trailing zeros\n",
" idxs = np.where(waveform_.flatten() != 0)\n",
" idx = np.max(idxs)\n",
" waveform = waveform_[0,:idx+10]\n",
" \n",
" # check that waveform is not too large\n",
" if (i+len(waveform) > len(tv)):\n",
" raise ValueError('Generated signal too large for given duration.')\n",
"\n",
" stimulation[i:i+len(waveform)] = waveform\n",
"\n",
" return I_stim*stimulation\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "5a14898d-3179-47e5-b7f0-2e48d1872fe6",
"metadata": {},
"outputs": [],
"source": [
"# Globals\n",
"second = s = 1\n",
"millisecond = ms = 1e-3\n",
"dt = 0.1*ms\n",
"duration = 1*second\n",
"tv = np.linspace(0, duration, int(duration/dt)+1)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "b36f62bd-7968-40eb-9ce6-8c0a51e26c7b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6IAAAI/CAYAAABtd2SuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABdR0lEQVR4nO3dfbxdVX3n8e8695EY9FYCFU0s2IZKgIg2xjKhVgcjoBlAcagWpjA6pTOvIlIsY/rSsfgwDtrWabGMKWMpaK2gzFRQUFR8oFIwhCdBHjQ8DAQQELgJyX2+e80f5957Yu7eZ+3sh3X22vvzfr14kZy1z8k6e//2Wue399prGWutAAAAAADwpdXrCgAAAAAAmoVEFAAAAADgFYkoAAAAAMArElEAAAAAgFckogAAAAAAr0hEAQAAAABe9ffqH162bJk96KCDevXPp2KtlTGm19VAwxGHqALiEFVBLKIKiENUQQhxeOutt/7CWrt/XFnPEtGDDjpIW7Zs6dU/n8rY2JiWLFnS62qg4YhDVAFxiKogFlEFxCGqIIQ4NMb8v6QyhuYCAAAAALwiEQUAAAAAeEUiCgAAAADwqmfPiAIAAABAr0xPT2vbtm2amJjodVUyiaJIrVY17isODw9r+fLlGhgYSP0eElEAAAAAjbNt2zbtu+++Ouiggyo/+2yc2dlZ9fX19boastbqmWee0bZt23TwwQenfl81UmgAAAAA8GhiYkL77bdfkElolRhjtN9+++31nWUSUQAAAACNRBJajCz7kaG5AAAAANADBx10kPbdd1/19fWpv79fW7ZsKexzt2zZomXLlhXyeWUgEQUAAACAHvne975X6YSxLAzNBQAAAICKOuOMM/Sf//N/1po1a3TIIYfo61//uiTpsssu01lnnbWw3YYNG/T973//l967a9cuvfWtb9WrXvUqHX744briiiskSbfeeqt+93d/V7/1W7+lY489Vk888YQk6cILL9SqVau0evVqvfOd7yz1e3FHFAAAAAB6wBijN7/5zTLG6I/+6I905plnxm738MMPa/PmzXrggQf0xje+UVu3bk31+d/85jf10pe+VNdcc40kafv27ZqentZ73/teXXXVVdp///11xRVX6IMf/KAuueQSXXDBBXrooYc0NDSk0dHRor5mLBJRAAAAAI32ka/9RPc8vqPQz1z10hfqz//d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\n",
"text/plain": [
"<Figure size 1152x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Parameters\n",
"stim_on = 50*ms\n",
"\n",
"stim1 = generate_stim(duration, stim_on=stim_on)\n",
"stim2 = generate_stim(duration, stim_on=stim_on, nr_of_pulses=2)\n",
"stim3 = generate_stim(duration, stim_on=stim_on, nr_of_pulses=10)\n",
"\n",
"fig, axs = plt.subplots(1,1)\n",
"fig.set_size_inches(16,10)\n",
"axs.plot(tv, stim1, label='5 pulses', zorder=2)\n",
"axs.plot(tv, stim2, label='2 pulses', zorder=3)\n",
"axs.plot(tv, stim3, label='10 pulses', zorder=1)\n",
"axs.legend(loc=0)\n",
"axs.grid(linestyle='-', linewidth=.5, alpha=0.25)\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"id": "54a84be9-9090-4da5-bfb0-7974ade2dba2",
"metadata": {},
"source": [
"## Charge-balanced pulses\n",
"\n",
"The code below takes into account different pulse widths in the case of biphasic stimulation (need to be charge-balanced!)."
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "683862ec-ad3e-4a4d-b796-fdc184f8eab0",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def generate_stim(duration, dt=1e-4, I_stim=[1.], stim_on=0., nr_of_trains=5, nr_of_pulses=4, stim_freq=5, pulse_width=[.2e-3], pulse_freq=100, ipi=.1e-3):\n",
" ''' Generate a pulse train to be used as the stimulation waveform.\n",
"\n",
" Parameters:\n",
" ---------------------------------------------------------------------------\n",
" * duration : stimulation waveform duration - [sec]\n",
" |\n",
" * dt : sampling rate - [sec]\n",
" |\n",
" * I_stim : stimulation amplitudes, given in list format [I_first, I_second] - [nA]\n",
" | I < 0 -> cathodic pulse (e.g. I_stim = [-1.,1.] means biphasic, cathodic-first)\n",
" |\n",
" * stim_on : stimulation start time - [sec]\n",
" |\n",
" * nr_of_trains : number of pulse trains i.e. groups of pulses - [1]\n",
" |\n",
" * nr_of_pulses : number of pulses per group - [1]\n",
" |\n",
" * stim_freq : stimulation frequency - [Hz]\n",
" |\n",
" * pulse_width : width (in time) of pulse ON phase, given in list format [pw_first, pw_second] - [sec]\n",
" | I[i] < 0 means pw[i] is the width of the cathodic phase\n",
" |\n",
" * pulse_freq : pulse frequency; determines ON duration - [Hz]\n",
" |\n",
" * ipi : inter-pulse interval - [sec]\n",
" ---------------------------------------------------------------------------\n",
" ''' \n",
" # calculate single pulse duration\n",
" pd = 1./pulse_freq # pulse duration [sec]\n",
" pd_samples = int(pd/dt) # pulse duration [samples]\n",
" \n",
" # step 1: create a single pulse\n",
" if len(I_stim) == 1:\n",
" # monophasic pulse\n",
" I0 = I_stim[0] # get pulse amplitude\n",
" pw = pulse_width[0] # get pulse width\n",
" pw_samples = int(pw/dt) # pulse width [samples]\n",
" \n",
" # evaluation\n",
" if (pw_samples > pd_samples):\n",
" raise ValueError('Pulse width is too large for given pulse frequency.')\n",
"\n",
" # make the pulse\n",
" pulse = np.zeros((1,pd_samples), dtype=\"int\")\n",
" pulse[0,:pw_samples] = I0 # ON state\n",
" \n",
" elif len(I_stim) == 2:\n",
" # biphasic pulse\n",
" I0 = np.array(I_stim)\n",
" pw = np.array(pulse_width)\n",
" \n",
" pw_samples = pw/dt # pulse width [samples]\n",
" pw_samples = pw_samples.astype(int)\n",
" ipi_samples = int(ipi/dt) # inter-pulse interval [samples]\n",
"\n",
" # evaluation\n",
" if ((np.sum(pw_samples) + ipi_samples) > pd_samples):\n",
" raise ValueError('Pulse width is too large for given pulse frequency.')\n",
"\n",
" if np.sum(np.multiply(I0, pw)) != 0:\n",
" raise ValueError('Current settings do not lead to charge-balanced pulses.')\n",
"\n",
" # make the pulse\n",
" pulse = np.zeros((1,pd_samples), dtype=\"int\")\n",
" idx = 0\n",
" pulse[0,0:idx+pw_samples[0]] = I0[0]\n",
" idx += pw_samples[0]\n",
" pulse[0,idx:idx+ipi_samples] = 0\n",
" idx += ipi_samples\n",
" pulse[0,idx:idx+pw_samples[1]] = I0[1]\n",
"\n",
" # step 2: repeat the pulse and add the delay between bursts\n",
" pulse_train = np.tile(pulse, nr_of_pulses)\n",
" delay = int(1/stim_freq/dt - len(pulse_train[0]))\n",
" pulse_train = np.append(pulse_train, np.zeros((1,delay)), axis=1)\n",
"\n",
" # step 3: repeat the whole group\n",
" waveform_ = np.tile(pulse_train, nr_of_trains) # temp array\n",
" \n",
" # step 4: create the stimulation waveform\n",
" tv = np.linspace(0, duration, int(duration/dt)+1)\n",
" stimulation = np.zeros(tv.shape, dtype=\"int\")\n",
"\n",
" # find the nearest time value to the stimulation start time\n",
" def find_nearest(array, value):\n",
" array = np.asarray(array)\n",
" idx = (np.abs(array - value)).argmin()\n",
" return array[idx], idx\n",
"\n",
" v, i = find_nearest(tv, stim_on)\n",
"\n",
" # step 5: clip the waveform, removing unused trailing zeros\n",
" print(waveform_)\n",
" \n",
" idxs = np.where(waveform_.flatten() != 0)\n",
" idx = np.max(idxs)\n",
" waveform = waveform_[0,:idx+10]\n",
" \n",
" # check that waveform is not too large\n",
" if (i+len(waveform) > len(tv)):\n",
" raise ValueError('Generated signal too large for given duration.')\n",
"\n",
" stimulation[i:i+len(waveform)] = waveform\n",
"\n",
" return stimulation\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "790785ae-f490-4688-b2e4-9199688ce9f9",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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AEDMzfAaCSwAILlIWOELQhE+YExEDJDAJhGDEzzAmS4AAABMFwksAAAAACAWSGABAAAAALFAAptkXKAPHxCH8AFxCB84RyzCD8QhPEYCm1QMTPAGsQgfEIcAMI4xEf4igU06CunAF8QiokDcwROTCtsRl4jMlNgjFuEhEtgkYiyCD5gU4SPiEgAAr5HAAgAAAABigQQWAAAAABALbVF3AACAqDkK28EHxCEQqZGREa1bt06Dg4NRd6XhMpmMUik/zmV2dXVpt912U3t7e0Xbk8AmFZMkPEHiAACAX5I6N69bt07bbLONZs2aNbmwWgsaGxtTOp2OuhtyzmnDhg1at26ddt9994oe40fajWgkdHCCZ4hDRKnFP6AgTnKxyJiIKFmy43BwcFA77LBDyyevPjEz7bDDDtM6600Cm0S8KeEF4hAeSeiHNQDAZCSvzTfd15wlxAlnJBHwBRMGfEAcwgeEIXzBmNh0s2bN0jbbbKN0Oq22tjYtX768bs+7fPlyzZgxoy7PFyUSWAAAAADwxB133NESiWajsIQYAABWEMMHLGUHUIEzzjhDZ511lhYuXKg999xTN954oyTpqquu0tlnn13Y7vjjj9edd9456bFbtmzRcccdpwMOOED77LOPrr32WknSAw88oHe+85068MADdfTRR2v9+vWSpEsuuURz587V/PnzdeqppzbnDwzBGdikYpKELwhFAAD8wtysf7nhUT32/Ot1fc65b3qD/vn/zCu7jZnpqKOOkpnp7//+73XmmWeW3G7t2rVatmyZVq9ercMOO0yrVq2qqA+//vWv9aY3vUlLly5VOp3Wxo0bNTIyok984hO6/vrrteOOO+raa6/VF7/4RV155ZW68MIL9fTTT6uzs1N9fX3T/ZMbggQ2gbjuFV7guhp4gTiEJxgT4QPCMHL33HOPdt11V7300ktavHix9t57b73jHe8o2u5973ufUqmUZs+erT322ENPPPFERc+/77776h//8R913nnn6YQTTtDf/u3fauXKlVq5cqUWL14sKfsVO7vssoskaf78+TrttNN00kkn6aSTTqrb31kLElgAAAAAmCDsTGmj7LrrrpKknXbaSSeffLKWLVtWMoGdWrnXzNTW1qZMJlO4r9RX0+y555568MEHdeONN+pLX/qSjjjiCJ188smaN2+e/vjHPxZt/6tf/Up33XWXbrjhBp1//vl65JFH1NYWbQrJNbBJxjJi+IA4BIBxjInwAXEYiS1btmjTpk2F33/zm99on332Kbntz372M2UyGa1evVpr1qzRXnvtpVmzZmnFihXKZDJ69tlntWzZsqLHPf/88+rp6dFpp52mc889Vw8++KD22msvvfzyy4UEdmRkRI8++mjheQ477DBddNFF2rhxozZv3ty4F6BCnIEFAIAPawCAiL344os6+eSTJUmjo6P6wAc+oGOOOabktm9+85u1aNEivf7667rsssvU1dWlQw45RLvvvrvmzp2rOXPm6IADDih63COPPKJzzz1XqVRK7e3t+u53v6uOjg4tWbJE55xzjjZu3KjR0VF96lOf0p577qkPfvCD2rhxo5xzOuecc9Tb29vIl6AiJLBJxzU38AWxiCgVEljiENFxuco5U5cGApEhFptqjz320EMPPVTRtkceeaQuu+yySfeZmX70ox+V3H7t2rWSpKOPPlpHH320xsbGlE6nC+0LFizQXXfdVfS4e+65p8LeNw9LiJOKsw3wBbEIAIBfmJvhMc7AJhFH0+AD4hAeIAzhDYIRPiAOY+Gqq66KuguR4gwsAAAAACAWSGABAAAAALFAAgsAAAAAiAWugU2ofKVDIHrEInxAHMIDThTPgSeIQ/iLM7AAIuX4sAYPEIcAMI4xMRrPPvusDjvsMM2dO1fz5s3Tf/3Xf9XtuWfNmqVXXnmlbs8XJc7AJtHECnNUm0NUrOxNoDmmjoGMiYjKpNgjDhGNou8gZkxsqra2Nn3jG9/QAQccoE2bNunAAw/U4sWLNXfu3Ki75hXOwAIAAABAxHbZZRcdcMABkqRtttlGc+bM0XPPPVe03RlnnKGzzjpLCxcu1J577qkbb7xRUvbrdc4+++zCdscff7zuvPPOSY/dsmWLjjvuOB1wwAHaZ599dO2110qSHnjgAb3zne/UgQceqKOPPlrr16+XJF1yySWaO3eu5s+fr1NPPbURf/a0cQYWAAAAACa6+TzphUfq+5w77yu968KKNl27dq3+9Kc/6W1ve1tg+7Jly7R69WoddthhWrVqVUXP++tf/1pvetObtHTpUqXTaW3cuFEjIyP6xCc+oeuvv1477rijrr32Wn3xi1/UlVdeqQsvvFBPP/20Ojs71dfXV+lf2lCcgQUAAAAAT2zevFmnnHKKvvWtb+kNb3hDyW3e9773KZVKafbs2dpjjz30xBNPVPTc++67r2699Vadd955uvvuu7XtttvqySef1MqVK7V48WItWLBAX//617Vu3TpJ0vz583Xaaafphz/8odra/Dj36Ucv0HxOXGIDP1AoAj4gDuED4hC+IBYrPlNabyMjIzrllFN02mmn6d3vfnfgdlOvVzYztbW1KZPJFO4bHBwsetyee+6pBx98UDfeeKO+9KUv6YgjjtDJJ5+sefPm6Y9//GPR9r/61a9011136YYbbtD555+vRx55JPJEljOwAAAAABAx55w++tGPas6cOfrMZz5Tdtuf/exnymQyWr16tdasWaO99tpLs2bN0ooVK5TJZPTss89q2bJlRY97/vnn1dPTo9NOO03nnnuuHnzwQe211156+eWXCwnsyMiIHn300cLzHHbYYbrooou0ceNGbd68uSF/+3RwBjaJ8kdsOLiGCBlxCB8Qh/BF4WQKwYgIMSZG6ve//71+8IMfaN9999WCBQskSRdccIGOPfbYom3f/OY3a9GiRXr99dd12WWXqaurS4cccoh23313zZ07V3PmzCkUhJrokUce0bnnnqtUKqX29nZ997vfVUdHh5YsWaJzzjlHGzdu1OjoqD71qU9pzz331Ac/+EFt3LhRzjmdc8456u3tbfCrEI4EFgAAAAAi9va3v73i7+A98sgjddlll026z8z0ox/9qOT2a9eulSQdffTROvroozU2NqZ0Ol1oX7Bgge66666ix91zzz0V9r55WEKcdHy/F3xBLMIHhCF8wHgITxR9LyzgAc7AAgAAAEBMXHXVVVF3IVKcgU0qqsvBF8QifEAcwgfEIXxBLMJjJLAAAAAAgFgggU0irmeAD4hD+IA4hC+IRXiBOIT/SGABAAAAALFAAptkXN8AHxCH8AFxCE9U+hUaQEMRh5H5yEc+op122kn77LPPpPtfffVVLV68WLNnz9bixYv12muv1eXfO+OMM7RkyZK6PFezkMACAAAAgAfOOOMM/frXvy66/8ILL9QRRxyhp556SkcccYQuvPDCCHrnBxLYpMofWeOaG0SNWIQPcnHIdx4iUoyH8AVnYCPzjne8Q9tvv33R/ddff71OP/10SdLpp5+uX/7yl0XbXHXVVTrxxBN16KGHavbs2fqXf/kXSdLatWsnndG9+OKLC20TnXfeeZo7d67mz5+vz372s5Kkl19+WaeccooOOuggHXTQQfr9738vSfrd736nBQsWaMGCBdp///21adOmmv/2SvE9sAAAAAAwwUXLLtITrz5R1+fce/u99blFn6vqsS+++KJ22WUXSdLOO++sF198seR2y5Yt08qVK9XT06ODDjpIxx13nGbMmBH6/Bs2bNB1112nJ554Qmamvr4+SdInP/lJffrTn9bb3/52PfPMMzr66KP1+OOP6+KLL9all16qQw45RJs3b1ZXV1dVf1c1OAObRBzYhQ84wwAfEIfwhDE5wweMibFgZoErhhYvXqwddthB3d3deve736177rmnoufcdttt1dXVpY9+9KP6xS9+oZ6eHknSbbfdprPPPlsLFizQCSecoNdff12bN2/WIYccos985jO65JJL1NfXp7a25p0XrelfMrP3SvqqpDmSFjnnlgdsd4yk/5KUlnSFc+7C3P27S7pG0g6SHpD0f51zw7X0CQAAAABqUe2Z0kZ54xvfqPXr12uXXXbR+vXrtdNOO5Xcbmpia2Zqa2tTJpMp3Dc4OFj0uLa2Ni1btky33367lixZov/+7//Wb3/7W2UyGd17771FZ1jPO+88HXfccbrpppt0yCGH6JZbbtHee+9dh780XK1nYFdKereku4I2MLO0pEslvUvSXEnvN7O5ueaLJH3TOfdXkl6T9NEa+wMAAAAALeWEE07Q1VdfLUm6+uqrdeKJJ5bc7tZbb9Wrr76qgYEB/fKXv9QhhxyiN77xjXrppZe0YcMGDQ0N6cYbbyx63ObNm7Vx40Yde+yx+uY3v6mHHnpIknTUUUfp29/+dmG7FStWSJJWr16tfffdV5/73Od00EEH6Ykn6rvcupyaEljn3OPOuSdDNlskaZVzbk3u7Oo1kk607OGBwyXl6zZfLemkWvoDAAAAAHH1/ve/XwcffLCefPJJ7bbbbvre974nKXvG89Zbb9Xs2bN122236bzzziv5+EWLFumUU07R/Pnzdcopp2jhwoVqb2/XV77yFS1atEiLFy8ueaZ006ZNOv744zV//ny9/e1v13/+539Kki655BItX75c8+fP19y5c3XZZZdJkr71rW9pn3320fz589Xe3q53vetdDXpFijVjsfKukp6dcHudpLcpu2y4zzk3OuH+XZvQH0gaee45yUztu/KSI1r9998fdRcA4hBeGH72WWlsTJ1v/auou4KEY0yMzk9+8pOS9++www66/fbbQx+/2267laxQfM455+icc84p3B4bG5OUrVyct2zZsqLHzZgxQ9dee23R/RPPyjZbaAJrZrdJ2rlE0xedc9fXv0uB/ThT0pmSNHPmTPX39zfrn562gYGBqLtQVsdBB2lw1erc7wu9fi1RG59j0e2+u9r32ktuaEjdh75T/UNDsmEugW9FXsehc+p+xzs08swz6th7L7m3vIUxsUX5HIeS1P62RUr95S/Z3xcyN7cyr2Nxjz3UvueecsPD6jn88MTFYSaTKSR2cZTJZOScq+hvqHS7ZslkMhXHm7k6fM+Tmd0p6bOlijiZ2cGSvuqcOzp3+/O5pgslvSxpZ+fc6NTtylm4cKFbvrxkvSgv9Pf3Fyp3AVEiFuED4hA+IA7hC2LRX48//rjmzJkTdTeaYmxsTOl0OupuFJR67c3sAefcwqnbNuNrdO6XNNvMdjezDkmnSlrqspnzHZLek9vudElNO6MLAAAAAIiXmhJYMzvZzNZJOljSr8zsltz9bzKzmyQpd43r2ZJukfS4pJ865x7NPcXnJH3GzFYpe03s92rpDwAAAACgddVUxMk5d52k60rc/7ykYyfcvknSTSW2W6NslWIAAAAAAMpqxhJiAAAAAABqRgILAAAAAB544YUXdOqpp+qtb32rDjzwQB177LH685//rLVr16q7u1sLFizQfvvtp7/5m7/Rk08+WfT4O++8U8cff3zJ5z722GPV19dX9t+fNWuWXnnllZr/jr/5m7+p+TmCkMACAAAAQMScczr55JN16KGHavXq1XrggQf0b//2b3rxxRclSW9961u1YsUKPfTQQzr99NN1wQUXTOv5b7rpJvX29jag58X+8Ic/NOy5SWABAAAAIGJ33HGH2tvbddZZZxXu22+//fS3f/u3Rdu+/vrr2m677Uo+z+uvv67jjjtOe+21l8466yxlMhlJ42dX165dq3nz5um0007TnDlz9J73vGfSd7B++9vf1gEHHKB9991XTzzxhCRp2bJlOvjgg7X//vtPOvv76KOPatGiRVqwYIHmz5+vp556SpK09dZbF57voosu0r777qv99ttP5513Xo2vUo1FnAAAAACg1bxwwQUaevyJuj5n55y9tfMXvhDYvnLlSh144IGB7atXr9aCBQu0adMm9ff367777iu53bJly/TYY4/pLW95i4455hj94he/0Hve855J2zz55JP63ve+p0MOOUQf+chH9J3vfEef/exnJUkzZszQgw8+qO985zu6+OKLdcUVV2jvvffW3Xffrba2Nt122236whe+oJ///Oe67LLL9MlPflKnnXaahoeHNTY2Nunfufnmm3X99dfrvvvuU09Pj1599dVKX65AnIEFAAAAAM/llxCvXr1a3/rWt3TmmWeW3G7RokXaY489lE6n9f73v1/33HNP0TYzZ87UIYccIkn64Ac/OGmbd7/73ZKkAw88UGvXrpUkbdy4Ue9973u1zz776NOf/rQefTT7ragHH3ywLrjgAl100UX6y1/+ou7u7kn/zm233aYPf/jD6unpkSRtv/32tb0I4gwsAAAAAExS7kxpo8ybN09LliypaNsTTjhBH/7wh0u2mVnZ22HbdHZ2SpLS6bRGR0clSV/+8pd12GGH6brrrtPatWt16KGHSpI+8IEP6G1ve5t+9atf6dhjj9X//M//6PDDD6/ob6gWZ2ABAAAAIGKHH364hoaGdPnllxfue/jhh3X33XcXbXvPPfforW99a8nnWbZsmZ5++mllMhlde+21evvb3160zTPPPKM//vGPkqQf//jHJbeZaOPGjdp1110lSVdddVXh/jVr1miPPfbQOeecoxNPPFEPP/zwpMctXrxY3//+9wvX2LKEGAAAAABagJnpuuuu02233aa3vvWtmjdvnj7/+c9r5513ljR+Dex+++2nL3zhC7riiitKPs9BBx2ks88+W3PmzNHuu++uk08+uWibvfbaS5deeqnmzJmj1157TR//+MfL9u2f/umf9PnPf177779/4aysJP30pz/VPvvsowULFmjlypX60Ic+NOlxxxxzjE444QQtXLhQCxYs0MUXXzzdl6WIOedqfpJmW7hwoVu+fHnU3QjU399fWOcNRIlYhA+IQ/iAOIQviEV/Pf7445ozZ07U3Wi4tWvX6vjjj9fKlSuj7kpBqdfezB5wzi2cui1nYAEAAAAAsUACCwAAAAAJMWvWLD300ENRd6NqJLAAAAAAgFgggQUAAAAASXGsDxR3033NSWABAAAAJF5XV5c2bNhAEttEzjlt2LBBXV1dFT+mrYH9AQAAAIBY2G233bRu3Tq9/PLLUXel4TKZjFIpP85ldnV1abfddqt4exJYAAAAAInX3t6u3XffPepuNEWcv87Jj7QbAAAAAIAQJLAAAAAAgFgggQUAAAAAxILFscqWmb0s6S9R96OMGZJeiboTgIhF+IE4hA+IQ/iCWIQP4hCHb3HO7Tj1zlgmsL4zs+XOuYVR9wMgFuED4hA+IA7hC2IRPohzHLKEGAAAAAAQCySwAAAAAIBYIIFtjMuj7gCQQyzCB8QhfEAcwhfEInwQ2zjkGlgAAAAAQCxwBhYAAAAAEAsksDUws2PM7EkzW2Vm55Vo7zSza3Pt95nZrAi6iRZXQRx+xsweM7OHzex2M3tLFP1E6wuLxQnbnWJmzsxiWf0QfqskDs3sfblx8VEz+3Gz+4jWV8Hc/GYzu8PM/pSbn4+Nop9obWZ2pZm9ZGYrA9rNzC7JxenDZnZAs/tYDRLYKplZWtKlkt4laa6k95vZ3CmbfVTSa865v5L0TUkXNbeXaHUVxuGfJC10zs2XtETSvze3l0iCCmNRZraNpE9Kuq+5PUQSVBKHZjZb0uclHeKcmyfpU83uJ1pbhePhlyT91Dm3v6RTJX2nub1EQlwl6Zgy7e+SNDv335mSvtuEPtWMBLZ6iyStcs6tcc4NS7pG0olTtjlR0tW535dIOsLMrIl9ROsLjUPn3B3Ouf7czXsl7dbkPiIZKhkTJelflT2YN9jMziExKonD/0/Spc651yTJOfdSk/uI1ldJHDpJb8j9vq2k55vYPySEc+4uSa+W2eRESf/rsu6V1GtmuzSnd9Ujga3erpKenXB7Xe6+kts450YlbZS0Q1N6h6SoJA4n+qikmxvaIyRVaCzmlibNdM79qpkdQ6JUMibuKWlPM/u9md1rZuXOTgDVqCQOvyrpg2a2TtJNkj7RnK4Bk0z3c6QX2qLuAIDmMLMPSloo6Z1R9wXJY2YpSf8p6YyIuwK0Kbtc7lBlV6TcZWb7Ouf6ouwUEuf9kq5yzn3DzA6W9AMz28c5l4m6Y4DvOANbveckzZxwe7fcfSW3MbM2ZZeIbGhK75AUlcShzOxISV+UdIJzbqhJfUOyhMXiNpL2kXSnma2V9NeSllLICXVWyZi4TtJS59yIc+5pSX9WNqEF6qWSOPyopJ9KknPuj5K6JM1oSu+AcRV9jvQNCWz17pc028x2N7MOZS/AXzplm6WSTs/9/h5Jv3V88S7qKzQOzWx/Sf+jbPLKtV5olLKx6Jzb6Jyb4Zyb5Zybpez12Cc455ZH0120qErm5l8qe/ZVZjZD2SXFa5rYR7S+SuLwGUlHSJKZzVE2gX25qb0EsnH5oVw14r+WtNE5tz7qToVhCXGVnHOjZna2pFskpSVd6Zx71My+Jmm5c26ppO8puyRklbIXUJ8aXY/RiiqMw/+QtLWkn+VqiD3jnDshsk6jJVUYi0BDVRiHt0g6yswekzQm6VznHKujUDcVxuE/Svp/ZvZpZQs6ncFJDtSbmf1E2QN2M3LXW/+zpHZJcs5dpuz118dKWiWpX9KHo+np9BjvFQAAAABAHLCEGAAAAAAQCySwAAAAAIBYIIEFAAAAAMQCCSwAAAAAIBZIYAEAAAAAsUACCwAAAACIBRJYAAAAAEAskMACAAAAAGLh/wcjWGaTEh1RiwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 1152x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Parameters\n",
"stim_on = 50*ms\n",
"\n",
"stim1 = generate_stim(duration, stim_on=stim_on)\n",
"stim2 = generate_stim(duration, stim_on=stim_on, nr_of_pulses=2)\n",
"stim3 = generate_stim(duration, stim_on=stim_on, nr_of_pulses=10)\n",
"stim4 = generate_stim(duration, stim_on=stim_on, nr_of_pulses=1, I_stim=[-1,+1], pulse_width=[2.5e-3,2.5e-3])\n",
"\n",
"fig, axs = plt.subplots(1,1)\n",
"fig.set_size_inches(16,10)\n",
"axs.plot(tv, stim1, label='5 pulses', zorder=2)\n",
"axs.plot(tv, stim2, label='2 pulses', zorder=3)\n",
"axs.plot(tv, stim3, label='10 pulses', zorder=1)\n",
"axs.plot(tv, stim4, label='CB biphasic')\n",
"axs.legend(loc=0)\n",
"axs.grid(linestyle='-', linewidth=.5, alpha=0.25)\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "435af654-9b6b-4f2e-bb3d-7a681aac424c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1. 1. 0. ... 0. 0. 0.]]\n",
"[[1. 1. 0. ... 0. 0. 0.]]\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f7b98372be0>]"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1152x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from brian2 import *\n",
"\n",
"# Stimulation settings\n",
"I_stim = [1.] # [nA]\n",
"pulse_width = [.2e-3]\n",
"stim_freq = 5. # [Hz]\n",
"stim_duration = 1. # [sec]\n",
"stim_dt = 0.1e-3 # [sec]\n",
"stim_onset = 50e-3 # [sec]\n",
"nr_of_trains = 5\n",
"nr_of_pulses = 4\n",
"pulse_freq = 100. # [Hz]\n",
"stim_ipi = .1e-3 # [sec]\n",
"\n",
"stim1 = generate_stim(duration=stim_duration,\n",
" dt=stim_dt,\n",
" I_stim=I_stim,\n",
" stim_on=stim_onset,\n",
" nr_of_trains=nr_of_trains,\n",
" nr_of_pulses=nr_of_pulses,\n",
" stim_freq=stim_freq,\n",
" pulse_width=pulse_width,\n",
" pulse_freq=pulse_freq,\n",
" ipi=stim_ipi)\n",
"\n",
"xstim = generate_stim(duration=stim_duration, dt=.1e-3)\n",
"\n",
"fig, axs = plt.subplots(1,1)\n",
"fig.set_size_inches(16,10)\n",
"axs.plot(tv, stim1, label='5 pulses')\n",
"axs.plot(tv, xstim)\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "c6c2cd39-f619-4fb9-99c7-af01b38c0222",
"metadata": {},
"outputs": [],
"source": [
"stim_TA = TimedArray(values=stim1*nA, dt=stim_dt*second, name='Input_stim')\n",
"\n",
"stim_tmp = []\n",
"for ii in arange(0,5000):\n",
" stim_tmp.append(stim_TA((ii/10)*ms))"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "0df5c600-d6fd-46de-86ab-04cc2b4dc2f3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f7b982f12e0>]"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1152x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, axs = plt.subplots(1,1)\n",
"fig.set_size_inches(16,10)\n",
"axs.plot(tv[0:5000], stim_tmp, label='5 pulses')"
]
}
],
"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.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
