{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualizing Large Scale Recordings\n", "Now that we are familiar with the structure of an NWB file as well as the groups encapsulated within it, we are ready to work with the data. In this chapter you will learn to search the NWB file for its available data and plot visualizations such as raster plots.\n", "\n", "Below, we'll import some now familiar packages and once again work with the dataset we obtained in Chapter 3. This should look very familiar to you by now!\n", "\n", "**Note**: The code below will only work if you downloaded this NWB dataset in Chapter 3." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NWB file found and read.\n", "\n" ] } ], "source": [ "# import necessary packages\n", "from pynwb import NWBHDF5IO\n", "from nwbwidgets import nwb2widget\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "# set the filename (slightly modified to ensure it looks in chapter 03 for the data)\n", "filename = '../Chapter_03/000006/sub-anm369962/sub-anm369962_ses-20170310.nwb'\n", "\n", "# assign file as an NWBHDF5IO object\n", "io = NWBHDF5IO(filename, 'r')\n", "\n", "# read the file\n", "nwb_file = io.read()\n", "\n", "print('NWB file found and read.')\n", "print(type(nwb_file))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first group that we will look at is `units` because it contains information about spikes times in the data. This time, we will subset our dataframe to only contain neurons with `Fair` spike sorting quality. This means that the researchers are more confident that these are indeed isolated neurons. \n", "\n", "> Need a refresher on how we subset a dataframe? Review the Pandas page." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
depthqualitycell_typespike_timeselectrodes
id
2665.0Fairunidentified[329.95417899999956, 330.01945899999953, 330.0...x y z imp \\\n", "id ...
5715.0Fairunidentified[331.09961899999956, 332.14505899999955, 333.3...x y z imp \\\n", "id ...
6715.0Fairunidentified[329.91129899999953, 329.92869899999954, 330.0...x y z imp \\\n", "id ...
7765.0Fairunidentified[330.26357899999954, 330.3849389999996, 330.60...x y z imp \\\n", "id ...
10815.0Fairunidentified[329.8969389999996, 329.94389899999953, 329.95...x y z imp \\\n", "id ...
\n", "
" ], "text/plain": [ " depth quality cell_type \\\n", "id \n", "2 665.0 Fair unidentified \n", "5 715.0 Fair unidentified \n", "6 715.0 Fair unidentified \n", "7 765.0 Fair unidentified \n", "10 815.0 Fair unidentified \n", "\n", " spike_times \\\n", "id \n", "2 [329.95417899999956, 330.01945899999953, 330.0... \n", "5 [331.09961899999956, 332.14505899999955, 333.3... \n", "6 [329.91129899999953, 329.92869899999954, 330.0... \n", "7 [330.26357899999954, 330.3849389999996, 330.60... \n", "10 [329.8969389999996, 329.94389899999953, 329.95... \n", "\n", " electrodes \n", "id \n", "2 x y z imp \\\n", "id ... \n", "5 x y z imp \\\n", "id ... \n", "6 x y z imp \\\n", "id ... \n", "7 x y z imp \\\n", "id ... \n", "10 x y z imp \\\n", "id ... " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get the units data frame\n", "units_df = nwb_file.units.to_dataframe()\n", " \n", "# Select only \"Fair\" units\n", "fair_units_df = units_df[units_df['quality']=='Fair']\n", "\n", "# Print the subsetted dataframe\n", "fair_units_df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `spike_times` column contains the times at which the recorded neuron fired an action potential. Each neuron has a list of spike times for their `spike_times` column. Below, we'll return the first 10 spike times for a given neuron. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[331.099619 332.145059 333.362499 333.395059 334.149659 334.178019\n", " 334.183059 334.612499 340.767066 340.916546]\n" ] } ], "source": [ "# Return the first 10 spike times for your neuron of choice\n", "unit_id = 5\n", "print(units_df['spike_times'][unit_id][:10])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A **spike raster plot** can be created using the function `plt.eventplot`. A spike raster plot displays the spiking of neurons over time. In a raster plot, each row corresponds to a different neuron or a different trial, and the x-axis represents the time. Each small vertical line in the plot represents the spiking of a neuron. Spike raster plots are useful as they reveal firing rate correlations between groups of neurons. For more information on `plt.eventplot` please visit the matplotlib documentation. \n", "\n", "Below, we'll create a function called `plot_raster()` that creates a raster plot from the `spike_times` column in `units`. `plot_raster()` takes the following arguments:\n", "\n", "- `unit_df`: dataframe containing spike time data\n", "- `neuron_start`: index of first neuron of interest \n", "- `neuron_end`: index of last neuron of interest\n", "- `start_time`: start time for desired time interval (in seconds)\n", "- `end_time`: end time for desired time interval (in seconds)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Function for creating raster plots for Units group in NWB file \n", "def plot_raster(units_df,neuron_start,neuron_end,start_time,end_time): \n", " '''\n", " Takes a dataframe containing the units group of a nwb file (units_df) and creates \n", " a raster plot with a given set of neurons (indexed by neuron_start, neuron_end) and a start and end time.\n", " '''\n", " \n", " neural_data = units_df['spike_times'][neuron_start:neuron_end] # Select the data\n", " num_neurons = neuron_end - neuron_start # Calculate # of neurons\n", " my_colors = ['C{}'.format(i) for i in range(num_neurons)] #Generate a list of colors (C0, C1...)\n", " \n", " plt.eventplot(neural_data,colors=my_colors) # Plot our raster plot \n", "\n", " plt.xlim([start_time,end_time]) # Set axis limits to only include points in our data\n", " \n", " # Label our figure \n", " plt.title('Spike raster plot')\n", " plt.ylabel('Neuron #')\n", " plt.xlabel('Time (s)')\n", " plt.yticks(np.arange(0,num_neurons))\n", " plt.show()\n", "\n", "# Use our new function\n", "plot_raster(units_df, neuron_start = 2, neuron_end = 11, start_time = 330, end_time = 335)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot above is only contains neural spikes from nine neurons in a five second time interval. While there are many spikes to consider in this one graph, each neuron has much more than five seconds worth of spike recordings! To summarize these spikes over time, we can compute a **firing rate**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Binning Firing Rates " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Raster plots are great for seeing individual neural spikes, but difficult to see the overall firing rates of the units. To get a better sense of the overall firing rates of our units, we can bin our spikes into time bins of 1 second using the function below, `plot_firing_rates()`." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def plot_firing_rates(spike_times, start_time = None, end_time = None):\n", " '''\n", " plots the binned firing rate for the spike times in the list it is given in 1 second time bins.\n", "\n", " Parameters\n", " ----------\n", " spike_times : list\n", " spike times, in seconds\n", "\n", " start_time : int\n", " start time for spike binning in seconds; sets lower-most bound for x axis\n", " \n", " end_time : int\n", " end time for spike binning in seconds ; sets upper-most bound for x axis\n", " '''\n", " \n", " # Assign total number of bins \n", " num_bins = int(np.ceil(spike_times[-1]))\n", " binned_spikes = np.empty(num_bins)\n", " \n", " # Assign the frequency of spikes over time\n", " for j in range(num_bins):\n", " binned_spikes[j] = len(spike_times[(spike_times>j)&(spike_times" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot our data\n", "single_unit = units_df['spike_times'][unit_id]\n", "plot_firing_rates(single_unit,300,500)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: I'm considering making this a 'problem set' activity rather than an example here.\n", "\n", "## Compare firing rates at different depths of cortex\n", "\n", "The units in our data were recorded from various cortical depths, therefore we can compare the firing units from differing cortical depths to test for differing firing rates. Let's first take a look at the distribution of depth from our units." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot distribution of neuron depth \n", "plt.hist(units_df['depth'], bins=30)\n", "plt.title('Distribution of depth')\n", "plt.xlabel('Depth (\\u03bcm)') # The random letters in here are to create a mu symbol using unicode\n", "plt.ylabel('Frequency')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will compare one unit recorded from 1165 microns to one unit recorded from 715 microns." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Assign dataframes for different depths \n", "depth_1165 = units_df[units_df['depth']==1165]\n", "depth_715 = units_df[units_df['depth']==715]\n", "\n", "# Create list of containing 1 entry from each depth\n", "neural_list_1165 = depth_1165['spike_times'].iloc[0]\n", "neural_list_715 = depth_715['spike_times'].iloc[0]\n", "\n", "# Plot firing rates\n", "plot_firing_rates(neural_list_1165, 300, 500)\n", "plot_firing_rates(neural_list_715, 300, 500)\n", "plt.legend(['1165','715'])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It looks like the neuron that's more superficial (at a depth of 715 microns) has a higher firing rate! But we'd certainly need more data to make a conclusive argument about that.\n", "\n", "
\n", "\n", "## Additional resources\n", "\n", "For more ideas about how to play with this dataset, see this [Github repository](https://github.com/vathes/DJ-NWB-Economo-2018/blob/master/notebooks/Economo-2018-examples.ipynb).\n", "\n", "Note: Reproducing the above analysis, comparing left vs right in the upper ALM PT neurons would be fantastic..." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }