{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Comparing the geometric similarity of trajectories\n", "\n", "Here we compare the geometric similarity of trajectories using the following path metrics:\n", "\n", " - the Hausdorff distance\n", " - the discrete Fréchet\n", "\n", "**Last executed:** May 18, 2021 with MDAnalysis 1.1.1\n", "\n", "**Last updated:** January 2020\n", "\n", "**Minimum version of MDAnalysis:** 0.18.0\n", "\n", "**Packages required:**\n", " \n", "* MDAnalysis (Michaud-Agrawal *et al.*, 2011, Gowers *et al.*, 2016)\n", "* MDAnalysisTests\n", " \n", "**Optional packages for visualisation:**\n", "\n", "* [matplotlib](https://matplotlib.org)\n", "* [seaborn](https://seaborn.pydata.org)\n", "\n", "\n", "
\n", " \n", "**Note**\n", "\n", "The metrics and methods in the `psa` path similarity analysis module are from (Seyler *et al.*, 2015). Please cite them when using the ``MDAnalysis.analysis.psa`` module in published work.\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:48.802025Z", "iopub.status.busy": "2021-05-19T06:24:48.800867Z", "iopub.status.idle": "2021-05-19T06:24:49.737046Z", "shell.execute_reply": "2021-05-19T06:24:49.737419Z" } }, "outputs": [], "source": [ "import MDAnalysis as mda\n", "from MDAnalysis.tests.datafiles import (PSF, DCD, DCD2, GRO, XTC, \n", " PSF_NAMD_GBIS, DCD_NAMD_GBIS,\n", " PDB_small, CRD)\n", "from MDAnalysis.analysis import psa\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The test files we will be working with here feature adenylate kinase (AdK), a phosophotransferase enzyme. (Beckstein *et al.*, 2009) " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:49.741567Z", "iopub.status.busy": "2021-05-19T06:24:49.740941Z", "iopub.status.idle": "2021-05-19T06:24:50.620439Z", "shell.execute_reply": "2021-05-19T06:24:50.620888Z" } }, "outputs": [], "source": [ "u1 = mda.Universe(PSF, DCD)\n", "u2 = mda.Universe(PSF, DCD2)\n", "u3 = mda.Universe(GRO, XTC)\n", "u4 = mda.Universe(PSF_NAMD_GBIS, DCD_NAMD_GBIS)\n", "u5 = mda.Universe(PDB_small, CRD, PDB_small, \n", " CRD, PDB_small, CRD, PDB_small)\n", "\n", "ref = mda.Universe(PDB_small)\n", "\n", "\n", "labels = ['DCD', 'DCD2', 'XTC', 'NAMD', 'mixed']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The trajectories can have different lengths, as seen below." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:50.625339Z", "iopub.status.busy": "2021-05-19T06:24:50.624517Z", "iopub.status.idle": "2021-05-19T06:24:50.628686Z", "shell.execute_reply": "2021-05-19T06:24:50.629076Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "98 102 10\n" ] } ], "source": [ "print(len(u1.trajectory), len(u2.trajectory), len(u3.trajectory))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aligning trajectories" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We set up the PSAnalysis ([API docs](https://docs.mdanalysis.org/stable/documentation_pages/analysis/psa.html#MDAnalysis.analysis.psa.PSAnalysis)) with our list of Universes and labels. While `path_select` determines which atoms to calculate the path similarities for, `select` determines which atoms to use to align each Universe to `reference`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:50.634287Z", "iopub.status.busy": "2021-05-19T06:24:50.633624Z", "iopub.status.idle": "2021-05-19T06:24:50.636599Z", "shell.execute_reply": "2021-05-19T06:24:50.637297Z" } }, "outputs": [], "source": [ "CORE_sel = 'name CA and (resid 1:29 or resid 60:121 or resid 160:214)'\n", "\n", "ps = psa.PSAnalysis([u1, u2, u3, u4, u5],\n", " labels=labels,\n", " reference=ref,\n", " select=CORE_sel,\n", " path_select='name CA')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating paths" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For each Universe, we will generate a transition path containing each conformation from a trajectory using `generate_paths` ([API docs](https://docs.mdanalysis.org/stable/documentation_pages/analysis/psa.html#MDAnalysis.analysis.psa.PSAnalysis.generate_paths)).\n", "\n", "\n", "First, we will do a mass-weighted alignment of each trajectory to the reference structure `reference`, along the atoms in `select`. To turn off the mass weighting, set `weights=None`. If your trajectories are already aligned, you can skip the alignment with `align=False`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:50.649919Z", "iopub.status.busy": "2021-05-19T06:24:50.649271Z", "iopub.status.idle": "2021-05-19T06:24:52.124155Z", "shell.execute_reply": "2021-05-19T06:24:52.124683Z" } }, "outputs": [], "source": [ "ps.generate_paths(align=True, save=False, weights='mass')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hausdorff method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can compute the similarity of each path. The default metric is to use the Hausdorff method. [[5]](#References) The Hausdorff distance between two conformation transition paths $P$ and $Q$ is:\n", "\n", "$$\\delta_H(P,Q) = \\max{(\\delta_h(P|Q), \\delta_h(Q|P))}$$\n", "\n", "$\\delta_h(P|Q)$ is the directed Hausdorff distance from $P$ to $Q$, and is defined as:\n", "\n", "$$\\delta_h(P|Q) = \\max_{p \\in P}\\min_{q \\in Q} d(p,q)$$\n", "\n", "The directed Hausdorff distance of $P$ to $Q$ is the distance between the two points, $p \\in P$ and its structural nearest neighbour $q \\in Q$, for the point $p$ where the distance is greatest. This is not commutative, i.e. the directed Hausdorff distance from $Q$ to $P$ is not the same. (See [scipy.spatial.distance.directed_hausdorff](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.directed_hausdorff.html) for more information).\n", "\n", "In MDAnalysis, the Hausdorff distance is the RMSD between a pair of conformations in $P$ and $Q$, where the one of the conformations in the pair has the least similar nearest neighbour." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:52.129757Z", "iopub.status.busy": "2021-05-19T06:24:52.128708Z", "iopub.status.idle": "2021-05-19T06:24:52.149655Z", "shell.execute_reply": "2021-05-19T06:24:52.150028Z" } }, "outputs": [], "source": [ "ps.run(metric='hausdorff')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The distance matrix is saved in `ps.D`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:52.156938Z", "iopub.status.busy": "2021-05-19T06:24:52.156154Z", "iopub.status.idle": "2021-05-19T06:24:52.161226Z", "shell.execute_reply": "2021-05-19T06:24:52.161955Z" } }, "outputs": [ { "data": { "text/plain": [ "array([[ 0. , 1.33312648, 22.37206002, 2.04737477, 7.55204678],\n", " [ 1.33312648, 0. , 22.3991666 , 2.07957562, 7.55032598],\n", " [22.37206002, 22.3991666 , 0. , 22.42282661, 25.74534554],\n", " [ 2.04737477, 2.07957562, 22.42282661, 0. , 7.67052252],\n", " [ 7.55204678, 7.55032598, 25.74534554, 7.67052252, 0. ]])" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps.D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`psa.PSAnalysis` provides two convenience methods for plotting this data. The first is to plot a heat-map dendrogram from clustering the trajectories based on their path similarity. You can use any clustering method supported by [scipy.cluster.hierarchy.linkage](https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html); the default is 'ward'." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:52.189881Z", "iopub.status.busy": "2021-05-19T06:24:52.188852Z", "iopub.status.idle": "2021-05-19T06:24:52.363638Z", "shell.execute_reply": "2021-05-19T06:24:52.364556Z" } }, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312648, 2. ],\n", " [ 3. , 5. , 2.25503365, 3. ],\n", " [ 4. , 6. , 9.20452463, 4. ],\n", " [ 2. , 7. , 29.13448037, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264831939273, 1.3331264831939273, 0.0],\n", " [0.0, 2.2550336453918844, 2.2550336453918844, 1.3331264831939273],\n", " [0.0, 9.204524628710315, 9.204524628710315, 2.2550336453918844],\n", " [0.0, 29.134480368642226, 29.134480368642226, 9.204524628710315]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['C1', 'C1', 'C0', 'C0'],\n", " 'leaves_color_list': ['C0', 'C0', 'C1', 'C1', 'C1']},\n", " array([[ 0. , 25.74534554, 22.42282661, 22.37206002, 22.3991666 ],\n", " [25.74534554, 0. , 7.67052252, 7.55204678, 7.55032598],\n", " [22.42282661, 7.67052252, 0. , 2.04737477, 2.07957562],\n", " [22.37206002, 7.55204678, 2.04737477, 0. , 1.33312648],\n", " [22.3991666 , 7.55032598, 2.07957562, 1.33312648, 0. ]]))" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ps.plot(linkage='ward')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The other is to plot a heatmap annotated with the distance values. Again, the trajectories are displayed in an arrangement that fits the clustering method.\n", "\n", "
\n", " \n", "**Note**\n", "\n", "You will need to install the data visualisation library [Seaborn](https://seaborn.pydata.org/installing.html) for this function.\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:52.369679Z", "iopub.status.busy": "2021-05-19T06:24:52.369035Z", "iopub.status.idle": "2021-05-19T06:24:53.236726Z", "shell.execute_reply": "2021-05-19T06:24:53.237186Z" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312648, 2. ],\n", " [ 3. , 5. , 2.04737477, 3. ],\n", " [ 4. , 6. , 7.55032598, 4. ],\n", " [ 2. , 7. , 22.37206002, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264831939273, 1.3331264831939273, 0.0],\n", " [0.0, 2.047374774767044, 2.047374774767044, 1.3331264831939273],\n", " [0.0, 7.550325981004795, 7.550325981004795, 2.047374774767044],\n", " [0.0, 22.372060021101248, 22.372060021101248, 7.550325981004795]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['C1', 'C1', 'C0', 'C0'],\n", " 'leaves_color_list': ['C0', 'C0', 'C1', 'C1', 'C1']},\n", " array([[ 0. , 25.74534554, 22.42282661, 22.37206002, 22.3991666 ],\n", " [25.74534554, 0. , 7.67052252, 7.55204678, 7.55032598],\n", " [22.42282661, 7.67052252, 0. , 2.04737477, 2.07957562],\n", " [22.37206002, 7.55204678, 2.04737477, 0. , 1.33312648],\n", " [22.3991666 , 7.55032598, 2.07957562, 1.33312648, 0. ]]))" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ps.plot_annotated_heatmap(linkage='single')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Discrete Fréchet distances" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The discrete Fréchet distance between two conformation transition paths $P$ and $Q$ is:\n", "\n", "$$\\delta_{dF}(P,Q) = \\min_{C \\in \\Gamma_{P,Q}} \\|C\\|$$\n", "\n", "where $C$ is a coupling in the set of all couplings $\\Gamma_{P,Q}$ between $P$ and $Q$. A coupling $C(P,Q)$ is a sequence of pairs of conformations in $P$ and $Q$, where the first/last pairs are the first/last points of the respective paths, and for each successive pair, at least one point in $P$ or $Q$ must advance to the next frame.\n", "\n", "$$ C(P,Q) \\equiv (p_{a_1}, q_{b_1}), (p_{a_2}, q_{b_2}), ..., (p_{a_L}, q_{b_L}) $$\n", "\n", "The coupling distance $\\|C\\|$ is the largest distance between a pair of points in such a sequence.\n", "\n", "$$\\|C\\| \\equiv \\max_{i=1, ..., L} d(p_{a_i}, q_{b_i})$$\n", "\n", "\n", "In MDAnalysis, the discrete Fréchet distance is the lowest possible RMSD between a conformation from $P$ and a conformation from $Q$, where the two frames are at similar points along the trajectory, and they are the least structurally similar in that particular coupling sequence. [[6-9]](#References)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:53.240448Z", "iopub.status.busy": "2021-05-19T06:24:53.239882Z", "iopub.status.idle": "2021-05-19T06:24:53.390496Z", "shell.execute_reply": "2021-05-19T06:24:53.390988Z" } }, "outputs": [ { "data": { "text/plain": [ "array([[ 0. , 1.33312649, 22.37205967, 2.04737475, 7.55204694],\n", " [ 1.33312649, 0. , 22.39916723, 2.07957565, 7.55032613],\n", " [22.37205967, 22.39916723, 0. , 22.42282569, 25.74534511],\n", " [ 2.04737475, 2.07957565, 22.42282569, 0. , 7.67052241],\n", " [ 7.55204694, 7.55032613, 25.74534511, 7.67052241, 0. ]])" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps.run(metric='discrete_frechet')\n", "ps.D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:53.432713Z", "iopub.status.busy": "2021-05-19T06:24:53.394237Z", "iopub.status.idle": "2021-05-19T06:24:53.559942Z", "shell.execute_reply": "2021-05-19T06:24:53.560407Z" } }, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312649, 2. ],\n", " [ 3. , 5. , 2.25503365, 3. ],\n", " [ 4. , 6. , 9.20452471, 4. ],\n", " [ 2. , 7. , 29.13448001, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264917717554, 1.3331264917717554, 0.0],\n", " [0.0, 2.2550336465704057, 2.2550336465704057, 1.3331264917717554],\n", " [0.0, 9.204524708552725, 9.204524708552725, 2.2550336465704057],\n", " [0.0, 29.134480014437507, 29.134480014437507, 9.204524708552725]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['C1', 'C1', 'C0', 'C0'],\n", " 'leaves_color_list': ['C0', 'C0', 'C1', 'C1', 'C1']},\n", " array([[ 0. , 25.74534511, 22.42282569, 22.37205967, 22.39916723],\n", " [25.74534511, 0. , 7.67052241, 7.55204694, 7.55032613],\n", " [22.42282569, 7.67052241, 0. , 2.04737475, 2.07957565],\n", " [22.37205967, 7.55204694, 2.04737475, 0. , 1.33312649],\n", " [22.39916723, 7.55032613, 2.07957565, 1.33312649, 0. ]]))" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ps.plot(linkage='ward')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T06:24:53.590497Z", "iopub.status.busy": "2021-05-19T06:24:53.585943Z", "iopub.status.idle": "2021-05-19T06:24:53.722090Z", "shell.execute_reply": "2021-05-19T06:24:53.722499Z" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312649, 2. ],\n", " [ 3. , 5. , 2.04737475, 3. ],\n", " [ 4. , 6. , 7.55032613, 4. ],\n", " [ 2. , 7. , 22.37205967, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264917717554, 1.3331264917717554, 0.0],\n", " [0.0, 2.047374750604888, 2.047374750604888, 1.3331264917717554],\n", " [0.0, 7.550326126269361, 7.550326126269361, 2.047374750604888],\n", " [0.0, 22.37205966687729, 22.37205966687729, 7.550326126269361]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['C1', 'C1', 'C0', 'C0'],\n", " 'leaves_color_list': ['C0', 'C0', 'C1', 'C1', 'C1']},\n", " array([[ 0. , 25.74534511, 22.42282569, 22.37205967, 22.39916723],\n", " [25.74534511, 0. , 7.67052241, 7.55204694, 7.55032613],\n", " [22.42282569, 7.67052241, 0. , 2.04737475, 2.07957565],\n", " [22.37205967, 7.55204694, 2.04737475, 0. , 1.33312649],\n", " [22.39916723, 7.55032613, 2.07957565, 1.33312649, 0. ]]))" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ps.plot_annotated_heatmap(linkage='single')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "[1] Oliver Beckstein, Elizabeth J. Denning, Juan R. Perilla, and Thomas B. Woolf.\n", "Zipping and Unzipping of Adenylate Kinase: Atomistic Insights into the Ensemble of OpenClosed Transitions.\n", "Journal of Molecular Biology, 394(1):160–176, November 2009.\n", "00107.\n", "URL: https://linkinghub.elsevier.com/retrieve/pii/S0022283609011164, doi:10.1016/j.jmb.2009.09.009.\n", "\n", "[2] Richard J. Gowers, Max Linke, Jonathan Barnoud, Tyler J. E. Reddy, Manuel N. Melo, Sean L. Seyler, Jan Domański, David L. Dotson, Sébastien Buchoux, Ian M. Kenney, and Oliver Beckstein.\n", "MDAnalysis: A Python Package for the Rapid Analysis of Molecular Dynamics Simulations.\n", "Proceedings of the 15th Python in Science Conference, pages 98–105, 2016.\n", "00152.\n", "URL: https://conference.scipy.org/proceedings/scipy2016/oliver_beckstein.html, doi:10.25080/Majora-629e541a-00e.\n", "\n", "[3] Naveen Michaud-Agrawal, Elizabeth J. Denning, Thomas B. Woolf, and Oliver Beckstein.\n", "MDAnalysis: A toolkit for the analysis of molecular dynamics simulations.\n", "Journal of Computational Chemistry, 32(10):2319–2327, July 2011.\n", "00778.\n", "URL: http://doi.wiley.com/10.1002/jcc.21787, doi:10.1002/jcc.21787.\n", "\n", "[4] Sean L. Seyler, Avishek Kumar, M. F. Thorpe, and Oliver Beckstein.\n", "Path Similarity Analysis: A Method for Quantifying Macromolecular Pathways.\n", "PLOS Computational Biology, 11(10):e1004568, October 2015.\n", "URL: https://dx.plos.org/10.1371/journal.pcbi.1004568, doi:10.1371/journal.pcbi.1004568." ] } ], "metadata": { "kernelspec": { "display_name": "Python (mda-user-guide)", "language": "python", "name": "mda-user-guide" }, "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.10" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }