diff --git a/src/constantinople_lab_to_nwb/mah_2024/tutorials/mah_2024_example_notebook.ipynb b/src/constantinople_lab_to_nwb/mah_2024/tutorials/mah_2024_example_notebook.ipynb
index 937b4c2..679799b 100644
--- a/src/constantinople_lab_to_nwb/mah_2024/tutorials/mah_2024_example_notebook.ipynb
+++ b/src/constantinople_lab_to_nwb/mah_2024/tutorials/mah_2024_example_notebook.ipynb
@@ -25,14 +25,6 @@
"![NWB mapping](../mah_2024_uml.png)\n"
]
},
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "7a7155cb-4876-4ff4-9e87-18be6ee3707c",
- "metadata": {},
- "outputs": [],
- "source": []
- },
{
"cell_type": "markdown",
"id": "173c17e4-7ee4-4e58-884e-2353a4ee46d5",
@@ -45,999 +37,258 @@
},
{
"cell_type": "code",
- "execution_count": 5,
"id": "52d493c5-1c7a-487f-971c-4e3ef6442abe",
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-08-28T11:41:17.442258Z",
+ "start_time": "2024-08-28T11:41:15.123900Z"
+ }
+ },
+ "source": [
+ "from pynwb import NWBHDF5IO\n",
+ "import ndx_structured_behavior\n",
+ "\n",
+ "nwbfile_path = \"/Volumes/T9/Constantinople/nwbfiles/C005_RWTautowait_20190909_1456292.nwb\"\n",
+ "\n",
+ "io = NWBHDF5IO(nwbfile_path, \"r\")\n",
+ "nwbfile = io.read()"
+ ],
+ "outputs": [],
+ "execution_count": 1
+ },
+ {
+ "cell_type": "markdown",
+ "id": "750d82d9-13df-404e-8512-960613255b88",
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-08-28T08:55:08.865637Z",
+ "start_time": "2024-08-28T08:55:07.711552Z"
+ }
+ },
+ "source": [
+ "## Accessing the task metadata\n",
+ "\n",
+ "The task-related general metadata is stored in a `Task` object which can be accessed as `nwbfile.lab_meta_data[\"task\"]`.\n",
+ "\n",
+ "The `EventTypesTable` is a column-based table to store the type of events that occur during the task (e.g. port poke from the animal), one type per row.\n",
+ "This table can be accessed as `nwbfile.lab_meta_data[\"task\"].event_types`.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "662468a8-23c6-4d90-8070-0575579b7e44",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
+ "
\n",
+ "\n",
- " \n",
- " \n",
- "
root (NWBFile)
session_description: We developed a temporal wagering task for rats, in which they were offered one of several water rewards on each trial, the volume of which (5, 10, 20, 40, 80μL) was indicated by a tone. The reward was assigned randomly to one of two ports, indicated by an LED. The rat could wait for an unpredictable delay to obtain the reward, or at any time could terminate the trial by poking in the other port (opt-out). Wait times were defined as how long rats waited before opting out. Trial initiation times were defined as the time from opting out or consuming reward to initiating a new trial. Reward delays were drawn from an exponential distribution, and on 15–25 percent of trials, rewards were withheld to force rats to opt-out, providing a continuous behavioral readout of subjective value. We used a high-throughput facility to train 291 rats using computerized, semi-automated procedures. The task contained latent structure; rats experienced blocks of 40 completed trials (hidden states) in which they were presented with low (5, 10, or 20μL) or high (20, 40, or 80μL) rewards. These were interleaved with “mixed\" blocks which offered all rewards. 20μL was present in all blocks, so comparing behavior on trials offering this reward revealed contextual effects (i.e., effects of hidden states). The hidden states differed in their average reward and therefore in their opportunity costs, or what the rat might miss out on by continuing to wait.
description: Contains the start and end times of each state in the task.
table
\n",
+ "
\n",
+ ""
+ ],
+ "text/plain": [
+ " event_name\n",
+ "id \n",
+ "0 state_timer\n",
+ "1 left_port_poke\n",
+ "2 center_port_poke\n",
+ "3 right_port_poke"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "nwbfile.lab_meta_data[\"task\"].event_types[:]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d8035e39-8405-42c2-92cf-758b51845c77",
+ "metadata": {},
+ "source": [
+ "The `ActionTypesTable` is a column-based table to store the type of actions that occur during the task (e.g. sound output from the acquisition system), one type per row.\n",
+ "This table can be accessed as `nwbfile.lab_meta_data[\"task\"].action_types`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "2c1a5c0e-e4b6-4c16-af8a-fdaef0ffa353",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
" \n",
"
\n",
"
\n",
- "
start_time
\n",
- "
stop_time
\n",
- "
state_type
\n",
+ "
action_name
\n",
"
\n",
"
\n",
"
id
\n",
"
\n",
- "
\n",
- "
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
17950.0907
\n",
- "
18390.3721
\n",
- "
0
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
18390.3721
\n",
- "
18391.2413
\n",
- "
1
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
18391.2413
\n",
- "
18391.2433
\n",
- "
2
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
18391.2433
\n",
- "
18395.3789
\n",
- "
3
\n",
+ "
sound_output
\n",
"
\n",
" \n",
- "
... and 1786 more rows.
actions
description: Contains the onset times of the task output actions (e.g. LED turned on/off).
table
\n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " action_name\n",
+ "id \n",
+ "0 sound_output"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "nwbfile.lab_meta_data[\"task\"].action_types[:]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "99b05bc7-d23e-4a19-8e5f-2a228702dc59",
+ "metadata": {},
+ "source": [
+ "The `StateTypesTable` is a column-based table to store the type of states that occur during the task (e.g. while the animal is waiting for reward), one type per row.\n",
+ "This table can be accessed as `nwbfile.lab_meta_data[\"task\"].state_types`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "3ecfb7c9-e58f-4856-8916-e73d16bb326e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
" \n",
"
\n",
"
\n",
- "
timestamp
\n",
- "
action_type
\n",
- "
value
\n",
+ "
state_name
\n",
"
\n",
"
\n",
"
id
\n",
"
\n",
- "
\n",
- "
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
17950.0908
\n",
- "
0
\n",
- "
On
\n",
+ "
wait_for_poke
\n",
"
\n",
"
\n",
"
1
\n",
- "
17950.0909
\n",
- "
0
\n",
- "
On
\n",
+ "
nose_in_center
\n",
"
\n",
"
\n",
"
2
\n",
- "
18391.2434
\n",
- "
0
\n",
- "
On
\n",
+ "
go_cue
\n",
"
\n",
"
\n",
"
3
\n",
- "
18391.2435
\n",
- "
0
\n",
- "
On
\n",
- "
\n",
- " \n",
- "
... and 2476 more rows.
epoch_tagsset()devicesbpod
description: State Machine Version: Bpod 2.0
manufacturer: Sanworks
intervalstrials
description: LED illumination from the center port indicated that the animal could initiate a trial by poking its nose in that \n",
- "port - upon trial initiation the center LED turned off. While in the center port, rats needed to maintain center\n",
- "fixation for a duration drawn uniformly from [0.8, 1.2] seconds. During the fixation period, a tone played from \n",
- "both speakers, the frequency of which indicated the volume of the offered water reward for that trial \n",
- "[1, 2, 4, 8, 16kHz, indicating 5, 10, 20, 40, 80μL rewards]. Following the fixation period, one of the two side \n",
- "LEDs was illuminated, indicating that the reward might be delivered at that port; the side was randomly chosen on \n",
- "each trial.This event (side LED ON) also initiated a variable and unpredictable delay period, which was randomly \n",
- "drawn from an exponential distribution with mean=2.5s. The reward port LED remained illuminated for the duration \n",
- "of the delay period, and rats were not required to maintain fixation during this period, although they tended to \n",
- "fixate in the reward port. When reward was available, the reward port LED turned off, and rats could collect the \n",
- "offered reward by nose poking in that port. The rat could also choose to terminate the trial (opt-out) at any time\n",
- "by nose poking in the opposite, un-illuminated side port, after which a new trial would immediately begin. On a \n",
- "proportion of trials (15–25%), the delay period would only end if the rat opted out (catch trials). If rats did \n",
- "not opt-out within 100s on catch trials, the trial would terminate. The trials were self-paced: after receiving \n",
- "their reward or opting out, rats were free to initiate another trial immediately. However, if rats terminated \n",
- "center fixation prematurely, they were penalized with a white noise sound and a time out penalty (typically 2s, \n",
- "although adjusted to individual animals). Following premature fixation breaks, the rats received the same offered \n",
- "reward, in order to disincentivize premature terminations for small volume offers. We introduced semi-observable, \n",
- "hidden states in the task by including uncued blocks of trials with varying reward statistics: high and low blocks\n",
- ", which offered the highest three or lowest three rewards, respectively, and were interspersed with mixed blocks, \n",
- "which offered all volumes. There was a hierarchical structure to the blocks, such that high and low blocks \n",
- "alternated after mixed blocks (e.g., mixed-high-mixed-low, or mixed-low-mixed-high). The first block of each \n",
- "session was a mixed block. Blocks transitioned after 40 successfully completed trials. Because rats prematurely \n",
- "broke fixation on a subset of trials, in practice, block durations were variable.\n",
- "
description: Contains the name of the events in the task.
table
\n",
- " \n",
- "
\n",
- "
\n",
- "
event_name
\n",
- "
\n",
- "
\n",
- "
id
\n",
- "
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
state_timer
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
left_port_poke
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
center_port_poke
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
right_port_poke
\n",
- "
\n",
- " \n",
- "
state_types
description: Contains the name of the states in the task.
table
\n",
- " \n",
- "
\n",
- "
\n",
- "
state_name
\n",
- "
\n",
- "
\n",
- "
id
\n",
- "
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
wait_for_poke
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
nose_in_center
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
go_cue
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
wait_for_side_poke
\n",
- "
\n",
- " \n",
- "
... and 4 more rows.
action_types
description: Contains the name of the task output actions.
table
\n",
- " \n",
- "
\n",
- "
\n",
- "
action_name
\n",
- "
\n",
- "
\n",
- "
id
\n",
- "
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
sound_output
\n",
- "
\n",
- " \n",
- "
task_arguments
description: Task arguments for the task.
table
\n",
- " \n",
- "
\n",
- "
\n",
- "
argument_name
\n",
- "
argument_description
\n",
- "
expression
\n",
- "
expression_type
\n",
- "
output_type
\n",
- "
\n",
- "
\n",
- "
id
\n",
- "
\n",
- "
\n",
- "
\n",
- "
\n",
- "
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
reward_volume_ul
\n",
- "
The volume of reward in microliters.
\n",
- "
20
\n",
- "
integer
\n",
- "
numeric
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
nose_in_center
\n",
- "
The time in seconds when the animal is required to maintain center port to initiate the trial (uniformly drawn from 0.8 - 1.2 seconds).
\n",
- "
0.8692142692974026
\n",
- "
double
\n",
- "
numeric
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
time_increment_for_nose_in_center
\n",
- "
The time increment for nose in center in seconds.
\n",
- "
0
\n",
- "
double
\n",
- "
numeric
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
target_duration_for_nose_in_center
\n",
- "
The goal for how long the animal must poke center in seconds.
\n",
- "
1
\n",
- "
double
\n",
- "
numeric
\n",
- "
\n",
- " \n",
- "
... and 24 more rows.
trials
description: LED illumination from the center port indicated that the animal could initiate a trial by poking its nose in that \n",
- "port - upon trial initiation the center LED turned off. While in the center port, rats needed to maintain center\n",
- "fixation for a duration drawn uniformly from [0.8, 1.2] seconds. During the fixation period, a tone played from \n",
- "both speakers, the frequency of which indicated the volume of the offered water reward for that trial \n",
- "[1, 2, 4, 8, 16kHz, indicating 5, 10, 20, 40, 80μL rewards]. Following the fixation period, one of the two side \n",
- "LEDs was illuminated, indicating that the reward might be delivered at that port; the side was randomly chosen on \n",
- "each trial.This event (side LED ON) also initiated a variable and unpredictable delay period, which was randomly \n",
- "drawn from an exponential distribution with mean=2.5s. The reward port LED remained illuminated for the duration \n",
- "of the delay period, and rats were not required to maintain fixation during this period, although they tended to \n",
- "fixate in the reward port. When reward was available, the reward port LED turned off, and rats could collect the \n",
- "offered reward by nose poking in that port. The rat could also choose to terminate the trial (opt-out) at any time\n",
- "by nose poking in the opposite, un-illuminated side port, after which a new trial would immediately begin. On a \n",
- "proportion of trials (15–25%), the delay period would only end if the rat opted out (catch trials). If rats did \n",
- "not opt-out within 100s on catch trials, the trial would terminate. The trials were self-paced: after receiving \n",
- "their reward or opting out, rats were free to initiate another trial immediately. However, if rats terminated \n",
- "center fixation prematurely, they were penalized with a white noise sound and a time out penalty (typically 2s, \n",
- "although adjusted to individual animals). Following premature fixation breaks, the rats received the same offered \n",
- "reward, in order to disincentivize premature terminations for small volume offers. We introduced semi-observable, \n",
- "hidden states in the task by including uncued blocks of trials with varying reward statistics: high and low blocks\n",
- ", which offered the highest three or lowest three rewards, respectively, and were interspersed with mixed blocks, \n",
- "which offered all volumes. There was a hierarchical structure to the blocks, such that high and low blocks \n",
- "alternated after mixed blocks (e.g., mixed-high-mixed-low, or mixed-low-mixed-high). The first block of each \n",
- "session was a mixed block. Blocks transitioned after 40 successfully completed trials. Because rats prematurely \n",
- "broke fixation on a subset of trials, in practice, block durations were variable.\n",
- "
experiment_description: The value of the environment determines animals’ motivational states and sets expectations for error-based learning.\n",
- "How are values computed? Reinforcement learning systems can store or cache values of states or actions that are \n",
- "learned from experience, or they can compute values using a model of the environment to simulate possible futures.\n",
- "These value computations have distinct trade-offs, and a central question is how neural systems decide which \n",
- "computations to use or whether/how to combine them. Here we show that rats use distinct value computations for \n",
- "sequential decisions within single trials. We used high-throughput training to collect statistically powerful \n",
- "datasets from 291 rats performing a temporal wagering task with hidden reward states. Rats adjusted how quickly they\n",
- "initiated trials and how long they waited for rewards across states, balancing effort and time costs against \n",
- "expected rewards. Statistical modeling revealed that animals computed the value of the environment differently when\n",
- "initiating trials versus when deciding how long to wait for rewards, even though these decisions were only seconds\n",
- "apart. Moreover, value estimates interacted via a dynamic learning rate. Our results reveal how distinct value \n",
- "computations interact on rapid timescales, and demonstrate the power of using high-throughput training to \n",
- "understand rich, cognitive behaviors.\n",
- "
"
- ],
- "text/plain": [
- "root pynwb.file.NWBFile at 0x5092437648\n",
- "Fields:\n",
- " acquisition: {\n",
- " task_recording \n",
- " }\n",
- " devices: {\n",
- " bpod \n",
- " }\n",
- " experiment_description: The value of the environment determines animals’ motivational states and sets expectations for error-based learning.\n",
- "How are values computed? Reinforcement learning systems can store or cache values of states or actions that are \n",
- "learned from experience, or they can compute values using a model of the environment to simulate possible futures.\n",
- "These value computations have distinct trade-offs, and a central question is how neural systems decide which \n",
- "computations to use or whether/how to combine them. Here we show that rats use distinct value computations for \n",
- "sequential decisions within single trials. We used high-throughput training to collect statistically powerful \n",
- "datasets from 291 rats performing a temporal wagering task with hidden reward states. Rats adjusted how quickly they\n",
- "initiated trials and how long they waited for rewards across states, balancing effort and time costs against \n",
- "expected rewards. Statistical modeling revealed that animals computed the value of the environment differently when\n",
- "initiating trials versus when deciding how long to wait for rewards, even though these decisions were only seconds\n",
- "apart. Moreover, value estimates interacted via a dynamic learning rate. Our results reveal how distinct value \n",
- "computations interact on rapid timescales, and demonstrate the power of using high-throughput training to \n",
- "understand rich, cognitive behaviors.\n",
- "\n",
- " experimenter: ['Mah, Andrew']\n",
- " file_create_date: [datetime.datetime(2024, 8, 26, 16, 38, 50, 4510, tzinfo=tzoffset(None, 7200))]\n",
- " identifier: 85da9943-6b94-4995-b357-1dfa562fed25\n",
- " institution: NYU Center for Neural Science\n",
- " intervals: {\n",
- " trials \n",
- " }\n",
- " lab: Constantinople\n",
- " lab_meta_data: {\n",
- " task \n",
- " }\n",
- " related_publications: ['https://doi.org/10.1038/s41467-023-43250-x'\n",
- " 'https://doi.org/10.5281/zenodo.10031483']\n",
- " session_description: We developed a temporal wagering task for rats, in which they were offered one of several water rewards on each trial, the volume of which (5, 10, 20, 40, 80μL) was indicated by a tone. The reward was assigned randomly to one of two ports, indicated by an LED. The rat could wait for an unpredictable delay to obtain the reward, or at any time could terminate the trial by poking in the other port (opt-out). Wait times were defined as how long rats waited before opting out. Trial initiation times were defined as the time from opting out or consuming reward to initiating a new trial. Reward delays were drawn from an exponential distribution, and on 15–25 percent of trials, rewards were withheld to force rats to opt-out, providing a continuous behavioral readout of subjective value. We used a high-throughput facility to train 291 rats using computerized, semi-automated procedures. The task contained latent structure; rats experienced blocks of 40 completed trials (hidden states) in which they were presented with low (5, 10, or 20μL) or high (20, 40, or 80μL) rewards. These were interleaved with “mixed\" blocks which offered all rewards. 20μL was present in all blocks, so comparing behavior on trials offering this reward revealed contextual effects (i.e., effects of hidden states). The hidden states differed in their average reward and therefore in their opportunity costs, or what the rat might miss out on by continuing to wait.\n",
- " session_id: RWTautowait-20190909-145629\n",
- " session_start_time: 2019-09-09 15:03:58-04:00\n",
- " source_script: Created using NeuroConv v0.5.1\n",
- " source_script_file_name: /Users/weian/catalystneuro/neuroconv/src/neuroconv/basedatainterface.py\n",
- " subject: subject pynwb.file.Subject at 0x5090802448\n",
- "Fields:\n",
- " age: P6M/P24M\n",
- " age__reference: birth\n",
- " sex: U\n",
- " species: Rattus norvegicus\n",
- " subject_id: C005\n",
- "\n",
- " timestamps_reference_time: 2019-09-09 15:03:58-04:00\n",
- " trials: trials "
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "from pynwb import NWBHDF5IO\n",
- "import ndx_structured_behavior\n",
- "\n",
- "nwbfile_path = \"/Volumes/T9/Constantinople/nwbfiles/C005_RWTautowait_20190909_1456292.nwb\"\n",
- "\n",
- "io = NWBHDF5IO(nwbfile_path, \"r\")\n",
- "nwbfile = io.read()\n",
- "nwbfile"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "750d82d9-13df-404e-8512-960613255b88",
- "metadata": {
- "ExecuteTime": {
- "end_time": "2024-08-28T08:55:08.865637Z",
- "start_time": "2024-08-28T08:55:07.711552Z"
- }
- },
- "source": [
- "## Accessing the task metadata\n",
- "\n",
- "The task-related general metadata is stored in a `Task` object which can be accessed as `nwbfile.lab_meta_data[\"task\"]`.\n",
- "\n",
- "The `EventTypesTable` is a column-based table to store the type of events that occur during the task (e.g. port poke from the animal), one type per row.\n",
- "This table can be accessed as `nwbfile.lab_meta_data[\"task\"].event_types`.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "id": "662468a8-23c6-4d90-8070-0575579b7e44",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
event_name
\n",
- "
\n",
- "
\n",
- "
id
\n",
- "
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
state_timer
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
left_port_poke
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
center_port_poke
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
right_port_poke
\n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " event_name\n",
- "id \n",
- "0 state_timer\n",
- "1 left_port_poke\n",
- "2 center_port_poke\n",
- "3 right_port_poke"
- ]
- },
- "execution_count": 19,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "nwbfile.lab_meta_data[\"task\"].event_types[:]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d8035e39-8405-42c2-92cf-758b51845c77",
- "metadata": {},
- "source": [
- "The `ActionTypesTable` is a column-based table to store the type of actions that occur during the task (e.g. sound output from the acquisition system), one type per row.\n",
- "This table can be accessed as `nwbfile.lab_meta_data[\"task\"].action_types`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "id": "2c1a5c0e-e4b6-4c16-af8a-fdaef0ffa353",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
action_name
\n",
- "
\n",
- "
\n",
- "
id
\n",
- "
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
sound_output
\n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " action_name\n",
- "id \n",
- "0 sound_output"
- ]
- },
- "execution_count": 21,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "nwbfile.lab_meta_data[\"task\"].action_types[:]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "99b05bc7-d23e-4a19-8e5f-2a228702dc59",
- "metadata": {},
- "source": [
- "The `StateTypesTable` is a column-based table to store the type of states that occur during the task (e.g. while the animal is waiting for reward), one type per row.\n",
- "This table can be accessed as `nwbfile.lab_meta_data[\"task\"].state_types`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "id": "3ecfb7c9-e58f-4856-8916-e73d16bb326e",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
state_name
\n",
- "
\n",
- "
\n",
- "
id
\n",
- "
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
wait_for_poke
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
nose_in_center
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
go_cue
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
wait_for_side_poke
\n",
- "
\n",
- "
\n",
- "
4
\n",
- "
announce_reward
\n",
- "
\n",
- "
\n",
- "
5
\n",
- "
reward
\n",
- "
\n",
- "
\n",
- "
6
\n",
- "
punish_violation
\n",
- "
\n",
- "
\n",
- "
7
\n",
- "
opt_out
\n",
+ "
wait_for_side_poke
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
announce_reward
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
reward
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
punish_violation
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
opt_out
\n",
"
\n",
" \n",
"
\n",
@@ -1679,597 +930,360 @@
"
On
\n",
"
sound_output
\n",
" \n",
- "
\n",
- "
4
\n",
- "
18390.3722
\n",
- "
0
\n",
- "
On
\n",
- "
sound_output
\n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " timestamp action_type value action_name\n",
- "0 17950.0908 0 On sound_output\n",
- "1 17950.0909 0 On sound_output\n",
- "2 18391.2434 0 On sound_output\n",
- "3 18391.2435 0 On sound_output\n",
- "4 18390.3722 0 On sound_output"
- ]
- },
- "execution_count": 71,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "pd.merge(\n",
- " nwbfile.acquisition[\"task_recording\"].actions[:],\n",
- " nwbfile.lab_meta_data[\"task\"].action_types[:],\n",
- " left_on=\"action_type\",\n",
- " right_on=\"id\",\n",
- ").head()"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "4d47f67a-a13c-4f46-a703-6ab6753fe62b",
- "metadata": {},
- "source": [
- "The `StatesTable` is a column-based table to store the information about the states (e.g. the duration while nose is in center port). This table can be accessed as `nwbfile.acquisition[\"task_recording\"].states`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 74,
- "id": "a4fd969f-8b11-4bbd-986a-b275413c8079",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
start_time
\n",
- "
stop_time
\n",
- "
state_type
\n",
- "
state_name
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
17950.0907
\n",
- "
18390.3721
\n",
- "
0
\n",
- "
wait_for_poke
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
18390.3721
\n",
- "
18391.2413
\n",
- "
1
\n",
- "
nose_in_center
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
18391.2413
\n",
- "
18391.2433
\n",
- "
2
\n",
- "
go_cue
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
18391.2433
\n",
- "
18395.3789
\n",
- "
3
\n",
- "
wait_for_side_poke
\n",
- "
\n",
- "
\n",
- "
4
\n",
- "
18395.3789
\n",
- "
18395.4743
\n",
- "
4
\n",
- "
announce_reward
\n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " start_time stop_time state_type state_name\n",
- "0 17950.0907 18390.3721 0 wait_for_poke\n",
- "1 18390.3721 18391.2413 1 nose_in_center\n",
- "2 18391.2413 18391.2433 2 go_cue\n",
- "3 18391.2433 18395.3789 3 wait_for_side_poke\n",
- "4 18395.3789 18395.4743 4 announce_reward"
- ]
- },
- "execution_count": 74,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "pd.merge(\n",
- " nwbfile.acquisition[\"task_recording\"].states[:],\n",
- " nwbfile.lab_meta_data[\"task\"].state_types[:],\n",
- " left_on=\"state_type\",\n",
- " right_on=\"id\",\n",
- ").head()"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d983e620-b3d4-424b-bb53-cd64c5ec6cd8",
- "metadata": {},
- "source": [
- "### Plot the events, actions, and states\n",
- "\n",
- "The ``plot_events``, ``plot_actions``, and ``plot_states`` functions can consume both the raw table as well as a subset of the table as a pandas DataFrame created through slicing, e.g., via ``events[:100]`` will plot only the first 100 rows from the events table.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 88,
- "id": "9e145e47-ebd3-4eb3-93c5-6e9d036c111b",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAABscAAAGiCAYAAAC7/hjYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD0tUlEQVR4nOzdeVzU1f7H8dewg+yIkIiS5jVcU0vLXHBfM5fcTdFbblmmWWlqopnack0rzUpTyyXNLXPJLVFzK8tKvWJZgisoKiAg68zvD34zF2RHEJf38/GYxx2+37N8zvkOkw8+95xjMJlMJkRERERERERERERERETuA1alHYCIiIiIiIiIiIiIiIjI7aLkmIiIiIiIiIiIiIiIiNw3lBwTERERERERERERERGR+4aSYyIiIiIiIiIiIiIiInLfUHJMRERERERERERERERE7htKjomIiIiIiIiIiIiIiMh9Q8kxERERERERERERERERuW8oOSYiIiIiIiIiIiIiIiL3DSXHRERERERERERERERE5L6h5JiIiIiIiIiIiIiIiIjcN5QcExERERERESkhISEhGAyGAr/uBbNnzyYkJITffvuttEMREREREcmRTWkHICIiIiIiInI/8PHxKe0QbovZs2cTERFBQEAAjzzySGmHIyIiIiKSjZJjIiIiIiIiIrdBZGRkaYcgIiIiIiJoW0URERERERERERERERG5jyg5JiIiIiIiInIHOXLkiOUMsj/++CPPsgMGDMBgMNCyZcsc72/atInu3bvj5+eHvb09Hh4eNG3alE8++YSUlJQc6wQFBWEwGAgJCcFkMvH555/TsGFDXF1dcXFx4YknnmDp0qXZ6pnPV4uIiABg0KBBeZ6pdu3aNd58803q1auHq6srdnZ2+Pr6Urt2bYYNG8bOnTsLMl0iIiIiIoWmbRVFRERERERE7iB169alRo0aHD9+nK+++or33nsvx3IJCQmsXbsWyEiSZXbjxg0GDBjA6tWrLddcXV2JjY1l79697N27ly+//JLNmzfj4eGRY/vp6el07dqVb7/9FhsbG5ycnLh+/ToHDx7k4MGD/PXXX0yZMsVS3tnZGR8fHy5fvozRaMTV1RVHR8cc2z537hxPPvkkZ86cAcDKygo3Nzeio6OJiori6NGjhIWF5Zr0ExERERG5FVo5JiIiIiIiInKHMSe7li9f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5WylZcuWMXv2bGrXro29vT3p6enUqlWLGTNmsG/fvjxXsRS0D8hIWJ08eZKxY8dSp04d7O3tiYmJwdnZmUcffZQXX3yR7du306dPn1uer/79+/PVV1/RuHFjnJycuHjxIhEREQXa3u52uh1zUq5cOUtSadmyZfmWj4uLIyoqKs9XbGyspfzzzz/PmTNn8PX15YsvvsixzcmTJ9OoUSOSkpLo3bs3N27cyFbGzs6OnTt3Mn36dKpVq0ZycjJubm60bNmSTZs2WVamlQSDwcDUqVP5448/GDFiBIGBgVhbWxMbG4uHhweNGjXi1VdfZf/+/TlueTht2jQ2btxIixYtcHV1JTk5mcDAQGbOnMnOnTuxs7PLs/9//vmHAwcO4OjoyIABA0pqmCIiIiIiIiIiIiJyFzCY8jqMSUQKZM+ePTRr1owqVarw119/FcvqvOISFBTE7t27mTx5cp6rFO9lU6dOZfLkyQwaNCjXBGNe4uLicHNzIzY21nLentx+0fFJPDptJwCHJ7akrLNDKUckUnSJKWlUf3MrAP+d2hYnO5tSjkjuV/puvXPpe0JEisO9+j2v70iRO8e9+j0jcrfSfyML/rdcrRwTKQZNmzalTZs2/P3333zzzTelHY5kkpCQwEcffYS9vT2TJ08u7XBEREREREREREREpJQpOSZSTN5//32srKyYOnUqRqOxtMOR//fxxx8THR3NSy+9RKVKlUo7HBEREREREREREREpZfffmjqRElKrVi0WLlxIeHg4Fy9exM/Pr7RDEqBMmTKEhITw8ssvl3YoIiIiIiIiIiIiInIHUHLsPubr61voOpGRkSUQyb0jODi4tEOQm4wcObK0QxARERERERERERGRO4iSY/exqKio0g5BboPQ0NDSDkFERERERERERERE5I5hMJlMptIOQkTkThYXF4ebmxuxsbG4urqWdjgiIiIiIiIiIiIikoOC/i3X6jbGJCIiIiIiIiIiIiIiIlKqlBwTERERERERERERERGR+4aSYyIiIiIicldKTEkjYNwmyysxJS3bdfO1vK6LlLbCfmbz+iwX9Z5IUej7VsxK6nupuL8HC3JfRETuD0qOiYiIiIiIiIiIiIiIyH1DyTERERERERERERERERG5byg5JiIiIiIiIiIiIiIiIvcNJcdERERERERERERERETkvqHkmIiIiIiIiIiI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9On07NkTk8nE1KlT8fLywtPTEy8vL0syrU+fPrz11ltFjs3JyYlnn30WgNdeew1nZ2cqVapEQEAAY8eOLXK7mX3wwQckJSXRunVrnJ2dcXFxoUGDBvz+++/Y29uzYsUKKlasmKWOtbU1a9asoUaNGsTGxtKvXz+cnZ3x8PCgcuXKbNiwASsrK+bMmUP79u0LHEuLFi3YvHkzZcqUYf369XTv3t2SIDP32alTJ1JSUpg0aRJ+fn64ubnh4eGBi4sLLVq0YN68eSQkJGRrOzAwkDp16gCwYcOGW5ixW2fuv2/fvqUah4iIiIiIiIiIiIiULiXH7mJdunTh1KlTTJ48mQYNGuDs7ExMTAz29vbUqVOH5557jnXr1vHqq68Wuu3+/fvz1Vdf0bhxY5ycnLh48SIRERGcO3euWGK3s7Nj586dTJ8+nWrVqpGcnIybmxstW7Zk06ZNuSa37OzsWLlyJatXr6Z9+/Z4eXlx/fp1vLy8aN++PWvXrmX58uXY2treUnxz584lJCTEsq3jmTNniIiIsJxZdasefPBBjhw5wgsvvIC3tzcpKSmUK1eOPn36cOTIETp27JhjPT8/Pw4fPsysWbN4/PHHcXR0JDExEX9/f5599ll++eUXXnrppULH06xZM77//ntcXFzYuHEjXbp0ITk5GcjYZvK7775j8+bN9OrVi4oVK5KcnExiYiJ+fn60adOGGTNm5LhNJMDQoUOBjFWIpeWff/7hwIEDODo6MmDAgFKLQ0RERERERERERERKn01pByB5W7x4MYsXL871frly5QgJCSEkJKRQ7YaHh+dbpn///vTv379Q7RaGnZ0d48ePZ/z48YWu271790KfKZbfXGZmb2/P5MmTmTx5cqFjKyhfX18+/vhjPv7440LVc3BwYPTo0YwePbpQ9fJ75o0bNyYuLi7X++3bty/UijSz/v37M27cOPbs2UNERASVKlUqVGwFeW7BwcEEBwfnen/p0qVAxrltHh4eBQlbRERERERERERERO5RWjkmIiXKfH6ayWTinXfeue39JyQk8NFHH1kSniIiIiIiIiIiIiJyf1NyTERK3OjRo/H392fhwoWcPXv2tvb98ccfEx0dzUsvvZTjqjURERERERERERERub9oW0URKXEODg58+eWXhIaGcubMGfz9/W9b32XKlCEkJISXX375tvUpIiIiIiIiIiIiIncuJcek0Lp168b+/fsLVWft2rU0atSohCK6vXx9fQtdJzIysgQiubsEBQURFBR02/sdOXLkbe9TRERERERERERERO5cSo5JoV29epWoqKhC1UlJSQEgNDS0BCK6vQo79sxMJlMxRiIiIiIiIiIiIiIiIoVlMOmv9SIieYqLi8PNzY3Y2FhcXV1LOxwRERERERERERERyUFB/5ZrdRtjEhERERERERERERERESlVSo6JiIiIiIiIiIiIiIjIfUPJMRERERERuWslpqQRMG6T5ZWYkpbjPfP1nK6JlLa8Ppf5fWaLUle/B1Kc9DkTs5L4vrrVurfSp4iI3NuUHBMREREREREREREREZH7hpJjIiIiIiIiIiIiIiIict9QckxERERERERERERERETuG0qOiYiIiIiIiIiIiIiIyH1DyTERERERERERERERERG5byg5JiIiIiIiIiIiIiIiIvcNJceKSXBwMAaDgeDg4GJve+/evXTs2BFvb2+sra0xGAx06dKl2PuRO0NAQAAGg4HFixeXSv/9+/fHYDCwcuXKUum/OBmNRmrUqIGtrS0nT54s7XBERERERERERERE5A5gU9oBSN4OHjxIixYtSEtLw2Aw4OXlhbW1NR4eHgCEhIQAGcm5gICA0gu0FISHh1sSSOZ5kFtz+PBhli9fTs2aNenZs2eeZU+dOsXChQvZsWMH4eHhxMbG4unpSZUqVWjTpg3PP/885cuXL7FY169fz2+//cYjjzySa7LYysqKSZMm0adPH1577TW+/fbbEotHRERERERERERERO4OWjl2h5s9ezZpaWk8+eSTREdHc/nyZSIjI1m0aBEAU6ZMYcqUKYSHh5duoKUgPDzcMn4pHq+88gomk4nJkydjMBhyLJOens6rr75KYGAgM2fO5PDhw1y7dg1nZ2cuX77M/v37CQkJoWrVqrz//vslFuv69euZMmUK69evz7Ncz549qV69Ohs2bGDPnj0lFo+IiIiIiIiIiIiI3B2UHLvDHT16FIDevXvj6elZytHIvezgwYPs2bMHX19funbtmmMZo9FI9+7def/990lLS6Ndu3bs3r2b5ORkrl69yo0bN/j+++9p1KgRiYmJvPrqq7z00ku3eSRZWVlZ8fzzzwPw7rvvlmosIiIiIiIiIiIiIlL6lBy7wyUmJgLg7OxcypHIvW7+/PlA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zZoA7N27l7CwsGJv38nJiR9//JG+fftaVkklJSXx2WefMXz4cACefvppGjRokKXetGnTsLW15dSpU7Rt25ajR48CGQmPzZs306FDB9LS0qhSpQpDhw4tcnzm8a9evTrP87KKys3NjbfeeosZM2ZYVkBFR0czatQolixZAsCkSZNwcHCw1HF0dLQkxVasWMGwYcOIiooCIDExkQ8//JCXX34ZyEgq1q9fP9843N3d2b59O48//jiRkZEEBQVx7NixLPdnz54NZKzq6tixI4cOHbIkNY1GIydOnOA///kPNWrUYOPGjVnad3FxscSR12qtGjVqsGDBAqytrTl69Ch169bliy++yJKc+vPPPxkzZgydO3cmJSWFypUrs3z58mzn8tna2tK9e3cApk+fzqpVqyxbeJ48eZKuXbvyxx9/5BrLv/71L+zs7ABYsGBBvqvHjhw5QkpKCjY2NpaVdiIiIiIiIiIiIiJyfyr25NjFixeZNm0alStXpmPHjuzfvx+TyUTjxo2ZM2cOHTt2xGAwcODAARo3blyi2w6WtIceeogvv/wSGxsbDh8+TL169XB1dcXZ2ZmWLVuSkpLCrFmzALC3ty/2/rt37463tzfXrl0jMDAQb29vAgICCAgI4ODBg7fcvre3Nx988AGrVq3C398fT09PXF1dGTp0KElJSdSpU4eFCxdmq1evXj2++uor7Ozs+PHHH6lduzZubm6UKVOGjh07cuHCBfz9/fnuu+9wdnYucnxDhgzBYDCwf/9+vL29KV++vGX8xaFLly706NGDN954Aw8PDzw9PSlXrhwffvghAAMGDOCll17KVm/kyJGMHj0ayFgl9sADD+Dp6YmbmxujRo0iNTWV5s2b8/nnnxc4Fjc3N7Zt20ajRo24dOkSzZs3z5I8GjhwIJ988gl2dnZs2bKFxx9/HCcnJ8qWLYuDgwPVq1dn7NixhIWFZUtUwf9WsG3YsCHPOPr27cvGjRspX748586d49///jceHh64u7vj6OhItWrV+OCDD0hLS6NNmzYcPHjQcibazWbMmEH58uW5fv06vXr1wtnZGTc3Nx5++GF27drF2rVrc43DycmJZ599FoDXXnsNZ2dnKlWqREBAAGPHjs1W3jyuTp064eLikucYRUREREREREREROTeVizJMZPJxKZNm+jSpQuVKlVi8uTJhIeH4+LiwgsvvMDRo0fZs2cPL774It999x1//vknrVu3JjU1lUmTJhVHCKXmmWee4fDhw/To0QNvb2+Sk5Px8fFh1KhRHDlyBDc3NwDL+WTFycPDgz179tC7d2/8/PyIjY0lIiKCiIgIkpKSiqWPF154ga1bt9KuXTusrKywsrLi4YcfZurUqRw4cMCyheDNevXqxfHjxxk6dChVqlQhOTkZGxsbHnnkEaZMmcKxY8du+eynpk2bsmnTJlq1aoW7uztRUVGW8ReXFStWMG/ePOrWrUtaWhplypThiSee4Msvv2TJkiVZzr7KbNasWfzwww90794dHx8f4uPjcXFxoXnz5nzxxRds37690EkaFxcXtm7dSpMmTYiOjqZFixaW1YoAw4YN4+TJk4wdO5Y6depgb29PTEwMzs7OPProo7z44ots3749x60cBw4ciIODA/v377eczZWbdu3acerUKebNm0eHDh3w8/MjKSkJW1tb/vWvf/Hvf/+bHTt2sHXrVry9vXNtp0KFChw6dIjnnnsOPz8/AJydnRkwYAC//vprvtsfzp07l5CQEGrVqgXAmTNniIiIyLbdo8lkYvny5QC3tFJRRERERERERERERO4NBlN++5Hl4dy5cyxcuJAvvviCc+fOWbY2q1evHsOGDaNv3765bisYFxdHuXLlsLe3JzY2tqgh3PEmTJjA9OnTadGiBTt37iztcApk8eLFDBo0iEqVKhEeHl7a4dx2wcHBLFmyhIEDB7J48eLSDue2GTx4MIsWLWLKlCm8+eabpR1OsdmzZw/NmjWjSpUq/PXXXzmunMtPXFwcbm5uxMbGZjnvTETuDYkpaVR/cysA/53aFic7m1tuMzo+iUenZfx3//DElpR1/t8WvCXR390gr3Hndu9+nSsRERERERERKZqC/i23yCvHOnXqxIMPPsjUqVM5e/Ysjo6ODBo0iEOHDnH48GGee+65PM/bcnV1xdfXl/j4+KKGcMe7fPkyCxYsADJW24jcyd58803s7e35+OOPSUhIKO1wis2MGTOAjLPwipIYExEREREREREREZF7S5GTY5s3byY9PZ2HH36Y2bNnc/78eRYuXMhjjz1W4DaeeeYZBgwYUNQQ7ggffvghM2fO5NSpU6SlpQGQnJzM5s2badq0KZcuXcLb25vBgweXcqQieQsICODFF1/k8uXLzJ07t7TDKRaHDh3i+++/p0GDBvTq1au0wxERERERERERERGRO0CR96bp1asXw4YNy/dcoLy8//77Ra57p/jnn3+YM2cO48ePx9raGjc3N+Li4iyJMjc3N1atWpXr2Vwid5IJEybg7OxMmTJlSjuUYnH58mUmT55M165dtWpMRERERERERERERIBbSI6tWLGiOOO4aw0cOBBra2v27NnD+fPnuXLlCo6Ojjz44IO0bduWUaNG4efnd9vjWrlyJaNGjSpUnV69ejFnzpwSiuj2GjVqFCtXrixUnTlz5tz3q4vc3d2ZPHlyaYdRbDp16kSnTp1KOwwRERERERERERERuYMUOTnWokULvLy8+OabbwpUvk+fPly6dImdO3cWtcs7Ut26dalbt25ph5HNjRs3iIqKKlSd2NhYAIKDgwkODi6BqG6f2NjYQo//xo0bACxevJjFixeXQFQiIiIiIiIiIiIiIlLaDCaTyVSUilZWVvj6+nLhwoUClX/wwQc5c+YM6enpRelORKTUxMXF4ebmRmxsLK6urqUdjoiIiIiIiIiIiIjkoKB/y7W6XQEZjUad+SMiIiIiIiIiIiIiIiKl6rYkx9LT07l06RJlypS5Hd2JiIiIiIiIiIiIiIiI5KjAZ47FxcURExOT5Vp6ejpnz54lt50ZTSYTMTExLFq0iOTkZGrXrn1LwYqIiIjciRJT0qj+5lYA/ju1LU52RT7WVUSKSL+HIiKlQ9+/IiIicjcq8L9YPvjgA6ZOnZrlWnR0NAEBAQWqbzAYePbZZwsVnIiIiIiIiIiIiIiIiEhxKtT/nSfzCjGDwZDrirGb+fn5MWzYMEaOHFm46ERERERERERERERERESKUYGTYy+//DLBwcFARpKscuXKeHt789NPP+Vax8rKCldXV9zc3G45UBEREREREREREREREZFbVeDkmJubW5YkV9OmTSlbtiyVKlUqkcBEREREREREREREREREiluRT0kNDQ0txjBERERERERERERERERESp5VaQcgIiIiIiIiIiIiIiIicrsoOSZyC8LDwzEYDBgMBsLDw0s7nBKXkpJClSpVsLe35+zZsyXeX3p6OrNmzaJu3bqUKVPGMtfr16+3lElMTGTSpEkEBgbi6OhoKfPbb78RHx+Pt7c3Hh4eXLlypcTjFREREREREREREZE7X5G3VZT7w/r16/ntt9945JFH6NKly13b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Z/To0Rw6dIg///yTMWPGULFiRVJSUli3bh39+vWjQoUKedWd5MLEiROZMWMG3bt3595778XBwYGYmBjKlStHhw4d+PbbbwkODqZUqVKWNt7e3uzYsYOnnnqKSpUqERkZydmzZzl79iwJCQmWeosWLeKTTz6hQYMGODs7k5qaSv369XnvvffYvXs37u7uVuOytQ+4kbD6+++/GTNmDA0bNsTZ2ZmIiAjc3d1p1qwZr7zyCps2bcqThMvAgQNZuHAhLVq0wM3NjcuXL3P27FkuXLiQ63PnpYK4J+XKlaN79+7Ajdc6O76+vvzyyy9s3bqV5557jnvuuQcnJyfi4+OpVKkSjz76KDNnzuTkyZOWWYf5Zfv27Vy4cIFKlSrRtWvXfO1LRERERERERERERO5sJiO7DYpyyTAMtm7dyvjx49m/fz8mk4nU1NT86k5ECsCOHTto3bo1NWrU4N9//82T2Xn5bciQIcydO5dJkybx9ttv57h9VFQUXl5eREZGWvagk4IXl5RCnbc3APDX5E64OTkUckQiIkWfPltFRIo3fc6LSH7T54yI3Gls/V1uns0cu9nly5eZPn06o0eP5sCBA/nVjYgUsFatWtGxY0f+++8/vv/++8IO55bOnz/PokWL8PX1ZcSIEYUdjoiIiIiIiIiIiIgUsjxN5cfHx7Nq1SoWLFjA1q1bSUtLwzwxrUmTJgwaNCgvuxORQvLRRx/RqFEjJk+eTK9evbCzy7c8e65NnTqVpKQkgoKCNOtLRERERERERERERPImObZ582YWLlzI6tWriY2NtSTEKleuzIABA3j66aepU6dOXnQlIneA+vXrM2fOHM6cOcPly5epVKlSYYeUpbS0NKpWrcqUKVMYOnRoYYcjIiIiIiIiIiIiIneA206OHT16lIULF7J48WIuXboE3NhjzN3dnR49evD000/Trl27IrEfkRR/5cuXz3GbkJCQfIik+Bg8eHBhh3BLdnZ2jB8/vrDDEBEREREREREREZE7yG0nxxo0aIDJZMIwDOzs7GjXrh2DBg2iR48euLm55WWMIrkWGhpa2CGIiIiIiIiIiIiIiMgdwGSY10DMITs7O+rWrcugQYMYMGAAFStWzOvYRETuCFFRUXh5eREZGal9y0RERERERERERETuULb+Lve2Z44dPHiQRo0a3W5zERERERERERERERERkQJnd7sNlRgTERERERERERERERGRoua2k2M59euvv7Jjx46C6k5ERHIpLimFauPWUW3cOuKSUgo7HBGRIkmfpSIiJZM+/0UkP+kzRkQk92xeVtHOzo4KFSpw8eLFTGUjR44kKiqKOXPmWG3fvXt3rl69SkqKPrBFRERERERERERERESkcORo5phhGFkeX7p0KfPmzbvt9iIiIiIiIiIiIiIiIiIFocCWVRQREREREREREREREREpbEqOiYiIiIiIiIiIiIiISImh5JiIiIiIiIiIiIiIiIiUGEqOiYiIiIiIiIiIiIiISImh5JhICVGtWjVMJhPz5s0rlP4HDhyIyWRi2bJlBdpv586dMZlMbN26tUD7FREREREREREREZE7k5JjRcy8efMICgoiODi4sEMpts6cOUNQUBBBQUGFHUqxsX//fhYvXky9evXo06dPpnJz4m7w4MF53rf5dRwzZgxpaWl5fn4RERERERERERERKVqUHCti5s2bx6RJk5Qcy0dnzpxh0qRJTJo0qbBDKTZGjx6NYRgEBgZiMpkKtO8HH3yQTp06cejQIb777rsC7VtERERERERERERE7jw5So6FhoZib2+f6XHlyhWALMvMj9DQ0Hy5ABG5s/3666/s2LGD8uXL071790KJ4YUXXgDggw8+KJT+RUREREREREREROTOkaPkmGEYt/0QkZJp1qxZADz11FPY29sXSgxdunTBx8eHY8eOsXv37kKJQURERERERERERETuDDYnxwIDA3P9ePvtt/PzWnLl/PnzjB07lkaNGuHl5YWrqys1atTgySefZMGCBSQkJGRqs3v3bgYOHIi/vz8uLi54eXlx//338/777xMTE5NlP4MHD86wt9KKFSto06YNPj4+uLm50ahRIz799NNMeyPNmzcPk8nE9u3bAZg0aRImkynD48yZM3keo2EYzJ49mxYtWlCmTBlMJhPz5s2z/cbepE2bNphMJoKCgkhKSmLatGk0aNCAUqVK4e3tTYcOHVi/fv0tz7Nq1Sq6du2Kn58fTk5O+Pn50bVrV1avXm21jS3XVa1aNdq2bWtpc/M9zu2eWObzBAcHExISwssvv0z16tVxcXGhfPnyDBgwgBMnTmR7joSEBD755BOaN2+Ot7c3Li4u+Pv7M2jQIA4fPnzbsb377ruYTCbs7e0tCS2ztLQ0Fi1aRJcuXSz3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iXh5efHII4+wbt06q8ktJycnli1bxooVK3j00UcpU6YM0dHRlClThkcffZRVq1axePFiHB0dcxXfzJkzCQoKsizreO7cOc6ePWvZsyq3qlevzqFDh3jppZfw9fUlKSmJcuXK0a9fPw4dOsRjjz2WZbtKlSqxf/9+pk+fzoMPPoirqytxcXFUqVKFp59+mgMHDvDqq6/mOJ7WrVvzyy+/4OHhwdq1a+nWrRuJiYnAjWUmf/rpJ37++Wf69u1L1apVSUxMJC4ujkqVKtGxY0fee++9LJeJBBg2bBgAixYtynFceeXUqVPs3bsXV1dXBg0aVGhxiIiIiIiIiIiIiEjhMxn5sWaciBVt2rRh+/btBAYGEhQUVNjhFDjzLL1t27ZZlhws7qKjo6lcuTLR0dGcPn0af3//Ao9h8uTJBAYG8swzz/Dtt9/muH1UVBReXl5ERkZm2JOuuItLSqHO2xsA+GtyJ9ycHAo5IhGRokefpSIiJZM+/0UkP+kzRkTEOlt/l6uZYyKSr8z7pxmGwfvvv1/g/cfGxvLZZ5/h7OxMYGBggfcvIiIiIiIiIiIiIncWJcdEJN+NHDmSKlWqMGfOHM6fP1+gfX/++edcu3aNV199tVBmrYmIiIiIiIiIiIjInUVzbkUk37m4uLBgwQKCg4M5d+4cVapUKbC+S5UqRVBQECNGjCiwPkVERERERERERETkzqXkmORYjx492LNnT47arFq1iubNm+dTRAWrfPnyOW4TEhKSD5EULW3atCmUfdZefvnlAu9TRERERERERERERO5cSo5JjoWFhREaGpqjNklJSQAEBwfnQ0QFK6fXnp5hGHkYiYiIiIiIiIiIiIiI5JTJ0G/rRUSyFRUVhZeXF5GRkXh6ehZ2OCIiIiIiIiIiIiKSBVt/l2tXgDGJiIiIiIiIiIiIiIiIFColx0RERERERERERERERKTEUHJMRERERPJdXFIK1cato9q4dcQlpdz2cRERERERkZvl5f83bPm/iK3/X8mqnv6vI3JnUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHKskAQHB2MymTCZTHl+7qCgIEwmE23atMnzc0vRVNjv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Nja2wPt///33MQyD8ePH53hWnYiIiIiIiIiIiIgUP0qO3aFmzJjBtGnTOHnyJCkpKQAkJiby888/06pVK65cuYKvry9Dhgwp5EhFsletWjVeeeUVrl69ysyZMwu07/Pnz/Ptt99StWpVRowYUaB9i4iIiIiIiIiIiMidScsq3qFOnTrFp59+yvjx47G3t8fLy4uoqChLoszLy4vly5db3ZtL5E7y1ltv4e7uTqlSpQq037NnzzJ+/Hjatm2Li4tLgfYtIiIiIiIiIiIiIncmJcfuUAEBAdjb27Njxw4uXrzI9evXcXV1pXr16nTq1InXXnuNSpUqFXhcy5Yt47XXXstRm759+/Lpp5/mU0QF67XXXmPZsmU5avPpp5/St2/ffIqoaChdujSBgYEF3m+LFi1o0aJFgfcrIiIiIiIiIiIiIncuJcfuUI0bN6Zx48aFHUYm8fHxhIaG5qhNZGQkAIMHD2bw4MH5EFXBiYyMzPH1x8fHAzBv3jzmzZuXD1GJiIiIiIiIiIiIiIitTIZhGIUdhIjInSwqKgovLy8iIyPx9PQs7HBEREREREREREREJAu2/i7XrgBjEhERERERERERERERESlUSo6JiIiIiIiIiIiIiIhIiaHkmIiIFGlxSSlUG7eOauPWEZeUUtjhiIgUG/p8FREpnvT5LiIFRZ83InInU3JMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJM5A5TrVo1TCYT8+bNK5T+Bw4ciMlkYtmyZYXSf15KS0ujbt26ODo68vfffxd2OCIiIiIiIiIiIiJyB1ByLJ/MmzePoKAggoODCzuUYuvMmTMEBQURFBRU2KEUG/v372fx4sXUq1ePPn36ZFv35MmTjB8/nvvuuw9fX1+cnJwoX748Dz/8MJMmTeLSpUv5GusPP/xAUFAQP/zwg9U6dnZ2TJw4kZSUFMaOHZuv8YiIiIiIiIiIiIhI0aDkWD6ZN28ekyZNUnIsH505c4ZJkyYxadKkwg6l2Bg9ejSGYRAYGIjJZMqyTmpqKq+//jq1a9dm2rRp7N+/n/DwcNzd3bl69Sp79uwhKCiIWrVq8dFHH+VbrD/88AOTJk3K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uLhQtmzZTPcuvffffx8APz8/Nm7ciLu7e5b1wsLCSExMBG4sA2qLm99LCQkJADg7O1ttU6ZMGS5evJjjGWDXrl2ztC9srq6uhIeHW67XGmdn52zvhYiIiIiIiIiIiIgUXUViWUVrM5eyk5qaCsAbb7yBYRi3fAQHB+dx1AUXo729fQFGXXCK63XZqnfv3jg5OREaGsrw4cMt75ebpT++fv16m95LQUFBGc5hTlxll1wz7+d36NAhm68hKiqKU6dOAVC3bl2b2+UX88y5OyFRJyIiIiIiIiIiIiKFo0gkx8xLDlpbVjCv2hS0ohDjxYsXrZYlJiZaZhGln+Vlfn7hwoVsz20uvxNmiFmT3fWnL8vp9SckJGR579Lr0qULq1evxtnZme+++46nn346ywRZmTJlLLMYb/e9ZN5rLLslQh955BHgxt5htiaTV69ejWEYQOYlKs0xZzeLKzIy0qZ+bBEfH2/pK7u91URERERERERERESkeCsSybHmzZsDN5ZXtLY/1c0efvhhADZv3nzLJdTyg53djVtrTgxkpbBjtMX27dutXsPOnTtJSUkByLAXnPn5/v37rSY3IiIiMuxNdjvM9xiyv8+5sW3btluW+fj4WJZUhP+//i1btlhtGxwcbLl32V1/ly5d+PHHH3FxcWHJkiX079/f0s7M0dGR+++/H4CffvrpFleUNfOsMPMsr6wMHjwYFxcXACZPnnzLe56YmGhZGrJixYp069YtQ7m3tzcA58+ft3qOffv2WS2zZYyld/r0acvz2rVr29RGRERERERERERERIqfIpEca9u2LXfddRcAI0eOJCkp6ZZthgwZgoODA9euXSMwMDDbuklJScTExORJrGaenp7AjSSQNYUdoy3OnTvH/PnzMx1PS0tj6tSpwI3ESv369S1lPXv2xMHBgYSEBEty5GZTp04lMTERR0dHevbseVuxme8xZH+fc+P777/n77//znT82rVrfPXVVwD07ds3Q9lTTz0FwN69e9m4cWOmtikpKUyePBmAevXqUa9evWxj6NSpE2vWrMHV1ZXly5fz1FNPZdrnbujQoQD8/PPP/Pzzz9meL6vZYa1atQLgt99+s9rOz8+PsWPHAjcSg2+99ZbVumlpaQwbNozjx48DN15vJyenDHUaNmwIwO+//55lguz48eOsWrXKah+2jLH0zIk2Pz8/7rnn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xZM+30WkoOjzRkQKWnR0NF5eXlbLlRwrxsLCwggNDc1Rm6SkJACCg4PzIaKCldNrT+9WWWUpWSpWrMj58+fx8PDAZDIVdjg5FhUVRZUqVTh//ryWlhTJhsaKiO00XkRso7EiYhuNFRHbaKyI2EZjpWQzDIPo6GgqVqyYbT0lx4qx4pDgyg0luCSv2NnZUbly5cIOI9c8PT31A4GIDTRWRGyn8SJiG40VEdtorIjYRmNFxDYaKyVXdjPGzOwKIA4RERERERERERERERGRO4KSYyIiIiIiIiIiIiIiIlJiKDkmIlLMOTs7ExgYiLOzc2GHInJH01gRsZ3Gi4htNFZEbKOxImIbjRUR22isiC1MhjZmEhERERERERERERERkRJCM8dERERERERERERERESkxFByTEREREREREREREREREoMJcdERERERERERERERESkxFByTEREREREREREREREREoMJcdERPJYXFwc69evZ8qUKfTo0QN/f39MJhMmk4mgoCCbzrFixQoef/xxKlasiJOTE6VKleKee+7h+eef5/Dhw1bbbd++nbfeeotOnTpRq1YtvL29cXR0pFy5crRt25YZM2YQHx+fbd+pqaksXLiQDh06ULZsWZydnalcuTL9+vVj7969NsV/8OBBBg4cSOXKlXF2dqZChQp0796drVu32tReSoaSPFbatGljuVZrj8qVK9t0D6T4K8yxYs0LL7xgiaFatWq3rB8aGsro0aO55557cHV1xcfHh5YtWzJ79mwMw7hl+//++49hw4ZRvXp1XFxc8PX1pVOnTqxcuTLHsUvxVpLHy+DBg2/53WIymUhJScnxNUjxU5THSkREBD/++CNvv/02Xbt2pUKFCpZ28+bNs7k/fbeILUryWNH3iuREUR4rFy9e5IsvvqB3797UrFkTV1dXXF1dqV69Ov369bP5d1m5/T+PFAJDRETy1LZt2wwgy0dgYGC2bRMSEozHH388Qxt3d3fDycnJ8m87Oztj+vTpWbZ/7LHHMrQtVaqUUapUqQzHqlevbvz9999Zto+Ojjbat29vqWtvb294e3sbdnZ2lr4/+OCDbK/hm2++MRwcHCzn8PLyMkwmk833QEqOkjxWWrdubenXz88vy0fjxo1tvpdSvBXmWMnK1q1bM3yu+/v7Z1t///79RpkyZTL0n/57olOnTkZiYqLV9uvW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dm06duzI0KFD8fPzy9N7JiVTbsZKXmnatCnHjh3j/fffZ+3atZw/f55SpUpRr149AgICGDJkSIa9Bm7WpUsX/vzzT95//302bdrE5cuX8fb2pnHjxgwbNsyyPJZIbhXl8dK2bVveffdd9u7dy/Hjx7l+/TqRkZF4enpSs2ZN2rVrx7Bhw7QnjOSJO2Gs5Ja+W6QgFOWxou8VKUiFOVbS0tIsz5OTkzPsbZaV+Pj4LI/n9v88UjhMhnGLRWRFREREREREREREREREigmlK0VERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERERERERERKTEUHJMRERERERERERERERESgwlx0RERERERCRfmEwmTCYTwcHBhR1KngoODrZcmxRdhfX+TEpKokaNGjg7O3P+/Plcn+/XX3/FZDLRqlWrPIhOREREpGRQckxEREREREQyMScObucxb968wg5f5I712WefcerUKZ577jmqVKmS6/M9+OCDdOrUiZ07d7J69eo8iFBERESk+HMo7ABERERERETkzuPn55fl8ZiYGGJjY7Ot4+rqCsA999wDgJubWz5EWHjc3Nws1yaSE2FhYUyZMgVnZ2fGjx+fZ+cNCgpiw4YNjBs3jscffxwHB/26R0RERCQ7+mlJREREREREMgkJCcnyeFBQEJMmTcq2jtmJEyfyPK47wf33319sr03y19dff01ERAS9evWicuXKeXbeBx98kIYNG/LHH3/www8/0KtXrzw7t4iIiEhxpGUVRURERERERETymWEYfP311wAMHDgwz89vPudXX32V5+cWERERKW6UHBMREREREZF8Yd6DLDg4OMPxM2fOWMrOnDnD2bNnef7556latSouLi7UqFGDCRMmWJZvBDh69CgDBw6kSpUquLi4UKtWLaZMmUJycnK2MZw5c4YRI0ZQt25d3N3dcXNz49577+W1117j3Llzt3VdwcHBlvhvNm/ePEwmE9WqVQPgwIED9OnThwoVKuDs7Mxdd93FqFGjCA8Pv62+Afbt28eAAQOoXr06Li4ulCpVCn9/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5Eirs2zMbjWT506RmJiYbXn6/abs7P7/v/vPP/88AHPmzOHQoUPZnuPmezF48GDs7e25fv06gYGBNsf61FNPAbBixQqOHj2aqTwmJoYPPvgAgC5duuDl5WXzuW+lb9++AOzatYvg4OBM5fHx8Xz44YdZtk1JSbHsvZYVa/fYFq1atQLgt99+y7L8Vu9TW/ret28fAK1bt85RbCIiIiIljZJjIiIiIiIiUqw4ODgwa9YsHBwc2LVrF61atWLLli0kJydb6pw6dYpZs2Zx33338cUXXxRitLZbunQpDz/8MF999VWG2Uepqals2LCBcePGAfDQQw/h7e1tKR89ejT169cnISGBtm3b8vnnn1tmlgFERESwfv16Bg0aRMuWLTP0WbNmTV5//XUAPvjgA5577jn+/fdfS3lUVBTLli2je/fuGdoNHz6c6tWrk5yczKOPPsr69estSacjR47QqVMnTp8+jbOzM1OmTMmjO3RDz549LTPRevbsycqVKy17rx0/fpxHH32Uq1evZtn2woUL1KpViylTpnDo0CFSUlIsZX/++ScDBw4EoFSpUjlOQLVp0wb4/wTWzfbs2UODBg34+OOPOX78uOV+GYbBnj17GD58OACVK1e2zMxLLzU1lQMHDgBKjomIiIjcikNhByAiIiIiIiKS1x555BG+//57Bg0axL59+2jfvj2Ojo54enoSExOTYRZWt27dCi/QHDAnSfbs2QOAs7Mz7u7uhIeHWxIpFStW5Ntvv83Qzt3dnV9++YWePXvy66+/8sorr/Dqq6/i5eVFWloaUVFRlrrmGXfpTZkyhejoaGbOnMmcOXOYM2cO7u7uODo6EhERgWEYmWZ+eXh4sGbNGjp37syFCxfo0qULLi4uODk5Wfpzdnbmu+++o2HDhnl6nxwcHPj+++9p06YN58+fp1evXjg7O+Pi4kJkZCROTk58//33PPnkk1m2P3XqFBMnTmTixInY29vj5eVFTEyMZWaXk5MT8+bNw8fHJ0dx9ezZk9dee40TJ07w77//UqtWrUx1jhw5wqhRoxg1apTl/RoZGWlJ0nl6erJ48WLLnm7pbdmyhdjYWMqVK0f79u1zFJuIiIhISaOZYyIiIiIiIlIsdevWjZMnTxIYGMj999+Pu7s7ERERODs707BhQ5577jlWr15tmRl1p3viiSdYsGABzzzzDA0bNsTLy4vIyEg8PDy4//77eeeddzh27Bj33ntvprYVK1Zk165dLFmyhCeeeIIKFSoQFxdHUlIS1apV4/HHH+eTTz5hx44dmdra29vz+eefs2vXLgYMGEDVqlVJTk7GMAzq1KnDs88+y8qVKzO1q1evHseOHSMoKIhGjRrh4OBAYmIiNWrU4IUXXuDYsWP06tUrX+7VXXfdxeHDhxk1ahTVq1fHMAxcXFzo1asXe/bs4YknnsiyXaVKlVizZg0jR47kwQcfpEKFCsTExODg4ECdOnV46aWXOHr06G3FXa5cOcsMu0WLFmUqv++++1i+fDnDhw+nadOmlC1blqioKFxcXGjUqBFjx47l+PHjmWb3mZnP+cwzz+Do6Jjj+ERERERKEpNhGEZhByEiIiIiIiIiUtzt2LGD1q1bU6NGDf79919MJlOenDc2NtaS8Pznn3+466678uS8IiIiIsWVZo6JiIiIiIiIiBSAVq1a0bFjR/777z++//77PDvv559/TnR0NM8995wSYyIiIiI20MwxEREREREREZECcuTIERo1akTt2rX5888/sbPL3d8tx8TEUL16dRISEjh58iR+fn55FKmIiIhI8eVQ2AGIiIiIiIiIiJQU9evXZ86cOZw5c4bLly9TqVKlXJ3vzJkzvPTSSzRu3FiJMREREREbaeaYiIiIiIiIiIiIiIiIlBjac0xERERERERERERERERKDCXHREREREREREREREREpMRQckxERERERERERERERERKDCXHREREREREREREREREpMRQckxERERERERERERERERKDCXHREREREREREREREREpMRQckxERERERERERERERERKDCXHREREREREREREREREpMRQckxERERERERERERERERKjP8DsIExolcsqtcAAAAASUVORK5CYII=",
- "text/plain": [
- "
"
+ ],
"text/plain": [
- "
"
+ " timestamp action_type value action_name\n",
+ "0 17950.0908 0 On sound_output\n",
+ "1 17950.0909 0 On sound_output\n",
+ "2 18391.2434 0 On sound_output\n",
+ "3 18391.2435 0 On sound_output\n",
+ "4 18390.3722 0 On sound_output"
]
},
+ "execution_count": 71,
"metadata": {},
- "output_type": "display_data"
+ "output_type": "execute_result"
}
],
"source": [
- "# Get the states from file\n",
- "states = nwbfile.get_acquisition(\"task_recording\").states\n",
- "state_types = nwbfile.get_lab_meta_data(\"task\").state_types\n",
- "\n",
- "# Plot the data\n",
- "plot_states(states=states[20:100],\n",
- " state_types=state_types,\n",
- " marker_size=500)\n",
- "plt.title(\"States\", fontsize=18)\n",
- "plt.show()"
+ "pd.merge(\n",
+ " nwbfile.acquisition[\"task_recording\"].actions[:],\n",
+ " nwbfile.lab_meta_data[\"task\"].action_types[:],\n",
+ " left_on=\"action_type\",\n",
+ " right_on=\"id\",\n",
+ ").head()"
]
},
{
"cell_type": "markdown",
- "id": "d811ac1c-771a-4fc0-a995-613065ae60fd",
+ "id": "4d47f67a-a13c-4f46-a703-6ab6753fe62b",
"metadata": {},
"source": [
- "## Accessing the trials\n",
- "\n",
- "The `TrialsTable` is a column-based table to store information about trials, one trial per row.\n",
- "The table can be accessed from the file as `nwbfile.trials`.\n"
+ "The `StatesTable` is a column-based table to store the information about the states (e.g. the duration while nose is in center port). This table can be accessed as `nwbfile.acquisition[\"task_recording\"].states`."
]
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "c23cd956-7ccc-4104-8349-0275dd1c3e7e",
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": 99,
- "id": "ca66b7b5-c6ac-405f-8297-8aeb6cc4d92e",
+ "execution_count": 74,
+ "id": "a4fd969f-8b11-4bbd-986a-b275413c8079",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
+ "
\n",
+ "\n",
- " \n",
- " \n",
- "
trials (TrialsTable)
description: LED illumination from the center port indicated that the animal could initiate a trial by poking its nose in that \n",
- "port - upon trial initiation the center LED turned off. While in the center port, rats needed to maintain center\n",
- "fixation for a duration drawn uniformly from [0.8, 1.2] seconds. During the fixation period, a tone played from \n",
- "both speakers, the frequency of which indicated the volume of the offered water reward for that trial \n",
- "[1, 2, 4, 8, 16kHz, indicating 5, 10, 20, 40, 80μL rewards]. Following the fixation period, one of the two side \n",
- "LEDs was illuminated, indicating that the reward might be delivered at that port; the side was randomly chosen on \n",
- "each trial.This event (side LED ON) also initiated a variable and unpredictable delay period, which was randomly \n",
- "drawn from an exponential distribution with mean=2.5s. The reward port LED remained illuminated for the duration \n",
- "of the delay period, and rats were not required to maintain fixation during this period, although they tended to \n",
- "fixate in the reward port. When reward was available, the reward port LED turned off, and rats could collect the \n",
- "offered reward by nose poking in that port. The rat could also choose to terminate the trial (opt-out) at any time\n",
- "by nose poking in the opposite, un-illuminated side port, after which a new trial would immediately begin. On a \n",
- "proportion of trials (15–25%), the delay period would only end if the rat opted out (catch trials). If rats did \n",
- "not opt-out within 100s on catch trials, the trial would terminate. The trials were self-paced: after receiving \n",
- "their reward or opting out, rats were free to initiate another trial immediately. However, if rats terminated \n",
- "center fixation prematurely, they were penalized with a white noise sound and a time out penalty (typically 2s, \n",
- "although adjusted to individual animals). Following premature fixation breaks, the rats received the same offered \n",
- "reward, in order to disincentivize premature terminations for small volume offers. We introduced semi-observable, \n",
- "hidden states in the task by including uncued blocks of trials with varying reward statistics: high and low blocks\n",
- ", which offered the highest three or lowest three rewards, respectively, and were interspersed with mixed blocks, \n",
- "which offered all volumes. There was a hierarchical structure to the blocks, such that high and low blocks \n",
- "alternated after mixed blocks (e.g., mixed-high-mixed-low, or mixed-low-mixed-high). The first block of each \n",
- "session was a mixed block. Blocks transitioned after 40 successfully completed trials. Because rats prematurely \n",
- "broke fixation on a subset of trials, in practice, block durations were variable.\n",
- "