{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Aligning behavioral data to task events with the stimulus and trials tables\n", "This notebook outlines the stimulus presentations table and the trials table and shows how you can use them to align behavioral data like running, licking and pupil info to task events. Please note that the VBN project used the same detection of change task as the Visual Behavior 2-Photon dataset. Users are encouraged to explore the [documentation](http://portal.brain-map.org/explore/circuits/visual-coding-2p) and [example notebooks](https://allensdk.readthedocs.io/en/latest/brain_observatory.html) for that project for additional context.\n", "\n", "Contents\n", "-------------\n", "* Introduction to the stimulus presentations table\n", "* Introduction to the behavior trials table\n", "* Calculating response latency\n", "* Aligning Running, Licking and Pupil Data to task events" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\svc_ccg\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\requests\\__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!\n", " RequestsDependencyWarning)\n" ] } ], "source": [ "import os\n", "\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "from allensdk.brain_observatory.behavior.behavior_project_cache.\\\n", " behavior_neuropixels_project_cache \\\n", " import VisualBehaviorNeuropixelsProjectCache" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ecephys_session_1069193611.nwb: 100%|████████████████████████████████████████████| 2.83G/2.83G [02:10<00:00, 21.6MMB/s]\n", "C:\\Users\\svc_ccg\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\hdmf\\spec\\namespace.py:533: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.5.1 because version 1.5.0 is already loaded.\n", " % (ns['name'], ns['version'], self.__namespaces.get(ns['name'])['version']))\n", "C:\\Users\\svc_ccg\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\hdmf\\spec\\namespace.py:533: UserWarning: Ignoring cached namespace 'core' version 2.4.0 because version 2.3.0 is already loaded.\n", " % (ns['name'], ns['version'], self.__namespaces.get(ns['name'])['version']))\n", "C:\\Users\\svc_ccg\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\hdmf\\spec\\namespace.py:533: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.2.0 because version 0.1.0 is already loaded.\n", " % (ns['name'], ns['version'], self.__namespaces.get(ns['name'])['version']))\n" ] } ], "source": [ "cache_dir = r\"C:\\Users\\svc_ccg\\Desktop\\Data\\vbn_cache\"\n", "\n", "cache = VisualBehaviorNeuropixelsProjectCache.from_s3_cache(\n", " cache_dir=cache_dir)\n", "\n", "ecephys_sessions_table = cache.get_ecephys_session_table()[0]\n", "\n", "session_id = ecephys_sessions_table.index.values[50]\n", "session = cache.get_ecephys_session(\n", " ecephys_session_id=session_id)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction to the stimulus presentations table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's grab a random session and look at the stimulus presentations dataframe." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ecephys_session_1063010385.nwb: 100%|████████████████████████████████████████████| 2.39G/2.39G [02:04<00:00, 19.1MMB/s]\n", "C:\\Users\\svc_ccg\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\hdmf\\spec\\namespace.py:533: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.5.1 because version 1.5.0 is already loaded.\n", " % (ns['name'], ns['version'], self.__namespaces.get(ns['name'])['version']))\n", "C:\\Users\\svc_ccg\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\hdmf\\spec\\namespace.py:533: UserWarning: Ignoring cached namespace 'core' version 2.4.0 because version 2.3.0 is already loaded.\n", " % (ns['name'], ns['version'], self.__namespaces.get(ns['name'])['version']))\n", "C:\\Users\\svc_ccg\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\hdmf\\spec\\namespace.py:533: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.2.0 because version 0.1.0 is already loaded.\n", " % (ns['name'], ns['version'], self.__namespaces.get(ns['name'])['version']))\n" ] } ], "source": [ "session_id = ecephys_sessions_table.index.values[20]\n", "session = cache.get_ecephys_session(\n", " ecephys_session_id=session_id)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
activecolorcontrastdurationend_frameflashes_since_changeimage_nameis_changeomittedorientation...position_yrewardedspatial_frequencystart_framestart_timestimulus_blockstimulus_indexstimulus_namestop_timetemporal_frequency
stimulus_presentations_id
0TrueNaNNaN0.250214750.0im104_rFalseFalseNaN...NaNFalseNaN6025.7109080NaNNatural_Images_Lum_Matched_set_ophys_H_201925.961122NaN
1TrueNaNNaN0.2502141201.0im104_rFalseFalseNaN...NaNFalseNaN10526.4615490NaNNatural_Images_Lum_Matched_set_ophys_H_201926.711763NaN
2TrueNaNNaNNaN1651.0omittedFalseTrueNaN...NaNFalseNaN15027.2121700NaNNatural_Images_Lum_Matched_set_ophys_H_201927.462374NaN
3TrueNaNNaN0.2502192102.0im104_rFalseFalseNaN...NaNFalseNaN19527.9627970NaNNatural_Images_Lum_Matched_set_ophys_H_201928.213015NaN
4TrueNaNNaN0.2501992553.0im104_rFalseFalseNaN...NaNFalseNaN24028.7134530NaNNatural_Images_Lum_Matched_set_ophys_H_201928.963652NaN
\n", "

5 rows × 21 columns

\n", "
" ], "text/plain": [ " active color contrast duration end_frame \\\n", "stimulus_presentations_id \n", "0 True NaN NaN 0.250214 75 \n", "1 True NaN NaN 0.250214 120 \n", "2 True NaN NaN NaN 165 \n", "3 True NaN NaN 0.250219 210 \n", "4 True NaN NaN 0.250199 255 \n", "\n", " flashes_since_change image_name is_change omitted \\\n", "stimulus_presentations_id \n", "0 0.0 im104_r False False \n", "1 1.0 im104_r False False \n", "2 1.0 omitted False True \n", "3 2.0 im104_r False False \n", "4 3.0 im104_r False False \n", "\n", " orientation ... position_y rewarded \\\n", "stimulus_presentations_id ... \n", "0 NaN ... NaN False \n", "1 NaN ... NaN False \n", "2 NaN ... NaN False \n", "3 NaN ... NaN False \n", "4 NaN ... NaN False \n", "\n", " spatial_frequency start_frame start_time \\\n", "stimulus_presentations_id \n", "0 NaN 60 25.710908 \n", "1 NaN 105 26.461549 \n", "2 NaN 150 27.212170 \n", "3 NaN 195 27.962797 \n", "4 NaN 240 28.713453 \n", "\n", " stimulus_block stimulus_index \\\n", "stimulus_presentations_id \n", "0 0 NaN \n", "1 0 NaN \n", "2 0 NaN \n", "3 0 NaN \n", "4 0 NaN \n", "\n", " stimulus_name \\\n", "stimulus_presentations_id \n", "0 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "1 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "2 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "3 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "4 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "\n", " stop_time temporal_frequency \n", "stimulus_presentations_id \n", "0 25.961122 NaN \n", "1 26.711763 NaN \n", "2 27.462374 NaN \n", "3 28.213015 NaN \n", "4 28.963652 NaN \n", "\n", "[5 rows x 21 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stimulus_presentations = session.stimulus_presentations\n", "stimulus_presentations.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This table is a record of every stimulus we presented to the mouse over the course of this experiment. The different stimuli are indexed by the 'stimulus_block' column. Let's group this dataframe by stimulus block and see what stimulus was shown for each block." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stimulus_blockstimulus_nameactiveduration
stimulus_presentations_id
00Natural_Images_Lum_Matched_set_ophys_H_2019True0.250214
10Natural_Images_Lum_Matched_set_ophys_H_2019True0.250214
20Natural_Images_Lum_Matched_set_ophys_H_2019TrueNaN
30Natural_Images_Lum_Matched_set_ophys_H_2019True0.250219
40Natural_Images_Lum_Matched_set_ophys_H_2019True0.250199
47971spontaneousFalse10.008370
47982gabor_20_deg_250msFalse0.250208
47992gabor_20_deg_250msFalse0.250208
48002gabor_20_deg_250msFalse0.250208
48012gabor_20_deg_250msFalse0.250208
48022gabor_20_deg_250msFalse0.250207
84433spontaneousFalse288.991592
84444flash_250msFalse0.250203
84454flash_250msFalse0.250208
84464flash_250msFalse0.250216
84474flash_250msFalse0.250208
84484flash_250msFalse0.250211
85945Natural_Images_Lum_Matched_set_ophys_H_2019False0.250208
85955Natural_Images_Lum_Matched_set_ophys_H_2019False0.250208
85965Natural_Images_Lum_Matched_set_ophys_H_2019False0.250212
85975Natural_Images_Lum_Matched_set_ophys_H_2019False0.250203
85985Natural_Images_Lum_Matched_set_ophys_H_2019False0.250212
\n", "
" ], "text/plain": [ " stimulus_block \\\n", "stimulus_presentations_id \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "4797 1 \n", "4798 2 \n", "4799 2 \n", "4800 2 \n", "4801 2 \n", "4802 2 \n", "8443 3 \n", "8444 4 \n", "8445 4 \n", "8446 4 \n", "8447 4 \n", "8448 4 \n", "8594 5 \n", "8595 5 \n", "8596 5 \n", "8597 5 \n", "8598 5 \n", "\n", " stimulus_name \\\n", "stimulus_presentations_id \n", "0 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "1 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "2 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "3 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "4 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "4797 spontaneous \n", "4798 gabor_20_deg_250ms \n", "4799 gabor_20_deg_250ms \n", "4800 gabor_20_deg_250ms \n", "4801 gabor_20_deg_250ms \n", "4802 gabor_20_deg_250ms \n", "8443 spontaneous \n", "8444 flash_250ms \n", "8445 flash_250ms \n", "8446 flash_250ms \n", "8447 flash_250ms \n", "8448 flash_250ms \n", "8594 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "8595 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "8596 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "8597 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "8598 Natural_Images_Lum_Matched_set_ophys_H_2019 \n", "\n", " active duration \n", "stimulus_presentations_id \n", "0 True 0.250214 \n", "1 True 0.250214 \n", "2 True NaN \n", "3 True 0.250219 \n", "4 True 0.250199 \n", "4797 False 10.008370 \n", "4798 False 0.250208 \n", "4799 False 0.250208 \n", "4800 False 0.250208 \n", "4801 False 0.250208 \n", "4802 False 0.250207 \n", "8443 False 288.991592 \n", "8444 False 0.250203 \n", "8445 False 0.250208 \n", "8446 False 0.250216 \n", "8447 False 0.250208 \n", "8448 False 0.250211 \n", "8594 False 0.250208 \n", "8595 False 0.250208 \n", "8596 False 0.250212 \n", "8597 False 0.250203 \n", "8598 False 0.250212 " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stimulus_presentations.groupby('stimulus_block')[['stimulus_block', 'stimulus_name', 'active', 'duration']].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This shows us the structure of this experiment (and every experiment in this dataset). There are 5 stimuli as follows:\n", "\n", "**block 0**: Change detection task. Natural images are flashed repeatedly and the mouse is rewarded for licking when the identity of the image changes. You can find more info about this task [here](http://portal.brain-map.org/explore/circuits/visual-behavior-neuropixels?edit&language=en).\n", "\n", "**block 1**: Brief gray screen\n", "\n", "**block 2**: Receptive field mapping. Gabor stimuli used for receptive field mapping. For more details on this stimulus consult [this notebook](https://allensdk.readthedocs.io/en/latest/_static/examples/nb/ecephys_receptive_fields.html).\n", "\n", "**block 3**: Longer gray screen\n", "\n", "**block 4**: Full-field flashes, shown at 80% contrast. Flashes can be black (color = -1) or white (color = 1).\n", "\n", "**block 5**: Passive replay. Frame-for-frame replay of the stimulus shown during the change detection task (block 0), but now with the lick spout retracted so the animal can no longer engage in the task." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's a quick explanation for each of the columns in this table:\n", "\n", "#### General\n", "\n", "*active*: Boolean indicating when the change detection task (with the lick spout available to the mouse) was run. This should only be TRUE for block 0.\n", "\n", "*stimulus_block*: Index of stimulus as described in cells above.\n", "\n", "*stimulus_name*: Indicates the stimulus category for this stimulus presentation. \n", "\n", "*contrast*: Stimulus contrast\n", "\n", "*duration*: Duration of stimulus in seconds\n", "\n", "*start_time*: Experiment time when this stimulus started. This value is corrected for display lag and therefore indicates when the stimulus actually appeared on the screen.\n", "\n", "*stop_time*: Experiment time when this stimulus ended, also corrected for display lag.\n", "\n", "*start_frame*: Stimulus frame index when this stimulus started. This can be used to sync this table to the behavior trials table, for which behavioral data is collected every frame.\n", "\n", "*end_frame*: Stimulus frame index when this stimulus ended.\n", "\n", "#### Change detection task and Passive replay (blocks 0 and 5)\n", "\n", "*flashes_since_change*: Relevant for the detection of change task (block 0) and the passive replay (block 5), this column indicates how many flashes of the same image have occurred since the last stimulus change.\n", "\n", "*image_name*: Indicates which natural image was flashed for this stimulus presentation. To see how to visualize this image, check out this tutorial [LINK TO DATA ACCESS NOTEBOOK]\n", "\n", "*is_change*: Indicates whether the image identity changed for this stimulus presentation. When both this value and 'active' are TRUE, the mouse was rewarded for licking within the response window.\n", "\n", "*omitted*: Indicates whether the image presentation was omitted for this flash. Most image flashes had a 5% probability of being omitted (producing a gray screen). Flashes immediately preceding a change or immediately following an omission could not be omitted.\n", "\n", "*rewarded*: Indicates whether a reward was given after this image presentation. During the passive replay block (5), this value indicates that a reward was issued for the corresponding image presenation during the active behavior block (0). No rewards were given during passive replay.\n", "\n", "#### Receptive field mapping gabor stimulus (block 2)\n", "\n", "*orientation*: Orientation of gabor. \n", "\n", "*position_x*: Position of the gabor along azimuth. The units are in degrees relative to the center of the screen (negative values are nasal).\n", "\n", "*position_y*: Position of the gabor along elevation. Negative values are lower elevation.\n", "\n", "*spatial_frequency*: Spatial frequency of gabor in cycles per degree.\n", "\n", "*temporal_frequency*: Temporal frequency of gabor in Hz.\n", "\n", "#### Full field flashes (block 4)\n", "\n", "*color*: Color of the full-field flash stimuli. \"1\" is white and \"-1\" is black.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's confirm that the active behavior block (0) and the passive replay block (5) match frame for frame:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "active_image_presentations = stimulus_presentations[stimulus_presentations['stimulus_block']==0]\n", "passive_image_presentations = stimulus_presentations[stimulus_presentations['stimulus_block']==5]\n", "np.all(active_image_presentations['image_name'].values == passive_image_presentations['image_name'].values )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction to the behavior trials table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's explore the behavior trials table. This table contains lots of useful information about every trial in the change detection task." ] }, { "cell_type": "code", "execution_count": 170, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
start_timestop_timeinitial_image_namechange_image_namestimulus_changechange_timegocatchlick_timesresponse_time...reward_volumehitfalse_alarmmisscorrect_rejectabortedauto_rewardedchange_frametrial_lengthchange_time_with_display_delay
trials_id
025.6661826.98348im104_rim104_rFalseNaNFalseFalse[26.36584, 26.51607, 26.61606, 26.98348]NaN...0.0FalseFalseFalseFalseTrueFalseNaN1.31730NaN
127.1669228.81836im104_rim104_rFalseNaNFalseFalse[28.46755]NaN...0.0FalseFalseFalseFalseTrueFalseNaN1.65144NaN
229.4188231.25379im104_rim104_rFalseNaNFalseFalse[30.63653, 30.76949, 30.90293]NaN...0.0FalseFalseFalseFalseTrueFalseNaN1.83497NaN
331.6711133.23862im104_rim104_rFalseNaNFalseFalse[32.88816, 33.22146, 33.33829, 33.42177, 33.52...NaN...0.0FalseFalseFalseFalseTrueFalseNaN1.56751NaN
433.9226336.45841im104_rim104_rFalseNaNFalseFalse[35.87392, 36.02384, 36.10722]NaN...0.0FalseFalseFalseFalseTrueFalseNaN2.53578NaN
\n", "

5 rows × 22 columns

\n", "
" ], "text/plain": [ " start_time stop_time initial_image_name change_image_name \\\n", "trials_id \n", "0 25.66618 26.98348 im104_r im104_r \n", "1 27.16692 28.81836 im104_r im104_r \n", "2 29.41882 31.25379 im104_r im104_r \n", "3 31.67111 33.23862 im104_r im104_r \n", "4 33.92263 36.45841 im104_r im104_r \n", "\n", " stimulus_change change_time go catch \\\n", "trials_id \n", "0 False NaN False False \n", "1 False NaN False False \n", "2 False NaN False False \n", "3 False NaN False False \n", "4 False NaN False False \n", "\n", " lick_times response_time \\\n", "trials_id \n", "0 [26.36584, 26.51607, 26.61606, 26.98348] NaN \n", "1 [28.46755] NaN \n", "2 [30.63653, 30.76949, 30.90293] NaN \n", "3 [32.88816, 33.22146, 33.33829, 33.42177, 33.52... NaN \n", "4 [35.87392, 36.02384, 36.10722] NaN \n", "\n", " ... reward_volume hit false_alarm miss correct_reject \\\n", "trials_id ... \n", "0 ... 0.0 False False False False \n", "1 ... 0.0 False False False False \n", "2 ... 0.0 False False False False \n", "3 ... 0.0 False False False False \n", "4 ... 0.0 False False False False \n", "\n", " aborted auto_rewarded change_frame trial_length \\\n", "trials_id \n", "0 True False NaN 1.31730 \n", "1 True False NaN 1.65144 \n", "2 True False NaN 1.83497 \n", "3 True False NaN 1.56751 \n", "4 True False NaN 2.53578 \n", "\n", " change_time_with_display_delay \n", "trials_id \n", "0 NaN \n", "1 NaN \n", "2 NaN \n", "3 NaN \n", "4 NaN \n", "\n", "[5 rows x 22 columns]" ] }, "execution_count": 170, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trials = session.trials\n", "trials.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here you can see that unlike the stimulus presentations table in which every row corresponded to a visual stimulus presentation, for the behavior trials table every row corresponds to one trial of the change detection task. Here is a quick summary of the columns:\n", "\n", "*start_time*: Experiment time when this trial began in seconds.\n", "\n", "*stop_time*: Experiment time when this trial ended.\n", "\n", "*initial_image_name*: Indicates which image was shown before the change (or sham change) for this trial\n", "\n", "*change_image_name*: Indicates which image was scheduled to be the change image for this trial. Note that if the trial is aborted, a new trial will begin before this change occurs.\n", "\n", "*stimulus_change*: Indicates whether an image change occurred for this trial. \n", "\n", "*change_time_no_display_delay*: Experiment time when the task-control computer commanded an image change. This change time is used to determine the response window during which a lick will trigger a reward. Note that due to display lag, this is not the time when the change image actually appears on the screen. To get this time, you need the stimulus_presentations table (more about this below).\n", "\n", "*go*: Indicates whether this trial was a 'go' trial. To qualify as a go trial, an image change must occur and the trial cannot be autorewarded.\n", "\n", "*catch*: Indicates whether this trial was a 'catch' trial. To qualify as a catch trial, a 'sham' change must occur during which the image identity does not change. These sham changes are drawn to match the timing distribution of real changes and can be used to calculate the false alarm rate.\n", "\n", "*lick_times*: A list indicating when the behavioral control software recognized a lick. Note that this is not identical to the lick times from the licks dataframe, which record when the licks were registered by the lick sensor. The licks dataframe should generally be used for analysis of the licking behavior rather than these times.\n", "\n", "*response_time*: Indicates the time when the first lick was registered by the task control software for trials that were not aborted (go or catch). NaN for aborted trials. For a more accurate measure of response time, the licks dataframe should be used.\n", "\n", "*reward_time*: Indicates when the reward command was triggered for hit trials. NaN for other trial types. \n", "\n", "*reward_volume*: Indicates the volume of water dispensed as reward for this trial. \n", "\n", "*hit*: Indicates whether this trial was a 'hit' trial. To qualify as a hit, the trial must be a go trial during which the stimulus changed and the mouse licked within the reward window (150-750 ms after the change time).\n", "\n", "*false_alarm*: Indicates whether this trial was a 'false alarm' trial. To qualify as a false alarm, the trial must be a catch trial during which a sham change occurred and the mouse licked during the reward window.\n", "\n", "*miss*: To qualify as a miss trial, the trial must be a go trial during which the stimulus changed but the mouse did not lick within the response window.\n", "\n", "*correct_reject*: To qualify as a correct reject trial, the trial must be a catch trial during which a sham change occurred and the mouse withheld licking.\n", "\n", "*aborted*: A trial is aborted when the mouse licks before the scheduled change or sham change.\n", "\n", "*auto_rewarded*: During autorewarded trials, the reward is automatically triggered after the change regardless of whether the mouse licked within the response window. These always come at the beginning of the session to help engage the mouse in behavior.\n", "\n", "*change_frame*: Indicates the stimulus frame index when the change occurred. This column can be used to link the trials table with the stimulus presentations table, as shown below.\n", "\n", "*trial_length*: Duration of the trial in seconds." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculating response latency" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's combine info from both of these tables to calculate response latency for this session. Note that the change time in the trials table is not corrected for display lag. This is the time that the task control computer uses to determine the response window. However, to calculate response latency, we want to use the display lag *corrected* change times from the stimulus presentations table. Below, we will grab these corrected times and add them to the trials table under the new column label 'change_time_with_display_delay'." ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "from functools import partial\n", "\n", "def get_change_time_from_stim_table(row, table):\n", " '''\n", " Given a particular row in the trials table,\n", " find the corresponding change time in the \n", " stimulus presentations table\n", " '''\n", " \n", " change_frame = row['change_frame']\n", " if np.isnan(change_frame):\n", " return np.nan\n", " \n", " change_time = table[table.start_frame==change_frame]\\\n", " ['start_time'].values[0]\n", " \n", " return change_time\n", "\n", "get_change_times = partial(get_change_time_from_stim_table, table=stimulus_presentations)\n", "change_times = trials.apply(get_change_times, axis=1)\n", "trials['change_time_with_display_delay'] = change_times" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can use this new column to calculate the response latency on 'hit' trials." ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Trial count')" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hit_trials = trials[trials['hit']]\n", "response_latencies = hit_trials['response_time'] - hit_trials['change_time_with_display_delay']\n", "fig, ax = plt.subplots()\n", "fig.suptitle('Response Latency Histogram for Hit trials')\n", "ax.hist(response_latencies, bins=np.linspace(-0.1, 0.8, 50))\n", "ax.set_xlabel('Time from change (s)')\n", "ax.set_ylabel('Trial count')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that there is one trial with a negative response latency. This happens when a lick immediately precedes the change, and the task control software doesn't have time to abort the trial. To restrict ourselves to only those licks that occur during the response window, we can do the following:" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Trial count')" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "response_window_lick_times = []\n", "for it, trial in hit_trials.iterrows():\n", " lick_times = trial['lick_times']\n", " response_window_start = trial['change_time'] + 0.15\n", " response_window_lick_time = lick_times[lick_times>response_window_start][0]\n", " response_window_lick_times.append(response_window_lick_time)\n", " \n", "response_latencies = response_window_lick_times - hit_trials['change_time_with_display_delay'].values\n", "fig, ax = plt.subplots()\n", "fig.suptitle('Response Latency Histogram for Hit trials')\n", "ax.hist(response_latencies, bins=np.linspace(-0.1, 0.8, 50))\n", "ax.set_xlabel('Time from change (s)')\n", "ax.set_ylabel('Trial count')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aligning Running, Licking and Pupil data to task events" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's grab the licking, running and pupil tracking data for this session and align it to the behavior." ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [], "source": [ "eye_tracking = session.eye_tracking\n", "running_speed = session.running_speed\n", "licks = session.licks" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Eye tracking dataframe**: One entry containing ellipse fit parameters for the eye, pupil and corneal reflection for every frame of the eye tracking video stream." ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampscr_areaeye_areapupil_arealikely_blinkpupil_area_rawcr_area_raweye_area_rawcr_center_xcr_center_y...eye_center_xeye_center_yeye_widtheye_heighteye_phipupil_center_xpupil_center_ypupil_widthpupil_heightpupil_phi
frame
01.34174NaNNaNNaNTrueNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
11.35840NaNNaNNaNTrueNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
21.37507NaNNaNNaNTrueNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
31.39174NaNNaNNaNTrueNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
41.40840NaNNaNNaNTrueNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

5 rows × 23 columns

\n", "
" ], "text/plain": [ " timestamps cr_area eye_area pupil_area likely_blink \\\n", "frame \n", "0 1.34174 NaN NaN NaN True \n", "1 1.35840 NaN NaN NaN True \n", "2 1.37507 NaN NaN NaN True \n", "3 1.39174 NaN NaN NaN True \n", "4 1.40840 NaN NaN NaN True \n", "\n", " pupil_area_raw cr_area_raw eye_area_raw cr_center_x cr_center_y \\\n", "frame \n", "0 NaN NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN NaN \n", "\n", " ... eye_center_x eye_center_y eye_width eye_height eye_phi \\\n", "frame ... \n", "0 ... NaN NaN NaN NaN NaN \n", "1 ... NaN NaN NaN NaN NaN \n", "2 ... NaN NaN NaN NaN NaN \n", "3 ... NaN NaN NaN NaN NaN \n", "4 ... NaN NaN NaN NaN NaN \n", "\n", " pupil_center_x pupil_center_y pupil_width pupil_height pupil_phi \n", "frame \n", "0 NaN NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN NaN \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eye_tracking.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There seem to be several rows for which there are no valid data. We can use the 'likely_blink' column to filter these out." ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampscr_areaeye_areapupil_arealikely_blinkpupil_area_rawcr_area_raweye_area_rawcr_center_xcr_center_y...eye_center_xeye_center_yeye_widtheye_heighteye_phipupil_center_xpupil_center_ypupil_widthpupil_heightpupil_phi
frame
171.65840132.48611570625.13473518292.276485False18292.276485132.48611570625.134735349.237369283.728001...329.009419275.387574163.572471137.4355870.021028349.972230270.66691274.20799376.306045-0.371412
181.67508133.19609170636.18643218187.494820False18187.494820133.19609170636.186432349.287138284.020121...329.213380275.846254163.453674137.5569970.027826350.034210270.57127074.25470876.087183-0.527341
191.69174142.64085070558.97906818200.499170False18200.499170142.64085070558.979068349.460331284.599632...329.696022277.131676163.398004137.4534570.014976350.428484271.79763474.26806876.114380-0.428505
201.70841145.36888570492.20084118144.662960False18144.662960145.36888570492.200841349.463427284.728674...330.251743277.005598163.079554137.5915240.033417350.709697271.86353474.03904675.997537-0.416278
211.72507143.34898970690.28509718107.560769False18107.560769143.34898970690.285097349.244917284.382902...329.352378276.858677163.326985137.7691300.032516350.052768271.33194974.11691875.919797-0.415238
\n", "

5 rows × 23 columns

\n", "
" ], "text/plain": [ " timestamps cr_area eye_area pupil_area likely_blink \\\n", "frame \n", "17 1.65840 132.486115 70625.134735 18292.276485 False \n", "18 1.67508 133.196091 70636.186432 18187.494820 False \n", "19 1.69174 142.640850 70558.979068 18200.499170 False \n", "20 1.70841 145.368885 70492.200841 18144.662960 False \n", "21 1.72507 143.348989 70690.285097 18107.560769 False \n", "\n", " pupil_area_raw cr_area_raw eye_area_raw cr_center_x cr_center_y \\\n", "frame \n", "17 18292.276485 132.486115 70625.134735 349.237369 283.728001 \n", "18 18187.494820 133.196091 70636.186432 349.287138 284.020121 \n", "19 18200.499170 142.640850 70558.979068 349.460331 284.599632 \n", "20 18144.662960 145.368885 70492.200841 349.463427 284.728674 \n", "21 18107.560769 143.348989 70690.285097 349.244917 284.382902 \n", "\n", " ... eye_center_x eye_center_y eye_width eye_height eye_phi \\\n", "frame ... \n", "17 ... 329.009419 275.387574 163.572471 137.435587 0.021028 \n", "18 ... 329.213380 275.846254 163.453674 137.556997 0.027826 \n", "19 ... 329.696022 277.131676 163.398004 137.453457 0.014976 \n", "20 ... 330.251743 277.005598 163.079554 137.591524 0.033417 \n", "21 ... 329.352378 276.858677 163.326985 137.769130 0.032516 \n", "\n", " pupil_center_x pupil_center_y pupil_width pupil_height pupil_phi \n", "frame \n", "17 349.972230 270.666912 74.207993 76.306045 -0.371412 \n", "18 350.034210 270.571270 74.254708 76.087183 -0.527341 \n", "19 350.428484 271.797634 74.268068 76.114380 -0.428505 \n", "20 350.709697 271.863534 74.039046 75.997537 -0.416278 \n", "21 350.052768 271.331949 74.116918 75.919797 -0.415238 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 167, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eye_tracking_noblinks = eye_tracking[~eye_tracking['likely_blink']]\n", "eye_tracking_noblinks.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Running dataframe**: One entry for each read of the analog input line monitoring the encoder voltage, polled at ~60 Hz." ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampsspeed
024.66661-0.081347
124.6813314.160151
224.6977127.779561
324.7143840.197108
424.7310850.903242
\n", "
" ], "text/plain": [ " timestamps speed\n", "0 24.66661 -0.081347\n", "1 24.68133 14.160151\n", "2 24.69771 27.779561\n", "3 24.71438 40.197108\n", "4 24.73108 50.903242" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "running_speed.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Licking dataframe**: One entry for every detected lick onset time," ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampsframe
026.40224102
126.54844111
226.65058117
327.01904139
428.49396228
\n", "
" ], "text/plain": [ " timestamps frame\n", "0 26.40224 102\n", "1 26.54844 111\n", "2 26.65058 117\n", "3 27.01904 139\n", "4 28.49396 228" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "licks.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's take a look at running, licking and pupil area for one reward trial" ] }, { "cell_type": "code", "execution_count": 169, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "time_before = 3.0 #how much time to plot before the reward\n", "time_after = 3.0 #how much time to plot after the reward\n", "reward_time = session.rewards.iloc[10]['timestamps'] #get the time of the 10th reward\n", "\n", "#Get running data aligned to this reward\n", "trial_running = running_speed.query('timestamps >= {} and timestamps <= {} '.\n", " format(reward_time-time_before, reward_time+time_after))\n", "\n", "#Get pupil data aligned to this reward\n", "trial_pupil_area = eye_tracking_noblinks.query('timestamps >= {} and timestamps <= {} '.\n", " format(reward_time-time_before, reward_time+time_after))\n", "\n", "#Get stimulus presentations around this reward\n", "behavior_presentations = stimulus_presentations[stimulus_presentations['active']]\n", "behavior_presentations.at[:,'omitted'] = behavior_presentations['omitted'].astype('bool')\n", "trial_stimuli = behavior_presentations.query('stop_time >= {} and start_time <= {} and not omitted'.\n", " format(reward_time-time_before, reward_time+time_after))\n", "\n", "#Get licking aligned to this reward\n", "trial_licking = licks.query('timestamps >= {} and timestamps <= {} '.\n", " format(reward_time-time_before, reward_time+time_after))\n", "\n", "\n", "#Plot running, pupil area and licks\n", "fig, axr = plt.subplots()\n", "fig.set_size_inches(14,6)\n", "axr.plot(trial_running['timestamps'], trial_running['speed'], 'k')\n", "axp = axr.twinx()\n", "axp.plot(trial_pupil_area['timestamps'], trial_pupil_area['pupil_area'], 'g')\n", "rew_handle, = axr.plot(reward_time, 0, 'db', markersize=10)\n", "lick_handle, = axr.plot(trial_licking['timestamps'], np.zeros(len(trial_licking['timestamps'])), 'mo')\n", "axr.legend([rew_handle, lick_handle], ['reward', 'licks'])\n", "\n", "axr.set_ylabel('running speed (cm/s)')\n", "axp.set_ylabel('pupil area\\n$(pixels^2)$')\n", "axr.set_xlabel('Experiment time (s)')\n", "\n", "axp.yaxis.label.set_color('g')\n", "axp.spines['right'].set_color('g')\n", "axp.tick_params(axis='y', colors='g')\n", "\n", "#Plot the image flashes as grey bars. \n", "colors = ['0.3', '0.8']\n", "stimulus_colors = {stim: c for stim,c in zip(trial_stimuli['image_name'].unique(), colors)}\n", "for idx, stimulus in trial_stimuli.iterrows():\n", " axr.axvspan(stimulus['start_time'], stimulus['stop_time'], color=stimulus_colors[stimulus['image_name']], alpha=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we can see that just after the stimulus change (a little past 202 seconds), the mouse abruptly stops running and begins licking. The reward is delivered shortly after the first lick. We can also see that before the change the pupil and the running become entrained to the image flashes." ] } ], "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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }