septum-mec/actions/stimulus-lfp-response/data/20_stimulus-lfp-response.ipynb

628 lines
235 KiB
Plaintext
Raw Normal View History

2019-10-17 17:50:46 +00:00
{
"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": [
"18:16:41 [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",
"import matplotlib\n",
"from distutils.dir_util import copy_tree\n",
"from neo import SpikeTrain\n",
"import scipy\n",
"import seaborn as sns\n",
"from tqdm import tqdm_notebook as tqdm\n",
"from tqdm._tqdm_notebook import tqdm_notebook\n",
"tqdm_notebook.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",
"plt.rc('axes', titlesize=12)\n",
"plt.rcParams.update({\n",
" 'font.size': 12, \n",
" 'figure.figsize': (6, 4), \n",
" 'figure.dpi': 150\n",
"})\n",
"\n",
"output_path = pathlib.Path(\"output\") / \"stimulus-lfp-response\"\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": [],
"source": [
"identify_neurons = actions['identify-neurons']\n",
"sessions = pd.read_csv(identify_neurons.data_path('sessions'))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"lfp_action = actions['stimulus-lfp-response']\n",
"lfp_results = pd.read_csv(lfp_action.data_path('results'))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"lfp_results = pd.merge(sessions, lfp_results, how='left')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"def action_group(row):\n",
" a = int(row.channel_group in [0,1,2,3])\n",
" return f'{row.action}-{a}'\n",
"lfp_results['action_side_a'] = lfp_results.apply(action_group, axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"lfp_results['stim_strength'] = lfp_results['stim_p_max'] / lfp_results['theta_energy']"
]
},
{
"cell_type": "code",
"execution_count": 18,
"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_side_a</th>\n",
" <th>channel_group</th>\n",
" <th>signal_to_noise</th>\n",
" <th>stim_strength</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>1833-010719-1-0</td>\n",
" <td>4</td>\n",
" <td>0.006686</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>1833-010719-1-1</td>\n",
" <td>2</td>\n",
" <td>0.034550</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>694</th>\n",
" <td>1833-010719-2-0</td>\n",
" <td>6</td>\n",
" <td>0.004609</td>\n",
" <td>7.173297</td>\n",
" </tr>\n",
" <tr>\n",
" <th>691</th>\n",
" <td>1833-010719-2-1</td>\n",
" <td>3</td>\n",
" <td>0.003974</td>\n",
" <td>6.446883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>580</th>\n",
" <td>1833-020719-1-0</td>\n",
" <td>4</td>\n",
" <td>0.008427</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" action_side_a channel_group signal_to_noise stim_strength\n",
"68 1833-010719-1-0 4 0.006686 NaN\n",
"66 1833-010719-1-1 2 0.034550 NaN\n",
"694 1833-010719-2-0 6 0.004609 7.173297\n",
"691 1833-010719-2-1 3 0.003974 6.446883\n",
"580 1833-020719-1-0 4 0.008427 NaN"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lfp_results_hemisphere = lfp_results.sort_values(\n",
" by=['action_side_a', 'stim_strength', 'signal_to_noise'], ascending=[True, False, False]\n",
").drop_duplicates(subset='action_side_a', keep='first')\n",
"lfp_results_hemisphere.loc[:,['action_side_a','channel_group', 'signal_to_noise', 'stim_strength']].head()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"colors = ['#1b9e77','#d95f02','#7570b3','#e7298a']\n",
"labels = ['Baseline I', '11 Hz', 'Baseline II', '30 Hz']\n",
"queries = ['baseline and Hz11', 'frequency==11', 'baseline and Hz30', 'frequency==30']"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 525x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 525x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAFICAYAAACSp82YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XmcHFW5//HPzGRPgGwEMAESCDxsgqggXPESlU3ZBbwXCRJWRXFBBFEQEWX3ByogCF4IgspmlCW4IEYUFEUEBIIPAUkCAQxZIetkMv3745xmema6e3pmqru6Zr7v12te1V11qvrpzmSePqfO0pDL5RAREZH61ph2ACIiItI1JWwREZEMUMIWERHJACVsERGRDFDCFhERyQAlbBERkQxQwhYREckAJWwREZEMUMIWERHJACVsERGRDFDCFhERyQAlbBERkQxQwhYREckAJWwREZEMGJB2ACK1YmY7u/s/O+ybDhwXn27m7q/XPLACxWKsN2a2DXA+MAUYCywFZrv7h1IMS6TPU8KWPs/MNgIuAD5Lnf7Om9mmwHeA9wOTUg6nJDMbDzwKjC7YvQnwXDoRifQfdfnHSyRhVwAnpB1EF34CfAiYl3YgXfgcbcn6LuBaYA2wKrWIRPoJJWzpD5rSDqACWYgRYMe4XQcc5+5K1CI1ok5nItIdw+N2oZK1SG0pYYtId+T/ZrSkGoVIP9SQy+XSjkGkKszsfOAbJQ4/5O5TOvYSB4YAZwIHAOOBN4HZwHTgZncv+R/GzAYC04CjgJ0J93qXAU8R7vfe5O7NHc4pfP2Obnb3aR3KbwKcDHwYsPgaLcBi4DHgNuDn5eLsLjObCLxUpsg8d58Yy+Zf93RgJnA1sBehCf0F4Gx3/13Btbv9mRWJ78OEDoXvAcYBC4C7gYsJn83SWPR4d5/e9TsWqU+qYYu0OYLQ2/kzwFbAYGBjYG/gJmCmmRXt92FmkwlJ5npgX0LP6YHx/H2A64CnzMx6GpyZHUdInN8iDKnaLMY4HNgixn8ncLeZpX1PfHPgEWA/YBiwEfBuQtIGev+ZmdkAM7se+B1wOOEzGAJsDXwJeJLwpUakT1DClr7sOmBX4N6CfbvGn5OKlL8aaACuIdSwPwicA6yMxz9CSATtxCFZfwK2B5rj+QcCuwOHAjcD64HtgFlmtlnB6efFeB6Pz18riPG8gtf4EKGWPxRYQhim9hFgD0Kivia+NsDBJd5fT71aEFOxOD9a5JwvEsZoXwZ8gFCDvsjd58b305vPLO87hNYGCL3rPw3sCXwM+C2hheTOnr1lkfqjXuLSZ8VJUF43syUF+54sc8pa4EPu/ueCfX8ws98Df4nPjyMkoULXAZsSms/3cffHOhy/x8zuAu4h1IqvBP43xjMfmG9mK2LZ5hIxXhC3LcD+7v73DsdnmNmvaftychTwwzLvtWKxSfpJgArizGskJOhzCvbdVfC4x59ZjGNn4LT4dDbwAXdfUnD+L8zsu8AXKniLIpmgGrZIm6s7JGsA3P1R4B/x6XaFzeJmti1wSHx6YZHEk7/GfYRaI8BRZvaOSoMys2GEpu8lwL1FknXhayyLT8dXev0qurbYzoQ+s+NpGwp3aodknfdl4NluRy1Sp5SwRdrcX+bYnLhtJNyPzfsooRkd4IEKr99IuAddEXdf5e67ufsY4MguiuenVh1c6fWrZIG7v1LiWBKf2UFx+7K7/7HYie7eAtzQdagi2aAmcZE2pRIMhNm88gr/3+xa8Pgf3ehTtlWlBQu5eyuAmQ0nTGG6NeE+7y6E3tibx6Jpfxl/ucyxXn1msUNd/vMr1ywP0KnFRCSrlLBF2rxVYbmGgsdje/hao7p7gplNAM4gNCeXSvitpJ+sIdybLqW3n9lY2t7joi7OebWHryVSd5SwRdr0ZOxy4f+h3QnjjSvxRndexMwOIHTaGl6w+y3CMLRnCWOwfwf8grbpQ9NU7rPs7WfWWrCvoVjBAmXHcItkiRK2SO8UdnZa4O6J1+jiEKjbCMl6HWFCkJ8B3nGCFDMbkfTrV0FvP7OlhCFfTYSJUsrpdkuGSL1SwhbpnWcKHu8BzChV0MzeR+g4NRd4pEynrI6m0tbR7dvufkGxQmY2mDD5SL3r1Wfm7i1m9k/CvfD3mFlj/t5+Ee9KJmSR9NXDvS6Raiv1xzwJvyl4fGoXZS8HLiHUljvegy4X4+SCx4+XLBUmUBkSH9fzl/EkPrP74nYT2nqMF/PJbkcnUqeUsKU/WJt/kHSTcRwTnR9WtI+Zfa1YOTM7gzDjF4SezX8qEWOx+Ao7Vn2kxPV3B64q2JX2sK6SEvrMrqVtDe5rzGzLIuefQJg9TaRPqOdv4SJJea3g8UVm9mNgvbs/kdD1TwL+DmwIXGhmewP/R5gu8x3AMYTpMiF0gjqlyOIc+RjHmNlXCeOTV7n7bEJns68ROlh9Jk6k8nNCIh9PmMrzaMI83HkbmllDkouAJKxXn5m7v2ZmnyXM8T4BeNzMLiXMXz6cMCva8TV6LyI1oRq29Af3EDopAXyO0KP6l0ld3N3nEBYImRt37QfcDjxKuD97BCHZLgUOLTGzV+F93ItijNfG6z8JnBuPNRAS0X3x+j8nNPsOJEwykp8oZBDtm9LrShKfWVx56zOEjnhjCFPGPkKYR/wEwtCyK6r4NkRqSglb+ryY8A4hzAe+AlgNrIs11SRfY3vCMo8PAP8hJJK3CPedLwC2c/dflzj/PsI85U8SmnpX0HY/Gne/iLCi1T3x2i2x3IuEBS4OdPcDCUkv7+NJvb9q6O1nFq9xLfBO4EfAfEJtfAFhHvV30jYHvEjmaT1sEemzzOxI2lbs0nrYkmn9uoZtZveY2T1pxyEiItKV/t7pbOvJkyfvQM9muBLp67qaRUxEaqiqCdvMPkVY9/Zkd/9RD84fQ+hscyihJ+hSQqeSy+KShyJSxhtvvMGiRV1Nt13cYYcd9vakI12sfS0iNVC1hG1muxEmPejp+ZsQkvPWhM41/yQk7cOBQ8zsFHe/MYlYRfqq2267jauvvrqnpxcOe1NtWyRlVbmHbWZTCLMZbdCLy9xOSNYPABPc/b2E8ZlnE+YQvs7Mtu9lqCIiIpmQaC9xMxtCSKjnEpJqXreaxGPCn0UY2jLJ3Rd1OH4LYX7ln7j71F7E++zkyZN3mDlzZk8vIdKXqVYtUkcSq2Gb2WTgeeAbcde5hFmLemJa3N7dMVlH18XtYWY2tIevISIikhlJNolPADYnzFT0Pne/sBfX2jNuHy5x/G+EiSOGA+/txeuIiIhkQpKdzl4hzLZ0f28uYmaNtK3K82KxMu6+zswWAFsC29J5IQWRfqe1NceqVc0VlW1Z18Ly+XPLltlylx0TiEpEkpJYwnb3F4AXErjUKNrieqNMucWEhD02gdcUybxVq5q54OsPVFR2aHMLp86aU77QbCVskXpSjzOdFc7vvKZMudVFyouIiPRJ9Ziw13ddpB3NUiYiIn1ePU5NuqLg8ZCSpSDfO3xVmTIi/cb69d39ritpM7OJwEslDucIszvOB34FXOnu5W4T1iUzm0ZYt3yBu08o2P8HwhKrF7r7ucXPTpeZTSesoveQu09JN5r6TdhrgcGENW5Lyd+7Xlj1iEQyYNnSVzvtO2L5ZxmSe7PT/oZ1w4Avttu36LKd2WDzCZ3KSs08AywveD6A0KdnJ+BdwMlm9iF3fzqN4CR9dZew3b3VzBzYGZhYrIyZDSTMegZh7LeIFDEk9yZDiyXsXOfa+DibyLhtrBZhSXGfc/c/dNwZ11S4GTgQuMvMtnf31loHVwWfJPRB6tlk9/1QPd7DBvhr3O5Z4vjuhC8ba2g/37GISJ/i7osJzbJrCcNY90s3omS4+3x3/1eJybGkiHpN2HfE7ZFmNrrI8VPj9nZ3X13kuEif0ZprZfGaFV3+LGvWf4W+KibtZ+LTndKMRdKTapO4mW1BaBJZ5e7zCw49SFip6/3AL83sKHf/T5xU5cvAMcA64NJaxyxSa0vXrmKXn327y3Ibr1rHvnyw/c7P382oCVt0KptbtpbWQ+9pt2/UyM1
"text/plain": [
"<Figure size 525x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 525x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"density = True\n",
"cumulative = True\n",
"histtype = 'step'\n",
"lw = 2\n",
"bins = {\n",
" 'theta_energy': np.arange(0, .7, .03),\n",
" 'theta_peak': np.arange(0, .7, .03),\n",
" 'theta_freq': np.arange(4, 10, .5),\n",
" 'theta_half_width': np.arange(0, 15, .5)\n",
"}\n",
"xlabel = {\n",
" 'theta_energy': 'Theta energy (dB)',\n",
" 'theta_peak': 'Peak PSD (dB/Hz)',\n",
" 'theta_freq': '(Hz)',\n",
" 'theta_half_width': '(Hz)',\n",
"}\n",
"# key = 'theta_energy'\n",
"# key = 'theta_peak'\n",
"for key in bins:\n",
" fig = plt.figure(figsize=(3.5,2))\n",
" plt.suptitle(key)\n",
" legend_lines = []\n",
" for color, query, label in zip(colors, queries, labels):\n",
" lfp_results_hemisphere.query(query)[key].hist(\n",
" bins=bins[key], density=density, cumulative=cumulative, lw=lw, \n",
" histtype=histtype, color=color)\n",
" legend_lines.append(matplotlib.lines.Line2D([0], [0], color=color, lw=lw, label=label))\n",
" \n",
" plt.legend(\n",
" handles=legend_lines,\n",
" bbox_to_anchor=(1.04,1), borderaxespad=0, frameon=False)\n",
" plt.tight_layout()\n",
" plt.grid(False)\n",
" plt.xlim(-0.05, bins[key].max() - bins[key].max()*0.025)\n",
" sns.despine()\n",
" plt.xlabel(xlabel[key])\n",
" figname = f'lfp-psd-histogram-{key}'\n",
" fig.savefig(\n",
" output_path / 'figures' / f'{figname}.png', \n",
" bbox_inches='tight', transparent=True)\n",
" fig.savefig(\n",
" output_path / 'figures' / f'{figname}.svg', \n",
" bbox_inches='tight', transparent=True)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 480x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 480x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 480x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 480x300 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"density = True\n",
"cumulative = True\n",
"histtype = 'step'\n",
"lw = 2\n",
"bins = {\n",
" 'stim_energy': np.arange(0, .7, .01),\n",
" 'stim_half_width': np.arange(0, 10, .5),\n",
" 'stim_p_max': np.arange(0, 4, .01),\n",
" 'stim_strength': np.arange(0, 160, 1)\n",
"}\n",
"xlabel = {\n",
" 'stim_energy': 'Energy (dB)',\n",
" 'stim_half_width': '(Hz)',\n",
" 'stim_p_max': 'Peak PSD (dB/Hz)',\n",
" 'stim_strength': 'Ratio',\n",
"}\n",
"# key = 'theta_energy'\n",
"# key = 'theta_peak'\n",
"for key in bins:\n",
" fig = plt.figure(figsize=(3.2,2))\n",
" plt.suptitle(key)\n",
" legend_lines = []\n",
" for color, query, label in zip(colors[1::2], queries[1::2], labels[1::2]):\n",
" lfp_results_hemisphere.query(query)[key].hist(\n",
" bins=bins[key], density=density, cumulative=cumulative, lw=lw, \n",
" histtype=histtype, color=color)\n",
" legend_lines.append(matplotlib.lines.Line2D([0], [0], color=color, lw=lw, label=label))\n",
" \n",
" plt.legend(\n",
" handles=legend_lines,\n",
" bbox_to_anchor=(1.04,1), borderaxespad=0, frameon=False)\n",
" plt.tight_layout()\n",
" plt.grid(False)\n",
" plt.xlim(-0.05, bins[key].max() - bins[key].max()*0.02)\n",
" sns.despine()\n",
" plt.xlabel(xlabel[key])\n",
" figname = f'lfp-psd-histogram-{key}'\n",
" fig.savefig(\n",
" output_path / 'figures' / f'{figname}.png', \n",
" bbox_inches='tight', transparent=True)\n",
" fig.savefig(\n",
" output_path / 'figures' / f'{figname}.svg', \n",
" bbox_inches='tight', transparent=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plot PSD"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"psd = pd.read_feather(output_path / 'data' / 'psd.feather')\n",
"freqs = pd.read_feather(output_path / 'data' / 'freqs.feather')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"from septum_mec.analysis.plotting import plot_bootstrap_timeseries"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"freq = freqs.T.iloc[0].values\n",
"\n",
"mask = (freq < 100)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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uT1OGddkXCtIEhCPgKZpraqqngT8GPgqMB+IAm8A92iatiKX/ctXhmHw5f+7n/ebduW6K1nxiYmzWLHkSttePGKxGF1dXaxdu5bbb7+deDzOlVdeybRp09KOe/DBB1m9ejU1NTU88MADLFq0KHnfhg0buPrqq2lubub+++/nnnvuAaCrq4s777wTgLvuuouzzz47ec5bb73FNddck3zx6LkvEAhw1VVX0dDQwBlnnMHPf/5zJk2aBEBzczM33ngjr7/+OldffTXPPfccXu9AlQwH1trayl/+8hduuOEGvvGNb+B0OgmHw9x44408//zz/O///i+XXnppMk/Pzr6J4mYYBr+75x121bfb3/hnD+/9+v+9mJWHPGR2DVf94GQZ12RcKzgSEI+Qpml+4KbEfyJL8v8DPft861vfGvD+yy+/nGuvvTbj5++88w4Oh4Pvf//7aS8aAIsWLeLrX/8699xzDx9/3FskZefOnYTDYaqqqliyZEnaOaeeeipXXHEFmqbhdruTP3/qqafYtWsXRxxxBPfee2/aDEtdXR2/+c1vWLJkCfX19axYsYKLLrpoWM+/r4suuijtmpSUlHD99dezcuVKdF1nw4YNnH766TnpmyhuBZCpYBsZ19LJuGYfCYjFmKEoCiuWXCkpE0PUt15nPB7H7/eza9cuIpEIf/jDHwgGg1x//fVpA+Of/vQnotHoQftWWmruKxMK9e5OPn36dFwuF52dnSxbtoxLLrmEww/vnX265pprMh7n5ZfNrKElS5aktd/D6/Xy+c9/noceeojXXntt1IPz4sWLM35WU1NDbW0tra2tdHV15axvongpisJVPzg5JykTB46/2+zD1Crqnvk2inP06+itTpmQcS2djGv2kYBYjCmKolDmzlzAIDIdrF5nJBLhmWee4T/+4z947LHHiMVi3HTTTWnHuN1uOjs7WbduHfX19ezZs4f6+no++ugjWlpaAPOFqMf48eO57LLLuP/++3n22Wd59tlnqaur48QTT+TUU0/ltNNOyygb1DMT89RTT/HKK6/0+xx62tqxY8eIr0OPno8G++r5WDAW6w1I7O6bKG6KouApsf/l1h0zAHAYBh63E8WdGSSNNTKupZNxzT4SEAtRYDweD1/72tdobm7m3nvv5cknn+R73/seU6ZMAcwVyLfccgsrV64kGu2djXe73RxxxBHMnz+fVatWZTzuddddx8KFC3nsscd4//33aW5uZuXKlaxcuRKXy8WSJUv4t3/7NyorK5PtAMkFLQPp7u4e9fNO/VizP4ZhJL+2u29C5Jwx+CFjmYxr/ZNxLXskIBaiQJ1xxhnce++9xGIxNm/enHzhuPrqq1m9ejVer5dvfvObHHXUURx22GHMmjULt9vNk08+2e8LB8CZZ57JmWeeic/nS67CfuONN9ixYwfPP/883d3d3H///YD5EWXP9/197JdLY7lvQlgjzyPiBBnXDm4s9y0fyMYcQhSo1Fy6nlmEdevWJcsS/f73v2fZsmWcddZZzJ07NzkT0djYmPFYoVCILVu2sGXLFgAqKir4zGc+w7Jly3jhhRdYunQpAK+99lpy5qGn3udABfTr6+vZuHEjbW1to326wzKW+yaEJQojHrZkXNv83nqMuCHjWpGTgFiIAvXGG28A5gvIwoULAbPge4+en6U
"text/plain": [
"<Figure size 750x300 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"fig, axs = plt.subplots(1, 2, sharex=True, sharey=True, figsize=(5,2))\n",
"axs = axs.repeat(2)\n",
"for i, (ax, query) in enumerate(zip(axs.ravel(), queries)):\n",
" selection = [\n",
" f'{r.action}_{r.channel_group}' \n",
" for i, r in lfp_results_hemisphere.query(query).iterrows()]\n",
" values = psd.loc[mask, selection].to_numpy()\n",
" values = 10 * np.log10(values)\n",
" plot_bootstrap_timeseries(freq[mask], values, ax=ax, lw=1, label=labels[i], color=colors[i])\n",
"# ax.set_title(titles[i])\n",
" ax.set_xlabel('Frequency Hz')\n",
" ax.legend(frameon=False)\n",
"axs[0].set_ylabel('PSD (dB/Hz)')\n",
" \n",
"sns.despine()\n",
"\n",
"figname = 'lfp-psd'\n",
"fig.savefig(\n",
" output_path / 'figures' / f'{figname}.png', \n",
" bbox_inches='tight', transparent=True)\n",
"fig.savefig(\n",
" output_path / 'figures' / f'{figname}.svg', \n",
" bbox_inches='tight', transparent=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Store results in Expipe action"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"action = project.require_action(\"stimulus-lfp-response\")"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/data/psd.feather',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/data/freqs.feather',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_energy.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_strength.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_peak.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_p_max.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_freq.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_energy.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_freq.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_half_width.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_half_width.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_half_width.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_energy.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_peak.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_p_max.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-theta_half_width.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_energy.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response/data/figures/lfp-psd-histogram-stim_strength.svg']"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"copy_tree(output_path, str(action.data_path()))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"septum_mec.analysis.registration.store_notebook(action, \"20_stimulus-lfp-response.ipynb\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}