septum-mec/actions/waveform-analysis/data/10_waveform_analysis.ipynb

1466 lines
184 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"08:31:25 [I] klustakwik KlustaKwik2 version 0.2.6\n"
]
}
],
"source": [
"import os\n",
"import expipe\n",
"import pathlib\n",
"import numpy as np\n",
"import spatial_maps.stats as stats\n",
"import septum_mec\n",
"import septum_mec.analysis.data_processing as dp\n",
"import septum_mec.analysis.registration\n",
"import head_direction.head as head\n",
"import spatial_maps as sp\n",
"import speed_cells.speed as spd\n",
"import re\n",
"import joblib\n",
"import multiprocessing\n",
"import shutil\n",
"import psutil\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from distutils.dir_util import copy_tree\n",
"from neo import SpikeTrain\n",
"import scipy\n",
"\n",
"from tqdm.notebook import tqdm_notebook as tqdm\n",
"tqdm.pandas()\n",
"\n",
"from spike_statistics.core import permutation_resampling\n",
"\n",
"from spikewaveform.core import calculate_waveform_features_from_template, cluster_waveform_features\n",
"\n",
"from septum_mec.analysis.plotting import violinplot"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"color_control = '#4393c3'\n",
"color_stimulated = '#d6604d'\n",
"\n",
"color_bs = '#5aae61'\n",
"color_ns = '#9970ab'\n",
"\n",
"figsize_violin = (1.7, 3)\n",
"figsize_gen = (4, 3)\n",
"\n",
"output_path = pathlib.Path(\"output\") / \"waveform-analysis\"\n",
"(output_path / \"statistics\").mkdir(exist_ok=True, parents=True)\n",
"(output_path / \"figures\").mkdir(exist_ok=True, parents=True)\n",
"output_path.mkdir(exist_ok=True)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"data_loader = dp.Data()\n",
"actions = data_loader.actions\n",
"project = data_loader.project"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"N cells: 1284\n"
]
}
],
"source": [
"identify_neurons = actions['identify-neurons']\n",
"sessions = pd.read_csv(identify_neurons.data_path('sessions'))\n",
"units = pd.read_csv(identify_neurons.data_path('units'))\n",
"session_units = pd.merge(sessions, units, on='action')\n",
"#########################3\n",
"# session_units = session_units.drop_duplicates('unit_id')\n",
"#################################\n",
"print('N cells:',session_units.shape[0])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>action</th>\n",
" <th>baseline</th>\n",
" <th>entity</th>\n",
" <th>frequency</th>\n",
" <th>i</th>\n",
" <th>ii</th>\n",
" <th>session</th>\n",
" <th>stim_location</th>\n",
" <th>stimulated</th>\n",
" <th>tag</th>\n",
" <th>date</th>\n",
" <th>entity_date</th>\n",
" <th>Hz11</th>\n",
" <th>Hz30</th>\n",
" <th>channel_group</th>\n",
" <th>max_depth_delta</th>\n",
" <th>max_dissimilarity</th>\n",
" <th>unit_id</th>\n",
" <th>unit_idnum</th>\n",
" <th>unit_name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1849-060319-3</td>\n",
" <td>True</td>\n",
" <td>1849</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>baseline ii</td>\n",
" <td>60319</td>\n",
" <td>1849-060319</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>0.05</td>\n",
" <td>f129d848-ebee-4555-965f-420e402eb820</td>\n",
" <td>703</td>\n",
" <td>104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1849-060319-3</td>\n",
" <td>True</td>\n",
" <td>1849</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>baseline ii</td>\n",
" <td>60319</td>\n",
" <td>1849-060319</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>0.05</td>\n",
" <td>b50f3878-32aa-40e9-8753-9f401ef32a23</td>\n",
" <td>704</td>\n",
" <td>108</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1849-060319-3</td>\n",
" <td>True</td>\n",
" <td>1849</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>baseline ii</td>\n",
" <td>60319</td>\n",
" <td>1849-060319</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>0.05</td>\n",
" <td>b1626e1a-0469-4ee0-a812-88ee18accd39</td>\n",
" <td>705</td>\n",
" <td>85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1849-060319-3</td>\n",
" <td>True</td>\n",
" <td>1849</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>baseline ii</td>\n",
" <td>60319</td>\n",
" <td>1849-060319</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>0.05</td>\n",
" <td>feb62d54-f173-4a3c-939c-8c1465e71b0f</td>\n",
" <td>706</td>\n",
" <td>94</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1849-060319-3</td>\n",
" <td>True</td>\n",
" <td>1849</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>baseline ii</td>\n",
" <td>60319</td>\n",
" <td>1849-060319</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>0.05</td>\n",
" <td>3498a09b-b943-4917-866a-8910dbcfd0cd</td>\n",
" <td>707</td>\n",
" <td>98</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" action baseline entity frequency i ii session \\\n",
"0 1849-060319-3 True 1849 NaN False True 3 \n",
"1 1849-060319-3 True 1849 NaN False True 3 \n",
"2 1849-060319-3 True 1849 NaN False True 3 \n",
"3 1849-060319-3 True 1849 NaN False True 3 \n",
"4 1849-060319-3 True 1849 NaN False True 3 \n",
"\n",
" stim_location stimulated tag date entity_date Hz11 Hz30 \\\n",
"0 NaN False baseline ii 60319 1849-060319 False True \n",
"1 NaN False baseline ii 60319 1849-060319 False True \n",
"2 NaN False baseline ii 60319 1849-060319 False True \n",
"3 NaN False baseline ii 60319 1849-060319 False True \n",
"4 NaN False baseline ii 60319 1849-060319 False True \n",
"\n",
" channel_group max_depth_delta max_dissimilarity \\\n",
"0 1 100 0.05 \n",
"1 1 100 0.05 \n",
"2 1 100 0.05 \n",
"3 1 100 0.05 \n",
"4 1 100 0.05 \n",
"\n",
" unit_id unit_idnum unit_name \n",
"0 f129d848-ebee-4555-965f-420e402eb820 703 104 \n",
"1 b50f3878-32aa-40e9-8753-9f401ef32a23 704 108 \n",
"2 b1626e1a-0469-4ee0-a812-88ee18accd39 705 85 \n",
"3 feb62d54-f173-4a3c-939c-8c1465e71b0f 706 94 \n",
"4 3498a09b-b943-4917-866a-8910dbcfd0cd 707 98 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"session_units.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"action\n",
"1833-010719-2 33\n",
"1833-010719-1 29\n",
"1833-290519-1 28\n",
"1833-020719-3 27\n",
"1849-280219-1 26\n",
" ..\n",
"1849-110319-3 4\n",
"1839-060619-4 4\n",
"1839-060619-3 4\n",
"1839-120619-1 3\n",
"1839-060619-1 2\n",
"Name: unit_name, Length: 87, dtype: int64"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# session_units.groupby('action').count().unit_name.hist()\n",
"session_units.groupby('action').count().sort_values('unit_name', ascending=False).unit_name"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Process all data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def features(row):\n",
" action_id = row['action']\n",
" channel_id = row['channel_group']\n",
" unit = row['unit_name']\n",
" template = data_loader.template(action_id, channel_id, unit)\n",
" spike_times = data_loader.spike_train(action_id, channel_id, unit)\n",
" half_widths, peak_to_troughs = calculate_waveform_features_from_template(\n",
" template.data, template.sampling_rate)\n",
" peak_amps = template.data.min(axis=1)\n",
" half_widths = half_widths * 1000 # to ms\n",
" peak_to_troughs = peak_to_troughs * 1000 # to ms\n",
" idxs = np.argsort(peak_amps)\n",
" peak_to_trough = np.nan\n",
" for p2t in peak_to_troughs[idxs]:\n",
" if np.isfinite(p2t) and p2t > .1:\n",
" peak_to_trough = p2t\n",
" break\n",
" half_width = np.nan\n",
" for hw in half_widths[idxs]:\n",
" if np.isfinite(hw):\n",
" half_width = hw\n",
" break\n",
" \n",
" return pd.Series({\n",
" 'half_width': half_width,\n",
" 'peak_to_trough': peak_to_trough,\n",
" 'average_firing_rate': float(len(spike_times) / spike_times.t_stop),\n",
" 'template': template.data[idxs[0]]\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "39294999a86e4f8ea477c5180a80e8c6",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"HBox(children=(IntProgress(value=0, max=1284), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"results = session_units.merge(\n",
" session_units.progress_apply(features, axis=1), \n",
" left_index=True, right_index=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"> \u001b[0;32m/home/mikkel/apps/expipe-project/septum-mec/septum_mec/analysis/data_processing.py\u001b[0m(619)\u001b[0;36mtemplate\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32m 617 \u001b[0;31m lim=lim)\n",
"\u001b[0m\u001b[0;32m 618 \u001b[0;31m }\n",
"\u001b[0m\u001b[0;32m--> 619 \u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_templates\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0maction_id\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mchannel_group\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0munit_id\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[0;32m 620 \u001b[0;31m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[0;32m 621 \u001b[0;31m \u001b[0;32mdef\u001b[0m \u001b[0mspike_train\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maction_id\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchannel_group\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0munit_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0m\n",
"ipdb> action_id\n",
"'1834-010319-3'\n",
"ipdb> channel_group\n",
"0\n",
"ipdb> unit_id\n",
"72\n"
]
}
],
"source": [
"%debug"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"df = results.loc[:, ['half_width', 'peak_to_trough']].dropna()\n",
"\n",
"idxs_df = cluster_waveform_features(df.half_width, df.peak_to_trough)\n",
"\n",
"results.loc[df.index, 'bs'] = idxs_df"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQ8AAADiCAYAAABQgkLWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3de3xU1bnw8d9MgqASIJiEQEK4zwohjakoSYBaX9sqcgd922prWyu+vXATEN+jbU/ltbXn1FKU2ot4q8dDra2EhFvR4+nxBgkoChhCVkAUCCEkIBCEAElmv3/smWESkslkMnsumef7+eSTzOzJ3s+emf3stdZea22bYRgIIURn2cMdgBAiOknyEEIERJKHECIgkjyEEAGR5CGECEh8uAPwx44dO1Li4+OfBbKRhCdEKDiBsqampjljx46tbesFUZE84uPjn01NTR2dnJx80m63y7VlISzmdDptdXV1WTU1Nc8C09t6TbScxbOTk5PrJXEIERp2u91ITk4+jVnab/s1IYynK+ySOIQILdcx126OiJbkIYSIMFHR5hEJ3nzzzYRFixaNKC4u3pORkdEI8Mgjj6QNHz78fHJycuMLL7yQCnD+/Hn7nXfeWXvnnXd+Ft6IhTC/tw8++ODwjIyM84Zh0NjYaHvkkUcOpqenNz700ENDzp07Z29oaIgbOnRow2OPPXboqquu8ruEL8mjE3r06GEsXbp02Msvv1xpt18qtP3iF78YsmHDhvLExMTm+vp6+9SpU8fcfPPN9QMGDGgKY7hCAJCbm3tm1apVBwBef/31PitWrEgbNmzY+fz8/Pr77ruvDuDhhx8e/NxzzyXPnz+/zSsrbZFqSyfk5uae6dOnT9OqVauSvZ/v3bt389NPP51SVlbWq3fv3s7XX3+9TBKHiESnTp2KS0xMbEpKSmp84403Et94442Ec+fO2ZYtW3b4Rz/6kd+JA7p58ji452hCsNf5q1/96uDLL788YN++fT3dz/35z3+ubGhosC9ZsmR4QUHBtStWrBjodDqDvWkRA5qdzWyv3tGn2dkctHXu3Lkz4Y477lAzZszIfPTRR4dOnTr1s7lz5x6bPHnyieeeey514sSJ1957770jq6ure3Rmvd02eRzcczThtWe3OIKdQJKSkpofeOCBw0uXLh3mdDptp0+fjjt48GDPZcuWHXnttdfK16xZU15SUtJn48aNfYO5XREbdtTs7PPU9j+N3FGzs0+w1pmbm3vm1Vdf1cXFxRV///vfyx966KHhmzZt6nvXXXedePnll/dt3bp115gxY84uW7YsozPr7bbJY8iYgWdunTOhcsiYgWeCve5p06adzsjIOL958+ZrLl68aF+6dOnwmpqaeICBAwc29u/fv7Fnz55yaVl02tjU3Pp54364f2xqbr0V63dXp1evXp3yyiuvXAPQq1cvw+FwNPTo0aNTxeVu3WBqReJwe/TRRw9NmTJlTHJycuODDz54aM6cOaPi4uIMp9NpmzBhwqlbbrnFkg9fdG9x9jjGDRob1O+Ou9pit9uNhoaGuIULFx7+yle+Uv+Tn/wkY/Xq1QN69uzp7Nu3b+Njjz12qDPrtUXDTGK7du369Nprrz0e7jiEiDW7du1Kuvbaa4e2tazbVluEENaS5CGECEi0JA+n0+m0hTsIIWKJ65hrtxE1WpJHWV1dXV9JIEKEhmtIfl+grL3XRMXVlqampjk1NTXP1tTUyGRAQoSGZzKg9l4QFVdbhBCRR87iQoiASPIQQgQk6G0eSqkewPPAUKAn8Aut9Tqv5dOAfwWagOe11s90tM68vDwjLS0t2KEKITqwZ8+e41rr5LaWWdFg+m3ghNb6bqVUf2AnsA48iWUFcANwFtiilFqntT7ma4VpaWkUFhZaEKoQwhel1MH2lllRbfk78DPX3zbMEobbaGC/1vqk1voi8C5wowUxCCEsFvSSh9b6cwClVALwKvBTr8V9gNNej88AMnRdiChkSYOpUmow8D/AS1rrv3gtqge859dIAE5ZEYMQwlpWNJgOAF4H5mmt/7vV4r3AKFdbyOeYVZbfBDsGIYT1rGgwfRhIBH6mlHK3fTwDXK21XqWUWgy8hlnqeV5rfcSCGEQEchpOymrLyU7Jwm6TXgLRzoo2j4XAQh/L1wPrg71dEfnKastZXrqSJfkLyBnQ7o3IRJSQ9C9CJjsliyX5C8hOyQp3KCIIomJgnOge7Da7lDi6ESl5CCECIslDCBEQSR5CiIBI8hBCBESShxAiIJI8hBABkeQhhAiIJA8hREAkeQghAiLJQwgREEkeQoiASPIQQgREkocQIiCSPIQQAZHkIYQIiCQPIURAJHkIIQIiyUMIERBJHkKIgEjyEEIERJKHECIgkjyEEAGR5CGECEhMJQ+n4WT3sTKchjPcoQgR9WIqebhvd1hWWx7uUISIejGVPOR2h0JKn8ETU8nDfbtDuUN77JLSZ/DIUSRiipQ+g0dudC1iitxsO3ik5CGECIhlJQ+lVB7w71rrm1o9vwiYA9S5nvqB1lpbFYcQwhqWJA+l1IPA3cDZNhaPBb6jtd5hxbaFEKFhVbXlY2B2O8vGAg8ppd5VSj1k0faFEBazJHlordcAje0s/ivwQ+BmYKJSaqoVMQghrBXSBlOllA14Qmt9XGt9EdgIfDGUMQghgiPUl2r7AGVKqdGY7SE3A8+HOAYhRBCEJHkope4CemutVymlHgb+B7gA/LfWelMoYhBCBJdlyUNr/SmQ7/r7L17PvwS8ZNV2hRCh4VfyUEolAVe5H2utD1kWkRAiKnSYPJRSq4CvAMcAG2AA4y2OSwgR4fwpeeQAI7XWhtXBCCGihz+XaquBBKsDEUJEl3ZLHkqpEswqSgqwTyl1wLXI0FpLtUWIGOer2vLNkEUhhIg67SYPrfVBAKVU605cjUqpw8DvtdYnrQxOCBG5/GnzuBKz3eMV4CCQBvQEXrQwLuEnmZNThIs/ySNZa/1TrfVrWutlwBVa658B/SyOTfhB5uQU4eJP8uijlMoEcP1OUEpdA/S2NDLhF5mTU4SLP/085gGrlVKDgEPAXOAbwC+tDEz4R+bkFOHSYfLQWm/HnMDH2/vWhCOEiBb+dE//BLO/h1u91jrXupCEENHAnzaPTGA0kIU5L+mbVgbUFXLlQYRbLH0HO0weWusLrp/zWustwHUhiCsgcuVBhFssfQf9qbb8ikvVlkFAxKZUufIgwi2WvoP+XG2p8Pp7F7DZoli6TK48dC9Ow0lZbTnZKVlRc3/hWPoO+vOJrMbs0zEOSAUaLI0oSsRS3TZcYqkKEI38SR5PA8OB/wKGAs9aGVC0kC+29WKpCuBLpJ6o/Ekeo7TWS7TWRVrrRcBIq4OKBvLFtp67ChCOKkskHbCReqLy51PppZS6CkApdSUQZ21Ikc39pQLC9sWOFeE8gN0H7Hq9KewJJFJPVP58858Adiml1gI7gRXWhhTZIvUsAF072CLpTOtm9Xvta5+zU7KYraazpqKY3cfKwvrehLME5os/0RwF8jDHsozXWv/V2pAiW6SeBaBrB1skJkWr32tf+2y32ZmmJvNAwUKAiHtvIoHNMHzPa6yUeltrfWOI4mnT7NmzjcLCwnCGEBW6cmkzGi+LdpW/+xyL742bUmqH1vr6tpb508/DcFVZNK4OYlrrh4MYnwiSrvQxiKX+CW7+7nMsvjf+8Cd5tJ6GUG7BIITwq82jCPOm1AaSOIRFIrHBVvjmT/JYC0zGHFk7GnOUrfCTHBT+icQG286Ixc/Zn2qLTWv9fcsj6abcB8WS/AUxWW/2t7Exkq9i+SMWP+d2P02l1BVKqSuAA0qpAqVUT6/nYkrrs4r3447OOP4eFN3xzOU0nKzXm/wqUYSyL4MV73W0J79A+PqkNOaI2puBv7j+dj8XM9o6ALyL2B0Vt70Piva+tJ05yKJJWW05ayqKma2md+qgsjqRWlFFitSOXJYyDMPnj8PhuKHV45s6+p9g/8yaNcsIl101Hxl3r51jFO1dbzQ7mw3DMIxmZ7Oxq+Yjo9nZ3OLv9jQ7m40Pj+4yCsuLjbvXzjF21XzU4Tas4E+skbC9XTUfGd8puu+y9yncccUih8PxvtHOcdluJzGl1ETMqQcXA791PW0H5mmtQ1qpC2cnMe86O9Dh322deXYfK+PxrU9gs9m4PXMG09TkFq8LVSek3cfKgl4vtyL2WO6UFWl8dRLz9cmcAgZi3h1uoOsnGXjQz43mKaXebOP5aUqp95RSJUqp+/xZVzh5F0d3HyvjNyVPsuvYR6zXm3h86xOs15s8B2VZbXmbRe7slCyWFCxgcf78yxJH621YyYp6uVQBYpeve9WWAWVKqWe01tWdWalS6kHMyZLPtnq+B+bAuhtcy7YopdZprY91OvIwMQyDT08eoqhyPRMHF1Co17Eobx5L8heQlZzJer2JNRXFLM6fj91m95w9c1NzAtpeZ8/Cvl7fXk/JrpzpY7GhUJj8mQC5U4nD5WNgdhvPjwb2a61Paq0vAu8CYR0340vrUkTOgGyWjr+f20Z9jfFpeXw391ueKkDOgGzK6yoo1Ou4PXMGEJzBVJ09swdSEuhK6UFKCbHLkk9ca70GaGxjUR/gtNfjM0BfK2IIBu+Dyvvs/Nr+N3j78BZe3LmarORMymrLaXI24TSc3J83lyH9MshKzmS2mk5Wctf61HX2zB5ISUBKDyIQ/nQSQyk1GRgDVGqti7uwvXogwetxAmbbSkTyTgDenYCmOCZR8/kxth7ZRmrvAaypKKYgbRxbqkqZmF5ASfV2ZqvpFOp1DEsc2qKq4E5CWcmZlNdVdFhV6OygrEAGccnALxGIDkserlsv3ItZkviuUmp5F7a3FxillOrv6mx2I1DShfV1ibta0uRsarNfgbsaUl5X0SKRxNvjuW/sPZ5EcnvmDEqObMfA4J2qrcx0TGVw33QWjvsxTsPZYv3uJLSxcnO369fhj+7YGS5W+VPyuFFrPQFAKfUkUNrZjSil7gJ6a61XKaUWA69hJq7ntdZHOru+YHEfyO5Swmw1nSmOSZ4DOjsli0V583AaTj6q3cOaimKG9MsgNzWnxdl6mprMkH4ZOA2npxSxYttTLdZbqNd5qgbuxtVhiUPbrCoE0oAZLZc3fXXjjpZ9EC7tdQBx/zgcju0Oh8Pu+tvucDhKO/qfYP9Y1UnM3VnoQtMF40/vPevpqHX32jnGtwvvNXbVfOTpwPWH7c8Y3yr8vvHh0V2eTl/uv1trbG40ivauNy40XTB21XxkNDY3tuiU5N5u6+fdy4r2ru90J6mudKwKpNNUoB2tfP2f1Z3DROf56iTmT3p/BfOS6grMqyOvWJvOQsddeqg4XsmWqlJuz5zBFMckFufPZ0nBAjKTHHz82QFmqqmUVm/nf4+eRXZKFsUVG1heupLlJS2rHe4ieVltOYV6HRXHK8kZkE28Pb7FFQl3f5G2uqQH2qW7K42eobxC4+vqjDTcRhd/piGMxxyGn4k5rqVKax3SRk6re5i2V1wurtjA3/YWckfmLEb0H0Z2ShZlteX8eusKDAwyEgbz85seold8L5qcTTyz4wW2Vm1jccF8bNgAPEVz7/XvrNnN8pKVLMqfR7w9vsV2w1F0787VJNE1AfUwVUqlKqUcmKWNC8BuoAl43ZIow6i9wWtTHJO4I3MmQ/oN9hwk2SlZPFCwkDFJozl05jAv7lwNwMbKzbxbVYITJ5+ePASY7R5tDZ5z9xfJTc257Cwcjn4TgWwzWvt3SINt8Pj65PMx7xanXL+fBn6P2djZbXkf6PH2eIYlDuW3pb+juGKjp0E0NzWHB8Yv5MbBE7jni3cDeBLN7WomRZXrATxF8KzkTGY6ptFsNHvW0dGB19GXPJCDwIp1RhJ/4o/2SYciSnuNIe4fh8MxuaPXWP0TylG1rRv0Pjy6y/j22ns9Daid/X/DMBsCv11472UjarvSeBhI46L7f9obvetrneEYidrZbfrznsiI2s7x1WAa1qTg7084h+Q3O5uNHdUfGoXlxUZjc2Oby9u6kuI9XL+xubHNqzNdOVgDvULivprU2W2G40pIZ7cpiSH4JHl0Uusvoa8vcetl3o/b+j9/5gKx8iCw4hKrVSQZhF+XLtUqpfq0ejzeukpUZGhdL27rEqLTcLKzZjdNziZPT1Kn4WzxWncnswvNF/nTe89ysflii3W3bvtw19m9h/i3pSttE4E2dEZLQ64IHb9mT1dK9VJKxbu6qj9ldVDh1npQW1tf4t3Hyni85AlWlD7F4dNVnisr0PJm2HabnSe3/Z53qrbywocv+ezL4O7/YWD47O8Q6Y1+0d7wKvzjT/JYgXnvli2Y41vyLI0oAniPafElzhbH7EyzS7v3fB6/KXmS5aUr2X2szCx95M/nS+njueeLd3d4NjUMAxs2n68Jd2eqjpJDJCc3SWzB46ufh8PVz6MSeAtzROx/AsNCFFvY+HNwZqdkMUtNZ2jiEE9CcCedCekFZoOSSw97PP/n+u9zRdyliefd1Z6dNbs9X+TslCzuGD3Ts932vujhLs53lBzCndza4m+VUPjP18C4p9t5zsCcUb3b8meIenldBYUVxdhsNu7Pm8vh01XcOvKrzFbTuW3ULUzIyCcrOZPiio2sqSjyzCxmYHh6n/6m5EkAZqvpDO9v5mTvYfzeg8jcvVsjoUdnR8khEof4u99L96xvkZTYolWH3dNbU0pd4ZoFLGTCOQFye5qcTazX/2BoYgafnjzIqxVF5lweR7azOH8+uak57D5W5unKfruawVq9HmyAAUsKFnDg5Cesqbg0PYrZmzWjxcHnbjsBs8eqP5MXS9fxy8l7EphAJ0B2//MPlFJaKXVAKfUJUNbR/8SC8roK1up1bK96n9tG3cLXR8/mhrSxLaor2SlZ3J45gzhbHMP6D2VR/jxmqmnMcjXG2rze/tH9FWsqitle9T6/Lf2d52qM3WZnxTazjXrhuB/z8WcHPLOWtVd3b12tiJZ6fmfi7Ow+hbuq1x35807OBW4C/gHcA8RMZdHXneGyU7KYkJ7P24e38Nr+N5iROZXrBuaypGABzYaTtXvXc7H5IoYBM9U0vpAyhnh7PMV6A2v1Ov6x73XW6nVMSMsHoP+VidhsNrZUlTIhPd9zpcddRcgZkM3BU4d4taKI9XqTz3aH1tWKYDdgWpWMOhNnJDfKxgp/JgOq1lofVUolaK3fVEr93PKoIoR3mwNw2SQ2Xxx4LScaTjAwIZUmZxNlteV8fOIAhZXrAKg4rik7Xo4NG8MSh2DDxvxxP+L9IzsYmJDK4vz5ZCVnEmeP453DW10TJ9tYq9dRMDjPc6Z0b29Ivwxs2BjSL8Nnu0PrNodgN2BadV/WzsQZiY2yscafIfmvAC8Ds4CtmDd9+kIIYvMIdZuH9zyjZbXlNBtODp48xJDEwcTZ4shOyWJj5Wb+tvdSTIOvTuPw2UuToqVflca00ZN5dU8hdedPkNU/k/LPKki5MonahuMALC24H4DlJSuZpaYx3DXsv725TSOl3h4pcQjr+Wrz8KfkMQcYATwELAHmBzG2iOQ9PeGQfhk8se0pnIaTGwdPYOuRbcxwTGWtXscsx3TqztXxblVJi8QBUHXuCH/c8YzncflnZp+R2obj9IlPoL7pDBebL3KkvhqbzUbFiUqK921kUd68dg/ISLmKESlxiPDy57RxDrge+CGwnhhoMM1KzmR8Wp7nSsji/PnMdswg6eprWDjux2DgGVpfMDiPmaOmtrsuu+stTurV3/NcfdMZAN448E8KK9aR2d/BnuN7GXT1QJoNp6eDWTQ0corY5U/yeBrIAL6GeauE/7A0ojDxbgQsr6vgncNbGX2NIjPJQZwtDrvdRmHFOrZVvcfAPqlkJKRTfaaaFdueovbc8cvWd7X9KnO9mAf/6fP1LZZnJKRTcaKS8el53DLyK9iwcejMYbYd3s79eXP55OSnLC9dyXq9KegJJFquvojI5k/yGKG1/legQWu9ngi+SVNXuKsq7lsxZCUpyo6X8/wHL/HrrStobm5mTNJotlSV8tR7f+LQmSpKqrfTL74vW49cPqH8Wec5rqCH53EjTS2WHzpTRbPhZEtVKe9V7SBv0A0AbD2yje1V71NYsY78QeP4+961nr4ebfVK7cq+ypUK0RX+tHnEK6WSAJRSCUC3PF25B8M5DScrSi+N/WtyNmJgsHafOTvY6GsUfeIT2HbsfQCOXzzR7jovtnnTvJYSeiTw7pFLt67JSlJsPbKN2ZnTMQAbNj45+emlHqclK7HZbDxQsDDgdge5UiGCwZ+Sx08xB8Vdj3nPlv9naURh4h6XYrPZmOmYSuY1DgC2HX2/xev2ntCexAHQ/4rELm23vrGePj3Mm+hl9c/k1pFf4/68uYCNIm3eTHutXu+5urGkYAGL8+dfNj2AdJgSoebPja7fwrzVZDaQrbX+L8ujCgP32dgwDAor11F+ooKknte0eE2/uMtrbJ9dPBnwNgddORCAhB69mTVqGpPVrazc/kcOnTpMUeV6bs+cwb3XfZcHChZ6LovmpuZ4bjrlJtUQEQ7+dE+fDezDHJa/Tyn1NcujCoPWZ+MhfQbz2YWWieFU8+m2/jVg1Q1HAThy7ij7Tn7MF1LGeAbWLclfwDQ1+bJ7vrRFqiEiHPwpt/4MyNNaXwdMAH5pbUih1brInzMgm6+Pnk3VmWpmZk5lQlo+t424hatsvYK63YT43gDkDbieMUmZLCqY56k6uW8W5W+1QqohIhz8aTA9obWuBdBaH1NK1Xf0D9HCaThZrze1uI9sWW05UxyTGJY4lGajmWK9kaviruSccT4o2xzVZwT76j/mTNPn3Dh4AveNvQfA06O1u5cgpHdq9+FP8jijlHoNc0KgscBVSqnHALTWD1sZnNXct3acpabR5GyiuGIDRZUbmOGYig0b6X3TaDaaOdP0edC2OWX0JA6frgIDpqrbKKstN6/w+DncPtpZNS5GhJ4/yaPI6++w3dHeCu67vzkNJ8tLVmJgMCZpNGsqzF0eP+jSjItx2GnuwlVqlTiKypP7qTp9hOLKjSzJX0DF8cqYm6CmvfYZKZFEnw6Th9b6xVAEEg7utgKn4WRJwQI+OfkpRZUbmJBewNaqUgzbpdcGkjjSe6dR9fkRJqYXcEPaWKbbp5CdksWI/sM9B4977tPyuoqYOIDaGxcjJZLo0z2/oZ3kvgQ6I3MqS/IXkJ9+AzZsDLg6GYDpoybj6DeyU+v8Uvp4as4d447MmaT2TmXl9j9it9lbXD3xnvt0eelKNlZujtlLrt3lilEsdf33p9oSM1qXRPbV7Qeg7sxxsgaMpvKU+bgnPbnABVT/UST26kdp9XuedWQkpDNr9HSuG5jL+Ix8T3vG7Zkz2j0w3AdOVnImwxKHRv0BFIjuMlI3lkpQliQPpZQd+ANwLXABmKO13u+1/ElgInDG9dQMrXVwO1F0gbvKULR/AwAlNduhxlxWMHAcBlB6dDtZ12QyMmkE7x39gIK0cQy4OoXifRvpFd/LU8JwGk7PGdW7KtK6iuL+onX3L1x3111KUP6wqtoyE+iltS4A/gVY3mr5WOBWrfVNrp+ISRze4mx2BvdJByAh3uxCfvpiPduOvocNGyOShpMzIJvbM2dQcmQ7w/sPu+yL014fDOkV2j3FUp8bq6otE4HNAFrrUqWUZyYiV6lkFLBKKTUAeE5r/bxFcQQsZ0A2DxTcT5OzieWlKznjmoPjayNu5rZRt3Dw1CG+kDIGu83ONDXZU93w90sTS2co0T1ZlR77AN6liWallDtRXQ38Dvg2MAn4sVIqx6I4AuY+g6R8nsrE9ALP81fEXUG8PZ6iyg2eO8oFcraJpTOU6J6sKnnUY04c5GbXWrsntDgHPKm1PgeglPonZtvIbotiCVj1/lo2/eFdpvxoCqm9BzCkX4anTUJKDSLWWXXa2wJMBlBK5QMfeS1zAFuUUnFKqR6YVZwPLIqjSwaNTGHq3BvJcAwir0c+1w3Mpebj4y1KDdX7a8MdphBhYVXyWAucV0ptxbxR9iKl1GKl1HSt9V7gJcy5Qd4C/kNrvceiOLqken8tg0amUL2/lg2/f5t3Xv2ADb9/25Mw3M9LAhGxyJJqi9baiTlhsrcKr+WPA49bse1gcSeGqXNv9Dy3d8sB8mfmMGhkCnCpZOJ+LEQskU5i7fBODNX7az1JpHWikMQhYpU09fvgXWVxPxZCmCR5dGDQyJQWVZW2BNrmIW0lIppJ8uhA9f5aSot2X3agt2403f1WZafXK42tIppJ8uhA60bR6v21LQ58d8nEnWDaSzIdrVeIaCPJww/uto/db1V62j+8qzI5X3Z4GlQ7cylXEoeIZnK1xQ/ejab5M82e9KVFu0lK69ciAbQuTUjpQnRnUvLogLtqMnXujeTPzPEkjNZVGe9qjDdJHMJf0db+JcnDB3c1pXp/LcePnKK0aLencdRXiUOIzorGBnRJHm1wt2+UFu0mf2YOH++sorRoN6MnDAdo8+qLJA7RFdF4ApI2D5fdb1WSlNYPwNO+AXC67nP2bjnA6AnD+dId1zEi15wcKJo+ZBEdou07FdPJw91GUfTkP6n99DMArk680rO8R694RuSms3fLAfomm3d4i7YPWAirxFzyeOfVDxiRm87HO6vYu+UAPXrF03i+ybP87MkGz9+N55s4fuSUpx9H66srQsSymEke1ftr2b6xjNpPP2PvlgOe570Th7eUof0ZnptOzpcdAJI4hGilWyaPzc9tIefLo/h4ZxVnTzdw4sipFiWK9sT1sNPc6CQjeyCT7p3QYpkkDiFa6nbJY/NzWzhUdpRDZUd9vq5X7ys4//lFevSKZ+DIZAaNTCbny442+2oIIS7X7ZLH1X2vbPE4ZWh/LjY0cvZ0AyPHZrB/xyHGTspqN1FI4hDCP90ueXzpjusAOHu6gZwvj7osGbiXgyQKIbqi2yUPaJkghBDWkB6mQoiASPIQQgREkocQIiCSPIQQAZHkIYQIiCQPIURAJHkIEWOCNeGQJA8hYkgwZyyT5CFEDAnmjGWSPISIMcEaliHJQwgREEkeQoiASPIQQgREkocQIiCSPIQQAYmK+Tz27NlzXOF5gY4AAARnSURBVCl1MNxxCBGDhrS3wGYYRigDEUJ0E1JtEUIERJKHECIgkjyEEAGR5CGECIgkDyFEQCR5CCECEhX9PAKllLIDfwCuBS4Ac7TW+72WLwK+6Xq4SWu9LPRRdk1H++j1mo1Asdb6T6GPsuv8+CxvA34O2IAdwFytddT1Q/BjP5cAdwFO4DGt9dqwBEr3L3nMBHpprQuAfwGWuxcopYYD3wLGA/nALUqpnLBE2TXt7qOXXwCJIY0q+Hx9lgnA48BUrXUe8CmQFI4gg8DXfvYDFgIFwC3AE2GJ0KW7J4+JwGYArXUpcL3XssPAJK11s+sM1QM4H/oQu8zXPqKUugPzLLU59KEFla/9HA98BCxXSr0DHNNa14U+xKDwtZ9ngYPA1a4fZ8ij89Ldk0cf4LTX42alVDyA1rpRa31cKWVTSv0G+FBrXRmWKLum3X1USmVjFnH/NRyBBVm7+4lZyvhfwP8FbgPuV0o5QhxfsPjaTzBPeuXAB8DKUAbWWndPHvVAgtdju9a6yf1AKdULWO16zY9DHFuw+NrH7wBpwD+B7wGLlVKTQhte0PjazxPAe1rrGq3158DbQG6oAwwSX/t5GzAQGAZkADOVUuNCHN+lwMK14RDZAkwGUErlYxZtcT22AcXALq31D7TWzeEJscva3Uet9YNa6zyt9U3An4Hfaq2jtfrS7n5inoWzlVJJrrN0PubZORr52s+TQANwQWt9HjgF9At5hC7demCcV8t1DmYr/D2YH8x+IA54GSj1+peHtNYloY6zK3zto9Z6ndfrHgFqusHVljb3Uyn1TWCp6+V/01r/e3gi7Ro/9nMZMAmzveNd4MFwXVXq1slDCGGd7l5tEUJYRJKHECIgkjyEEAGR5CGECIgkDyFEQCR5CA+l1PeUUv/m52tvUkr91fX3PKXUXqXUN/z831Sl1B/aeP7flFLfc6+zszGJ0OrWo2pFyMwGvq61/qjDVwJa6xo67tH7U+CprgYmrCP9PISH66z/PeAikAz8UWu9yjW4bi7m4EEDmAVkAz/E7Pr+a6AS+IbW+hPXunZgdqc+idl9/Cat9QdKqQ+AO4EXtdb5SqnbMRNFHXAFZk/YNMzh9c8C29uKycr3QfhHqi2itUbgVswEcb/rOQcwRWs9EbPb963uF7sO5J3Ad9yJw6XY9bqJwCfAV5VSWZhJ5gKAUqoH8Fvgq67XnnOt85fAZ1prd+mkrZhEmEnyEK194OruXANc5XquFnhRKfUCZrfpHn6spxCzW/Uk4CeYCWI6sMbrNcmYSeKEa5tbOxGTCDNJHqK1FvVYpVRfYBnmjGtzMAdm2Tpaida6DBgOjAM2Ab2BGa6/3WqBfkqpZNfjG7yWeW9D6tYRSJKH6Eg95kjPEuAdzOQxyM//fROo01o7gbeAWq31WfdC11DzecBrSqk3MNs83MqVUv/Z9fCFVaTBVAgRECl5CCECIslDCBEQSR5CiIBI8hBCBESShxAiIJI8hBABkeQhhAjI/wfXpvyEKk0aWgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=figsize_gen)\n",
"size = 5\n",
"mew = .5\n",
"marker_bs = '.'\n",
"marker_ns = '+'\n",
"\n",
"plt.scatter(\n",
" results.query('bs==0')['half_width'], \n",
" results.query('bs==0')['peak_to_trough'], \n",
" c=color_ns, s=size, marker=marker_ns, linewidth=mew, label='NS')\n",
"\n",
"plt.scatter(\n",
" results.query('bs==1')['half_width'], \n",
" results.query('bs==1')['peak_to_trough'], \n",
" c=color_bs, s=size, marker=marker_bs, linewidth=mew, label='BS')\n",
"\n",
"plt.xlabel('half width')\n",
"plt.ylabel('peak to through')\n",
"\n",
"plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc=\"lower left\",\n",
" mode=\"expand\", borderaxespad=0, ncol=2)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"clusters.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"clusters.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=figsize_gen)\n",
"\n",
"size = 5\n",
"mew = .5\n",
"marker_bs = '.'\n",
"marker_ns = '+'\n",
"\n",
"plt.scatter(\n",
" results.query('bs==0')['half_width'], \n",
" results.query('bs==0')['peak_to_trough'], \n",
" c=color_ns, s=size, marker=marker_ns, linewidth=mew, label='NS')\n",
"\n",
"plt.scatter(\n",
" results.query('bs==1')['half_width'], \n",
" results.query('bs==1')['peak_to_trough'], \n",
" c=color_bs, s=size, marker=marker_bs, linewidth=mew, label='BS')\n",
"\n",
"plt.scatter(\n",
" results.query('bs==1 and average_firing_rate > 10')['half_width'], \n",
" results.query('bs==1 and average_firing_rate > 10')['peak_to_trough'], \n",
" c='red', s=size, marker=marker_bs, linewidth=mew, label='BS rate > 10 Hz')\n",
"\n",
"plt.xlabel('half width')\n",
"plt.ylabel('peak to through')\n",
"\n",
"plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc=\"lower left\",\n",
" mode=\"expand\", borderaxespad=0, ncol=2)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"clusters_and_rate.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"clusters_and_rate.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"stim = results.query('stimulated').loc[:, ['half_width', 'peak_to_trough']].dropna()\n",
"\n",
"idxs_stim = cluster_waveform_features(stim.half_width, stim.peak_to_trough)\n",
"\n",
"results.loc[stim.index, 'bs_stim'] = idxs_stim"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"control = results.query('not stimulated').loc[:, ['half_width', 'peak_to_trough']].dropna()\n",
"\n",
"idxs_control = cluster_waveform_features(control.half_width, control.peak_to_trough)\n",
"\n",
"results.loc[control.index, 'bs_ctrl'] = idxs_control"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQ8AAADwCAYAAAAenOFGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deXxU5b348c9MMpPJvu8JhAB52AQVEFRQUEBERBAsCtRqpXZRb9Xbq61t9QfeS62Wi3ax1Ys7m60gWLWgUAVcQBFl54FAAtn3lSSznt8fk4kDJmEyySST5Hm/XnmRmTOc8z2Tc77nWc/RaZqGoihKR+l7OgBFUXonlTwURfGKSh6KonhFJQ9FUbyikoeiKF4J7OkAPPHVV18lBAYGrgZGoRKeonQHB3DYZrMtHTt2bGlrH+gVySMwMHB1UlLS8Pj4+Cq9Xq/6lhXFxxwOh66srGxEcXHxamBOa5/pLVfxUfHx8bUqcShK99Dr9Vp8fHwNztJ+65/pxng6Q68Sh6J0r+Zzrs0c0VuSh6IofkYlDw+tXLkyaeHChVnz588Xt912W9a+fftCAA4ePBi8c+fOMIB7770302w267zdxgMPPJCxdevWiLaWu2/rYhobG3WTJ0++5ML3J0+efMlf/vKXBNfrY8eOmRYsWCAASktLA++5557Bd9xxx9C5c+cOe/DBBwc2NDR4vT/90eHDh01LliwZctttt2XNnj17+IoVK1IcDkeH17N58+aogoICgyefzcnJMc6ZM2fYhe8LIca+8847Ua7XW7dujXjggQcyAE6ePBm0ZMmSIXfcccfQOXPmDHviiSdS7XZ7h2JUycMDR44cMe3evTtq/fr1JzZu3Cgfe+yxvF//+tcZAO+99170iRMnggFefPHF00FBQT6rXrlvqzM2bNiQePz48aAL3//zn/+cNHHixNr169ef3Lx58/GQkBDHSy+9FN/Z7fUXVVVVAQ8//HDm448/nvePf/zjxObNm49lZ2cHe/MdrlmzJrG2tjagM/EEBQU5Vq5cmVZWVvadjpGnn346dcmSJaWuv/XZs2dN//znP6NaW09bekVvS0+LjIy0l5aWGl9//fW4adOm1Vx22WWNW7ZsOZafn294//33YwMDA7XRo0ef+8UvfjH4gw8+OPzII48MDAwM1IqLi40Wi0V/ww03VO7atSuypKQk6K9//Wt2fn6+cd26dfEvvvjiaYAJEyaM2bt37wHX9mpqavS/+MUvMurr6wPKy8uNt912W+msWbOq3bfV2Niof+6551L1ej2pqanmP/zhD2fMZrPu/vvvH1RfXx+Ymppqbmt/Hn744bxHH3100MaNG4+7vx8XF2fdvn179KBBg5quuuqq+mXLluXpdKrg4al33303auzYsXVZWVlmgMDAQJ577rkco9GoAfzmN79JO3DgQBjAzJkzK++7777SBx54IMNgMGhFRUXGyspKw4oVK3KLi4sNp06dCn7kkUcG/eEPfzj9wAMPDI6IiLBfffXV1ddee23tk08+OUCv12M0Gh1PPfXUmbbiCQ4OdixevLjkV7/61YDVq1efdl8WExNj3bRpU1xYWJj9iiuuaHjhhRdOBwYGdujC16dLHuaifGNXrCctLc36pz/9KXv//v1hCxcuHHbdddeNfP/99yPT0tKss2bNqli0aFHJhAkTGtz/T0pKinn9+vUnMzIyGvPz84PWrFmTPXXq1KqtW7dGXmx72dnZplmzZlWuX7/+5Kuvvnpi3bp1ie7bGj9+fMOyZcsy/va3v53auHGjTEhIsKxZsyb25Zdfjh8yZEjTxo0b5aJFi8raWv/MmTNrMjMzG5999tkk9/fvu+++klmzZlW89NJLSZMmTRpzzz33DCksLPSo6Nyb5VU1dMlxUlpaakhLSzsvaYeHhzuCgoK0d999N7KwsDBoy5Ytxzdu3Ci3bt0ac/DgwWD49lhZuHBh6bp16+JuuummmsGDBzc+/fTTOUajUauqqjKsXbv2xEMPPVTy29/+NuPxxx8/u3HjRnnHHXeULV++PK29mJYuXVp27ty5gA0bNsS4v79s2bL80aNH169atSpt4sSJYx588MGMmpqaDpV0+mzyMBflG6s/3hrXFQnk5MmTQREREfY//vGPuZ9++umh3//+9zm/+93vBlZUVLT5ZY8aNaoBIDw83D5kyJBGgIiICJvZbP7Od37hbRESExOt27dvj/rZz3426Nlnn0222+3nXf7LysoCKysrDffdd9/gBQsWiL1790YUFBQYc3NzTWPGjDkHMHHixHMBAQFtXkmWLVuW9/7778cdOnSopRr00UcfhS9atKhi/fr1Jz/77LMDI0eOPLds2bIBHn5NvVJeVYPx3cPFcV2RQFJTUy3F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\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=figsize_gen)\n",
"size = 5\n",
"mew = .5\n",
"marker_bs = '.'\n",
"marker_ns = '+'\n",
"plt.scatter(\n",
" results.query('bs_stim==0')['half_width'], \n",
" results.query('bs_stim==0')['peak_to_trough'], \n",
" c=color_stimulated, s=size, marker=marker_ns, \n",
" linewidth=mew, label='Stimulated NS', alpha=.5)\n",
"\n",
"plt.scatter(\n",
" results.query('bs_stim==1')['half_width'], \n",
" results.query('bs_stim==1')['peak_to_trough'], \n",
" c=color_stimulated, s=size, marker=marker_bs, \n",
" linewidth=mew, label='Stimulated BS', alpha=.5)\n",
"\n",
"\n",
"plt.scatter(\n",
" results.query('bs_ctrl==0')['half_width'], \n",
" results.query('bs_ctrl==0')['peak_to_trough'], \n",
" c=color_control, s=size, marker=marker_ns, \n",
" linewidth=mew, label='Control NS', alpha=.5)\n",
"\n",
"plt.scatter(\n",
" results.query('bs_ctrl==1')['half_width'], \n",
" results.query('bs_ctrl==1')['peak_to_trough'], \n",
" c=color_control, s=size, marker=marker_bs, \n",
" linewidth=mew, label='Control BS', alpha=.5)\n",
"\n",
"plt.xlabel('half width')\n",
"plt.ylabel('peak to through')\n",
"plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc=\"lower left\",\n",
" mode=\"expand\", borderaxespad=0, ncol=2)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"compare-clusters.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"compare-clusters.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"results.average_firing_rate = results.apply(lambda x: float(x.average_firing_rate), axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"results.frequency = results.apply(\n",
" lambda x: \n",
" float(x.frequency.replace('Hz', '')) if isinstance(x.frequency, str) \n",
" else float(x.frequency), axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bins=100\n",
"density=True\n",
"cumulative=True\n",
"histtype='step'\n",
"lw = 2\n",
"\n",
"plt.figure(figsize=figsize_gen)\n",
"plt.title('Narrow spiking')\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_ctrl==0')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_control, lw=lw, label='Control');\n",
"\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_stim==0')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_stimulated, lw=lw, label='Stimulated');\n",
"\n",
"plt.xlim(-.5, 56)\n",
"# plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc=\"lower left\",\n",
"# mode=\"expand\", borderaxespad=0, ncol=2)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_ns.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_ns.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bins=100\n",
"density=True\n",
"cumulative=True\n",
"histtype='step'\n",
"lw = 2\n",
"\n",
"plt.figure(figsize=figsize_gen)\n",
"plt.title('Narrow spiking')\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_ctrl==0')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_control, lw=lw, label='Control');\n",
"\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_stim==0 and frequency==30')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_stimulated, lw=lw, label='Stimulated');\n",
"\n",
"plt.xlim(-.5, 56)\n",
"# plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc=\"lower left\",\n",
"# mode=\"expand\", borderaxespad=0, ncol=2)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_ns_30.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_ns_30.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAADPCAYAAAAeTt+OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAPbUlEQVR4nO3de9BcdX3H8fcDhkRKRBm8kbGgpXxKS4Gqw0Pklk4JJCrqIE5btEIoAVqsUOhwcaBgB2kdSLVAFYVyEUEqlwhUIAEhSoLILbQmpt9MKKRWBgccAgghEPL0j3M2bNZ9ds/z7Dl7zu75vGYY9lyy+91k9nu+v8s5v5GxsTHMrN62KjsAMyufE4GZORGYmROBmeFEYGY4EZgZ8KayA7AtSdoFeAKYHxGXN+3/O2CPiDi6pNB6July4HpgDbAiIrZrOb4TcGNEfKiM+OrMFUE1bQIulLRb2YHkKSKOjYi7Oxx/ykmgHK4Iqmk9sAD4jqSZEfFq88E0QfwrsB2wE/AY8KcR8YqkDcAtwF7Ap4FlLdtvBi4AtgVeBc4C7gKeBmZGxBpJZwB/FRE7p593F/CViLi9KYZ3Ad8Cdkx3fT8izpZ0NPDnJBeZGcAvgKMi4ilJS4BLgIeb3md34HbgFGA5aaUg6VxgF+DdwM7AM+l3fErSPsDXgG2Ax9Pjp0TEkgn/TRvgiqDKvgS8BJzf5th84OqImAnsCrwX+Eh6bBvgtohQRDzcvE3S5LgROCki9gSOAr4N/DZwGzAnfY85wDaSdpO0PbA30Holnw/8T0S8HzgA+N30XID9gBMj4veBR4CL2n1BSXukn3tsRCxsc8oBwKci4veA54DjJb0JuAk4O/0OF6XxWQ+cCCoqIjYBnwHmSZrdcvh04BlJpwFfJ6kKmtvb97Wc39geBdZExE/Sz1hJUjHMAhYCcyVNJ7kKXwfMBj4M3NlalQB3Ap+UdDtwPHBGRDyfHlscEavT15cBh7b5ilOBe4HHIuIH4/w1LImIF9LXy4EdgD9MY78j/f+9wIpx/rxl5ERQYRHxv8AJwNW8UYIDfAc4DlgLfAV4FBhpOv7rlrdqbLf7994KmELSPPggSWWxJN0+BPgYyRW4NbaHSCqRb5KU8A9KarTvN7a8/+vjfMVPAO+XdPg4x9c3vR4j+Y4b2fK70uH9LSMngoqLiBuAO4CTm3YfCvxDRPw7yQ9kFNg6w9s9AChtYyPpD4ADSa68rwA/BM4BFqevZ5KU53e2vpGkfyIpz78HnASsBBqdm38iaUb6+gSS8r/VhohYBhwDXJr2OWSxCtggaU4axz4kVYLvnuuBE8Fg+DzJ1b/hC8BCSQ8Dl5L8aHft9iYR8SzwKeBiST8lKf/nNZXxC0l+zPdExHrgP4FlaZJo9VVgb0krSDr/niCpVAD+D7hG0iqSauHkNn++EdMSkiHFK7rFn56/EfgkcK6k5cCpJB2dL2f589beiG9DtjylowZHRMRHC/yMC4ALI+KXkt5DkrDeFxHrivrMYefhQxtEa4EfSHqNpL/gWCeB3rgiMDP3EZiZE4GZ4URgZpTQWTg6Ojo2Y8aM7ieaWa5Wrlz5bES8vd2xvieCGTNmcPPNN/f7Y81qT9La8Y65aWBmTgRmljERSBpN7yVv3X+YpIck/VjS/NyjM7O+6JoI0ltdLwemteyfQnLn2yHAQcBxkt5ZRJBmVqwsnYWPA4cD17Ts353k3vbnACQtJbmT7YZcIzQbcqvmfazsELpXBBFxE/Bam0NvAZ5v2n4R2L7NeWZWcb0MH74ATG/ang74xg+zSdr9ylu7nnPwJUsn/wH3/+W4h3pJBKtInlO3A8kTcA4ELuzh/cyGThXK/iwmnAgkHQlsFxHflHQKsIikiXFFRPwi7wDN6qrT1f/uz+0/4ffTxeMfy5QIIuJJYN/09XVN+2+j/WOozIbWZK7yncr+zT/4Xsr+HvnBJGYVN5mr/0Q5EVit9dKGn1DnXoarfT9+8OPxFGMzc0VgBtmu7lmM18FX5tU+CycCswnqaSy/opwIzApQ9QqglROB1cZEOgazXPUH7cfeiTsLzcwVgQ2v8SqAdh2Dg9rJlxcnAqu1Yez4mwwnAhsKndr/ExkarEsF0MqJwGqptRKoawJocCKwgdKt5z+viUF140RgtVb3SqDBicAG0mSu/O4YHJ8TgQ2EQXnSz6ByIrDacXPgNzkRWGW1qwLcGVgMTzE2M1cEVj2tlYCrgOK5IjAzVwRWXa4E+scVgZk5EZhZhqaBpK2ArwF7ARuAYyNiTdPxU4EjgU3A+RGxsKBYbcgVNWnIMwq7y1IRfAKYFhEzgTOABY0Dkt4KnATMBA4BvlpEkGZWrCydhfsDdwJExAOSPth07CVgLfBb6X+bco/QaqeoR4t7RuH4slQEbwGeb9p+XVJzAvk58DPgUeCiHGMzsz7JUhG8AExv2t4qIjamr+cC7wbem24vkrQsIh7MMUYbckXfUORKoLssiWAZcBjwXUn7Aj9tOvYcsB7YEBFjktYBb80/TLPs3Dk4cVkSwUJgtqT7gRFgnqRTgDURcaukg4EHJG0ClgJ3FReuDTNPICpP10QQEZuAE1p2/3fT8XOAc3KOy4ZMGc8TcJMgO08xtoHk8j9fTgTWVy7/q8mJwAaay/98+F4DM3NFYIPBfQLFckVgZq4IbLC4T6AYTgRWWW4O9I+bBmbmisCqz82B4jkRWKG8VNlgcNPAzFwRWHd5XNWzTC1252B5XBGYmSsCa6+fC5D62YLlc0VgZq4IrLN+3jbsSqA8TgS2hX4O97lzsDrcNDAzVwSWaK0EilpkpB03CcrnRGCFcNk/WJwIbAtFdQ76ql9tTgSWK88JGEx5LIs+l2RdgxHgEeDEiBgrJlwzK0Kvy6JPBy4APhoRo8CTwI4FxGkD5u7P7e9qYIBkSQRbLIsONC+L/iGStRAXSLoP+GVEPJN7lGZWqF6XRd8R+GPgdJKVkU+WtFu+IZpZ0XpdFv1XwEMR8TSApB8BewOrc43SKs1DhYOv12XRHwX2kLQjsA7YF7gs9yitMH6CkEE+y6KfCSxKz/1uRKwoKFarOHcODq48lkW/Hrg+57iszyYzkchNguHhm47MzDML62oyfQPjVQBuEgw+VwRm5oqg7ibTN+AKYPi4IjAzJwIzc9OgFjxpyLpxIrAteG5APTkR1Eg/H01ug8WJwNryyEC9OBEMMfcNWFYeNTAzVwR14CXJrRsngiHkJoFNlBNBzfnx4wZOBEPNw4WWlRNBjXTqB3AlUG9OBEPEfQM2WU4ENeSrv7VyIhhQna7+rX0DHhq0bjyhyMxcEQy6iYwMuElg43EiGGJuElhWPS+L3nTO94FbIuLSIgI1s+JkqQg2L4ueLnm2APh4yznnAW/LO7i6y2s40E0C66bXZdGRdASwqXGOmQ2eLBVB22XRI2KjpD2AI4EjgL8vIsA6aq0EsnYIuk/AJqvXZdE/C8wA7gF2AV6V9GREuDroE//4LQ89LYseEac1Xks6F3jaSSA/k71pyH0CNlE9L4teaHSWmX/81ouel0VvOu/cnGIysz7zhKKc9esOQPcNWJ6cCAaME4AVwYmgBxO5A7Ao7huwPDgRVJifKGT94kQwAeNVAH42oA06J4IK8pOFrd+cCDKY7JRfs0HhRFBhrgSsX5wIJqDoSsBDg1YWJ4KUHwVudeZEUAHuHLSy1T4R9Ksj0GW/VVntE0GVuBKwstQ2ERRVCXS78vvHblVU20SQJ5f9NuhqlQjajQwU1SfgK78NklolgryMVwH4x2+DqpaJwFOEzbZUy0SQRZZ2vysAGxZOBC3c8Wd1VItE0Mv0YV/1rQ5qkQgmwwnA6mSoE4GfI2CWTc/Lokv6W+DP0s3bI+KLRQRqZsXpaVl0Se8DPg2MkqyIvFTSwoj4r6ICzmIylYA7Ca3Oel0W/efAnIh4PSLGgCnAK7lHaWaF6mlZ9Ih4DXhW0ghwAbA8IlYXEehkdKoEPDvQ7A1ZKoJOy6IjaRpwbXrOX+cbnpn1Q0/LoqeVwC3APRHx5WJCLJYrALMel0UHtgYOAqZKmpuef2ZE/LiQaJv4GYNm+cljWfRpuUZkZn03cBOKOg0N/kYHoIcEzTLJ0lloZkNu4CqChk5Dg+4ANJuYgU0EDZ4RaNY7Nw3MbHAqgtZOQq8OZJYfVwRmVs2KoNNkob/5wGmAKwCzPLkiMLNqVQRZJgu5EjDLnysCM6tWRdDgZwua9VclE0EzTxgyK56bBmZW/YqgwZ2EZsVxRWBm1agI/LQhs3JVIhG0cgehWX+VmghaK4HG9GEz669KVgTuGDTrr0okAt9IZFYujxqYmROBmeWzLPp84HhgI3BeRPzHRINwk8CsXFkqgs3LogNnkCyLDoCkdwGfB/YDDgX+UdLUIgI1s+L0uiz6PsCyiNgQEc+TLIO2Z+5RmlmheloWvc2xF4HtO73ZypUrn5W0doudUrZozawXO493IEsi6LQseuux6cC6Tm8WEW/P8Jlm1kdZmgbLgA8DtC6LDjwIHCBpmqTtgd2BFblHaWaFGhkbG+t4QtOowZ6ky6KTJIY1EXFrOmpwHElSOT8ibio2ZDPLW9dEYGbDzxOKzMyJwMxKuOmo20zFskgaBb4cEbMk7QpcBYyRdH6eGBGbSoprCnAFsAswFTgP+FkV4pO0NXAZoDSWE4BXqhBbM0nvAB4BZpPMgL2KisQn6VGS0TeAJ4BvAP9CEufiiPhiP+IooyIYd6ZiWSSdBlwOTEt3/TNwVkQcQNJB+vGyYgM+A/wqjWUOcEmF4jsMICL2A84CvlSh2IDNifQbwPp0V2XikzQNGImIWel/84BLgSNJJvKNSvqjfsRSRiLoNFOxLI8DhzdtfwD4Yfr6DuDgvkf0hhuAs9PXIyRXikrEFxHfIxkxgmSyyjoqEluTC0l+XE+l21WKby9gW0mLJd0j6UBgakQ8HhFjwKJ+xVdGImg7U7GEODZLhzxfa9o1kv5DQIbZkkWKiF9HxIuSpgM3klx5qxTfRklXAxcD11YpNklHA89ExKKm3ZWJD3iZJFEdStKsujLd19C3+MpIBJ1mKlZFc5ux62zJokl6D3AvcE1EXEfF4ouIo4DdSPoL3tx0qOzYjgFmS1oC7A18C3hH0/Gy41sNfDsixiJiNckFcoem432Lr4xE0GmmYlUslzQrfT0XuK+sQCS9E1gMnB4RV6S7KxGfpL+QdGa6+TJJgnq4CrEBRMSBEXFQRMwCHgM+C9xRlfhIEtUCAEk7AdsCL0n6HUkjJJVCX+IroyRfSJKl7+eNmYpVcypwmaRtgFUkJXlZvgC8DThbUqOv4CTgogrEdzNwpaQfAVOAk9N4qvJ3106V/m3/DbhK0lKSUYxjSJLptcDWJKMGP+lHIJ5ZaGaeUGRmTgRmhhOBmeFEYGY4EZgZTgRmhhOBmeFEYGbA/wMJm2EFt/gbAgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bins=100\n",
"density=True\n",
"cumulative=True\n",
"histtype='step'\n",
"lw = 2\n",
"\n",
"plt.figure(figsize=figsize_gen)\n",
"plt.title('Narrow spiking')\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_ctrl==0')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_control, lw=lw, label='Control');\n",
"\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_stim==0 and frequency==11')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_stimulated, lw=lw, label='Stimulated');\n",
"\n",
"plt.xlim(-.5, 56)\n",
"# plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc=\"lower left\",\n",
"# mode=\"expand\", borderaxespad=0, ncol=2)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_ns_11.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_ns_11.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bins = 100\n",
"\n",
"plt.figure(figsize=figsize_gen)\n",
"plt.title('Broad spiking')\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_ctrl==1')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_control, lw=lw);\n",
"\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_stim==1')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_stimulated, lw=lw);\n",
"\n",
"plt.xlim(-.5, 44)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_bs.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_bs.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bins = 100\n",
"\n",
"plt.figure(figsize=figsize_gen)\n",
"plt.title('Broad spiking')\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_ctrl==1')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_control, lw=lw);\n",
"\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_stim==1 and frequency==11')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_stimulated, lw=lw);\n",
"\n",
"plt.xlim(-.5, 44)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_bs_11.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_bs_11.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bins = 100\n",
"\n",
"plt.figure(figsize=figsize_gen)\n",
"plt.title('Broad spiking')\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_ctrl==1')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_control, lw=lw);\n",
"\n",
"_, bins, _ = plt.hist(\n",
" results.query('bs_stim==1 and frequency==30')['average_firing_rate'], \n",
" bins=bins, density=density, cumulative=cumulative, \n",
" histtype=histtype, color=color_stimulated, lw=lw);\n",
"\n",
"plt.xlim(-.5, 44)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_bs_30.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"cumulative_bs_30.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"U-test: U value 135025.0 p value 0.11036062942886643\n",
"U-test: U value 6176.0 p value 0.12484872783599776\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 122.4x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 122.4x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=figsize_violin)\n",
"# test = 'permutation_resampling'\n",
"test = 'mann_whitney'\n",
"\n",
"plt.title('Broad spiking')\n",
"violinplot(\n",
" results.query('bs_ctrl==1')['average_firing_rate'].to_numpy(), \n",
" results.query('bs_stim==1')['average_firing_rate'].to_numpy(), \n",
" test=test)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"rates_bs.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"rates_bs.png\", dpi=600, bbox_inches=\"tight\")\n",
"\n",
"plt.figure(figsize=figsize_violin)\n",
"plt.title('Narrow spiking')\n",
"violinplot(\n",
" results.query('bs_ctrl==0')['average_firing_rate'].to_numpy(), \n",
" results.query('bs_stim==0')['average_firing_rate'].to_numpy(), \n",
" test=test)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"rates_ns.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"rates_ns.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"U-test: U value 85419.0 p value 0.4550292852318226\n",
"U-test: U value 3843.0 p value 0.06623560612855536\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 122.4x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 122.4x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=figsize_violin)\n",
"# test = 'permutation_resampling'\n",
"test = 'mann_whitney'\n",
"\n",
"plt.title('Broad spiking')\n",
"violinplot(\n",
" results.query('bs_ctrl==1')['average_firing_rate'].to_numpy(), \n",
" results.query('bs_stim==1 and frequency==11')['average_firing_rate'].to_numpy(), \n",
" test=test)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"rates_bs_11.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"rates_bs_11.png\", dpi=600, bbox_inches=\"tight\")\n",
"\n",
"plt.figure(figsize=figsize_violin)\n",
"plt.title('Narrow spiking')\n",
"violinplot(\n",
" results.query('bs_ctrl==0')['average_firing_rate'].to_numpy(), \n",
" results.query('bs_stim==0 and frequency==11')['average_firing_rate'].to_numpy(), \n",
" test=test)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"rates_ns_11.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"rates_ns_11.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"U-test: U value 49606.0 p value 0.03757091416858637\n",
"U-test: U value 2333.0 p value 0.5891054506000802\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 122.4x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 122.4x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=figsize_violin)\n",
"# test = 'permutation_resampling'\n",
"test = 'mann_whitney'\n",
"\n",
"plt.title('Broad spiking')\n",
"violinplot(\n",
" results.query('bs_ctrl==1')['average_firing_rate'].to_numpy(), \n",
" results.query('bs_stim==1 and frequency==30')['average_firing_rate'].to_numpy(), \n",
" test=test)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"rates_bs.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"rates_bs.png\", dpi=600, bbox_inches=\"tight\")\n",
"\n",
"plt.figure(figsize=figsize_violin)\n",
"plt.title('Narrow spiking')\n",
"violinplot(\n",
" results.query('bs_ctrl==0')['average_firing_rate'].to_numpy(), \n",
" results.query('bs_stim==0 and frequency==30')['average_firing_rate'].to_numpy(), \n",
" test=test)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"rates_ns_30.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"rates_ns_30.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"columns = [\n",
" 'average_firing_rate',\n",
" 'half_width',\n",
" 'peak_to_trough'\n",
"]\n",
"\n",
"\n",
"def summarize(data):\n",
" return \"{:.2f} ± {:.2f} ({})\".format(data.mean(), data.sem(), sum(~np.isnan(data)))\n",
"\n",
"\n",
"bs = pd.DataFrame()\n",
"\n",
"bs['Control'] = results.query('bs_ctrl==1')[columns].agg(summarize)\n",
"bs['Stimulated'] = results.query('bs_stim==1')[columns].agg(summarize)\n",
"\n",
"ns = pd.DataFrame()\n",
"\n",
"ns['Control'] = results.query('bs_ctrl==0')[columns].agg(summarize)\n",
"ns['Stimulated'] = results.query('bs_stim==0')[columns].agg(summarize)\n",
"\n",
"\n",
"def MWU(column, df, cluster, extra):\n",
" '''\n",
" Mann Whitney U\n",
" '''\n",
" Uvalue, pvalue = scipy.stats.mannwhitneyu(\n",
" df.query('bs_ctrl=={} {}'.format(cluster, extra))[column].dropna(), \n",
" df.query('bs_stim=={} {}'.format(cluster, extra))[column].dropna(),\n",
" alternative='two-sided')\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(Uvalue, pvalue)\n",
"\n",
"\n",
"def PRS(column, df, cluster, extra):\n",
" '''\n",
" Permutation ReSampling\n",
" '''\n",
" pvalue, observed_diff, diffs = permutation_resampling(\n",
" df.query('bs_ctrl=={} {}'.format(cluster, extra))[column].dropna(), \n",
" df.query('bs_stim=={} {}'.format(cluster, extra))[column].dropna())\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(observed_diff, pvalue)\n",
"\n",
"\n",
"bs['MWU'] = list(map(lambda x: MWU(x, results, 1, ''), columns))\n",
"bs['PRS'] = list(map(lambda x: PRS(x, results, 1, ''), columns))\n",
"\n",
"ns['MWU'] = list(map(lambda x: MWU(x, results, 0, ''), columns))\n",
"ns['PRS'] = list(map(lambda x: PRS(x, results, 0, ''), columns))\n",
"\n",
"bs.to_latex(output_path / \"statistics\" / \"broad_spiking.tex\")\n",
"bs.to_csv(output_path / \"statistics\" / \"broad_spiking.csv\")\n",
"\n",
"ns.to_latex(output_path / \"statistics\" / \"narrow_spiking.tex\")\n",
"ns.to_csv(output_path / \"statistics\" / \"narrow_spiking.csv\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"columns = [\n",
" 'average_firing_rate',\n",
" 'half_width',\n",
" 'peak_to_trough'\n",
"]\n",
"\n",
"\n",
"def summarize(data):\n",
" return \"{:.2f} ± {:.2f} ({})\".format(data.mean(), data.sem(), sum(~np.isnan(data)))\n",
"\n",
"\n",
"bs = pd.DataFrame()\n",
"\n",
"bs['Control'] = results.query('bs_ctrl==1')[columns].agg(summarize)\n",
"bs['Stimulated'] = results.query('bs_stim==1 and frequency==11')[columns].agg(summarize)\n",
"\n",
"ns = pd.DataFrame()\n",
"\n",
"ns['Control'] = results.query('bs_ctrl==0')[columns].agg(summarize)\n",
"ns['Stimulated'] = results.query('bs_stim==0 and frequency==11')[columns].agg(summarize)\n",
"\n",
"\n",
"def MWU(column, df, cluster, extra):\n",
" '''\n",
" Mann Whitney U\n",
" '''\n",
" Uvalue, pvalue = scipy.stats.mannwhitneyu(\n",
" df.query('bs_ctrl=={} {}'.format(cluster, extra))[column].dropna(), \n",
" df.query('bs_stim=={} {} and frequency==11'.format(cluster, extra))[column].dropna(),\n",
" alternative='two-sided')\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(Uvalue, pvalue)\n",
"\n",
"\n",
"def PRS(column, df, cluster, extra):\n",
" '''\n",
" Permutation ReSampling\n",
" '''\n",
" pvalue, observed_diff, diffs = permutation_resampling(\n",
" df.query('bs_ctrl=={} {}'.format(cluster, extra))[column].dropna(), \n",
" df.query('bs_stim=={} {} and frequency==11'.format(cluster, extra))[column].dropna())\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(observed_diff, pvalue)\n",
"\n",
"\n",
"bs['MWU'] = list(map(lambda x: MWU(x, results, 1, ''), columns))\n",
"bs['PRS'] = list(map(lambda x: PRS(x, results, 1, ''), columns))\n",
"\n",
"ns['MWU'] = list(map(lambda x: MWU(x, results, 0, ''), columns))\n",
"ns['PRS'] = list(map(lambda x: PRS(x, results, 0, ''), columns))\n",
"\n",
"bs.to_latex(output_path / \"statistics\" / \"broad_spiking_11.tex\")\n",
"bs.to_csv(output_path / \"statistics\" / \"broad_spiking_11.csv\")\n",
"\n",
"ns.to_latex(output_path / \"statistics\" / \"narrow_spiking_11.tex\")\n",
"ns.to_csv(output_path / \"statistics\" / \"narrow_spiking_11.csv\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"columns = [\n",
" 'average_firing_rate',\n",
" 'half_width',\n",
" 'peak_to_trough'\n",
"]\n",
"\n",
"\n",
"def summarize(data):\n",
" return \"{:.2f} ± {:.2f} ({})\".format(data.mean(), data.sem(), sum(~np.isnan(data)))\n",
"\n",
"\n",
"bs = pd.DataFrame()\n",
"\n",
"bs['Control'] = results.query('bs_ctrl==1')[columns].agg(summarize)\n",
"bs['Stimulated'] = results.query('bs_stim==1 and frequency==30')[columns].agg(summarize)\n",
"\n",
"ns = pd.DataFrame()\n",
"\n",
"ns['Control'] = results.query('bs_ctrl==0')[columns].agg(summarize)\n",
"ns['Stimulated'] = results.query('bs_stim==0 and frequency==30')[columns].agg(summarize)\n",
"\n",
"\n",
"def MWU(column, df, cluster, extra):\n",
" '''\n",
" Mann Whitney U\n",
" '''\n",
" Uvalue, pvalue = scipy.stats.mannwhitneyu(\n",
" df.query('bs_ctrl=={} {}'.format(cluster, extra))[column].dropna(), \n",
" df.query('bs_stim=={} {} and frequency==30'.format(cluster, extra))[column].dropna(),\n",
" alternative='two-sided')\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(Uvalue, pvalue)\n",
"\n",
"\n",
"def PRS(column, df, cluster, extra):\n",
" '''\n",
" Permutation ReSampling\n",
" '''\n",
" pvalue, observed_diff, diffs = permutation_resampling(\n",
" df.query('bs_ctrl=={} {}'.format(cluster, extra))[column].dropna(), \n",
" df.query('bs_stim=={} {} and frequency==30'.format(cluster, extra))[column].dropna())\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(observed_diff, pvalue)\n",
"\n",
"\n",
"bs['MWU'] = list(map(lambda x: MWU(x, results, 1, ''), columns))\n",
"bs['PRS'] = list(map(lambda x: PRS(x, results, 1, ''), columns))\n",
"\n",
"ns['MWU'] = list(map(lambda x: MWU(x, results, 0, ''), columns))\n",
"ns['PRS'] = list(map(lambda x: PRS(x, results, 0, ''), columns))\n",
"\n",
"bs.to_latex(output_path / \"statistics\" / \"broad_spiking_30.tex\")\n",
"bs.to_csv(output_path / \"statistics\" / \"broad_spiking_30.csv\")\n",
"\n",
"ns.to_latex(output_path / \"statistics\" / \"narrow_spiking_30.tex\")\n",
"ns.to_csv(output_path / \"statistics\" / \"narrow_spiking_30.csv\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"bs"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# example waveforms"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def normalize(a):\n",
" t = a - a.min()\n",
" return t / t.max()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"'half_width','peak_to_trough'"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"plt.figure(figsize=figsize_gen)\n",
"\n",
"\n",
"lw = 3\n",
"\n",
"row = results.query('bs==1').sort_values('half_width', ascending=False).iloc[50]\n",
"template = data_loader.template(\n",
" row.action, row.channel_group, row.unit_name)\n",
"\n",
"mean_wf = template.data\n",
"peak_wf = mean_wf[np.argmin(mean_wf.min(1))]\n",
"plt.plot(normalize(peak_wf.T), color=color_bs, lw=lw)\n",
"\n",
"\n",
"row = results.query('bs==0').sort_values('half_width').iloc[10]\n",
"template = data_loader.template(\n",
" row.action, row.channel_group, row.unit_name)\n",
"\n",
"mean_wf = template.data\n",
"peak_wf = mean_wf[np.argmin(mean_wf.min(1))]\n",
"plt.plot(normalize(peak_wf.T), color=color_ns, lw=lw)\n",
"\n",
"plt.savefig(output_path / \"figures\" / \"example_waveforms.svg\", bbox_inches=\"tight\")\n",
"plt.savefig(output_path / \"figures\" / \"example_waveforms.png\", dpi=600, bbox_inches=\"tight\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Store results in Expipe action"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"action = project.require_action(\"waveform-analysis\")"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"action.data['results'] = 'results.csv'\n",
"results.to_csv(action.data_path('results'), index=False)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"stuff = {\n",
" \"figures\": \"figures\",\n",
" \"statistics\": \"statistics\"\n",
"}\n",
"\n",
"for key, value in stuff.items():\n",
" action.data[key] = value\n",
" data_path = action.data_path(key)\n",
" data_path.parent.mkdir(exist_ok=True, parents=True)\n",
" source = output_path / value\n",
" if source.is_file():\n",
" shutil.copy(source, data_path)\n",
" else:\n",
" copy_tree(str(source), str(data_path))"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"septum_mec.analysis.registration.store_notebook(action, \"10_waveform_analysis.ipynb\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}