{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyzing Computed Features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition to the raw electrophysiology and morphology data, the Allen Institute also has computed many electrophysiological features about the cells in their data. These features describe the intrinsic electrophysiological properties of the cell. Here, we will demonstrate how to access and analyze these features both across and within cells." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Packages successfully downloaded.\n" ] } ], "source": [ "#Import all the necessary packages and initalize an instance of the cache\n", "import pandas as pd\n", "from allensdk.core.cell_types_cache import CellTypesCache\n", "from allensdk.api.queries.cell_types_api import CellTypesApi\n", "import matplotlib.pyplot as plt\n", "\n", "ctc = CellTypesCache(manifest_file='cell_types/manifest.json')\n", "\n", "print('Packages successfully downloaded.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we'll create pandas dataframes for the electrophysiology data as well as metadata for all of the mouse cells in this dataset. Like the previous notebook, we'll [join](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.join.html) these dataframes and set the row indices to be the `id` column. Unlike the previous notebook, here we'll specify within `get_cells()` that we'd only like to use mouse cells. You can change the argument to `species = [CellTypesApi.HUMAN]` if you'd like to see human cells instead." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
reporter_statuscell_soma_locationspeciesnamestructure_layer_namestructure_area_idstructure_area_abbrevtransgenic_linedendrite_typeapical...trough_t_ramptrough_t_short_squaretrough_v_long_squaretrough_v_ramptrough_v_short_squareupstroke_downstroke_ratio_long_squareupstroke_downstroke_ratio_rampupstroke_downstroke_ratio_short_squarevm_for_sagvrest
id
565871768positive[8966.56330957526, 1429.52689052075, 8567.3896...Mus musculusOxtr-2A-Cre;Ai14-293837.03.01.025385VISpOxtr-T2A-CreaspinyNA...14.7380001.391268-59.281254-57.468754-75.7562521.5640271.3043491.679550-87.906258-74.926987
469801138positive[7872.53138541818, 993.212032389272, 3127.1530...Mus musculusPvalb-IRES-Cre;Ai14-170927.05.02.014385VISpPvalb-IRES-CreaspinyNA...11.7638081.290815-55.875000-52.515627-69.1093791.1626181.1971551.369171-80.156250-72.042976
605889373positive[9400.0, 1520.74232706376, 2188.13845194139]Mus musculusVipr2-IRES2-Cre;Slc32a1-T2A-FlpO;Ai65-337419.0...2/3385VISpSlc32a1-T2A-FlpO|Vipr2-IRES2-CreaspinyNA...8.4329401.315510-48.187500-54.364586-72.6406283.3793214.1087742.680139-83.593758-72.712036
485909730positive[8881.0, 953.839501299405, 7768.22695782726]Mus musculusCux2-CreERT2;Ai14-205530.03.02.015385VISpCux2-CreERT2spinyintact...2.8881331.520193-54.031254-57.385419-77.7500053.0429333.5176843.274181-101.000000-76.928391
323865917positive[8125.0, 904.841803028986, 7819.69986630448]Mus musculusScnn1a-Tg3-Cre;Ai14-172530.06.01.015385VISpScnn1a-Tg3-Crespinyintact...3.4678471.317042-57.281254-56.895833-70.2187512.9741943.1561172.946463-88.406250-69.402855
\n", "

5 rows × 70 columns

\n", "
" ], "text/plain": [ " reporter_status cell_soma_location \\\n", "id \n", "565871768 positive [8966.56330957526, 1429.52689052075, 8567.3896... \n", "469801138 positive [7872.53138541818, 993.212032389272, 3127.1530... \n", "605889373 positive [9400.0, 1520.74232706376, 2188.13845194139] \n", "485909730 positive [8881.0, 953.839501299405, 7768.22695782726] \n", "323865917 positive [8125.0, 904.841803028986, 7819.69986630448] \n", "\n", " species name \\\n", "id \n", "565871768 Mus musculus Oxtr-2A-Cre;Ai14-293837.03.01.02 \n", "469801138 Mus musculus Pvalb-IRES-Cre;Ai14-170927.05.02.01 \n", "605889373 Mus musculus Vipr2-IRES2-Cre;Slc32a1-T2A-FlpO;Ai65-337419.0... \n", "485909730 Mus musculus Cux2-CreERT2;Ai14-205530.03.02.01 \n", "323865917 Mus musculus Scnn1a-Tg3-Cre;Ai14-172530.06.01.01 \n", "\n", " structure_layer_name structure_area_id structure_area_abbrev \\\n", "id \n", "565871768 5 385 VISp \n", "469801138 4 385 VISp \n", "605889373 2/3 385 VISp \n", "485909730 5 385 VISp \n", "323865917 5 385 VISp \n", "\n", " transgenic_line dendrite_type apical ... \\\n", "id ... \n", "565871768 Oxtr-T2A-Cre aspiny NA ... \n", "469801138 Pvalb-IRES-Cre aspiny NA ... \n", "605889373 Slc32a1-T2A-FlpO|Vipr2-IRES2-Cre aspiny NA ... \n", "485909730 Cux2-CreERT2 spiny intact ... \n", "323865917 Scnn1a-Tg3-Cre spiny intact ... \n", "\n", " trough_t_ramp trough_t_short_square trough_v_long_square \\\n", "id \n", "565871768 14.738000 1.391268 -59.281254 \n", "469801138 11.763808 1.290815 -55.875000 \n", "605889373 8.432940 1.315510 -48.187500 \n", "485909730 2.888133 1.520193 -54.031254 \n", "323865917 3.467847 1.317042 -57.281254 \n", "\n", " trough_v_ramp trough_v_short_square \\\n", "id \n", "565871768 -57.468754 -75.756252 \n", "469801138 -52.515627 -69.109379 \n", "605889373 -54.364586 -72.640628 \n", "485909730 -57.385419 -77.750005 \n", "323865917 -56.895833 -70.218751 \n", "\n", " upstroke_downstroke_ratio_long_square \\\n", "id \n", "565871768 1.564027 \n", "469801138 1.162618 \n", "605889373 3.379321 \n", "485909730 3.042933 \n", "323865917 2.974194 \n", "\n", " upstroke_downstroke_ratio_ramp \\\n", "id \n", "565871768 1.304349 \n", "469801138 1.197155 \n", "605889373 4.108774 \n", "485909730 3.517684 \n", "323865917 3.156117 \n", "\n", " upstroke_downstroke_ratio_short_square vm_for_sag vrest \n", "id \n", "565871768 1.679550 -87.906258 -74.926987 \n", "469801138 1.369171 -80.156250 -72.042976 \n", "605889373 2.680139 -83.593758 -72.712036 \n", "485909730 3.274181 -101.000000 -76.928391 \n", "323865917 2.946463 -88.406250 -69.402855 \n", "\n", "[5 rows x 70 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mouse_df = pd.DataFrame(ctc.get_cells(species = [CellTypesApi.MOUSE])).set_index('id')\n", "ephys_df = pd.DataFrame(ctc.get_ephys_features()).set_index('specimen_id')\n", "mouse_ephys_df = mouse_df.join(ephys_df)\n", "mouse_ephys_df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see if you scroll to the right in the dataframe above, there are many **pre-computed features** available in this dataset. [Here's a glossary](https://docs.google.com/document/d/1YGLwkMTebwrXd_1E817LFbztMjSTCWh83Mlp3_3ZMEo/edit?usp=sharing), in case you're curious.\n", "\n", "![](https://github.com/ajuavinett/CellTypesLesson/blob/master/docs/ap_features.png?raw=true)\n", "Image from the Allen Institute Cell Types Database Technical Whitepaper.\n", "

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compare Features Across Cells\n", "\n", "The Allen has many precomputed features that you might consider comparing across cells. Some of these features include input resistance ('input_resistance_mohm'), Adaptation ratio ('adaptation'), Average interspike interval ('avg_isi'), and many others. We've compiled [a complete glossary](https://docs.google.com/document/d/1YGLwkMTebwrXd_1E817LFbztMjSTCWh83Mlp3_3ZMEo/edit#heading=h.t0p3wngfkxc1) for you.\n", "\n", "To compare cell types, we can subset our electrophysiology dataframe for a specific transgenic line, structure layer, brain area, and more. Below, we'll create two dataframes to compare cells with spiny dendrites to those with aspiny dendrites. While most excitatory cells are spiny, most inhibitory cells are aspiny." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Define your cell type variables below\n", "cell_type1 = 'spiny'\n", "cell_type2 = 'aspiny'\n", "\n", "# Create our dataframes from our cell types\n", "mouse_spiny_df = mouse_ephys_df[mouse_ephys_df['dendrite_type'] == cell_type1]\n", "mouse_aspiny_df = mouse_ephys_df[mouse_ephys_df['dendrite_type'] == cell_type2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have two cell types we would like to compare, we can now use the precomputed features to plot some our cells' characteristics. Let's start by using a boxplot to compare the input resistance between our two cell types." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Select our pre computed feature that we would like to compare \n", "feature = 'input_resistance_mohm'\n", "\n", "# Get the pandas series for our feature from each dataframe. Drop any NaN values.\n", "clean_spiny = mouse_spiny_df[feature].dropna()\n", "clean_aspiny = mouse_aspiny_df[feature].dropna()\n", "\n", "# Plot our figure and provide labels\n", "plt.boxplot([clean_spiny, clean_aspiny])\n", "plt.ylabel('Input Resistance (MOhm)')\n", "plt.xticks([1,2], [cell_type1, cell_type2])\n", "plt.title(feature + ' in ' + cell_type1 + ' and ' + cell_type2 + ' cells')\n", "\n", "# Show our plot \n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compare Features Within Cells\n", "\n", "The power in this dataset is not only the ability to compare two cell types, but to look across all of the data for trends that emerge. Even if we dig into the weeds of the action potential shape, we can make some interesting observations.\n", "\n", "Let's look at the speed of the trough, and the ratio between the upstroke and downstroke of the action potential:\n", "- **Action potential fast trough** (fast_trough_v_long_square): Minimum value of the membrane potential in the interval lasting 5 ms after the peak.\n", "- **Upstroke/downstroke ratio** (upstroke_downstroke_ratio_long_square): The ratio between the absolute values of the action potential peak upstroke and the action potential peak downstroke." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cell below will dig up the dendrite type of these cells and add that to our dataframe. Then, it'll create a scatterplot to compare the depth of the trough with the upstroke:downstroke ratio, where each dot is colored by dendrite type." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Create our plot! Calling scatter twice like this will draw both of these on the same plot.\n", "plt.scatter(mouse_spiny_df['fast_trough_v_long_square'],mouse_spiny_df['upstroke_downstroke_ratio_long_square'])\n", "plt.scatter(mouse_aspiny_df['fast_trough_v_long_square'],mouse_aspiny_df['upstroke_downstroke_ratio_long_square'])\n", "\n", "plt.ylabel('upstroke-downstroke ratio')\n", "plt.xlabel('fast trough depth (mV)')\n", "plt.legend(['Spiny','Aspiny'])\n", " \n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the true power of neural data science! It looks like the two clusters in the data partially relate to the dendritic type. Cells with spiny dendrites (which are typically excitatory cells) have a big ratio of upstroke:downstroke, and a more shallow trough (less negative). Cells with aspiny dendrites (typically inhibitory cells) are a little bit more varied. But only aspiny cells have a low upstroke:downstroke ratio and a deeper trough (more negative)." ] } ], "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 }