{
"cells": [
{
"cell_type": "markdown",
"id": "50af6f85",
"metadata": {},
"source": [
"# Accessing Visual Behavior Neuropixels Data"
]
},
{
"cell_type": "markdown",
"id": "83baaafe",
"metadata": {},
"source": [
"## Tutorial overview\n",
"\n",
"This Jupyter notebook covers the various methods for accessing the Allen Institute Visual Behavior Neuropixels dataset. We will go over how to request data, where it's stored, and what the various files contain. If you're having trouble downloading the data, or you just want to know more about what's going on under the hood, this is a good place to start.\n",
"\n",
"This data release will not have a web interface for browsing through the released data, as with the [two-photon imaging Visual Coding dataset](http://observatory.brain-map.org/visualcoding). Instead, the data must be retrieved through the AllenSDK (Python 3.6+) or via requests sent to the **Amazon Web Services (AWS)** **Simple Storage Service (S3)** bucket (name: [visual-behavior-neuropixels-data](https://s3.console.aws.amazon.com/s3/buckets/visual-behavior-neuropixels-data)) for this project.\n",
"\n",
"Functions related to data analysis as well as descriptions of metadata table columns will be covered in other tutorials. For a full list of available tutorials for this project, see the [SDK documentation](https://allensdk.readthedocs.io/en/latest/visual_behavior_optical_physiology.html)."
]
},
{
"cell_type": "markdown",
"id": "53e75988",
"metadata": {},
"source": [
"## Options for data access\n",
"\n",
"The `VisualBehaviorNeuropixelsProjectCache` object in the AllenSDK is the easiest way to interact with the released data. This object abstracts away the details of on-disk file storage, and delivers the data to you as ready-to-analyze Python objects. The cache will automatically keep track of which files are stored locally, and will download additional files on an as-needed basis. Usually you won't need to worry about the organization of these files, but this tutorial will cover those details in case you want to analyze them without using the AllenSDK (e.g., in Matlab). This tutorial begins with an introduction to this approach.\n",
"\n",
"Another option is to directly download the data using an S3 URL. This should be used if the other options are broken or are not available to you. Instructions for this can be found at the end of this tutorial."
]
},
{
"cell_type": "markdown",
"id": "75b3ae20",
"metadata": {},
"source": [
"## Using the AllenSDK to retrieve data\n",
"\n",
"Most users will want to access data via the AllenSDK. This requires nothing more than a Python interpreter and some free disk space to store the data locally.\n",
"\n",
"How much data is there? If you want to download the complete dataset (153 NWB files plus 5 metadata csv files), you'll need 524 GB of space.\n",
"\n",
"Before downloading the data, you must decide on a cache directory where you would like downloaded data to be stored. This directory is where the `VisualBehaviorNeuropixelsProjectCache` object will look first when you request a metadata table or a data file.\n",
"\n",
"When you initialize a local cache for the first time, it will create the manifest file at the path that you specify. This file lives one directory up from the rest of the data, so make sure you put it somewhere that has enough space available.\n",
"\n",
"When you need to access the data in subsequent analysis sessions, you should point the `VisualBehaviorNeuropixelsProjectCache` object to an existing cache directory; otherwise, it will try to re-download the data in a new location.\n",
"\n",
"To get started with this approach, first take care of the necessary imports:\n",
"\n",
"We will first install allensdk into your environment by running the appropriate commands below. "
]
},
{
"cell_type": "markdown",
"id": "f13f8c95",
"metadata": {},
"source": [
"## Instal AllenSDK into your local environment"
]
},
{
"cell_type": "markdown",
"id": "394255fc",
"metadata": {},
"source": [
"You can install AllenSDK with:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "abd813fe",
"metadata": {},
"outputs": [],
"source": [
"pip install allensdk"
]
},
{
"cell_type": "markdown",
"id": "e2021a8e",
"metadata": {},
"source": [
"## Install AllenSDK into your notebook environment (good for Google Colab)"
]
},
{
"cell_type": "markdown",
"id": "9765633d",
"metadata": {},
"source": [
"You can install AllenSDK into your notebook environment by executing the cell below.\n",
"\n",
"If using Google Colab, click on the RESTART RUNTIME button that appears at the end of the output when this cell is complete,. Note that running this cell will produce a long list of outputs and some error messages. Clicking RESTART RUNTIME at the end will resolve these issues.\n",
"You can minimize the cell after you are done to hide the output."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "18345f53",
"metadata": {},
"outputs": [],
"source": [
"!pip install --upgrade pip\n",
"!pip install allensdk"
]
},
{
"cell_type": "markdown",
"id": "f0592bb2",
"metadata": {},
"source": [
"## Import required packages"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "9d2f1f6d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Your allensdk version is: 2.13.5\n"
]
}
],
"source": [
"from pathlib import Path\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import allensdk\n",
"from allensdk.brain_observatory.behavior.behavior_project_cache import VisualBehaviorNeuropixelsProjectCache\n",
"\n",
"# Confirming your allensdk version\n",
"print(f\"Your allensdk version is: {allensdk.__version__}\")"
]
},
{
"cell_type": "markdown",
"id": "6e268380",
"metadata": {},
"source": [
"Next, we'll specify the directory where you'd like downloaded data to be stored (cache_dir). Remember to choose a location that has plenty of free space available."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ca3f1f01",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"ecephys_sessions.csv: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████| 63.5k/63.5k [00:00<00:00, 146kMB/s]\n",
"behavior_sessions.csv: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 531k/531k [00:00<00:00, 959kMB/s]\n",
"units.csv: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 132M/132M [00:14<00:00, 8.87MMB/s]\n",
"probes.csv: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 127k/127k [00:00<00:00, 614kMB/s]\n",
"channels.csv: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 27.9M/27.9M [00:09<00:00, 3.01MMB/s]\n"
]
}
],
"source": [
"# Update this to a valid directory in your filesystem\n",
"data_storage_directory = Path(\"/tmp/vbn_cache\")\n",
"\n",
"cache = VisualBehaviorNeuropixelsProjectCache.from_s3_cache(cache_dir=data_storage_directory)"
]
},
{
"cell_type": "markdown",
"id": "4fed1ef9",
"metadata": {},
"source": [
"Instantiating the cache will have it to download 5 project metadata files:\n",
"\n",
"1. `ecephys_sessions.csv` (64 kB)\n",
"2. `behavior_sessions.csv` (531 kB)\n",
"3. `units.csv` (130 MB)\n",
"4. `probes.csv` (127 kB)\n",
"5. `channels.csv` (28 MB)\n",
"\n",
"Each one contains a table of information related to its file name. If you're using the AllenSDK, you won't have to worry about how these files are formatted. Instead, you'll load the relevant data using specific accessor method: `get_ecephys_session_table()`, `get_behavior_session_table()`, `get_probe_table()`, `get_unit_table()` and `get_channel_table()`. These functions return a pandas DataFrame containing a row for each item and a column for each metric.\n",
"\n",
"If you are analyzing data without using the AllenSDK, you can load the data using your CSV file reader of choice. However, please be aware the columns in the original file do not necessarily match what's returned by the AllenSDK, which may combine information from multiple files to produce the final DataFrame."
]
},
{
"cell_type": "markdown",
"id": "7f96ddc9",
"metadata": {},
"source": [
"### Managing versions of the dataset\n",
"\n",
"Over time, updates may be made to the released dataset. These updates will result in new versions of the dataset being available in the S3 bucket. The versions of the dataset are managed through distinct data manifests stored on S3.\n",
"\n",
"**Note:** Some of the cells below may seem a little pointless at first, since there is only one version of the data release as of this writing (June 7, 2022). We are leaving them here for reference so that future users know how to navigate different versions of the data release as they are issued."
]
},
{
"cell_type": "markdown",
"id": "b5b340e3",
"metadata": {},
"source": [
"#### Discovering manifests\n",
"\n",
"To see all of the manifest files available for this dataset online, run"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "41cd25c1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['visual-behavior-neuropixels_project_manifest_v0.1.0.json',\n",
" 'visual-behavior-neuropixels_project_manifest_v0.2.0.json',\n",
" 'visual-behavior-neuropixels_project_manifest_v0.3.0.json']"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cache.list_manifest_file_names()"
]
},
{
"cell_type": "markdown",
"id": "37824cce",
"metadata": {},
"source": [
"To see the most up-to-date available manifest, run"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4538c01a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'visual-behavior-neuropixels_project_manifest_v0.3.0.json'"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cache.latest_manifest_file()"
]
},
{
"cell_type": "markdown",
"id": "c6803645",
"metadata": {},
"source": [
"To see the name of the most up-to-date manifest that you have already downloaded to your system run (note: this just means that the manifest file has been downloaded; it does not necessarily mean that any data has been downloaded)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "0a846392",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'visual-behavior-neuropixels_project_manifest_v0.3.0.json'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cache.latest_downloaded_manifest_file()"
]
},
{
"cell_type": "markdown",
"id": "7a2a8b2e",
"metadata": {},
"source": [
"You can list all of the manifest files currently downloaded to your system with"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0a6053d8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['visual-behavior-neuropixels_project_manifest_v0.3.0.json']"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cache.list_all_downloaded_manifests()"
]
},
{
"cell_type": "markdown",
"id": "08ea42d5",
"metadata": {},
"source": [
"#### Loading manifests/dataset versions\n",
"\n",
"The `VisualBehaviorNeuropixelsProjectCache` determines which version of the dataset to use by loading one of these manifests. By default, the `VisualBehaviorNeuropixelsProjectCache` loads either\n",
"\n",
"- the most up-to-date available data manifest, if you are instaniating it on an empty `cache_dir`\n",
"\n",
"- the data manifest you were last using, if you are instantiating it on a pre-existing `cache_dir` (in this case, the `VisualBehaviorNeuropixelsProjectCache` will emit a warning if a more up-to-data data manifest exists online letting you know that you can, if you choose, move to the more up-to-date data manifest)\n",
"\n",
"To see the manifest that you currently have loaded, run"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "88d47216",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'visual-behavior-neuropixels_project_manifest_v0.3.0.json'"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cache.current_manifest()"
]
},
{
"cell_type": "markdown",
"id": "5cc21ace",
"metadata": {},
"source": [
"To load a particular data manifest by hand, run (note: because we are intentionally loading an out-of-date manifest, this will emit a warning alerting us to the existence of the most up-to-date manifest)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "560f4751",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/adam.amster/AllenSDK/allensdk/api/cloud_cache/cloud_cache.py:466: OutdatedManifestWarning: \n",
"\n",
"The manifest file you are loading is not the most up to date manifest file available for this dataset. The most up to data manifest file available for this dataset is \n",
"\n",
"visual-behavior-neuropixels_project_manifest_v0.3.0.json\n",
"\n",
"To see the differences between these manifests,run\n",
"\n",
"VisualBehaviorNeuropixelsProjectCache.compare_manifests('visual-behavior-neuropixels_project_manifest_v0.2.0.json', 'visual-behavior-neuropixels_project_manifest_v0.3.0.json')\n",
"\n",
"To see all of the manifest files currently downloaded onto your local system, run\n",
"\n",
"self.list_all_downloaded_manifests()\n",
"\n",
"If you just want to load the latest manifest, run\n",
"\n",
"self.load_latest_manifest()\n",
"\n",
"\n",
" warnings.warn(msg, OutdatedManifestWarning)\n"
]
}
],
"source": [
"cache.load_manifest('visual-behavior-neuropixels_project_manifest_v0.2.0.json')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "6271893c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'visual-behavior-neuropixels_project_manifest_v0.2.0.json'"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cache.current_manifest()"
]
},
{
"cell_type": "markdown",
"id": "81a1578f",
"metadata": {},
"source": [
"As the earlier warning informed us, we can see the difference between an two versions of the dataset by running"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "66cb1f37",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Changes going from\n",
"visual-behavior-neuropixels_project_manifest_v0.1.0.json\n",
"to\n",
"visual-behavior-neuropixels_project_manifest_v0.2.0.json\n",
"\n",
"project_metadata/units.csv changed\n",
"\n"
]
}
],
"source": [
"# This cell will not be useful until an updated version of the data release is issued\n",
"\n",
"msg = cache.compare_manifests('visual-behavior-neuropixels_project_manifest_v0.1.0.json',\n",
" 'visual-behavior-neuropixels_project_manifest_v0.2.0.json')\n",
"print(msg)"
]
},
{
"cell_type": "markdown",
"id": "3a3f4c95",
"metadata": {},
"source": [
"The `VisualBehaviorNeuropixelsProjectCache` is smart enough to know that, if a file has not changed between version `A` and version `B` of the dataset, and you have already downloaded the file while version `A` of the manifest was loaded, when you move to version `B`, it does not need to download the data again. It will simply construct a symlink where version `B` of the data should exist on your system, pointing to version `A` of the file."
]
},
{
"cell_type": "markdown",
"id": "755f8802",
"metadata": {},
"source": [
"### Using the AllenSDK to access Visual Behavior Neuropixels metadata"
]
},
{
"cell_type": "markdown",
"id": "8076f8d9",
"metadata": {},
"source": [
"#### Ecephys sessions table\n",
"\n",
"Let's look at the contents of `ecephys_sessions.csv`:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "663a4a46",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total number of ecephys sessions: 103\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
behavior_session_id
\n",
"
date_of_acquisition
\n",
"
equipment_name
\n",
"
session_type
\n",
"
mouse_id
\n",
"
genotype
\n",
"
sex
\n",
"
project_code
\n",
"
age_in_days
\n",
"
unit_count
\n",
"
...
\n",
"
channel_count
\n",
"
structure_acronyms
\n",
"
image_set
\n",
"
prior_exposures_to_image_set
\n",
"
session_number
\n",
"
experience_level
\n",
"
prior_exposures_to_omissions
\n",
"
file_id
\n",
"
abnormal_histology
\n",
"
abnormal_activity
\n",
"
\n",
"
\n",
"
ecephys_session_id
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
1052342277
\n",
"
1052374521
\n",
"
2020-09-23 15:34:18.179
\n",
"
NP.1
\n",
"
EPHYS_1_images_G_3uL_reward
\n",
"
530862
\n",
"
Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
M
\n",
"
NeuropixelVisualBehavior
\n",
"
148
\n",
"
1696.0
\n",
"
...
\n",
"
2304.0
\n",
"
['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg...
\n",
"
G
\n",
"
32.0
\n",
"
1
\n",
"
Familiar
\n",
"
0.0
\n",
"
0
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1051155866
\n",
"
1052162536
\n",
"
2020-09-17 15:05:39.665
\n",
"
NP.1
\n",
"
EPHYS_1_images_H_3uL_reward
\n",
"
524760
\n",
"
wt/wt
\n",
"
F
\n",
"
NeuropixelVisualBehavior
\n",
"
180
\n",
"
1922.0
\n",
"
...
\n",
"
2304.0
\n",
"
['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg...
\n",
"
H
\n",
"
0.0
\n",
"
2
\n",
"
Novel
\n",
"
1.0
\n",
"
1
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1052533639
\n",
"
1052572359
\n",
"
2020-09-24 15:12:13.229
\n",
"
NP.1
\n",
"
EPHYS_1_images_H_3uL_reward
\n",
"
530862
\n",
"
Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
M
\n",
"
NeuropixelVisualBehavior
\n",
"
149
\n",
"
1677.0
\n",
"
...
\n",
"
2304.0
\n",
"
['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg...
\n",
"
H
\n",
"
0.0
\n",
"
2
\n",
"
Novel
\n",
"
1.0
\n",
"
4
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1053925378
\n",
"
1053960984
\n",
"
2020-10-01 16:07:18.990
\n",
"
NP.0
\n",
"
EPHYS_1_images_H_3uL_reward
\n",
"
532246
\n",
"
Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
M
\n",
"
NeuropixelVisualBehavior
\n",
"
145
\n",
"
1823.0
\n",
"
...
\n",
"
2304.0
\n",
"
['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg...
\n",
"
H
\n",
"
0.0
\n",
"
2
\n",
"
Novel
\n",
"
1.0
\n",
"
5
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1053941483
\n",
"
1053960987
\n",
"
2020-10-01 17:03:58.362
\n",
"
NP.1
\n",
"
EPHYS_1_images_H_3uL_reward
\n",
"
527749
\n",
"
Sst-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
M
\n",
"
NeuropixelVisualBehavior
\n",
"
180
\n",
"
1543.0
\n",
"
...
\n",
"
2304.0
\n",
"
['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg...
\n",
"
H
\n",
"
0.0
\n",
"
2
\n",
"
Novel
\n",
"
1.0
\n",
"
6
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
" \n",
"
\n",
"
5 rows × 21 columns
\n",
"
"
],
"text/plain": [
" behavior_session_id date_of_acquisition \\\n",
"ecephys_session_id \n",
"1052342277 1052374521 2020-09-23 15:34:18.179 \n",
"1051155866 1052162536 2020-09-17 15:05:39.665 \n",
"1052533639 1052572359 2020-09-24 15:12:13.229 \n",
"1053925378 1053960984 2020-10-01 16:07:18.990 \n",
"1053941483 1053960987 2020-10-01 17:03:58.362 \n",
"\n",
" equipment_name session_type mouse_id \\\n",
"ecephys_session_id \n",
"1052342277 NP.1 EPHYS_1_images_G_3uL_reward 530862 \n",
"1051155866 NP.1 EPHYS_1_images_H_3uL_reward 524760 \n",
"1052533639 NP.1 EPHYS_1_images_H_3uL_reward 530862 \n",
"1053925378 NP.0 EPHYS_1_images_H_3uL_reward 532246 \n",
"1053941483 NP.1 EPHYS_1_images_H_3uL_reward 527749 \n",
"\n",
" genotype sex \\\n",
"ecephys_session_id \n",
"1052342277 Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt M \n",
"1051155866 wt/wt F \n",
"1052533639 Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt M \n",
"1053925378 Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt M \n",
"1053941483 Sst-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt M \n",
"\n",
" project_code age_in_days unit_count ... \\\n",
"ecephys_session_id ... \n",
"1052342277 NeuropixelVisualBehavior 148 1696.0 ... \n",
"1051155866 NeuropixelVisualBehavior 180 1922.0 ... \n",
"1052533639 NeuropixelVisualBehavior 149 1677.0 ... \n",
"1053925378 NeuropixelVisualBehavior 145 1823.0 ... \n",
"1053941483 NeuropixelVisualBehavior 180 1543.0 ... \n",
"\n",
" channel_count \\\n",
"ecephys_session_id \n",
"1052342277 2304.0 \n",
"1051155866 2304.0 \n",
"1052533639 2304.0 \n",
"1053925378 2304.0 \n",
"1053941483 2304.0 \n",
"\n",
" structure_acronyms \\\n",
"ecephys_session_id \n",
"1052342277 ['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg... \n",
"1051155866 ['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg... \n",
"1052533639 ['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg... \n",
"1053925378 ['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg... \n",
"1053941483 ['APN', 'CA1', 'CA3', 'DG-mo', 'DG-po', 'DG-sg... \n",
"\n",
" image_set prior_exposures_to_image_set session_number \\\n",
"ecephys_session_id \n",
"1052342277 G 32.0 1 \n",
"1051155866 H 0.0 2 \n",
"1052533639 H 0.0 2 \n",
"1053925378 H 0.0 2 \n",
"1053941483 H 0.0 2 \n",
"\n",
" experience_level prior_exposures_to_omissions file_id \\\n",
"ecephys_session_id \n",
"1052342277 Familiar 0.0 0 \n",
"1051155866 Novel 1.0 1 \n",
"1052533639 Novel 1.0 4 \n",
"1053925378 Novel 1.0 5 \n",
"1053941483 Novel 1.0 6 \n",
"\n",
" abnormal_histology abnormal_activity \n",
"ecephys_session_id \n",
"1052342277 NaN NaN \n",
"1051155866 NaN NaN \n",
"1052533639 NaN NaN \n",
"1053925378 NaN NaN \n",
"1053941483 NaN NaN \n",
"\n",
"[5 rows x 21 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ecephys_sessions = cache.get_ecephys_session_table()\n",
"\n",
"print(f\"Total number of ecephys sessions: {len(ecephys_sessions)}\")\n",
"\n",
"ecephys_sessions.head()"
]
},
{
"cell_type": "markdown",
"id": "be96dfe8",
"metadata": {},
"source": [
"The `ecephys_session_table` DataFrame provides a high-level overview for ecephys sessions in the Visual Behavior Neurpoixels dataset. The index column (ecephys_session_id) is a unique ID, which serves as a key for access behavior data for each session. To get additional information about this data table (and other tables) please visit [this example notebook](https://allensdk.readthedocs.io/en/latest/_static/examples/nb/visual_behavior_neuropixels_quickstart.html).\n",
"\n",
"Sharp eyed readers may be wondering why the number of behavior session (103) in this table does not match up with the number of NWB files in the data release (153). Some of the session being released had obvious abnormalities in either electrophysiological activity or histology. By default `get_ecephys_session_table()` does not return the metadata for these abnormal sessions. To see all 153 sessions, run `get_ecephys_session_table(filter_abnormalities=False)`\n"
]
},
{
"cell_type": "markdown",
"id": "d2016732",
"metadata": {},
"source": [
"#### Behavior sessions table\n",
"\n",
"Let's look at the contents of `behavior_sessions.csv`:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b82d40c1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total number of behavior sessions: 3424\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
equipment_name
\n",
"
genotype
\n",
"
mouse_id
\n",
"
sex
\n",
"
age_in_days
\n",
"
session_number
\n",
"
prior_exposures_to_session_type
\n",
"
prior_exposures_to_image_set
\n",
"
prior_exposures_to_omissions
\n",
"
ecephys_session_id
\n",
"
date_of_acquisition
\n",
"
session_type
\n",
"
image_set
\n",
"
\n",
"
\n",
"
behavior_session_id
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
1051333618
\n",
"
BEH.G-Box2
\n",
"
Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
540536
\n",
"
M
\n",
"
85
\n",
"
1
\n",
"
0
\n",
"
NaN
\n",
"
0.0
\n",
"
NaN
\n",
"
2020-09-18 10:02:30.869000
\n",
"
TRAINING_0_gratings_autorewards_15min_0uL_reward
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1052301754
\n",
"
BEH.G-Box2
\n",
"
Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
540536
\n",
"
M
\n",
"
90
\n",
"
4
\n",
"
2
\n",
"
NaN
\n",
"
0.0
\n",
"
NaN
\n",
"
2020-09-23 09:43:25.595000
\n",
"
TRAINING_1_gratings_10uL_reward
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1052374521
\n",
"
NP.1
\n",
"
Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
530862
\n",
"
M
\n",
"
148
\n",
"
44
\n",
"
0
\n",
"
32.0
\n",
"
0.0
\n",
"
1.052342e+09
\n",
"
2020-09-23 15:34:18.179000
\n",
"
EPHYS_1_images_G_3uL_reward
\n",
"
G
\n",
"
\n",
"
\n",
"
1051860415
\n",
"
BEH.G-Box4
\n",
"
wt/wt
\n",
"
533539
\n",
"
F
\n",
"
127
\n",
"
9
\n",
"
0
\n",
"
3.0
\n",
"
0.0
\n",
"
NaN
\n",
"
2020-09-21 09:57:23.650000
\n",
"
TRAINING_4_images_G_training_7uL_reward
\n",
"
G
\n",
"
\n",
"
\n",
"
1052132182
\n",
"
BEH.F-Box5
\n",
"
Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt
\n",
"
536480
\n",
"
M
\n",
"
112
\n",
"
8
\n",
"
1
\n",
"
1.0
\n",
"
0.0
\n",
"
NaN
\n",
"
2020-09-22 12:04:46.304000
\n",
"
TRAINING_3_images_G_10uL_reward
\n",
"
G
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" equipment_name \\\n",
"behavior_session_id \n",
"1051333618 BEH.G-Box2 \n",
"1052301754 BEH.G-Box2 \n",
"1052374521 NP.1 \n",
"1051860415 BEH.G-Box4 \n",
"1052132182 BEH.F-Box5 \n",
"\n",
" genotype mouse_id \\\n",
"behavior_session_id \n",
"1051333618 Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt 540536 \n",
"1052301754 Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt 540536 \n",
"1052374521 Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt 530862 \n",
"1051860415 wt/wt 533539 \n",
"1052132182 Vip-IRES-Cre/wt;Ai32(RCL-ChR2(H134R)_EYFP)/wt 536480 \n",
"\n",
" sex age_in_days session_number \\\n",
"behavior_session_id \n",
"1051333618 M 85 1 \n",
"1052301754 M 90 4 \n",
"1052374521 M 148 44 \n",
"1051860415 F 127 9 \n",
"1052132182 M 112 8 \n",
"\n",
" prior_exposures_to_session_type \\\n",
"behavior_session_id \n",
"1051333618 0 \n",
"1052301754 2 \n",
"1052374521 0 \n",
"1051860415 0 \n",
"1052132182 1 \n",
"\n",
" prior_exposures_to_image_set \\\n",
"behavior_session_id \n",
"1051333618 NaN \n",
"1052301754 NaN \n",
"1052374521 32.0 \n",
"1051860415 3.0 \n",
"1052132182 1.0 \n",
"\n",
" prior_exposures_to_omissions ecephys_session_id \\\n",
"behavior_session_id \n",
"1051333618 0.0 NaN \n",
"1052301754 0.0 NaN \n",
"1052374521 0.0 1.052342e+09 \n",
"1051860415 0.0 NaN \n",
"1052132182 0.0 NaN \n",
"\n",
" date_of_acquisition \\\n",
"behavior_session_id \n",
"1051333618 2020-09-18 10:02:30.869000 \n",
"1052301754 2020-09-23 09:43:25.595000 \n",
"1052374521 2020-09-23 15:34:18.179000 \n",
"1051860415 2020-09-21 09:57:23.650000 \n",
"1052132182 2020-09-22 12:04:46.304000 \n",
"\n",
" session_type \\\n",
"behavior_session_id \n",
"1051333618 TRAINING_0_gratings_autorewards_15min_0uL_reward \n",
"1052301754 TRAINING_1_gratings_10uL_reward \n",
"1052374521 EPHYS_1_images_G_3uL_reward \n",
"1051860415 TRAINING_4_images_G_training_7uL_reward \n",
"1052132182 TRAINING_3_images_G_10uL_reward \n",
"\n",
" image_set \n",
"behavior_session_id \n",
"1051333618 NaN \n",
"1052301754 NaN \n",
"1052374521 G \n",
"1051860415 G \n",
"1052132182 G "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"behavior_sessions = cache.get_behavior_session_table()\n",
"\n",
"print(f\"Total number of behavior sessions: {len(behavior_sessions)}\")\n",
"\n",
"behavior_sessions.head()"
]
},
{
"cell_type": "markdown",
"id": "405b5888",
"metadata": {},
"source": [
"This file contains metadata summarizing every behavior session experienced by the mice in this data release. By filtering on the `mouse_id` column, it can be used to reconstruct the history of any given mouse as it passed through our experimental apparatus."
]
},
{
"cell_type": "markdown",
"id": "acb4f7a9",
"metadata": {},
"source": [
"#### Probes table\n",
"\n",
"Let's look at the contents of `probes.csv`:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "c8ccfb5a",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total number of probes: 905\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" ecephys_channel_id ecephys_probe_id ecephys_session_id \\\n",
"unit_id \n",
"1157005856 1157001834 1046469925 1046166369 \n",
"1157005853 1157001834 1046469925 1046166369 \n",
"1157005720 1157001786 1046469925 1046166369 \n",
"1157006074 1157001929 1046469925 1046166369 \n",
"1157006072 1157001929 1046469925 1046166369 \n",
"\n",
" amplitude_cutoff anterior_posterior_ccf_coordinate \\\n",
"unit_id \n",
"1157005856 0.500000 8453.0 \n",
"1157005853 0.323927 8453.0 \n",
"1157005720 0.044133 8575.0 \n",
"1157006074 0.000583 8212.0 \n",
"1157006072 0.500000 8212.0 \n",
"\n",
" dorsal_ventral_ccf_coordinate left_right_ccf_coordinate \\\n",
"unit_id \n",
"1157005856 3353.0 6719.0 \n",
"1157005853 3353.0 6719.0 \n",
"1157005720 3842.0 6590.0 \n",
"1157006074 2477.0 6992.0 \n",
"1157006072 2477.0 6992.0 \n",
"\n",
" cumulative_drift d_prime structure_acronym ... valid_data \\\n",
"unit_id ... \n",
"1157005856 140.32 6.088133 MB ... True \n",
"1157005853 239.76 4.635583 MB ... True \n",
"1157005720 263.32 5.691955 MRN ... True \n",
"1157006074 154.64 6.049284 NOT ... True \n",
"1157006072 242.58 4.745499 NOT ... True \n",
"\n",
" amplitude waveform_duration waveform_halfwidth PT_ratio \\\n",
"unit_id \n",
"1157005856 286.132665 0.151089 0.096147 0.310791 \n",
"1157005853 181.418835 0.357119 0.192295 0.531490 \n",
"1157005720 180.866205 0.521943 0.178559 0.612217 \n",
"1157006074 574.984215 0.343384 0.192295 0.470194 \n",
"1157006072 315.794115 0.329648 0.164824 0.488276 \n",
"\n",
" recovery_slope repolarization_slope spread velocity_above \\\n",
"unit_id \n",
"1157005856 -0.227726 0.961313 20.0 -0.457845 \n",
"1157005853 -0.150522 0.732741 30.0 2.060302 \n",
"1157005720 -0.024239 0.539687 80.0 0.000000 \n",
"1157006074 -0.356670 2.258649 40.0 1.373534 \n",
"1157006072 -0.210010 1.320270 70.0 0.412060 \n",
"\n",
" velocity_below \n",
"unit_id \n",
"1157005856 NaN \n",
"1157005853 -2.060302 \n",
"1157005720 0.863364 \n",
"1157006074 0.000000 \n",
"1157006072 0.343384 \n",
"\n",
"[5 rows x 34 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"units = cache.get_unit_table()\n",
"\n",
"print(f\"Total number of units: {len(units)}\")\n",
"\n",
"units.head()"
]
},
{
"cell_type": "markdown",
"id": "deafdedb",
"metadata": {},
"source": [
"This table provides metadata on the units identified in this data release. Quoting the [Visual Coding Neuropixels documentation](https://allensdk.readthedocs.io/en/latest/visual_coding_neuropixels.html)\n",
"\n",
"\n",
">Throughout the SDK, we refer to neurons as “units,” because we cannot guarantee that all the spikes assigned to one unit actually originate from a single cell. Unlike in two-photon imaging, where you can visualize each neuron throughout the entire experiment, with electrophysiology we can only “see” a neuron when it fires a spike. If a neuron moves relative to the probe, or if it’s far away from the probe, some of its spikes may get mixed together with those from other neurons. Because of this inherent ambiguity, we provide a variety of quality metrics to allow you to find the right units for your analysis. Even highly contaminated units contain potentially valuable information about brain states, so we didn’t want to leave them out of the dataset. But certain types of analysis require more stringent quality thresholds, to ensure that all of the included units are well isolated from their neighbors.\n",
"\n",
"Units are identified by a unique `unit_id` and can be associated to channels, probes, and sessions via `ecephys_channel_id`, `ecephys_probe_id` and `ecephys_session_id`."
]
},
{
"cell_type": "markdown",
"id": "7c1fd9aa",
"metadata": {},
"source": [
"### Using the AllenSDK to access Visual Behavior Neuropixels data\n",
"\n",
"After looking through the metadata for the data release, let's say you want to access information about a specific ecephys session (ecephys_session_id=1052533639)\n",
"\n",
"The following command will download the NWB file associated with a specific `ecephys_session_id` (unless it has been previously downloaded into this cache) and load it into a python object for manipulation and inspection.\n",
"\n",
"**Note:** each NWB file associated with an ecephys esssion is approximately 2GB in size."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "316205f8",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"ecephys_session_1052533639.nwb: 100%|██████████████████████████████████████████████████████████████████████████████████████████████| 2.31G/2.31G [05:34<00:00, 6.92MMB/s]\n",
"/opt/anaconda3/envs/allensdk/lib/python3.8/site-packages/hdmf/spec/namespace.py:532: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.5.1 because version 1.5.0 is already loaded.\n",
" warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n",
"/opt/anaconda3/envs/allensdk/lib/python3.8/site-packages/hdmf/spec/namespace.py:532: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.2.0 because version 0.1.0 is already loaded.\n",
" warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n"
]
}
],
"source": [
"ecephys_session = cache.get_ecephys_session(ecephys_session_id=1052533639)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "3b1e8c57",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['behavior_data_class', 'behavior_session_id', 'eye_tracking', 'eye_tracking_rig_geometry', 'get_channels', 'get_performance_metrics', 'get_reward_rate', 'get_rolling_performance_df', 'get_units', 'licks', 'mean_waveforms', 'metadata', 'optotagging_table', 'probes', 'raw_running_speed', 'rewards', 'running_speed', 'spike_amplitudes', 'spike_times', 'stimulus_presentations', 'stimulus_templates', 'stimulus_timestamps', 'task_parameters', 'trials']\n"
]
}
],
"source": [
"# List methods of the session that can be used to get data\n",
"print(ecephys_session.list_data_attributes_and_methods())"
]
},
{
"cell_type": "markdown",
"id": "2f600c35",
"metadata": {},
"source": [
"Let's try viewing one of the visual stimuli presented to the mouse during the behavior session we downloaded:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "04fa8cec",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
unwarped
\n",
"
warped
\n",
"
\n",
"
\n",
"
image_name
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
im104_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[136, 138, 140, 141, 141, 141, 140, 140, 140,...
\n",
"
\n",
"
\n",
"
im114_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[193, 190, 192, 194, 190, 182, 175, 173, 174,...
\n",
"
\n",
"
\n",
"
im083_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[6, 9, 2, 0, 0, 0, 7, 5, 0, 0, 0, 2, 7, 6, 2,...
\n",
"
\n",
"
\n",
"
im005_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[81, 82, 80, 76, 76, 80, 83, 82, 80, 78, 78, ...
\n",
"
\n",
"
\n",
"
im087_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[38, 39, 34, 28, 28, 35, 41, 39, 34, 31, 33, ...
\n",
"
\n",
"
\n",
"
im024_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[19, 21, 15, 8, 8, 17, 23, 22, 15, 11, 14, 19...
\n",
"
\n",
"
\n",
"
im111_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[53, 55, 50, 44, 45, 51, 56, 56, 52, 49, 50, ...
\n",
"
\n",
"
\n",
"
im034_r
\n",
"
[[nan, nan, nan, nan, nan, nan, nan, nan, nan,...
\n",
"
[[124, 126, 128, 128, 129, 129, 129, 129, 127,...
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" unwarped \\\n",
"image_name \n",
"im104_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"im114_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"im083_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"im005_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"im087_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"im024_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"im111_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"im034_r [[nan, nan, nan, nan, nan, nan, nan, nan, nan,... \n",
"\n",
" warped \n",
"image_name \n",
"im104_r [[136, 138, 140, 141, 141, 141, 140, 140, 140,... \n",
"im114_r [[193, 190, 192, 194, 190, 182, 175, 173, 174,... \n",
"im083_r [[6, 9, 2, 0, 0, 0, 7, 5, 0, 0, 0, 2, 7, 6, 2,... \n",
"im005_r [[81, 82, 80, 76, 76, 80, 83, 82, 80, 78, 78, ... \n",
"im087_r [[38, 39, 34, 28, 28, 35, 41, 39, 34, 31, 33, ... \n",
"im024_r [[19, 21, 15, 8, 8, 17, 23, 22, 15, 11, 14, 19... \n",
"im111_r [[53, 55, 50, 44, 45, 51, 56, 56, 52, 49, 50, ... \n",
"im034_r [[124, 126, 128, 128, 129, 129, 129, 129, 127,... "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Listing the different stimuli templates\n",
"ecephys_session.stimulus_templates"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "32dde8ff",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Visualizing a particular stimulus\n",
"plt.imshow(ecephys_session.stimulus_templates['warped']['im104_r'], cmap='gray')"
]
},
{
"cell_type": "markdown",
"id": "1a0831ef",
"metadata": {},
"source": [
"As you can see, the `ecephy_session` object has a lot of attributes and methods that can be used to access underlying data in the NWB file. Most of these will be touched on in other tutorials for [this data release](http://portal.brain-map.org/explore/circuits/visual-behavior-neuropixels).\n",
"\n",
"Now let's see how to get data for a particular ecephys session:"
]
},
{
"cell_type": "markdown",
"id": "4fcbd1bd",
"metadata": {},
"source": [
"#### Downloading the complete dataset with AllenSDK\n",
"\n",
"Analyzing one session or experiment at a time is nice, but in some cases you'll want to be able to perform an analysis across the whole dataset. To fill your cache with all available data, you can use a for loop like the one below.\n",
"\n",
"Before running this code, please make sure that you have enough space available in your cache directory. You'll need around 524 GB for to contain all of the NWB files."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cb91c928",
"metadata": {},
"outputs": [],
"source": [
"# Remove rows from the behavior sessions table which don't correspond to a behavior session NWB file\n",
"filtered_ecephys_sessions = ecephys_sessions.dropna(subset=[\"file_id\"])\n",
"\n",
"for ecephys_session_id, _ in filtered_ecephys_sessions.iterrows():\n",
" cache.get_ecephys_session(ecephys_session_id=ecephys_session_id)\n"
]
},
{
"cell_type": "markdown",
"id": "11d58792",
"metadata": {},
"source": [
"## Direct download of data from S3\n",
"\n",
"If you do not wish to obtain data via the AllenSDK `VisualBehaviorNeuropixelsProjectCache` class, this section describes how to directly determine an S3 download link for your file or files of interest.\n",
"\n",
"The S3 bucket that stores all the data for this project's release is: \n",
"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com\n",
"\n",
"The structure of the S3 bucket looks like:\n",
"\n",
"```\n",
"visual-behavior-neuropixels-2022/\n",
"│\n",
"├── release_notes.txt\n",
"│\n",
"├── manifests/\n",
"│ ├── visual-behavior-neuropixels_project_manifest_v{a.b.c}.json\n",
"│ ├── visual-behavior-neuropixels_project_manifest_v{x.y.z}.json\n",
"│ ...\n",
"│\n",
"├── project_metadata/\n",
"│ ├── ecephys_sessions.csv\n",
"│ ├── behavior_sessions.csv\n",
"│ ├── probes.csv\n",
"│ ├── channels.csv\n",
"│ ├── units.csv\n",
"│\n",
"└── ecephys_sessions/\n",
" ├── ecephys_session_{abc}.nwb\n",
" ├── ecephys_session_{xyz}.nwb\n",
" ...\n",
"```\n",
"\n",
"So if for example, you wanted to download a specific `ecephys_session` you could first download the `ecephys_sessions.csv` with:\n",
"\n",
"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com/visual-behavior-neuropixels/project_metadata/ecephys_sessions.csv (try clicking me!)\n",
"\n",
"Then using the table, determine the `ecephys_session_id` you are interested in. Let's say we want `ecephys_session_id = 1043752325`, then the appropriate download link would be:\n",
"\n",
"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com/visual-behavior-neuropixels/ecephys_sessions/ecephys_session_1043752325.nwb\n",
"\n",
"Below are some simple sample functions that will help you efficiently determine download URL links:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "c12a4819",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com/visual-behavior-neuropixels/manifests/visual-behavior-neuropixels_project_manifest_v0.1.0.json\n"
]
}
],
"source": [
"from urllib.parse import urljoin\n",
"\n",
"def get_manifest_url(manifest_version: str) -> str:\n",
" hostname = \"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com\"\n",
" object_key = f\"visual-behavior-neuropixels/manifests/visual-behavior-neuropixels_project_manifest_v{manifest_version}.json\"\n",
" return urljoin(hostname, object_key)\n",
"\n",
"# Example:\n",
"print(get_manifest_url(\"0.1.0\"))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "685c9cff",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com/visual-behavior-neuropixels/project_metadata/behavior_sessions.csv\n"
]
}
],
"source": [
"def get_metadata_url(metadata_table_name: str) -> str:\n",
" hostname = \"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com\"\n",
" object_key = f\"visual-behavior-neuropixels/project_metadata/{metadata_table_name}.csv\"\n",
" return urljoin(hostname, object_key)\n",
"\n",
"# Example:\n",
"print(get_metadata_url(\"behavior_sessions\"))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "e1d07772",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com/visual-behavior-neuropixels/ecephys_sessions/ecephys_session_1052533639.nwb\n"
]
}
],
"source": [
"def get_behavior_session_url(ecephys_session_id: int) -> str:\n",
" hostname = \"https://visual-behavior-neuropixels-data.s3.us-west-2.amazonaws.com\"\n",
" object_key = f\"visual-behavior-neuropixels/ecephys_sessions/ecephys_session_{ecephys_session_id}.nwb\"\n",
" return urljoin(hostname, object_key)\n",
"\n",
"# Example:\n",
"print(get_behavior_session_url(1052533639))"
]
},
{
"cell_type": "markdown",
"id": "bb1d746d",
"metadata": {},
"source": [
"## Downloading previous versions of released data from S3\n",
"\n",
"AllenSDK makes uses of versioned manifest (JSON) files that live in the S3 bucket to keep track of EVERY version of a file for this data release. If a bug/error in the released data is discovered or new data is added to existing NWB files and the updated NWB file is uploaded in the future, a new manifest will be created pointing to the newest version of the file. The existing manifest will continue pointing at the original version allowing reproducibility of analysis results. You can think of each manifest as a snapshot of the state of the S3 bucket when the manifest was created.\n",
"\n",
"This section describes how to download specific versions of a file in the S3 bucket.\n",
"\n",
"### Listing and downloading a specific manifest version for the data release\n",
"\n",
"If you have an AWS account (even a free tier account works) you can log in and access the bucket directly:\n",
"\n",
"https://s3.console.aws.amazon.com/s3/buckets/visual-behavior-neuropixels-data?prefix=visual-behavior-neuropixels/manifests/\n",
"\n",
"If you don't have or don't want to use an AWS account you can click the following list to get an XML document:\n",
"\n",
"https://s3.console.aws.amazon.com/s3/buckets/visual-behavior-neuropixels-data?list-type=2&prefix=visual-behavior-neuropixels/manifests/\n",
"\n",
"Which will look like:\n",
"```\n",
"\n",
" sfd-cloudcache-test-bucket\n",
" visual-behavior-neuropixels/manifests/\n",
" 1\n",
" 1000\n",
" false\n",
" \n",
" \n",
" visual-behavior-neuropixels/manifests/visual-behavior-neuropixels-2022_project_manifest_v0.1.0.json\n",
" \n",
" 2021-03-22T14:36:31.000Z\n",
" \"8d10d6dd87234d4e0a1d400908c5013d\"\n",
" 1730897\n",
" STANDARD\n",
" \n",
"\n",
"```\n",
"The XML document is the result of a query which lists all manifests that currently exist for the data release (denoted with `` ``). To obtain a specific manifest of interest you just take the `Key` for the manifest you're interested in and append it to the name of the S3 bucket. For example:\n",
"\n",
"https://s3.console.aws.amazon.com/s3/buckets/visual-behavior-neuropixels-data?prefix=visual-behavior-neuropixels/manifests/visual-behavior-neuropixels_project_manifest_v0.1.0.json\n",
"\n",
"\n",
"### Using a versioned manifest to download a specific data version\n",
"\n",
"Once you've downloaded a manifest, you can use it to obtain download links for the specific version of data files that the manifest tracks. The example function below loads a downloaded manifest and generates download links for *all* the metadata and data files for the specified manifest:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a4dff7f9",
"metadata": {},
"outputs": [],
"source": [
"from typing import List\n",
"from urllib.parse import urljoin\n",
"import json\n",
"\n",
"# The location will differ based on where you downloaded the manifest.json!\n",
"my_manifest_location = data_storage_directory / 'visual-behavior-neuropixels_project_manifest_v0.3.0.json'\n",
"\n",
"def generate_all_download_urls_from_manifest(manifest_path: Path) -> List[str]:\n",
" with manifest_path.open('r') as fp:\n",
" manifest = json.load(fp)\n",
" \n",
" download_links = []\n",
" \n",
" # Get download links for specific version of metadata files\n",
" for metadata_file_entry in manifest[\"metadata_files\"].values():\n",
" base_download_url = metadata_file_entry[\"url\"]\n",
" version_query = f\"?versionId={metadata_file_entry['version_id']}\"\n",
" full_download_url = urljoin(base_download_url, version_query)\n",
" download_links.append(full_download_url)\n",
"\n",
" # Get download links for specific version of data files\n",
" for data_file_entry in manifest[\"data_files\"].values():\n",
" base_download_url = data_file_entry[\"url\"]\n",
" version_query = f\"?versionId={data_file_entry['version_id']}\"\n",
" full_download_url = urljoin(base_download_url, version_query)\n",
" download_links.append(full_download_url) \n",
"\n",
" return download_links\n",
"\n",
"# Example:\n",
"print('\\n'.join(generate_all_download_urls_from_manifest(my_manifest_location)))"
]
}
],
"metadata": {
"interpreter": {
"hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1"
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.8.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}