From dd1d57425fe3f0d8b5d296b7e23c548ef4db8d8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikkel=20Elle=20Lepper=C3=B8d?= Date: Thu, 17 Oct 2019 19:41:18 +0200 Subject: [PATCH] stim response --- actions/stimulus-response/attributes.yaml | 4 +- .../data/10-calculate-stimulus-response.html | 178 ++++++++++++++---- .../data/10-calculate-stimulus-response.ipynb | 123 +++++++++--- 3 files changed, 249 insertions(+), 56 deletions(-) diff --git a/actions/stimulus-response/attributes.yaml b/actions/stimulus-response/attributes.yaml index 8dde448fc..dd400ab70 100644 --- a/actions/stimulus-response/attributes.yaml +++ b/actions/stimulus-response/attributes.yaml @@ -2,6 +2,6 @@ registered: '2019-10-03T08:37:34' data: figures: figures statistics: statistics - notebook: 10-calculate-stimulus-response.ipynb - html: 10-calculate-stimulus-response.html + notebook: 20_stimulus-spike-response.ipynb + html: 20_stimulus-spike-response.html results: results.csv diff --git a/actions/stimulus-response/data/10-calculate-stimulus-response.html b/actions/stimulus-response/data/10-calculate-stimulus-response.html index ad86e6c4c..2413f03f6 100644 --- a/actions/stimulus-response/data/10-calculate-stimulus-response.html +++ b/actions/stimulus-response/data/10-calculate-stimulus-response.html @@ -13115,7 +13115,7 @@ div#notebook {
-
In [1]:
+
In [15]:
%load_ext autoreload
@@ -13126,10 +13126,29 @@ div#notebook {
 
+
+
+ + +
+ +
+ + +
+
The autoreload extension is already loaded. To reload it, use:
+  %reload_ext autoreload
+
+
+
+ +
+
+
-
In [2]:
+
In [16]:
import matplotlib.pyplot as plt
@@ -13159,28 +13178,10 @@ div#notebook {
 
-
-
- - -
- -
- - -
-
11:36:02 [I] klustakwik KlustaKwik2 version 0.2.6
-
-
-
- -
-
-
-
In [3]:
+
In [17]:
std_gaussian_kde = 0.04
@@ -13194,7 +13195,7 @@ div#notebook {
 
-
In [4]:
+
In [18]:
data_loader = dp.Data()
@@ -13209,11 +13210,11 @@ div#notebook {
 
-
In [5]:
+
In [ ]:
output = pathlib.Path('output/stimulus-response')
-(output / 'figures').mkdir(parents=True, exist_ok=True)
+(output / 'data').mkdir(parents=True, exist_ok=True)
 
@@ -13223,7 +13224,7 @@ div#notebook {
-
In [6]:
+
In [20]:
identify_neurons = actions['identify-neurons']
@@ -13289,7 +13290,7 @@ div#notebook {
 
-
In [ ]:
+
In [8]:
results = units.merge(
@@ -13315,10 +13316,10 @@ div#notebook {
 
  
  
-
+
+ +
+ +
+ +
+
+ +
+
+
+
In [ ]:
+
+
+
pd.DataFrame(psth).to_feather(output / 'data' / 'psth.feather')
+pd.DataFrame(time).to_feather(output / 'data' / 'times.feather')
 
@@ -13379,7 +13493,7 @@ var element = $('#ab435e8e-523b-4fd6-b6b5-8138ce4c2f14');
-
In [ ]:
+
In [11]:
action.modules['parameters'] = {
@@ -13395,7 +13509,7 @@ var element = $('#ab435e8e-523b-4fd6-b6b5-8138ce4c2f14');
 
-
In [ ]:
+
In [12]:
action.data['results'] = 'results.csv'
diff --git a/actions/stimulus-response/data/10-calculate-stimulus-response.ipynb b/actions/stimulus-response/data/10-calculate-stimulus-response.ipynb
index b54834fb8..bb870c59d 100644
--- a/actions/stimulus-response/data/10-calculate-stimulus-response.ipynb
+++ b/actions/stimulus-response/data/10-calculate-stimulus-response.ipynb
@@ -2,9 +2,18 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 15,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The autoreload extension is already loaded. To reload it, use:\n",
+      "  %reload_ext autoreload\n"
+     ]
+    }
+   ],
    "source": [
     "%load_ext autoreload\n",
     "%autoreload 2"
@@ -12,17 +21,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 16,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "11:36:02 [I] klustakwik KlustaKwik2 version 0.2.6\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "import matplotlib.pyplot as plt\n",
     "%matplotlib inline\n",
@@ -49,7 +50,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 17,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -59,7 +60,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -70,17 +71,17 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
     "output = pathlib.Path('output/stimulus-response')\n",
-    "(output / 'figures').mkdir(parents=True, exist_ok=True)"
+    "(output / 'data').mkdir(parents=True, exist_ok=True)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -142,7 +143,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -166,6 +167,13 @@
       "/home/mikkel/apps/expipe-project/septum-mec/septum_mec/analysis/stimulus_response.py:33: RuntimeWarning: invalid value encountered in less\n",
       "  if any(times[idxs_i] < te_peak):\n"
      ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
     }
    ],
    "source": [
@@ -176,16 +184,87 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 9,
    "metadata": {
     "scrolled": false
    },
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "results.loc[:, ['t_e_peak', 't_i_peak', 'p_e_peak', 'p_i_peak']].hist()\n", "plt.gcf().savefig(output / 'figures' / 'summary_histogram.png')" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2ee10927bbdf456c9178b9fd5448be23", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1298), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "psth, time = {}, {}\n", + "for i, row in tqdm(units.iterrows(), total=len(units)):\n", + " action_id = row['action']\n", + " channel_group = row['channel_group']\n", + " unit_name = row['unit_name']\n", + " name = f'{action_id}_{channel_group}_{unit_name}'\n", + " spike_times = data_loader.spike_train(action_id, channel_group, unit_name)\n", + " \n", + " spike_times = np.array(spike_times)\n", + " \n", + " stim_times = data_loader.stim_times(action_id)\n", + " \n", + " if stim_times is None:\n", + " continue\n", + " \n", + " stim_times = np.array(stim_times)\n", + " \n", + " times, spikes, kernel, p_e, p_i = stimulus_response_latency(\n", + " spike_times, stim_times, window_size, std_gaussian_kde)\n", + " \n", + " if all(np.isnan([p_e, p_i])):\n", + " continue\n", + " \n", + " psth.update({name: kernel(times)})\n", + " time.update({name: times})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pd.DataFrame(psth).to_feather(output / 'data' / 'psth.feather')\n", + "pd.DataFrame(time).to_feather(output / 'data' / 'times.feather')" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -204,7 +283,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -216,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [