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

1620 lines
481 KiB
Plaintext
Raw Permalink Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"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 statsmodels\n",
"import seaborn as sns\n",
"from tqdm.notebook import tqdm_notebook as tqdm\n",
"tqdm.pandas()\n",
"\n",
"from spike_statistics.core import permutation_resampling_test\n",
"\n",
"from spikewaveform.core import calculate_waveform_features_from_template, cluster_waveform_features\n",
"\n",
"from septum_mec.analysis.plotting import violinplot, despine"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"#############################\n",
"\n",
"zscore_str = \"-no-zscore\"\n",
"# zscore_str = \"\"\n",
"\n",
"# stim_loc = 'mec'\n",
"stim_loc = 'ms'\n",
"\n",
"#################################"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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\" + '-' + stim_loc + zscore_str)\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": 5,
"metadata": {},
"outputs": [],
"source": [
"data_loader = dp.Data()\n",
"actions = data_loader.actions\n",
"project = data_loader.project"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"identify_neurons = actions['identify-neurons']\n",
"sessions = pd.read_csv(identify_neurons.data_path('sessions'))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"lfp_action = actions['stimulus-lfp-response' + zscore_str]\n",
"lfp_results = pd.read_csv(lfp_action.data_path('results'))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"lfp_results = pd.merge(sessions, lfp_results, how='left')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"if stim_loc == 'ms':\n",
" lfp_results = lfp_results.query('stim_location!=\"mecl\" and stim_location!=\"mecr\"')\n",
"elif stim_loc == 'mec':\n",
" lfp_results = lfp_results.query('stim_location!=\"ms\"')\n",
"else:\n",
" raise AssertionError('')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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": 11,
"metadata": {},
"outputs": [],
"source": [
"lfp_results['stim_strength'] = lfp_results['stim_p_max'] / lfp_results['theta_bandpower']"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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>71</th>\n",
" <td>1833-010719-1-0</td>\n",
" <td>7</td>\n",
" <td>0.001902</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>1833-010719-1-1</td>\n",
" <td>3</td>\n",
" <td>0.003522</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>695</th>\n",
" <td>1833-010719-2-0</td>\n",
" <td>7</td>\n",
" <td>0.004280</td>\n",
" <td>1.401239</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>3.920680</td>\n",
" </tr>\n",
" <tr>\n",
" <th>583</th>\n",
" <td>1833-020719-1-0</td>\n",
" <td>7</td>\n",
" <td>-0.002942</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",
"71 1833-010719-1-0 7 0.001902 NaN\n",
"67 1833-010719-1-1 3 0.003522 NaN\n",
"695 1833-010719-2-0 7 0.004280 1.401239\n",
"691 1833-010719-2-1 3 0.003974 3.920680\n",
"583 1833-020719-1-0 7 -0.002942 NaN"
]
},
"execution_count": 12,
"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",
"lfp_results_hemisphere = lfp_results.sort_values(\n",
" by=['action_side_a', 'channel_group'], ascending=[True, 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": 13,
"metadata": {},
"outputs": [],
"source": [
"colors = ['#1b9e77','#d95f02','#7570b3','#e7298a']\n",
"labels = ['Baseline I', '11 Hz', 'Baseline II', '30 Hz']\n",
"# Hz11 means that the baseline session was indeed before an 11 Hz session\n",
"queries = ['baseline and i and Hz11', 'frequency==11', 'baseline and ii and Hz30', 'frequency==30']"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# prepare pairwise comparison: same animal same side same date different sessions"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"def make_entity_date_side(row):\n",
" s = row.action_side_a.split('-')\n",
" del s[2]\n",
" return '-'.join(s)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"lfp_results_hemisphere['entity_date_side'] = lfp_results_hemisphere.apply(make_entity_date_side, axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"from functools import reduce"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"keys = [\n",
" 'theta_bandpower',\n",
" 'theta_relpower',\n",
" 'theta_relpeak',\n",
" 'theta_peak',\n",
" 'theta_freq',\n",
" 'theta_half_width',\n",
" 'stim_bandpower',\n",
" 'stim_relpower',\n",
" 'stim_relpeak',\n",
" 'stim_half_width',\n",
" 'stim_p_max',\n",
" 'stim_strength',\n",
"]\n",
"\n",
"results = {}\n",
"for key in keys:\n",
" results[key] = list()\n",
" for query, label in zip(queries, labels):\n",
" values = lfp_results_hemisphere.query(query).loc[:,['entity_date_side', key]]\n",
" results[key].append(values.rename({key: label}, axis=1))\n",
" \n",
"for key, val in results.items():\n",
" df = reduce(lambda left,right: pd.merge(left, right, on='entity_date_side', how='outer'), val)\n",
" results[key] = df.drop('entity_date_side', axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n"
]
},
{
"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": "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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": "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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"
}
],
"source": [
"xlabel = {\n",
" 'theta_bandpower': 'Theta bandpower (V$^2$/Hz)',\n",
" 'theta_relpower': 'Theta relative power',\n",
" 'theta_relpeak': 'Theta relative power',\n",
" 'theta_peak': 'Peak PSD (V$^2$/Hz)',\n",
" 'theta_freq': '(Hz)',\n",
" 'theta_half_width': '(Hz)',\n",
"}\n",
"\n",
"for key in xlabel:\n",
" fig = plt.figure(figsize=(3.5,2))\n",
" plt.suptitle(key)\n",
" legend_lines = []\n",
" for color, label in zip(colors, labels):\n",
" legend_lines.append(matplotlib.lines.Line2D([0], [0], color=color, label=label))\n",
" sns.kdeplot(data=results[key].loc[:,labels], cumulative=True, legend=False, palette=colors, common_norm=False)\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",
" 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": 20,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:1402: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" ndim = x[:, None].ndim\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:276: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" x = x[:, np.newaxis]\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/matplotlib/axes/_base.py:278: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version. Convert to a numpy array before indexing instead.\n",
" y = y[:, np.newaxis]\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcAAAAFRCAYAAADjH32VAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdeZhbZdn48W8mk1m77xt0pTdlX4sVkCJCkYJFERfWgqiooOCLuMD7yqIi4k95QRReEVkERJRNClQoawst+07vtkAXoC10X6azZPn98ZwkZ9Ikk5nmzEwy9+e6ep1zcs558iSZ5s6zhxKJBMYYY0xPU9HVGTDGGGO6ggVAY4wxPZIFQGOMMT2SBUBjjDE9kgVAY4wxPZIFQGOMMT2SBUBjjDE9kgVAY4wxPZIFQGOMMT2SBUBjjDE9kgVAY4wxPZIFQGOMMT2SBUBjjDE9kgVAY4wxPVJlV2fAdH8ispeqvp7l8ZuB073D4aq6qlMztoNEZCrwhHf4U1X9dRdmJ3AiMgZ43zu8VFUv6brcGNP1LACanESkL3AZ8D3sb8UYU2bsS83k8zvgzK7OhDHGBMECoMknnO+kqs4EZnZKTowxpsisE4wxxpgeyQKgMcaYHsmqQHsIERHgu8ARwFjcj581wEvAPcAdqhr1rr0E+HnG/Qlv9ylVneo9djM5eoGKyFJgNPD/VPUCEZkOnAPsD/QClgP/An6jqhu9e/YB/gs4HBjs5e9x4HJVXVSUNyIPEakHLgS+AowBtgAvA7cAd6pqIs+9NcCpwDHAvsAgIAKsB94EHgT+rKpbs9z7JHAYcL+qHi8i+wPfB6YCQ4FNwAvAjap6bxuvYW/gfGAKsDOwFngU+DXQlOe+mcBfvcPhQAK4GDgWGOHlYQHwJ1Wd1UYewsAJwMnAgcBA3Hu5CJgFXKeq6zPuuRX3/iWAwaq6Nku6lwH/7R3+SFV/m+WaXbznAfiuqv4p4/xOwLnANNxnXAWsBJ4BrlfV53K8pktw/yc2Av1xf6fn4N6rj4EnVPW0XO+J6Z6sBNgDiMhJwOu4L9XdgTqgBhgFzMB9wb8gIkMDev7rcQHgaFxgqwUE+BnwjIjUi8hZwPPAKcBI3BfTCO/4Re+LPUjDgBeB/wF2xb0/g4CjgNuBOSLSO9uNIrIfsBj4P+B4XOCv917DUNyPjt8Dr4jIyHyZEJFzgfnAabgAVo17z44B7hGRW0UklOPenwCv4H6UTPRew0hcO+2rwBfafhtcUl4655AOEoOA6cCDInKdiGT97hCR0cA84C7v+YZ79w8APgVcDrwrIkdn3Pqgtw3h3q9sPufbn5rjmmN8+w9k5O0buOD4I2AvoA/uPRqLe7+fFZEbRCSSI+2kK4CrcJ9zFe7/UayNe0w3ZAGwzInIBOAm3H/U94HvAIfgSginAMlfvPsAf/T2r8eVYv7tS2pf799Z7czC6cC3AQW+CRyM+6W/1Du/J/BP4AZgNS5IT8F9kc32rukN/G87n7e9vo8LfM8BX8N9WZ8OvOWdPxy4I/MmERmIK2ElvwRvxAXBKbiAcRGuJAuwC7BdqcXnU7jXuQlX0vkMrmT4K6DZu+ZUXAk1Mx/n4L6YQ97zXQB8GhfAb8B9/r/P9wb4/B0XuJ7AleSm4GoPPvTOf9d7rsw8DMa9Fwd5D8318vsp3Of5Z9x71B8XSP0BbTbQ4u0fmSXtPrjSZNIhXkkzUzIAvqyqyfwmS7g34gLe+7gS3KG49+ibuB8IAN/C/ZDJpTfwY9zfxYm4z+gS4E957jHdlFWBlr+TcaWIGHC4qi7znZsvIv8AnsR9EXxRRAZ5VZmrRGRd8kJVfZWOGYQrfR6qqpu8x54VkVdwVYPgSoZLgYNU9ePkjSIyG1caOhD4jIj0U9UNHcxHW0K4L/6TVTXuPbZARO7GfTkfChwrItMzqgDPx5VuAC5Q1asz0n1IRG7BfWH2BY4XkcpkdXOGobjquE+p6nLf40+LyGu4UhW4El1yPxl4fuEdfgR8OuNzflREHgXuzv8WpAzDBatv+6p954vIPbigNgE4X0T+klE1/StckAe4Bjgvo9r4Ye/9fBAXkP8mIuNUtUFVN4rIXNwPje0CIK7EV4kLkhHce7kvrtSefB/qcD8YwFf6E5ERwHXe4RxgRkZV9HNedf6twNeBmSJyl6o+kiUfFbhq0MNV9RPvsWeyXGdKgJUAy98wb7sF9+XYiqq24No2rsF9mQfxN3GxL/gln/ct4B3fQ5f6g593TZx0KTQEjA8gb0mrgW/6gl8yD9twASf5+Hcy7huJe19Xkf6SbcUriTzpHdbg2sRy+UVG8Eu6G9eeCJBZHfxVXEAAuDAj+CXz8C/gtjzP67cYOCezzVNVVwNne4cR4BvJc14Qnukdvg78MFubqao+iguU4AL+6b7TyWrQ0V5bnl+ytPgALgDB9tWgR+B+7CWvS/oerto/CpyWrR3W+0HyHV/aP8i8xuefvuBnSpgFwPK30Nv2Be4WkUmZF6jqY6r6A1X938wgVARx0tONZfrQtz8nxzX+/PQqSo6yu0NVt2Q7oarvkf6Vf7iIVPrOnaGqI4GR3o+JXPzTxFXnvAr+kyMPCdLTmGW2RSar/ZpwHYtyuSnPOb8bVbU52wlVnYPrwARwnO/UZ0nXKN2oqvnaxPzVhZ/37T/o288sBSYD4BxcrQC40qJfMq0VqvqK7/Hp3vZtVd3uR2CS1xlrnnf4mTxtgfNzPG5KjFWBlr9bcY3+I3EdXmaIyHu4tprHgMcCrFYEWJMrsNC6V+LKAq7J2vmjSBa0cf4VXPVaHa4kqv6TyZKj96U5GhiH64iyJ64NbU/f5fl+eC7Ncy75Pmb+v901nQ1tzHP/i7helm29j/PaOP8yroPORBGp8F77Hr7zeQOEqn7s/Q2Ow/e+qOoiEVmMq0Y9Eq9N2qvCTP5wexxXrT4Nrx3QF2yTATDVdu39WEk+x16+3sxtqcOVUD/Icm5FgWmYbs5KgGXO627+OVp/KY3DdUy5G1gjInNE5ORcvQt30OZCLsrRJtaZ2ir5rvHtD/CfEJE6EblARF4GGnBViLOBa3GdKvYkXYWaT1Mb70Pyyzvzc0r23t1u6ICfV/WX68eIX85SkidZ/RfGBSNoXa1bSC3Cam87IOPxZCnwcF8nl2Tpb6WqKukahT7AfgAishuuxyq0rv7sT8e/5/rneHxTjsdNibESYA+gqguBKSJyEK5X3zG44RDgvsQ+6/07Q0SO89q9iqWrA1ux+INOqlQqImNx1ZYTfOebcd3t38GNs3wK1xvyuwHlLVdgzCZfNW1SW5+Zv/dlsqq0vT+ekmlk/jB4ENcW3RfX+Wk+6QCYDHwLcD806nDtgC+QrgbeTOsqd/933CPAT9uRxyU5Hi+0FGm6OQuAPYiqLsB9eVwoIsNwQe9YXLf9WlwnggtwY7V6msySSKYhvn1/SetO0sHvTlyp78XM9kAROZvgrPTyMDjfRV6Jqk8B6Q0gfzVf8nkafdXn63znhwDbdcTJkCy1rst4/BlcR5S+uGrQ+bi/U/ACm6q2eD1Gj8IFwKtIV3/Ozmi/9Kcf3oHezKYMWRVomRORWhHZR0R29z+uqqtU9Q5VPQk3Ni/5S/zYTs9k97B7G+cne9u1yV6WInIA6TFvT6jqSar6XI7OMDsXKZ/ZJMcqSq7B+p49KOxH7z65TnjV5Pt7h6/5TvnXizyIPERkOK6dFNKdtIBUr+RkR6AjRWQ8rv0aXPsfGfuHikh/3DAVyBj8rqpNpEty+/s7MOXI29ki8j0Rmd7Wtab0WQAsYyJShSutvEKegbpej7lkJ5Qa36lC2q3KxYl5ZjfZk/SX+mzfKX+150u5EvYWoj3Y91Cxv1iTPT8raT2sIFOhU3Wdmufc0bgZesBNoZf0BOnq1bNyvZcef2n40Sznk+2AnyLdg3O51xs3KRkAe+OqNSO4sa7ZpmlLfmYDcJMcZOVNGnEd8Afg2m7QLm0CZgGwjHlVQclf04eIyAnZrhORw0j/yn7Bd8rf1hXkEITuYA+yVP2KSD/cVHHg2n78s6n4O8Z8Llu
"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"
},
{
"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": [
"xlabel = {\n",
" 'stim_bandpower': 'Energy (V$^2$/Hz)',\n",
" 'stim_relpower': 'Relative power',\n",
" 'stim_relpeak': 'Relative power',\n",
" 'stim_half_width': '(Hz)',\n",
" 'stim_p_max': 'Peak PSD (V$^2$/Hz)',\n",
" 'stim_strength': 'Ratio',\n",
"}\n",
"for key in xlabel:\n",
" fig = plt.figure(figsize=(3.2,2))\n",
" plt.suptitle(key)\n",
" legend_lines = []\n",
" for color, label in zip(colors[1::2], labels[1::2]):\n",
" legend_lines.append(matplotlib.lines.Line2D([0], [0], color=color, label=label))\n",
" sns.kdeplot(data=results[key].loc[:, labels[1::2]], cumulative=True, legend=False, palette=colors[1::2], common_norm=False)\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",
" 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": {},
"outputs": [],
"source": [
"def summarize(data):\n",
" return \"{:.1e} ± {:.1e} ({})\".format(data.mean(), data.sem(), sum(~np.isnan(data)))\n",
"\n",
"\n",
"def MWU(df, keys):\n",
" '''\n",
" Mann Whitney U\n",
" '''\n",
" Uvalue, pvalue = scipy.stats.mannwhitneyu(\n",
" df[keys[0]].dropna(), \n",
" df[keys[1]].dropna(),\n",
" alternative='two-sided')\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(Uvalue, pvalue)\n",
"\n",
"\n",
"def PRS(df, keys):\n",
" '''\n",
" Permutation ReSampling\n",
" '''\n",
" pvalue, observed_diff, diffs = permutation_resampling(\n",
" df[keys[0]].dropna(), \n",
" df[keys[1]].dropna(), statistic=np.median)\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(observed_diff, pvalue)\n",
"\n",
"\n",
"def wilcoxon(df, keys):\n",
" dff = df.loc[:,[keys[0], keys[1]]].dropna()\n",
" statistic, pvalue = scipy.stats.wilcoxon(\n",
" dff[keys[0]], \n",
" dff[keys[1]],\n",
" alternative='two-sided')\n",
"\n",
" return \"{:.1e}, {:.1e}, ({})\".format(statistic, pvalue, len(dff))\n",
"\n",
"\n",
"def summarize_wilcoxon(df, keys):\n",
" dff = df.loc[:,[keys[0], keys[1]]].dropna()\n",
"\n",
"\n",
" return\"{:.1e} ± {:.1e}, {:.1e} ± {:.1e} ({})\".format(dff[keys[0]].mean(), dff[keys[0]].sem(), dff[keys[1]].mean(), dff[keys[1]].sem(), len(dff))\n",
"\n",
"\n",
"def paired_t(df, keys):\n",
" dff = df.loc[:,[keys[0], keys[1]]].dropna()\n",
" statistic, pvalue = scipy.stats.ttest_rel(\n",
" dff[keys[0]], \n",
" dff[keys[1]])\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(statistic, pvalue)\n",
"\n",
" \n",
"def normality(df, key):\n",
" statistic, pvalue = scipy.stats.normaltest(\n",
" df[key].dropna())\n",
"\n",
" return \"{:.1e}, {:.1e}\".format(statistic, pvalue)\n",
"\n",
"\n",
"def shapiro(df, key):\n",
" statistic, pvalue = scipy.stats.shapiro(\n",
" df[key].dropna())\n",
"\n",
" return \"{:.2f}, {:.3f}\".format(statistic, pvalue)\n",
"\n",
"def rename(name):\n",
" return name.replace(\"_field\", \"-field\").replace(\"_\", \" \").capitalize()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"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>Theta bandpower</th>\n",
" <th>Theta relpower</th>\n",
" <th>Theta relpeak</th>\n",
" <th>Theta peak</th>\n",
" <th>Theta freq</th>\n",
" <th>Theta half width</th>\n",
" <th>Stim bandpower</th>\n",
" <th>Stim relpower</th>\n",
" <th>Stim relpeak</th>\n",
" <th>Stim half width</th>\n",
" <th>Stim p max</th>\n",
" <th>Stim strength</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11 Hz</th>\n",
" <td>8.5e-04 ± 8.0e-05 (44)</td>\n",
" <td>8.6e-02 ± 4.6e-03 (44)</td>\n",
" <td>2.3e-01 ± 5.2e-02 (44)</td>\n",
" <td>3.2e-04 ± 3.1e-05 (44)</td>\n",
" <td>7.7e+00 ± 1.3e-01 (44)</td>\n",
" <td>1.7e+00 ± 3.0e-01 (43)</td>\n",
" <td>9.6e-04 ± 8.0e-05 (44)</td>\n",
" <td>1.1e-01 ± 7.4e-03 (44)</td>\n",
" <td>1.6e+01 ± 1.9e+00 (44)</td>\n",
" <td>3.4e-01 ± 2.5e-03 (44)</td>\n",
" <td>2.1e-03 ± 2.3e-04 (44)</td>\n",
" <td>3.3e+00 ± 3.8e-01 (44)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30 Hz</th>\n",
" <td>5.3e-04 ± 6.3e-05 (34)</td>\n",
" <td>5.3e-02 ± 4.2e-03 (34)</td>\n",
" <td>3.0e-02 ± 5.3e-02 (34)</td>\n",
" <td>1.9e-04 ± 2.7e-05 (34)</td>\n",
" <td>7.4e+00 ± 1.4e-01 (34)</td>\n",
" <td>1.2e+01 ± 1.9e+00 (34)</td>\n",
" <td>1.8e-03 ± 3.3e-04 (34)</td>\n",
" <td>1.6e-01 ± 2.3e-02 (34)</td>\n",
" <td>8.6e+01 ± 1.4e+01 (34)</td>\n",
" <td>3.0e-01 ± 2.3e-03 (23)</td>\n",
" <td>5.3e-03 ± 1.1e-03 (34)</td>\n",
" <td>1.3e+01 ± 2.8e+00 (34)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Baseline I</th>\n",
" <td>2.2e-03 ± 2.2e-04 (46)</td>\n",
" <td>2.6e-01 ± 1.6e-02 (46)</td>\n",
" <td>6.5e+00 ± 6.7e-01 (46)</td>\n",
" <td>1.7e-03 ± 1.8e-04 (46)</td>\n",
" <td>7.8e+00 ± 4.0e-02 (46)</td>\n",
" <td>7.7e-01 ± 1.8e-02 (46)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Baseline II</th>\n",
" <td>2.2e-03 ± 2.3e-04 (32)</td>\n",
" <td>2.7e-01 ± 1.7e-02 (32)</td>\n",
" <td>6.3e+00 ± 7.4e-01 (32)</td>\n",
" <td>1.6e-03 ± 2.1e-04 (32)</td>\n",
" <td>8.1e+00 ± 4.7e-02 (32)</td>\n",
" <td>8.4e-01 ± 3.2e-02 (32)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" <td>nan ± nan (0)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Normality 11 Hz</th>\n",
" <td>2.1e+01, 2.6e-05</td>\n",
" <td>5.6e+00, 6.2e-02</td>\n",
" <td>1.2e+01, 2.3e-03</td>\n",
" <td>2.4e+01, 5.3e-06</td>\n",
" <td>1.9e+00, 3.9e-01</td>\n",
" <td>1.0e+01, 5.5e-03</td>\n",
" <td>1.7e+01, 1.8e-04</td>\n",
" <td>3.9e+00, 1.4e-01</td>\n",
" <td>5.8e+00, 5.6e-02</td>\n",
" <td>1.6e+01, 4.2e-04</td>\n",
" <td>1.5e+01, 5.8e-04</td>\n",
" <td>1.2e+01, 2.3e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Normality 30 Hz</th>\n",
" <td>3.1e+01, 1.9e-07</td>\n",
" <td>7.9e+00, 2.0e-02</td>\n",
" <td>1.2e+01, 2.3e-03</td>\n",
" <td>3.8e+01, 5.3e-09</td>\n",
" <td>7.2e+00, 2.8e-02</td>\n",
" <td>1.9e+02, 2.2e-41</td>\n",
" <td>1.7e+01, 1.7e-04</td>\n",
" <td>1.5e+01, 4.8e-04</td>\n",
" <td>6.2e+00, 4.5e-02</td>\n",
" <td>6.1e-01, 7.4e-01</td>\n",
" <td>1.9e+01, 6.3e-05</td>\n",
" <td>4.3e+01, 5.1e-10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Normality Baseline I</th>\n",
" <td>4.3e+01, 5.8e-10</td>\n",
" <td>1.6e+00, 4.6e-01</td>\n",
" <td>2.1e+00, 3.4e-01</td>\n",
" <td>3.2e+01, 1.3e-07</td>\n",
" <td>5.9e+00, 5.3e-02</td>\n",
" <td>1.9e+00, 3.8e-01</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Normality Baseline II</th>\n",
" <td>1.4e+01, 1.1e-03</td>\n",
" <td>3.6e-01, 8.3e-01</td>\n",
" <td>4.9e+00, 8.8e-02</td>\n",
" <td>2.5e+01, 3.4e-06</td>\n",
" <td>4.7e+00, 9.7e-02</td>\n",
" <td>1.6e+01, 2.8e-04</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Paired summary 11 Hz 30 Hz</th>\n",
" <td>8.2e-04 ± 8.8e-05, 5.4e-04 ± 6.6e-05 (32)</td>\n",
" <td>8.4e-02 ± 4.5e-03, 5.5e-02 ± 4.2e-03 (32)</td>\n",
" <td>2.0e-01 ± 5.0e-02, 4.9e-02 ± 5.4e-02 (32)</td>\n",
" <td>3.0e-04 ± 3.1e-05, 1.9e-04 ± 2.8e-05 (32)</td>\n",
" <td>7.6e+00 ± 1.5e-01, 7.3e+00 ± 1.4e-01 (32)</td>\n",
" <td>1.5e+00 ± 3.5e-01, 1.1e+01 ± 2.0e+00 (31)</td>\n",
" <td>9.7e-04 ± 9.3e-05, 1.8e-03 ± 3.4e-04 (32)</td>\n",
" <td>1.1e-01 ± 8.6e-03, 1.6e-01 ± 2.4e-02 (32)</td>\n",
" <td>1.8e+01 ± 2.4e+00, 8.5e+01 ± 1.4e+01 (32)</td>\n",
" <td>3.4e-01 ± 3.6e-03, 3.0e-01 ± 2.3e-03 (21)</td>\n",
" <td>2.1e-03 ± 2.7e-04, 5.4e-03 ± 1.1e-03 (32)</td>\n",
" <td>3.5e+00 ± 4.9e-01, 1.3e+01 ± 3.0e+00 (32)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Paired summary 11 Hz Baseline II</th>\n",
" <td>8.2e-04 ± 8.8e-05, 2.2e-03 ± 2.3e-04 (32)</td>\n",
" <td>8.4e-02 ± 4.5e-03, 2.7e-01 ± 1.7e-02 (32)</td>\n",
" <td>2.0e-01 ± 5.0e-02, 6.3e+00 ± 7.4e-01 (32)</td>\n",
" <td>3.0e-04 ± 3.1e-05, 1.6e-03 ± 2.1e-04 (32)</td>\n",
" <td>7.6e+00 ± 1.5e-01, 8.1e+00 ± 4.7e-02 (32)</td>\n",
" <td>1.5e+00 ± 3.5e-01, 8.6e-01 ± 2.5e-02 (31)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Paired summary Baseline I 11 Hz</th>\n",
" <td>2.2e-03 ± 2.3e-04, 8.5e-04 ± 8.0e-05 (44)</td>\n",
" <td>2.6e-01 ± 1.6e-02, 8.6e-02 ± 4.6e-03 (44)</td>\n",
" <td>6.3e+00 ± 6.7e-01, 2.3e-01 ± 5.2e-02 (44)</td>\n",
" <td>1.6e-03 ± 1.9e-04, 3.2e-04 ± 3.1e-05 (44)</td>\n",
" <td>7.8e+00 ± 4.2e-02, 7.7e+00 ± 1.3e-01 (44)</td>\n",
" <td>7.8e-01 ± 1.8e-02, 1.7e+00 ± 3.0e-01 (43)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Paired summary Baseline I 30 Hz</th>\n",
" <td>2.3e-03 ± 2.8e-04, 5.4e-04 ± 6.6e-05 (32)</td>\n",
" <td>2.7e-01 ± 1.8e-02, 5.5e-02 ± 4.2e-03 (32)</td>\n",
" <td>6.6e+00 ± 8.1e-01, 4.9e-02 ± 5.4e-02 (32)</td>\n",
" <td>1.7e-03 ± 2.3e-04, 1.9e-04 ± 2.8e-05 (32)</td>\n",
" <td>7.8e+00 ± 4.4e-02, 7.3e+00 ± 1.4e-01 (32)</td>\n",
" <td>7.6e-01 ± 2.0e-02, 1.2e+01 ± 2.0e+00 (32)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Paired summary Baseline I Baseline II</th>\n",
" <td>2.3e-03 ± 2.8e-04, 2.2e-03 ± 2.3e-04 (32)</td>\n",
" <td>2.7e-01 ± 1.8e-02, 2.7e-01 ± 1.7e-02 (32)</td>\n",
" <td>6.6e+00 ± 8.1e-01, 6.3e+00 ± 7.4e-01 (32)</td>\n",
" <td>1.7e-03 ± 2.3e-04, 1.6e-03 ± 2.1e-04 (32)</td>\n",
" <td>7.8e+00 ± 4.4e-02, 8.1e+00 ± 4.7e-02 (32)</td>\n",
" <td>7.6e-01 ± 2.0e-02, 8.4e-01 ± 3.2e-02 (32)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Paired summary Baseline II 30 Hz</th>\n",
" <td>2.2e-03 ± 2.3e-04, 5.4e-04 ± 6.6e-05 (32)</td>\n",
" <td>2.7e-01 ± 1.7e-02, 5.5e-02 ± 4.2e-03 (32)</td>\n",
" <td>6.3e+00 ± 7.4e-01, 4.9e-02 ± 5.4e-02 (32)</td>\n",
" <td>1.6e-03 ± 2.1e-04, 1.9e-04 ± 2.8e-05 (32)</td>\n",
" <td>8.1e+00 ± 4.7e-02, 7.3e+00 ± 1.4e-01 (32)</td>\n",
" <td>8.4e-01 ± 3.2e-02, 1.2e+01 ± 2.0e+00 (32)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" <td>nan ± nan, nan ± nan (0)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Wilcoxon 11 Hz 30 Hz</th>\n",
" <td>1.1e+02, 3.3e-03, (32)</td>\n",
" <td>4.1e+01, 3.0e-05, (32)</td>\n",
" <td>1.3e+02, 1.4e-02, (32)</td>\n",
" <td>1.2e+02, 5.6e-03, (32)</td>\n",
" <td>1.2e+02, 4.5e-02, (32)</td>\n",
" <td>6.7e+01, 3.9e-04, (31)</td>\n",
" <td>2.1e+02, 2.9e-01, (32)</td>\n",
" <td>2.0e+02, 2.2e-01, (32)</td>\n",
" <td>3.0e+01, 1.2e-05, (32)</td>\n",
" <td>0.0e+00, 9.5e-07, (21)</td>\n",
" <td>1.6e+02, 5.0e-02, (32)</td>\n",
" <td>8.8e+01, 1.0e-03, (32)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Wilcoxon 11 Hz Baseline II</th>\n",
" <td>1.2e+01, 2.5e-06, (32)</td>\n",
" <td>2.0e+00, 9.6e-07, (32)</td>\n",
" <td>0.0e+00, 8.0e-07, (32)</td>\n",
" <td>3.0e+00, 1.1e-06, (32)</td>\n",
" <td>1.2e+02, 9.3e-03, (32)</td>\n",
" <td>2.3e+02, 6.7e-01, (31)</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Wilcoxon Baseline I 11 Hz</th>\n",
" <td>3.5e+01, 7.9e-08, (44)</td>\n",
" <td>1.0e+00, 8.2e-09, (44)</td>\n",
" <td>2.0e+00, 8.7e-09, (44)</td>\n",
" <td>3.0e+00, 9.4e-09, (44)</td>\n",
" <td>3.6e+02, 4.7e-01, (44)</td>\n",
" <td>4.3e+02, 6.2e-01, (43)</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Wilcoxon Baseline I 30 Hz</th>\n",
" <td>6.0e+00, 1.4e-06, (32)</td>\n",
" <td>0.0e+00, 8.0e-07, (32)</td>\n",
" <td>0.0e+00, 8.0e-07, (32)</td>\n",
" <td>0.0e+00, 8.0e-07, (32)</td>\n",
" <td>9.5e+01, 1.6e-03, (32)</td>\n",
" <td>7.1e+01, 3.1e-04, (32)</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Wilcoxon Baseline I Baseline II</th>\n",
" <td>2.4e+02, 7.1e-01, (32)</td>\n",
" <td>2.4e+02, 7.1e-01, (32)</td>\n",
" <td>2.4e+02, 5.9e-01, (32)</td>\n",
" <td>2.3e+02, 5.5e-01, (32)</td>\n",
" <td>6.0e+00, 9.0e-06, (32)</td>\n",
" <td>1.4e+02, 2.3e-02, (32)</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Wilcoxon Baseline II 30 Hz</th>\n",
" <td>1.6e+01, 3.5e-06, (32)</td>\n",
" <td>0.0e+00, 8.0e-07, (32)</td>\n",
" <td>0.0e+00, 8.0e-07, (32)</td>\n",
" <td>3.0e+00, 1.1e-06, (32)</td>\n",
" <td>5.0e+01, 9.9e-05, (32)</td>\n",
" <td>7.5e+01, 4.1e-04, (32)</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Theta bandpower \\\n",
"11 Hz 8.5e-04 ± 8.0e-05 (44) \n",
"30 Hz 5.3e-04 ± 6.3e-05 (34) \n",
"Baseline I 2.2e-03 ± 2.2e-04 (46) \n",
"Baseline II 2.2e-03 ± 2.3e-04 (32) \n",
"Normality 11 Hz 2.1e+01, 2.6e-05 \n",
"Normality 30 Hz 3.1e+01, 1.9e-07 \n",
"Normality Baseline I 4.3e+01, 5.8e-10 \n",
"Normality Baseline II 1.4e+01, 1.1e-03 \n",
"Paired summary 11 Hz 30 Hz 8.2e-04 ± 8.8e-05, 5.4e-04 ± 6.6e-05 (32) \n",
"Paired summary 11 Hz Baseline II 8.2e-04 ± 8.8e-05, 2.2e-03 ± 2.3e-04 (32) \n",
"Paired summary Baseline I 11 Hz 2.2e-03 ± 2.3e-04, 8.5e-04 ± 8.0e-05 (44) \n",
"Paired summary Baseline I 30 Hz 2.3e-03 ± 2.8e-04, 5.4e-04 ± 6.6e-05 (32) \n",
"Paired summary Baseline I Baseline II 2.3e-03 ± 2.8e-04, 2.2e-03 ± 2.3e-04 (32) \n",
"Paired summary Baseline II 30 Hz 2.2e-03 ± 2.3e-04, 5.4e-04 ± 6.6e-05 (32) \n",
"Wilcoxon 11 Hz 30 Hz 1.1e+02, 3.3e-03, (32) \n",
"Wilcoxon 11 Hz Baseline II 1.2e+01, 2.5e-06, (32) \n",
"Wilcoxon Baseline I 11 Hz 3.5e+01, 7.9e-08, (44) \n",
"Wilcoxon Baseline I 30 Hz 6.0e+00, 1.4e-06, (32) \n",
"Wilcoxon Baseline I Baseline II 2.4e+02, 7.1e-01, (32) \n",
"Wilcoxon Baseline II 30 Hz 1.6e+01, 3.5e-06, (32) \n",
"\n",
" Theta relpower \\\n",
"11 Hz 8.6e-02 ± 4.6e-03 (44) \n",
"30 Hz 5.3e-02 ± 4.2e-03 (34) \n",
"Baseline I 2.6e-01 ± 1.6e-02 (46) \n",
"Baseline II 2.7e-01 ± 1.7e-02 (32) \n",
"Normality 11 Hz 5.6e+00, 6.2e-02 \n",
"Normality 30 Hz 7.9e+00, 2.0e-02 \n",
"Normality Baseline I 1.6e+00, 4.6e-01 \n",
"Normality Baseline II 3.6e-01, 8.3e-01 \n",
"Paired summary 11 Hz 30 Hz 8.4e-02 ± 4.5e-03, 5.5e-02 ± 4.2e-03 (32) \n",
"Paired summary 11 Hz Baseline II 8.4e-02 ± 4.5e-03, 2.7e-01 ± 1.7e-02 (32) \n",
"Paired summary Baseline I 11 Hz 2.6e-01 ± 1.6e-02, 8.6e-02 ± 4.6e-03 (44) \n",
"Paired summary Baseline I 30 Hz 2.7e-01 ± 1.8e-02, 5.5e-02 ± 4.2e-03 (32) \n",
"Paired summary Baseline I Baseline II 2.7e-01 ± 1.8e-02, 2.7e-01 ± 1.7e-02 (32) \n",
"Paired summary Baseline II 30 Hz 2.7e-01 ± 1.7e-02, 5.5e-02 ± 4.2e-03 (32) \n",
"Wilcoxon 11 Hz 30 Hz 4.1e+01, 3.0e-05, (32) \n",
"Wilcoxon 11 Hz Baseline II 2.0e+00, 9.6e-07, (32) \n",
"Wilcoxon Baseline I 11 Hz 1.0e+00, 8.2e-09, (44) \n",
"Wilcoxon Baseline I 30 Hz 0.0e+00, 8.0e-07, (32) \n",
"Wilcoxon Baseline I Baseline II 2.4e+02, 7.1e-01, (32) \n",
"Wilcoxon Baseline II 30 Hz 0.0e+00, 8.0e-07, (32) \n",
"\n",
" Theta relpeak \\\n",
"11 Hz 2.3e-01 ± 5.2e-02 (44) \n",
"30 Hz 3.0e-02 ± 5.3e-02 (34) \n",
"Baseline I 6.5e+00 ± 6.7e-01 (46) \n",
"Baseline II 6.3e+00 ± 7.4e-01 (32) \n",
"Normality 11 Hz 1.2e+01, 2.3e-03 \n",
"Normality 30 Hz 1.2e+01, 2.3e-03 \n",
"Normality Baseline I 2.1e+00, 3.4e-01 \n",
"Normality Baseline II 4.9e+00, 8.8e-02 \n",
"Paired summary 11 Hz 30 Hz 2.0e-01 ± 5.0e-02, 4.9e-02 ± 5.4e-02 (32) \n",
"Paired summary 11 Hz Baseline II 2.0e-01 ± 5.0e-02, 6.3e+00 ± 7.4e-01 (32) \n",
"Paired summary Baseline I 11 Hz 6.3e+00 ± 6.7e-01, 2.3e-01 ± 5.2e-02 (44) \n",
"Paired summary Baseline I 30 Hz 6.6e+00 ± 8.1e-01, 4.9e-02 ± 5.4e-02 (32) \n",
"Paired summary Baseline I Baseline II 6.6e+00 ± 8.1e-01, 6.3e+00 ± 7.4e-01 (32) \n",
"Paired summary Baseline II 30 Hz 6.3e+00 ± 7.4e-01, 4.9e-02 ± 5.4e-02 (32) \n",
"Wilcoxon 11 Hz 30 Hz 1.3e+02, 1.4e-02, (32) \n",
"Wilcoxon 11 Hz Baseline II 0.0e+00, 8.0e-07, (32) \n",
"Wilcoxon Baseline I 11 Hz 2.0e+00, 8.7e-09, (44) \n",
"Wilcoxon Baseline I 30 Hz 0.0e+00, 8.0e-07, (32) \n",
"Wilcoxon Baseline I Baseline II 2.4e+02, 5.9e-01, (32) \n",
"Wilcoxon Baseline II 30 Hz 0.0e+00, 8.0e-07, (32) \n",
"\n",
" Theta peak \\\n",
"11 Hz 3.2e-04 ± 3.1e-05 (44) \n",
"30 Hz 1.9e-04 ± 2.7e-05 (34) \n",
"Baseline I 1.7e-03 ± 1.8e-04 (46) \n",
"Baseline II 1.6e-03 ± 2.1e-04 (32) \n",
"Normality 11 Hz 2.4e+01, 5.3e-06 \n",
"Normality 30 Hz 3.8e+01, 5.3e-09 \n",
"Normality Baseline I 3.2e+01, 1.3e-07 \n",
"Normality Baseline II 2.5e+01, 3.4e-06 \n",
"Paired summary 11 Hz 30 Hz 3.0e-04 ± 3.1e-05, 1.9e-04 ± 2.8e-05 (32) \n",
"Paired summary 11 Hz Baseline II 3.0e-04 ± 3.1e-05, 1.6e-03 ± 2.1e-04 (32) \n",
"Paired summary Baseline I 11 Hz 1.6e-03 ± 1.9e-04, 3.2e-04 ± 3.1e-05 (44) \n",
"Paired summary Baseline I 30 Hz 1.7e-03 ± 2.3e-04, 1.9e-04 ± 2.8e-05 (32) \n",
"Paired summary Baseline I Baseline II 1.7e-03 ± 2.3e-04, 1.6e-03 ± 2.1e-04 (32) \n",
"Paired summary Baseline II 30 Hz 1.6e-03 ± 2.1e-04, 1.9e-04 ± 2.8e-05 (32) \n",
"Wilcoxon 11 Hz 30 Hz 1.2e+02, 5.6e-03, (32) \n",
"Wilcoxon 11 Hz Baseline II 3.0e+00, 1.1e-06, (32) \n",
"Wilcoxon Baseline I 11 Hz 3.0e+00, 9.4e-09, (44) \n",
"Wilcoxon Baseline I 30 Hz 0.0e+00, 8.0e-07, (32) \n",
"Wilcoxon Baseline I Baseline II 2.3e+02, 5.5e-01, (32) \n",
"Wilcoxon Baseline II 30 Hz 3.0e+00, 1.1e-06, (32) \n",
"\n",
" Theta freq \\\n",
"11 Hz 7.7e+00 ± 1.3e-01 (44) \n",
"30 Hz 7.4e+00 ± 1.4e-01 (34) \n",
"Baseline I 7.8e+00 ± 4.0e-02 (46) \n",
"Baseline II 8.1e+00 ± 4.7e-02 (32) \n",
"Normality 11 Hz 1.9e+00, 3.9e-01 \n",
"Normality 30 Hz 7.2e+00, 2.8e-02 \n",
"Normality Baseline I 5.9e+00, 5.3e-02 \n",
"Normality Baseline II 4.7e+00, 9.7e-02 \n",
"Paired summary 11 Hz 30 Hz 7.6e+00 ± 1.5e-01, 7.3e+00 ± 1.4e-01 (32) \n",
"Paired summary 11 Hz Baseline II 7.6e+00 ± 1.5e-01, 8.1e+00 ± 4.7e-02 (32) \n",
"Paired summary Baseline I 11 Hz 7.8e+00 ± 4.2e-02, 7.7e+00 ± 1.3e-01 (44) \n",
"Paired summary Baseline I 30 Hz 7.8e+00 ± 4.4e-02, 7.3e+00 ± 1.4e-01 (32) \n",
"Paired summary Baseline I Baseline II 7.8e+00 ± 4.4e-02, 8.1e+00 ± 4.7e-02 (32) \n",
"Paired summary Baseline II 30 Hz 8.1e+00 ± 4.7e-02, 7.3e+00 ± 1.4e-01 (32) \n",
"Wilcoxon 11 Hz 30 Hz 1.2e+02, 4.5e-02, (32) \n",
"Wilcoxon 11 Hz Baseline II 1.2e+02, 9.3e-03, (32) \n",
"Wilcoxon Baseline I 11 Hz 3.6e+02, 4.7e-01, (44) \n",
"Wilcoxon Baseline I 30 Hz 9.5e+01, 1.6e-03, (32) \n",
"Wilcoxon Baseline I Baseline II 6.0e+00, 9.0e-06, (32) \n",
"Wilcoxon Baseline II 30 Hz 5.0e+01, 9.9e-05, (32) \n",
"\n",
" Theta half width \\\n",
"11 Hz 1.7e+00 ± 3.0e-01 (43) \n",
"30 Hz 1.2e+01 ± 1.9e+00 (34) \n",
"Baseline I 7.7e-01 ± 1.8e-02 (46) \n",
"Baseline II 8.4e-01 ± 3.2e-02 (32) \n",
"Normality 11 Hz 1.0e+01, 5.5e-03 \n",
"Normality 30 Hz 1.9e+02, 2.2e-41 \n",
"Normality Baseline I 1.9e+00, 3.8e-01 \n",
"Normality Baseline II 1.6e+01, 2.8e-04 \n",
"Paired summary 11 Hz 30 Hz 1.5e+00 ± 3.5e-01, 1.1e+01 ± 2.0e+00 (31) \n",
"Paired summary 11 Hz Baseline II 1.5e+00 ± 3.5e-01, 8.6e-01 ± 2.5e-02 (31) \n",
"Paired summary Baseline I 11 Hz 7.8e-01 ± 1.8e-02, 1.7e+00 ± 3.0e-01 (43) \n",
"Paired summary Baseline I 30 Hz 7.6e-01 ± 2.0e-02, 1.2e+01 ± 2.0e+00 (32) \n",
"Paired summary Baseline I Baseline II 7.6e-01 ± 2.0e-02, 8.4e-01 ± 3.2e-02 (32) \n",
"Paired summary Baseline II 30 Hz 8.4e-01 ± 3.2e-02, 1.2e+01 ± 2.0e+00 (32) \n",
"Wilcoxon 11 Hz 30 Hz 6.7e+01, 3.9e-04, (31) \n",
"Wilcoxon 11 Hz Baseline II 2.3e+02, 6.7e-01, (31) \n",
"Wilcoxon Baseline I 11 Hz 4.3e+02, 6.2e-01, (43) \n",
"Wilcoxon Baseline I 30 Hz 7.1e+01, 3.1e-04, (32) \n",
"Wilcoxon Baseline I Baseline II 1.4e+02, 2.3e-02, (32) \n",
"Wilcoxon Baseline II 30 Hz 7.5e+01, 4.1e-04, (32) \n",
"\n",
" Stim bandpower \\\n",
"11 Hz 9.6e-04 ± 8.0e-05 (44) \n",
"30 Hz 1.8e-03 ± 3.3e-04 (34) \n",
"Baseline I nan ± nan (0) \n",
"Baseline II nan ± nan (0) \n",
"Normality 11 Hz 1.7e+01, 1.8e-04 \n",
"Normality 30 Hz 1.7e+01, 1.7e-04 \n",
"Normality Baseline I NaN \n",
"Normality Baseline II NaN \n",
"Paired summary 11 Hz 30 Hz 9.7e-04 ± 9.3e-05, 1.8e-03 ± 3.4e-04 (32) \n",
"Paired summary 11 Hz Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 11 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 30 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline II 30 Hz nan ± nan, nan ± nan (0) \n",
"Wilcoxon 11 Hz 30 Hz 2.1e+02, 2.9e-01, (32) \n",
"Wilcoxon 11 Hz Baseline II NaN \n",
"Wilcoxon Baseline I 11 Hz NaN \n",
"Wilcoxon Baseline I 30 Hz NaN \n",
"Wilcoxon Baseline I Baseline II NaN \n",
"Wilcoxon Baseline II 30 Hz NaN \n",
"\n",
" Stim relpower \\\n",
"11 Hz 1.1e-01 ± 7.4e-03 (44) \n",
"30 Hz 1.6e-01 ± 2.3e-02 (34) \n",
"Baseline I nan ± nan (0) \n",
"Baseline II nan ± nan (0) \n",
"Normality 11 Hz 3.9e+00, 1.4e-01 \n",
"Normality 30 Hz 1.5e+01, 4.8e-04 \n",
"Normality Baseline I NaN \n",
"Normality Baseline II NaN \n",
"Paired summary 11 Hz 30 Hz 1.1e-01 ± 8.6e-03, 1.6e-01 ± 2.4e-02 (32) \n",
"Paired summary 11 Hz Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 11 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 30 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline II 30 Hz nan ± nan, nan ± nan (0) \n",
"Wilcoxon 11 Hz 30 Hz 2.0e+02, 2.2e-01, (32) \n",
"Wilcoxon 11 Hz Baseline II NaN \n",
"Wilcoxon Baseline I 11 Hz NaN \n",
"Wilcoxon Baseline I 30 Hz NaN \n",
"Wilcoxon Baseline I Baseline II NaN \n",
"Wilcoxon Baseline II 30 Hz NaN \n",
"\n",
" Stim relpeak \\\n",
"11 Hz 1.6e+01 ± 1.9e+00 (44) \n",
"30 Hz 8.6e+01 ± 1.4e+01 (34) \n",
"Baseline I nan ± nan (0) \n",
"Baseline II nan ± nan (0) \n",
"Normality 11 Hz 5.8e+00, 5.6e-02 \n",
"Normality 30 Hz 6.2e+00, 4.5e-02 \n",
"Normality Baseline I NaN \n",
"Normality Baseline II NaN \n",
"Paired summary 11 Hz 30 Hz 1.8e+01 ± 2.4e+00, 8.5e+01 ± 1.4e+01 (32) \n",
"Paired summary 11 Hz Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 11 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 30 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline II 30 Hz nan ± nan, nan ± nan (0) \n",
"Wilcoxon 11 Hz 30 Hz 3.0e+01, 1.2e-05, (32) \n",
"Wilcoxon 11 Hz Baseline II NaN \n",
"Wilcoxon Baseline I 11 Hz NaN \n",
"Wilcoxon Baseline I 30 Hz NaN \n",
"Wilcoxon Baseline I Baseline II NaN \n",
"Wilcoxon Baseline II 30 Hz NaN \n",
"\n",
" Stim half width \\\n",
"11 Hz 3.4e-01 ± 2.5e-03 (44) \n",
"30 Hz 3.0e-01 ± 2.3e-03 (23) \n",
"Baseline I nan ± nan (0) \n",
"Baseline II nan ± nan (0) \n",
"Normality 11 Hz 1.6e+01, 4.2e-04 \n",
"Normality 30 Hz 6.1e-01, 7.4e-01 \n",
"Normality Baseline I NaN \n",
"Normality Baseline II NaN \n",
"Paired summary 11 Hz 30 Hz 3.4e-01 ± 3.6e-03, 3.0e-01 ± 2.3e-03 (21) \n",
"Paired summary 11 Hz Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 11 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 30 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline II 30 Hz nan ± nan, nan ± nan (0) \n",
"Wilcoxon 11 Hz 30 Hz 0.0e+00, 9.5e-07, (21) \n",
"Wilcoxon 11 Hz Baseline II NaN \n",
"Wilcoxon Baseline I 11 Hz NaN \n",
"Wilcoxon Baseline I 30 Hz NaN \n",
"Wilcoxon Baseline I Baseline II NaN \n",
"Wilcoxon Baseline II 30 Hz NaN \n",
"\n",
" Stim p max \\\n",
"11 Hz 2.1e-03 ± 2.3e-04 (44) \n",
"30 Hz 5.3e-03 ± 1.1e-03 (34) \n",
"Baseline I nan ± nan (0) \n",
"Baseline II nan ± nan (0) \n",
"Normality 11 Hz 1.5e+01, 5.8e-04 \n",
"Normality 30 Hz 1.9e+01, 6.3e-05 \n",
"Normality Baseline I NaN \n",
"Normality Baseline II NaN \n",
"Paired summary 11 Hz 30 Hz 2.1e-03 ± 2.7e-04, 5.4e-03 ± 1.1e-03 (32) \n",
"Paired summary 11 Hz Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 11 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 30 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline II 30 Hz nan ± nan, nan ± nan (0) \n",
"Wilcoxon 11 Hz 30 Hz 1.6e+02, 5.0e-02, (32) \n",
"Wilcoxon 11 Hz Baseline II NaN \n",
"Wilcoxon Baseline I 11 Hz NaN \n",
"Wilcoxon Baseline I 30 Hz NaN \n",
"Wilcoxon Baseline I Baseline II NaN \n",
"Wilcoxon Baseline II 30 Hz NaN \n",
"\n",
" Stim strength \n",
"11 Hz 3.3e+00 ± 3.8e-01 (44) \n",
"30 Hz 1.3e+01 ± 2.8e+00 (34) \n",
"Baseline I nan ± nan (0) \n",
"Baseline II nan ± nan (0) \n",
"Normality 11 Hz 1.2e+01, 2.3e-03 \n",
"Normality 30 Hz 4.3e+01, 5.1e-10 \n",
"Normality Baseline I NaN \n",
"Normality Baseline II NaN \n",
"Paired summary 11 Hz 30 Hz 3.5e+00 ± 4.9e-01, 1.3e+01 ± 3.0e+00 (32) \n",
"Paired summary 11 Hz Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 11 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I 30 Hz nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline I Baseline II nan ± nan, nan ± nan (0) \n",
"Paired summary Baseline II 30 Hz nan ± nan, nan ± nan (0) \n",
"Wilcoxon 11 Hz 30 Hz 8.8e+01, 1.0e-03, (32) \n",
"Wilcoxon 11 Hz Baseline II NaN \n",
"Wilcoxon Baseline I 11 Hz NaN \n",
"Wilcoxon Baseline I 30 Hz NaN \n",
"Wilcoxon Baseline I Baseline II NaN \n",
"Wilcoxon Baseline II 30 Hz NaN "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"\n",
"stat = pd.DataFrame()\n",
"\n",
"for key, df in results.items():\n",
" Key = rename(key)\n",
" stat[Key] = df.agg(summarize)\n",
" stat[Key] = df.agg(summarize)\n",
"\n",
" for i, c1 in enumerate(df.columns):\n",
" try:\n",
" stat.loc[f'Normality {c1}', Key] = normality(df, c1)\n",
" except:\n",
" stat.loc[f'Normality {c1}', Key] = np.nan\n",
"# stat.loc[f'Shapiro {c1}', Key] = shapiro(df, c1)\n",
" for c2 in df.columns[i+1:]:\n",
"# stat.loc[f'MWU {c1} {c2}', Key] = MWU(df, [c1, c2])\n",
"# stat.loc[f'PRS {c1} {c2}', Key] = PRS(df, [c1, c2])\n",
" try:\n",
" stat.loc[f'Wilcoxon {c1} {c2}', Key] = wilcoxon(df, [c1, c2])\n",
" except:\n",
" stat.loc[f'Wilcoxon {c1} {c2}', Key] = np.nan\n",
"# stat.loc[f'Paired T {c1} {c2}', Key] = paired_t(df, [c1, c2])\n",
" stat.loc[f'Paired summary {c1} {c2}', Key] = summarize_wilcoxon(df, [c1, c2])\n",
"\n",
"stat.sort_index()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"stat.to_latex(output_path / \"statistics\" / f\"statistics.tex\")\n",
"stat.to_csv(output_path / \"statistics\" / f\"statistics.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"for key, result in results.items():\n",
" result.to_latex(output_path / \"statistics\" / f\"values_{key}.tex\")\n",
" result.to_csv(output_path / \"statistics\" / f\"values_{key}.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plot PSD"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"psd = pd.read_feather(pathlib.Path(\"output\") / (\"stimulus-lfp-response\" + zscore_str) / 'data' / 'psd.feather')\n",
"freqs = pd.read_feather(pathlib.Path(\"output\") / (\"stimulus-lfp-response\" + zscore_str) / 'data' / 'freqs.feather')"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"from septum_mec.analysis.plotting import plot_bootstrap_timeseries"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"freq = freqs.T.iloc[0].values\n",
"\n",
"mask = (freq < 49)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/numpy/core/fromnumeric.py:3373: RuntimeWarning: Mean of empty slice.\n",
" out=out, **kwargs)\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/mikkel/.virtualenvs/expipe/lib/python3.6/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in true_divide\n",
" ret, rcount, out=ret, casting='unsafe', subok=False)\n"
]
},
{
"data": {
"image/png": "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
"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",
"# axs[0].set_ylim(-31, 1)\n",
"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": 28,
"metadata": {},
"outputs": [],
"source": [
"action = project.require_action(\"stimulus-lfp-response\" + '-' + stim_loc + zscore_str)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_bandpower.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_relpeak.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_half_width.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_bandpower.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_relpower.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_half_width.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_energy.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_freq.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_p_max.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_energy.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_strength.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_energy.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_peak.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/statistics.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_relpower.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_relpeak.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_strength.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_bandpower.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_freq.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_relpeak.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/statistics.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_half_width.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_relpower.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_bandpower.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_p_max.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_relpeak.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_peak.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_relpower.csv',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_stim_energy.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/statistics/values_theta_half_width.tex',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_relpower.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_energy.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_strength.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_peak.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_bandpower.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_relpeak.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_p_max.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_freq.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_relpeak.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_energy.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_bandpower.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_freq.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_relpower.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_relpeak.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_half_width.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_relpower.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_half_width.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_bandpower.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_bandpower.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_half_width.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_energy.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_peak.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_p_max.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_half_width.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_relpower.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/.ipynb_checkpoints/lfp-psd-histogram-theta_energy-checkpoint.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_energy.svg',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-theta_relpeak.png',\n",
" '/media/storage/expipe/septum-mec/actions/stimulus-lfp-response-mec-no-zscore/data/figures/lfp-psd-histogram-stim_strength.svg']"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"copy_tree(output_path, str(action.data_path()))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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": 4
}