{ "cells": [ { "cell_type": "markdown", "id": "af6cdeba", "metadata": {}, "source": [ "# Exploring Electrical Synapses\n", "\n", "In this notebook we use the [Allen Institute synaptic physiology dataset](https://portal.brain-map.org/explore/connectivity/synaptic-physiology) to explore electrical synapses between inihibitory subclasses\n", "\n", "For an introduction to the Jupyter Notebook interface, try [Codeacademy: How To Use Jupyter Notebooks]( https://www.codecademy.com/articles/how-to-use-jupyter-notebooks) or [Jupyter Notebook Quick Start Guide](https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html).\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "fba7fb7e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\users\\stephanies\\appdata\\local\\continuum\\miniconda3\\envs\\py3\\lib\\site-packages\\statsmodels\\tools\\_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n", " import pandas.util.testing as tm\n" ] } ], "source": [ "from aisynphys.database import SynphysDatabase\n", "from aisynphys.cell_class import CellClass, classify_cells, classify_pairs\n", "from aisynphys.connectivity import measure_connectivity" ] }, { "cell_type": "code", "execution_count": null, "id": "5d279311", "metadata": {}, "outputs": [], "source": [ "# Download and cache the sqlite file for the requested database\n", "# (for available versions, see SynphysDatabase.list_versions)\n", "db = SynphysDatabase.load_current('small')" ] }, { "cell_type": "markdown", "id": "02fdaf62", "metadata": {}, "source": [ "Electrical synapses (sometimes referred to as gap junctions) primarily exist between like inhibitory subclasses. Here we will explore the electrical connectivity of innhibitory cells and strength of electrical synapses as measured by junctional conductance." ] }, { "cell_type": "markdown", "id": "192fc14b", "metadata": {}, "source": [ "Let's begin by defining our inhibitory cell subclasses:" ] }, { "cell_type": "code", "execution_count": 12, "id": "a59819df", "metadata": {}, "outputs": [], "source": [ "inhib_subclasses = {\n", " 'pv': CellClass(cre_type='pvalb', name='pv'),\n", " 'sst': CellClass(cre_type='sst', name='sst'),\n", " 'vip': CellClass(cre_type='vip', name='vip'),\n", "}" ] }, { "cell_type": "markdown", "id": "ddb1fa0e", "metadata": {}, "source": [ "We'll now load all of our mouse pairs to measure the rate of electrical connectivity among these subclasses" ] }, { "cell_type": "code", "execution_count": 7, "id": "382bc53e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "83006\n" ] } ], "source": [ "mouse_pairs = db.pair_query(experiment_type='standard multipatch', species='mouse').all() \n", "print(len(mouse_pairs))" ] }, { "cell_type": "markdown", "id": "aa8b00cd", "metadata": {}, "source": [ "First we group all of the cells by their subclass, then create all of the possible pair-group combinations, and finally measure the connectivity between them. Note that the `measure_connectiviy` method measures both chemical and electrical connectivity, but that here we use a shorter sigma to fit the distance-adjusted model. See the Connectivity Adjustment notebook as well as our paper [] for more details." ] }, { "cell_type": "code", "execution_count": 13, "id": "43b73ccd", "metadata": {}, "outputs": [], "source": [ "# Group all cells by selected subclasses\n", "cell_groups = classify_cells(inhib_subclasses.values(), pairs=mouse_pairs)\n", "\n", "# Group pairs into (pre_class, post_class) groups\n", "pair_groups = classify_pairs(mouse_pairs, cell_groups)\n", "\n", "# analyze matrix elements\n", "results = measure_connectivity(pair_groups, sigma=75e-6, dist_measure='lateral_distance')" ] }, { "cell_type": "markdown", "id": "9f367f25", "metadata": {}, "source": [ "Now we can plot the results as a matrix" ] }, { "cell_type": "code", "execution_count": 14, "id": "8501dd91", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.colors, matplotlib.cm\n", "import matplotlib.pyplot as plt\n", "from aisynphys.ui.notebook import show_connectivity_matrix\n", "%matplotlib inline\n", "\n", "# define a colormap and log normalization used to color the heatmap\n", "norm = matplotlib.colors.LogNorm(vmin=0.01, vmax=1.0, clip=True)\n", "cmap = matplotlib.cm.get_cmap('plasma')\n", "\n", "# define the display labels to use for each cell subclass:\n", "class_labels = {\n", " 'pv': 'Pv',\n", " 'sst': 'Sst',\n", " 'vip': 'Vip',\n", "}\n", "\n", "# create a figure/axes to draw on\n", "fig, ax = plt.subplots(figsize=(6, 6))\n", "\n", "# finally, draw the colormap using the provided function:\n", "im, cbar, labels = show_connectivity_matrix(\n", " ax=ax, \n", " results=results, \n", " pre_cell_classes=inhib_subclasses.values(), \n", " post_cell_classes=inhib_subclasses.values(), \n", " class_labels=class_labels, \n", " cmap=cmap, \n", " norm=norm,\n", " distance_adjusted=True,\n", " ctype='electrical', # here we change the ctype from the default \"chemical\" to \"electrical\"\n", " cbarlabel='Electrical synapse probability',\n", ")" ] }, { "cell_type": "markdown", "id": "62cde9e7", "metadata": {}, "source": [ "We measure the strength of electrical synapses using junctional conductance. This can be extracted from the gap_junction table along with other parameters such as coupling coefficient and cross-correlation values during the stimulus pulse and during baseline periods." ] }, { "cell_type": "markdown", "id": "830f86d0", "metadata": {}, "source": [ "We can again query the database for mouse pairs but this time filter just for electrical connections between like subclasses" ] }, { "cell_type": "code", "execution_count": 25, "id": "4af97c08", "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", "
pair.idpair.experiment_idpair.pre_cell_idpair.post_cell_idpair.has_synapsepair.has_polysynapsepair.has_electricalpair.crosstalk_artifactpair.n_ex_test_spikespair.n_in_test_spikespair.distancepair.lateral_distancepair.vertical_distancepair.reciprocal_idpair.metagap_junction.junctional_conductancepair_class
052178153990869087FalseFalseTrueNaN4183000.0000920.0000270.00007852189None1.156760pvalb→pvalb
152189153990879086FalseFalseTrueNaN4172990.0000920.0000270.00007852178None1.494854pvalb→pvalb
211376739812139321392TrueFalseTrueNaN4203480.000084NaNNaN113765None0.245593pvalb→pvalb
312365451092479324795FalseFalseTrueNaN5073080.000101NaNNaN123661None0.665745pvalb→pvalb
412367951122480124802FalseFalseTrueNaN159912840.000062NaNNaN123682None0.776390pvalb→pvalb
\n", "
" ], "text/plain": [ " pair.id pair.experiment_id pair.pre_cell_id pair.post_cell_id \\\n", "0 52178 1539 9086 9087 \n", "1 52189 1539 9087 9086 \n", "2 113767 3981 21393 21392 \n", "3 123654 5109 24793 24795 \n", "4 123679 5112 24801 24802 \n", "\n", " pair.has_synapse pair.has_polysynapse pair.has_electrical \\\n", "0 False False True \n", "1 False False True \n", "2 True False True \n", "3 False False True \n", "4 False False True \n", "\n", " pair.crosstalk_artifact pair.n_ex_test_spikes pair.n_in_test_spikes \\\n", "0 NaN 418 300 \n", "1 NaN 417 299 \n", "2 NaN 420 348 \n", "3 NaN 507 308 \n", "4 NaN 1599 1284 \n", "\n", " pair.distance pair.lateral_distance pair.vertical_distance \\\n", "0 0.000092 0.000027 0.000078 \n", "1 0.000092 0.000027 0.000078 \n", "2 0.000084 NaN NaN \n", "3 0.000101 NaN NaN \n", "4 0.000062 NaN NaN \n", "\n", " pair.reciprocal_id pair.meta gap_junction.junctional_conductance \\\n", "0 52189 None 1.156760 \n", "1 52178 None 1.494854 \n", "2 113765 None 0.245593 \n", "3 123661 None 0.665745 \n", "4 123682 None 0.776390 \n", "\n", " pair_class \n", "0 pvalb→pvalb \n", "1 pvalb→pvalb \n", "2 pvalb→pvalb \n", "3 pvalb→pvalb \n", "4 pvalb→pvalb " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# query once for each postsynaptic type, building up a Pandas dataframe\n", "\n", "pairs = None\n", "for name, subclass in inhib_subclasses.items():\n", " pair_query = db.pair_query(\n", " experiment_type='mouse',\n", " pre_class=subclass,\n", " post_class=subclass,\n", " electrical=True,\n", " )\n", " # here we join the GapJunction table so that we can append the junctional_conductance column\n", " pair_query = pair_query.outerjoin(db.GapJunction, db.GapJunction.pair_id==db.Pair.id)\n", " pair_query = pair_query.add_column(db.GapJunction.junctional_conductance)\n", "\n", " df = pair_query.dataframe()\n", " df['pair_class'] = '%s→%s' % (subclass, subclass)\n", " if pairs is None:\n", " pairs = df\n", " else:\n", " pairs = pairs.append(df)\n", "pairs['gap_junction.junctional_conductance'] *= 1e9 # we typcially think of conductance on the scale of nano-Siemens (nS)\n", "pairs.head()" ] }, { "cell_type": "markdown", "id": "286fef24", "metadata": {}, "source": [ "From here we can plot the junctional conductance using the seaborn library" ] }, { "cell_type": "code", "execution_count": 28, "id": "b5ada9eb", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\users\\stephanies\\appdata\\local\\continuum\\miniconda3\\envs\\py3\\lib\\site-packages\\seaborn\\categorical.py:1296: UserWarning: 8.8% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n", " warnings.warn(msg, UserWarning)\n", "c:\\users\\stephanies\\appdata\\local\\continuum\\miniconda3\\envs\\py3\\lib\\site-packages\\seaborn\\categorical.py:1296: UserWarning: 6.0% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n", " warnings.warn(msg, UserWarning)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "\n", "sns.boxplot(data=pairs, x='pair_class', y='gap_junction.junctional_conductance', fliersize=0)\n", "sns.swarmplot(data=pairs, x='pair_class', y='gap_junction.junctional_conductance', color='k', edgecolor='k', alpha=0.7)" ] }, { "cell_type": "markdown", "id": "6abe17e1", "metadata": {}, "source": [ "Here we can see that electrical connections between Pvalb cells can be stronger than those between Sst or Vip cells" ] }, { "cell_type": "code", "execution_count": null, "id": "89b7695a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 5 }