{ "cells": [ { "cell_type": "markdown", "id": "89716a4d", "metadata": {}, "source": [ "# Replaying Parts of a Simulation\n", "\n", "When simulating a bio-realistic network, cells will receive synaptic stimulation from both locally recurrent connections as well as feedforward connections from external inputs. Often when analyzing the results of full network activity we would like to know the contribution of only a subset of the synaptic activity. For example, how much the feedforward synapses, or only recurrent synapses between specific population of cells, contribute to the simulation results. Certain techniques, like running with only a subset of the full network, or using optogenetics/current-clamp to turn on-off subpopulations, can provide useful insights but do not tell the full story of a network simulation.\n", "\n", "Instead we can use the BMTK \"replay\" input module to disentangle subsections of simulation activity from the full network in BioNet/biophysically realistic simulations. The BMTK \"replay\" module let's the user take a previous simulation, and replay a simulation using only activity from a subset of the synapses. This can be helpful in parameter tuning and optimization, and for very large networks can provide an efficient manner to replay small subsets of a full network.\n", "\n", "
\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "id": "3b68e530", "metadata": {}, "outputs": [], "source": [ "from bmtk.simulator import bionet\n", "from bmtk.analyzer.spike_trains import plot_raster" ] }, { "cell_type": "markdown", "id": "7cb56a64", "metadata": {}, "source": [ "## Initial Simulation (Generating a Baseline for Synaptic Activity)\n", "\n", "The first step is to take an existing network + simulation or build one from scratch. For more information on how to build and run BioNet simulations please see existing [tutorials](https://alleninstitute.github.io/bmtk/tutorials.html). For our example we copy the [bionet_450cell example network](https://github.com/AllenInstitute/bmtk/tree/develop/examples/bio_450cells), although any network that is synaptically stimulated will work. \n", "\n", "We will run the full network once and save the spike-trains file (see \"**outputs**\" section in *config.simulation.json*) under *previous_results/spikes.baseline.h5*. This baseline spike-train file will be used when replaying the simulation using only a subset of the full set of synapses." ] }, { "cell_type": "code", "execution_count": 2, "id": "09838767", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-01-11 14:45:04,875 [INFO] Created log file\n", "2023-01-11 14:45:05,001 [INFO] Building cells.\n", "2023-01-11 14:45:26,161 [INFO] Building recurrent connections\n", "2023-01-11 14:45:31,537 [INFO] Building virtual cell stimulations for external_spikes\n", "2023-01-11 14:45:32,240 [INFO] Running simulation for 2000.000 ms with the time step 0.100 ms\n", "2023-01-11 14:45:32,241 [INFO] Starting timestep: 0 at t_sim: 0.000 ms\n", "2023-01-11 14:45:32,241 [INFO] Block save every 5000 steps\n", "2023-01-11 14:45:56,556 [INFO] step:5000 t_sim:500.00 ms\n", "2023-01-11 14:46:21,101 [INFO] step:10000 t_sim:1000.00 ms\n", "2023-01-11 14:46:45,735 [INFO] step:15000 t_sim:1500.00 ms\n", "2023-01-11 14:47:11,577 [INFO] step:20000 t_sim:2000.00 ms\n", "2023-01-11 14:47:11,600 [INFO] Simulation completed in 99.36 seconds \n" ] } ], "source": [ "conf = bionet.Config.from_json('bio_disconnected_sims/config.simulation.json')\n", "conf.build_env()\n", "\n", "net = bionet.BioNetwork.from_config(conf)\n", "sim = bionet.BioSimulator.from_config(conf, network=net)\n", "sim.run()" ] }, { "cell_type": "code", "execution_count": 3, "id": "c69855d2", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plot_raster(config_file='bio_disconnected_sims/config.simulation.json', group_by='model_name')" ] }, { "cell_type": "markdown", "id": "f1da776d", "metadata": {}, "source": [ "## Simulation with Only Feedforward (Virtual) Synaptic Activity\n", "\n", "One useful method for analyzing a full network is to run a simulation with only feedforward virtual networks without any recurrent connections. The network will still be driven by virtual (pre-defined) spike inputs into the synapses of our primary contingent of cells, but the local cell-to-cell connectivity will be removed. This way we can see how much of our network is driven purely by the outside stimulation.\n", "\n", "To run a simulation with virtual stimulation only we only need to edit the \"networks\" section of our simulation configuration to exclude the recurrent connectivity. Here we make a copy of *config.simulation.json* which we'll name \"*config.simulation_feedforward.json*\" and update the \"networks\" sections to remove the recurrent (*internal_internal_edges* files) connections:\n", "\n", "```json\n", "{\n", " \"networks\": {\n", " \"nodes\": [\n", " {\n", " \"nodes_file\": \"$NETWORK_DIR/internal_nodes.h5\",\n", " \"node_types_file\": \"$NETWORK_DIR/internal_node_types.csv\"\n", " },\n", " {\n", " \"nodes_file\": \"$NETWORK_DIR/external_nodes.h5\",\n", " \"node_types_file\": \"$NETWORK_DIR/external_node_types.csv\"\n", " }\n", " ],\n", " \"edges\": [\n", " {\n", " \"edges_file\": \"$NETWORK_DIR/external_internal_edges.h5\",\n", " \"edge_types_file\": \"$NETWORK_DIR/external_internal_edge_types.csv\"\n", " }\n", " ]\n", " }\n", "}\n", "```\n", "\n", "Also just so we don't overwrite our previous output we can update the \"output\" folder where spikes are stored:\n", "```json\n", "{\n", " \"output\": {\n", " \"output_dir\": \"$BASE_DIR/output_feedforward\",\n", " \"log_file\": \"log.txt\",\n", " \"spikes_file\": \"spikes.h5\"\n", " }\n", "}\n", "```\n", "\n", "Then we can rerun the simulation with feedforward only and plot the results:" ] }, { "cell_type": "code", "execution_count": 4, "id": "0f477598", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-01-11 14:47:11,973 [INFO] Created log file\n", "Mechanisms already loaded from path: /local1/workspace/bmtk/docs/tutorial/bio_disconnected_sims/components/mechanisms. Aborting.\n", "2023-01-11 14:47:12,004 [INFO] Building cells.\n", "2023-01-11 14:48:16,629 [INFO] Building recurrent connections\n", "2023-01-11 14:48:16,870 [INFO] Building virtual cell stimulations for external_spikes\n", "2023-01-11 14:48:18,247 [INFO] Running simulation for 2000.000 ms with the time step 0.100 ms\n", "2023-01-11 14:48:18,248 [INFO] Starting timestep: 0 at t_sim: 0.000 ms\n", "2023-01-11 14:48:18,249 [INFO] Block save every 5000 steps\n", "2023-01-11 14:48:59,110 [INFO] step:5000 t_sim:500.00 ms\n", "2023-01-11 14:49:40,297 [INFO] step:10000 t_sim:1000.00 ms\n", "2023-01-11 14:50:21,635 [INFO] step:15000 t_sim:1500.00 ms\n", "2023-01-11 14:51:03,666 [INFO] step:20000 t_sim:2000.00 ms\n", "2023-01-11 14:51:03,691 [INFO] Simulation completed in 2.0 minutes, 45.44 seconds \n" ] } ], "source": [ "bionet.reset()\n", "\n", "conf = bionet.Config.from_json('bio_disconnected_sims/config.simulation_feedforward.json')\n", "conf.build_env()\n", "\n", "net = bionet.BioNetwork.from_config(conf)\n", "sim = bionet.BioSimulator.from_config(conf, network=net)\n", "sim.run()" ] }, { "cell_type": "code", "execution_count": 5, "id": "479e594f", "metadata": {}, "outputs": [ { "data": { "image/png": "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hsR8kxixxCneIvMvc+rFbzTijIgRTtD3GKeMi+zF15v3Vj23aniZeZPKkIjIdiLyGfd9D9cnSY3jc5XMqDzNpgyLXJeIM1J+A3dGyxmR8lR5/SlMtqRThHH5xBHUbnHKOK4XX49iXrZmGZ06deJzYz/HbrvtxmGHHZb6Jt+TTjqJu+66K1WZVSKNz/YvA3cBv3CDBgF/qD13794yOgA1hVHE6CIP45Q0jyTxvHGi4ocZhaz1SWP08jLoSfMJky3pFGFcPnmSdNoojWIOyrNHjx489sxjzJs3jy222ILrrrsucX7r169PHDes/LJJMyL5Gs65kJUAqroASD8mM5qeIqen8sg7SR4/m/2zRPFqcZLGzyJLvQSVkaW33whZG41/pOIdefzlzltzydMfvvfee/P6668DMHv2bMaMGcOIESM48sgjeeeddwAYO3Ys3//+9znggAO45pprAHj44YfZb7/92HHHHbn33nsDy4gqv0zSGJIPVHVd7YOIdMZ2ahklklZZenvcYb3hsF1aRfSei5warMlbhSmyvOuZJb9aL9478njyrt/mIo93hPDRRx8xbdo0Dj/8cABOOOEEfvSjHzF37lyGDx/ORRdd1Bp3xYoVTJ8+nbPPPhtw/JVMnz6d++67j9NOO421a9cmKrMKpDEk00Xk+0APERkP3An8qRixDCOetMo9SY/bv0srqSLOotyi5Dl95OmheaYxDlUwgGe0nBGYJquByTJyiuvF16OYt+q5Ves18ltuuSVvv/0248eP591332XFihUccMABAJx44ok89thjremOOeaYNvl8/vOf52Mf+xhDhw5l++2354UXXshcn0aTxpCcBywDngO+CtwP/L8ihDKMqpBUEec9LXRGyxmheZZ9mDGvKb4qTaV5FXOWhffaNfKLFi1i3bp1idZIevXq1eaz3+GV/3OVSWxIVHWDqt6gqhNV9Wj3feTUVoSr3S1EZKqILHD/bu5JY6522wlVmFYJI21vuIo71KLat5HyVuF7Tqr8k4w86tkR1a9fP6699lp+8pOf0LNnTzbffHMef/xxAG655ZbW0UkQd955Jxs2bODll1/mlVdeYaeddsosR6NJcvtv4K2/SW7/JdzV7nnANFUdCkxzP5ur3SYhqeJIMzWUJt9a3HqUZVhvOGiXVtaF9qKJGpnU5E3bRo2+9DIvkir/qMX3JOFxzwB23313Ro4cyW233cbNN9/MOeecw4gRI5g9ezYXXHBBaLqddtqJAw44gIMPPpjrr7+e7t2b6NYpVY18Adu5r8vd13D3dRlwQVx6X173AOOBF4GBbthA4EX3/feA73ni/xnYOyrPUaNGqdFYdpuyW+J4SeOmyTdt3Hq47q/XNayspFz31+tUtZg2yJJn2e3z/PPP67xl81Kne+KO3wSmm7dsXmR+Wcoqm+eff36TMGCmptDfUa8kt//WbvndV1W/q6rPua/zgMRTTz5Xu1vrxluFl7BxG/HHgdc8yUJd7YrITBGZuWxZtQ7mtGcaPYURV17e8gTll8dIpJZv1vr4w7PIVIXpJy9RBxTj7jfzs2rdqkwy7DPxuMDwMndE1XtivawT72kW23uJyKdqH0RkH6BXRPxWAlzthkYNCDNXuxUh7RRGvfP0ceXlPaVS1BRNLd+s9cnjsGOR009ZvueoA4px95v5yWpIwki6I6oIpV3vifVla5aVYkwSu9oFTgVuEpF+7ucVwClxiYJc7QJLRWSgqi5xvSXWam6udpuApIojbc85jUJKczljveSxcF3EiKAq6zZVkSMLYaOPqFGJ90xK1bbhQjlypdm1NUtVRwIjgJHqOKl6NipNmKtdHJe6J7rvT8RZO6mFm6vdipNGcRQdtxFTNnkoyiosSLdnsk5HxZ1ST/uso5Lmrq1+InIl8L/ANBG5wjM6CSPM1e5lwHgRWYCz+H4ZmKvdqtPoLbBx5eU9KklyALAew5WkPlnS5VF2nmVlLacWlvR+sxp9uvaphHLPY0qp3luMS1vfSboqjzM9dRGwvfu6ELg7r1X/rC/btdWxacSOod2m7FbXTqm0u9fKolbHuLCwOEni1iNLGEE7khrB0veWtvlc9G6upe8tTVSGXy7VCuza8rCDql6oqq+4r5pRMYx2T0eYmsp6Q2/SzQT1ylI1/KOgX1z5C4YNG8aIESNoaWnh6aefzq2sxx57jLFjxjLyX0bGXjdfk6uRi+5pDMn7vl1b+wLv5y+SYSTn9JGnV25rq58qnoo38uXJJ5/ksamP8eD/PcjcuXN5+OGH+cQnPhGfMCHbbrstl/zXJUz43ITEaRrpsySNITkduE5EForIQuCnOHduGUZpxDmIyoO0c/Z+mmlXU9WNcp68O3VRbr32JUuWsNWArVj5kXO6oX///myzzTbMmDGDffbZh5EjR7LnnnuyatUqpkyZwlFHHcVBBx3E9v+6Pd/97ndb8+nduzfnn38+I0eOZMyYMSxduhSAwYMHs9OwnejZpWebclevXs24cePYY489GD58OPfccw9lkMaQ/A3nZPtNwN04Tq2OyF8kw6gW3ttrsxqFZhiVBG1eSOP8K89t0o1or1XT/pFbr/3AAw/kzTfe5JC9DuGMM85g+vTprFu3jmOOOYZrrrmGOXPm8PDDD9OjRw/A8VNy++23c9ejd3H77bfz2mvOOez33nuPMWPGMGfOHPbff39uuOGG1jIG9BxA985tr03p3r07v//973n22Wd55JFHOPvss2tr2g0ljSG5BzgMWAu8DqwG3itCKMOA4nrH/nyTnDxPY0CKOiFfNElu6I2qW57bpPNqr0atE/Tu3ZtZs2Zx4ZUXMmDAAI455hh+8YtfMHDgQD75yU8C0LdvXzp3do7ujRs3jn79+tGtezd23XVXFi1aBEDXrl059NBDARg1ahQLFy5sLSNoZ5qq8v3vf58RI0bwmc98htdff711FNPIHVxpDMkgVT1WVS9X1Stqr8IkMzo8Saes0vZe/fnmvVjcDAvFWWm2ujVynaBTp04cMv4QLrroIn76059y9913h14F361btzbpau52u3Tp0prGGx7GrbfeyrJly5g1axazZ89m6623bnWI1cgt0WkMyV9EZHhhkhgdmnpGH3m5mu0opLl+vr20Y9jIJK9e+4svvsiCBQtalffs2bPZZZddeOONN5gxYwYAq1at2sQw1Fv+u+++y1ZbbUWXLl145JFHWkc2jSaNIfkUMMv1EzK3dr18UYIZ7Z8iXdk2Q8+5LCWd5Pr5qLhZ5C6yrknu2gobmeTVa1+9ejVfOP4L7LrrrowYMYLnn3+eiy++mNtvv52vf/3rjBw5kvHjx2/iPjdp+TNmzGDQoEHceeedfPWrX2XYsGEAHHfcccycOZPRo0dz6623svPOO+dSn9QkPXDCxuvk27zyOtCS9WUHEpsX7yG9oAN79RxwizoA6M837wN1SfMp65BiPdf1Z71WP2maLN/Bw888HPqsdjgv6CDfiocWpi4riipfL1+ZA4nqXifvfxVh3AwDilug9ueb52JxnvlUkaLrlnf+UT3+fuO3y7Wsjkyaqa3UiMhNIvKmiMzzhE0Wkdd9d2/Vnpmb3Q5K3ts9m2G7bcvf466qS89f7rw1Nvz0kaeHxvPTDO2YhAE9B7D67bfKFqPdUqghAabguMz1c5U6twe3qOr9YG52OyJeJZV3TzRtfkkVa560vLRZonhpZHvyrt/Ghp/RckZoPD9B7ZjFuBRpkHp37b3J2Qm/0diq51asfuftwmSAch1iReFvmyIo1JCo6mNA0m/vs8BtqvqBqr4KvATsWZhwRunkYTzyMgA1xZqkR99okir9vAmrc5bvrcgpsa36bsVbb73VRmHmaTRWv/1WotFMFW4g9qOqLF60sHD/72kcW+XJmSJyAjATOFtV38FxqfuUJ06gm13D8PLkXb8NdZmaZ355l9MMNEudBw0axOLFi/G63V657E3eWdd2q21QWBJWLnO2DvcdUD1DkYTX58/lgM8eVWgZZRiSnwM/wHGh+wPgChxPi4nc7ILjsx34CjiXmRlGM7L30ZMalqc/vIiyy6JLly4MGTKkTdgVk8/h7NvvbRP2l3nPssv+B6TO/4rJ5wBskl+zcP/kc/jM0ccUWkbRaySboKpLVfUjVd0A3MDG6avEbnbVfLYbOVOGYk3a289DNn9ZRYw0ypz+8xPUZlUYXVWpjfKk4YbE9dFe40igtqPL3OwaqcnLANSUTNIefSNJowDzWE+pKbu0dS5rLSeIPI3G3kdPyu37L6ONGvHbLXr772+BJ4GdRGSxiJwKXO45Ff9p4FtgbnaNbOTdywzLL205/p5nFXqicTLUnteUXdI6e/PNq55VaK8a+0w8rtTRTL1t0QjZi961NUlVB6pqF1UdpKo3qurxqjpcVUeo6uGqusQT/1JV3UFVd1LVB4qUzTCKxN/zrEJvPU6GrDJ60+VVzyq0V1VohrZo+NSWYRjFUeYUXHtawC+K9tpGZkgMox2RxzRGVmWXpewqTWE1gios+BeBGRLDKIAqbreNk6H2PK2y8+ab1wJ9VD4dzfhU4bcThxkSwwihHoWVZLtt0QrRn3+cgcjaW/amy6vHHZVPI9cMqmC09pl4XGY5GnVTgxkSozJU4Z/WS1qFlVb+ohVilvyL2IHVaPKUuyoL3Wnk8NY/yd1reWCGxKgMVfmnzUqzyw/F7MCKoohpm/bwPdRDGfU3Q2IYRmlkmQprhjWDjoYZEsMIoWiFFZR/XnPhf7nz1szyV2FKK0qGRu58qorRyipHo25qMENiVIaq/NPWqGf3Utb88zgUWPuctbdfhcXsemTI83dUle26aeTw1j+vmxriMENiFEIVerWNJuqfs1naw1+Honf95GW0vPJURfmXRRn1N0NiFEIWBdGeF0mbtW6N2vVTL1WTp6NRhs/2LURkqogscP9u7nlmPtuNDo1/WiZpzz/PA5C1tGF5RMlU70gl683DRrmU4bP9PGCaqg4FprmfzWe7YbDptETSnnae/kbi0kbJlHZk4DcYaW8eNqpBGT7bPwvc7L6/GTjCE24+29sJWXqU7bkX2ox1e/Ku32ba9ZNmVJKXwWjG9m1PlLFGsnXt6nj3b80R8seB1zzxQn22i8hXRGSmiMz0+mk2qkMWBdGee6HNWrcsu37KWK9o1vZtL1RpsT2xz3ZztWvUS7PsoqpiTztKpnrlTZu+9j02y/fZXinDkCytudt1/77phif22W4Y9dIsu3zK7GmHKXWvTGkvhowjbfra99gs32d7pQxD8kfgRPf9icA9nnDz2W4YFSGJUjcFbgB0LjJz12f7WKC/iCwGLgQuA+5w/bf/A5gIjs92Ean5bF+P+Ww3DMNoCsrw2f6Wqo5T1aHu37c98c1nu5GaLPPjRa892Jx9Y4g785KUPL+vjvjdV2mx3TAykWV6pei1h0ZO+bw7dVEucbJw0D6nbRLWyA0Cte+x3u8zz++rI073mSExKo1XAZapMIsgL1lXTftHLnGy0G9Jv03CbCtux8MMiVEp/MrVqwDLVJhFECZrGcawmQywl6rIXRU5ysIMiVEpshiCZjtrEUfexjCJkvOXWTVjFvYsbVuF5VPvb8grR56/x2YxUGZIjKanilMpjZSpz7htI5+vmvaP2DhBafIoO68y8zKuYfnk+X3lmVezjLDNkBiVxquokiitPBVbXoT1KvOStd/47ULLqIX3G79d6nyT9Iaz5Js076qTZQRVT55VyC8MMyRGpfArV6+iSqK0siq2IgnrVYbJmsXAhJVRz8iiyN5wXnnX5C5aYQbl762Dv/2y1i/vNm/UiMYMiVEpqmgIGk3ebZDEMPlHNUmNWdCuujd/MSelhPFlhj2rtVXRCjMu/6J+t40ylPVihsQw2jlJlZxXWWZJU3u/7tWVKaTbSFSZzdjByGPqK8xQVs2wmCExDB9pz67Ekee6Tdr1lnrKLnK9KWveVdpNFjeCyrJ5IGm75LEZYmCfAdskyiQBpRkSEVkoIs+JyGwRmemGhbrhNYxGkfbsShxRi+FRxM3Le+OF9diT9uTrUdBZ0mYdYdSrgLOuPwWlK2IElffIKyq//r22GJhXOWWPSD6tqi2qOtr9HOiG1zCanSwGKWmaPIxdkLJMkq+3513mjrmkCrgqCj4tVdyN6KVsQ+InzA2vYRgFk0VZpt1V15HIsnkgjKq3bZmGRIGHRGSWiHzFDQtzw9sGc7VrFEnasyuNpGryNJoy6p+1zKpvHlj+3ttL8sqrTEOyr6ruARwMfE1E9k+a0FztGknIOu9fRC87izJKOi+fh3INyqPrkL6Z0hap7MtQwFVQ+kWwZNWy3DzQlmZIVPUN9++bwO+BPQl3w2sYqanS9RL1ThvlnXeSPJJu4/Wnba+Kt0pUbWRaiiERkV4i0qf2HjgQmEe4G17DiKURW0OzbA1u1KnroHLKPG+Qtuy8t123Z6pmrMsakWwN/J+IzMHxy36fqj6I44Z3vIgsAMa7n40ORJwCiXq+ato/Crn/yF9G0Psscr07dVGuMgWNwMoclaUtO27bdaONS9z9ZcZGSjEkqvqKqo50X8NU9VI3PNQNr1EN8uw1Jj0nkfV52HbWeoxVHnJ5w5Io2yzGscyDlEWN1MIMdyPKiwovuvMSRz0jv7yo2vZfo+IkOayX9IeaR285b6X/7tRFlXI4BdmuV4+rYxT13BgcVHZevkTC0jbyvE3afIsq09um9Yz88sIMiZE7jZxOyfsG1jilkGVrcBELo0HKOaicpLf6himmeoxnrews30PaSyM72nRTlTaSgBkSo8mIUjD9xm8X+TzpdlYIV0xhW4PDyq1dXxL2PE6mJL35Wt5BI4gsly8mCS/CV4m3jZJuc45aH6qXIu4vy5M0xrNoQ2uGxEhFnof1sqSPU05Rz2vbWePKjbtwL025tXzCnsdtsY3zbthn3Lal7OApQnGn+W4bMTJMen9ZnifY05DmapqiRzBmSIxUJDmsl/SfJ4/DdfX4sAhLk6fDqTzI+4R0EkOaJ0W0W5ZDo0UZ3KzfTx7ThnFlNAozJEbu1PPDTps2byVb9WstatRjDOIMeNyUXVoFWKRhruVRlemmNNQzSqjSbxHMkBgdiDTKJmrNI68y+4zbNrNBqGeKLyx+UN2C8kky3Za0zHqp5VG2Yi1jsT/r77kIo2uGxOgwpFE2cWseeZTZb/x2uRuEekhTtygfK2Ur9TIoYxdV1t9zEd+PGRKjXVKF7aBVkKFIylCe7ekalWacjgvDDInRLqnCPvsqyFAEZSrAvL1Xlkl7GrlVzpCIyEEi8qKIvCQi5iHRqBTtqRfpp5FrG+2N9vy7SEKlDImIdAKuw/FRsiswSUR2LVcqw9hIWiWa931kRU7n1HOA0EtWGZt5qqqjG9dKGRIcnyQvuZc6rgNuw3G/axipqEIPMcvBRj/+9FWazslrQ0KadFX2XtmREVUtW4ZWRORo4CBV/ZL7+XhgL1U90xfvK0DNPe9OwIsNFdQwEjL8X3Ya9dw/X5yVV/p682sEWWVshrq1M7ZT1VxczHbOI5MckYCwTSydqv4S+GXx4hiGYRhxVG1qazHwCc/nQUBufoUNwzCM/KmaIZkBDBWRISLSFTgWx/2uYRiGUVEqNbWlqutF5Ezgz0An4CZVnV+yWIZhGEYElVpsNwzDMJqPqk1tGYZhGE2GGRLDMAyjLsyQGIZhGHVhhsQwDMOoCzMkhmEYRl2YITEMwzDqwgyJYRiGURdmSAzDMIy6MENiGIZh1IUZEsMwDKMuzJAYhmEYdWGGxDAMw6gLMySGYRhGXZghMQzDMOqiUv5IstC/f38dPHhw2WIYhmE0FbNmzVreXn22p2bw4MHMnDmzbDEMIzGDz7sPgIWXHVKyJEZHRkQW5ZWXTW0ZhmEYdWGGxDAMw6gLMySGYRhGXZghMQzDMOqi6RfbDcPIh9omAC+2IcBIgo1IDMMwjLqwEYlhGE2LdxRlo6fysBGJYRTI4PPuC5wyMoz2hI1IDMODHRZMjo0GjBo2IjGMGGxUYRjR2IjEMJqUoNFT0jCjOUZUzfLdmSExjABsBNKWZlC6HYUqGhczJEZliPoHyUuRBeVTVaNRT52T1imvujfiDEqjjJmdp0mPGRKjaalXsVTVgHRkiuptF2GEmtHgFPWbN0NiNB1R/wxVmIKp55+1Ixm39thOVZh2KsPAmSExSqXIqZVmotHyN0KJ5zWNWKXvtp66t2fMkBgdgryVUVk9z6B6VEnRGuHEGZeka4RVxAyJUQhxvdH20ktrxIJ4XjTTaKDIEVPVlXLV5QvCDImRiLznXau+zhFEe5zTbxQdvf5htJd2MUNiZCbp9E57+Wcxqk2Rv7O8OxFFTbVmfV4vZkgMIyeqqsiMeKx968MMiQFEX62RJZ+8sH9ww6g+ZkiMujFlbxiNp0r/d6KqZctQFyKyCnixbDkS0B9YXrYQCTA586UZ5GwGGcHkzJudVLVPHhm1hxHJi6o6umwh4hCRmSZnfpic+dEMMoLJmTciMjOvvMwfiWEYhlEXZkgMwzCMumgPhuSXZQuQEJMzX0zO/GgGGcHkzJvc5Gz6xXbDMAyjXNrDiMQwDMMoETMkhmEYRl00tSERkYNE5EUReUlEzitRjk+IyCMi8jcRmS8iZ7nhk0XkdRGZ7b4meNJ8z5X7RRH59wbKulBEnnPlmemGbSEiU0Vkgft38zLlFJGdPG02W0RWisg3q9CeInKTiLwpIvM8YanbT0RGud/DSyJyrYhIA+T8sYi8ICJzReT3IrKZGz5YRN73tOv1JcuZ+nsuUs4QGW/3yLdQRGa74WW2ZZgeKv73qapN+QI6AS8D2wNdgTnAriXJMhDYw33fB/g7sCswGfhOQPxdXXm7AUPcenRqkKwLgf6+sMuB89z35wE/KltO3/f8T2C7KrQnsD+wBzCvnvYDngH2BgR4ADi4AXIeCHR23//II+dgbzxfPmXImfp7LlLOIBl9z68ALqhAW4bpocJ/n808ItkTeElVX1HVdcBtwGfLEERVl6jqs+77VcDfgI9HJPkscJuqfqCqrwIv4dSnLD4L3Oy+vxk4whNetpzjgJdVdVFEnIbJqaqPAW8HlJ+4/URkINBXVZ9U57/21540hcmpqg+p6nr341PAoKg8ypIzglLaM0pGt6f+eeC3UXk0qC3D9FDhv89mNiQfB17zfF5MtPJuCCIyGNgdeNoNOtOdSrjJM6QsU3YFHhKRWSLyFTdsa1VdAs6PEdiqAnLWOJa2/6RVa09I334fd9/7wxvJKTg9zRpDROSvIjJdRPZzw8qUM833XKac+wFLVXWBJ6z0tvTpocJ/n81sSILm7ErdyywivYHfAd9U1ZXAz4EdgBZgCc4QGMqVfV9V3QM4GPiaiOwfEbfUNhaRrsDhwJ1uUBXbM4owucpu1/OB9cCtbtASYFtV3R34NvA/ItKX8uRM+z2X2Z6TaNvRKb0tA/RQaNQQmVLL2syGZDHwCc/nQcAbJcmCiHTB+fJuVdW7AVR1qap+pKobgBvYON1Smuyq+ob7903g965MS93hbG0I/mbZcrocDDyrqkuhmu3pkrb9FtN2Wqlh8orIicChwHHutAXu1MZb7vtZOHPlO5YlZ4bvuRQ5RaQzcBRwey2s7LYM0kM04PfZzIZkBjBURIa4PddjgT+WIYg7T3oj8DdVvdITPtAT7Uigtuvjj8CxItJNRIYAQ3EWt4qWs5eI9Km9x1l8nefKc6Ib7UTgnjLl9NCmt1e19vSQqv3c6YVVIjLG/e2c4ElTGCJyEHAucLiqrvGEDxCRTu777V05XylRzlTfc1lyAp8BXlDV1mmgMtsyTA/RiN9nnrsGGv0CJuDsTHgZOL9EOT6FM/SbC8x2XxOAW4Dn3PA/AgM9ac535X6RnHdvRMi5Pc4ujTnA/FqbAVsC04AF7t8typTTLbcn8BbQzxNWenviGLYlwIc4PbdTs7QfMBpHQb4M/BT3lomC5XwJZ0689hu93o37Off3MAd4FjisZDlTf89Fyhkkoxs+BTjNF7fMtgzTQ4X/Pu2KFMMwDKMumnlqyzAMw6gAZkgMwzCMujBDYhiGYdSFGRLDMAyjLsyQGIZhGHVhhsRoOkRkMxE5w/N5GxG5q8DyWsRzA22ZiEgP9+qNTnXmM1xEpuQkltHBMUNiNCObAa2GRFXfUNWjCyyvBWc/fhU4BbhbVT+qJxNVfQ4YJCLb5iOW0ZGxcyRG0yEitZueXwSmAtcB96rqbiJyEs5NpZ2A3XDuaeoKHA98AExQ1bdFZAc33QBgDfBlVX1BRCYCFwIfAe/inF5+CegBvA78EHgVuNoNex84WVVfTFH2oziHxfYE+gKnqOozInIAcI1bTQX2V+cWV2/d/wJ8QVUXishY4CJgKY6xuxvnIN9ZrmxHqOrL/jqp6v5uXmcB3VT18nTfgGH4yPNkpb3s1YgXPp8P3s/ASTiKvw+OkXgX9/QxcBXORXbgnPAd6r7fC/hf9/1zwMfd95t58vypp7y+bPTr8RngdynLfhS4wX2/v0f2P+FcqgnQu1aGp9yuwD89n8cCK3D8UHTDMXQXuc/OAq4Oq5P7fl/gT2V/n/Zq/lfnFDbHMJqFR9Tpya8SkXdxFDQ4CnWEezvqPsCdHsdv3dy/TwBTROQOnB5+EP2Am0VkKM7IoUvSsj3xfguOrwsR6SuOt8IngCtF5Fac6SvvVd4A/XEMh5cZ6l4RLiIvAw95yvt0TJ3eBLYJqaNhJMbWSIz2yAee9xs8nzcAnXF+9ytUtcXz2gVAVU8D/h/OraizRWTLgPx/gGMwdgMOA7qnKLuGf05ZVfUy4Es401JPicjOvjjv+8pKVF5Enbq7eRpGXZghMZqRVTjTR5lQx0fDq+7aAeIw0n2/g6o+raoXAMtxlK+/vH4400jgTGdl4Ri3vE/hrFu865b9nKr+CJgJtDEkqvoO0ElE/MYkkpA6gXO9+bzwlIaRDDMkRtOhjr+HJ0Rknoj8OGM2xwGnikjtJuSam+Yfi8hzIjIPeAznFtdHgF1FZLaIHIPjA/uHIvIEzsJ6Ft5xF86vx7nxFuCbbp3m4IwUHghI9xDOLa9pCKoTOFNf96UX3TDaYru2DKPBuLu2vqOqMzOk3R34tqoeX6cM3YDpwKd0ox93w8iEjUgMo4lQ1b8Cj9R7IBHYFjjPjIiRBzYiMQzDMOrCRiSGYRhGXZghMQzDMOrCDIlhGIZRF2ZIDMMwjLowQ2IYhmHUxf8HoT6fc9JYYlIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plot_raster(config_file='bio_disconnected_sims/config.simulation_feedforward.json', group_by='model_name')" ] }, { "cell_type": "markdown", "id": "32cd4edc", "metadata": {}, "source": [ "Next we would like to see the contributions of recurrently connectivity on the simulation. Unlike before we can't just run a simulation with recurrent only connections and no external stimuli. Luckily, we can utilize the previous simulation results saved in the *previous_results/spikes.baseline.h5* and the \"**replay**\" module in BioNet to rerun a simulation with only recurrent connections acting on our cells." ] }, { "cell_type": "markdown", "id": "6ee1c543", "metadata": {}, "source": [ "## Simulations with Only Recurrent Synaptic Activity\n", "\n", "Using the previous full simulation output *spikes.baseline.h5* spike-train file, we now want to re-run a simulation to see the contributions of only recurrent connections on the total output of the simulation. To do so we just have to make changes to the json configuration files.\n", "\n", "The first step is to make a copy of the *config.simulation.json* file, which we'll rename to *config.simulation_recurrent.json*, then update the \"networks\", \"output\", and \"inptus\" sections as below.\n", "\n", "\n", "Since we don't want feedforward virtual stimuli we can remove the *external* nodes and edges files from the \"**networks**\" section:\n", "```json\n", "{\n", " \"networks\": {\n", " \"nodes\": [\n", " {\n", " \"nodes_file\": \"$NETWORK_DIR/internal_nodes.h5\",\n", " \"node_types_file\": \"$NETWORK_DIR/internal_node_types.csv\"\n", " }\n", " ]\n", " }\n", "}\n", "```\n", " \n", "For good measure we also want to update the \"**output**\" section so that we save the new recurrent-only simulation in a different folder:\n", "```json\n", "{\n", " \"output\":{\n", " \"output_dir\": \"$BASE_DIR/output_recurrent\",\n", " \"log_file\": \"log.txt\",\n", " \"spikes_file\": \"spikes.h5\"\n", " }\n", "}\n", "```\n", "\n", "\n", "And most importantly, we modify the \"**inputs**\" to tell BioNet to use the `replay` module:\n", "\n", "```json\n", "{\n", " \"inputs\": {\n", " \"replay_spikes\": {\n", " \"input_type\": \"replay_spikes\",\n", " \"module\": \"replay\",\n", " \"spikes_file\": \"$BASE_DIR/previous_results/spikes.baseline.h5\",\n", " \"edges\": {\n", " \"edges_file\": \"$NETWORK_DIR/internal_internal_edges.h5\",\n", " \"edge_types_file\": \"$NETWORK_DIR/internal_internal_edge_types.csv\"\n", " }\n", " }\n", " }\n", "}\n", "```\n", "* `replay_spikes` is the name of the module and which can be set to whatever name we like to describe our simulation\n", "* `input_type` and `module` will always need to be set to `replay_spikes` and `replay`, respectively\n", "* `spikes_file` is the name of some previous simulation which BioNet will use to determine when recurrent synapses are activated\n", "* `edges` are the edge/edge-type SONATA files containing recurrent connections\n", "\n", "\n", "Now we can re-run the simulation and plot the contributions of the recurrent synaptic activity to the full simulation:" ] }, { "cell_type": "code", "execution_count": 6, "id": "b1d38627", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-01-11 14:51:04,025 [INFO] Created log file\n", "Mechanisms already loaded from path: /local1/workspace/bmtk/docs/tutorial/bio_disconnected_sims/components/mechanisms. Aborting.\n", "2023-01-11 14:51:04,042 [INFO] Building cells.\n", "2023-01-11 14:52:45,049 [INFO] Building recurrent connections\n", "2023-01-11 14:52:45,414 [INFO] Building replay connections \"replay_spikes\"\n", "2023-01-11 14:52:49,981 [INFO] Running simulation for 2000.000 ms with the time step 0.100 ms\n", "2023-01-11 14:52:49,982 [INFO] Starting timestep: 0 at t_sim: 0.000 ms\n", "2023-01-11 14:52:49,983 [INFO] Block save every 5000 steps\n", "2023-01-11 14:53:39,383 [INFO] step:5000 t_sim:500.00 ms\n", "2023-01-11 14:54:28,811 [INFO] step:10000 t_sim:1000.00 ms\n", "2023-01-11 14:55:18,110 [INFO] step:15000 t_sim:1500.00 ms\n", "2023-01-11 14:56:08,024 [INFO] step:20000 t_sim:2000.00 ms\n", "2023-01-11 14:56:08,053 [INFO] Simulation completed in 3.0 minutes, 18.07 seconds \n" ] } ], "source": [ "bionet.reset()\n", "\n", "conf = bionet.Config.from_json('bio_disconnected_sims/config.simulation_recurrent.json')\n", "conf.build_env()\n", "\n", "net = bionet.BioNetwork.from_config(conf)\n", "sim = bionet.BioSimulator.from_config(conf, network=net)\n", "sim.run()" ] }, { "cell_type": "code", "execution_count": 7, "id": "fffae4b5", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEWCAYAAABMoxE0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA9h0lEQVR4nO2deZgU1dXwf4d939FARgR9cGEdEVBUIvkQQlDi8oFKiOIeQRNNiIrmS+Ka1xiNyxvB6KtiDHEBNYm4Aq+oUZQtg0JcIAICIjvDsIuc74+qGmua6Znurqqurpnze55+uqq66t5Tt6rvuffce88RVcUwDMMwcqVO3AIYhmEYycYUiWEYhhEIUySGYRhGIEyRGIZhGIEwRWIYhmEEwhSJYRiGEQhTJEZeEZGbReQvIad5k4j8T5hpFhoiMkdELsvhuodE5FdRyBQ2IjJFRG6PWw4je0yRGFUiIitFZL2INPUdu0xE5sQoVgVU9beqmnUlG5RCrfjcZ9YZQFWvVNXbMryuYO5HRAYV0jtmVI0pEiMT6gHXxC1EbUQcEvE/FZF6cctgxEMiXlAjdn4P/EJEWlX2o4icJCLzRaTU/T7J91sXEXlTRMpEZCbQLuXaE0XkXRHZJiKLRWSQ77eLROQz99oVIjImTf7l5jIR6SwiKiJjReRzEdkkIr9Md2NuK/xBEXnJzed9ETnS9/sxIjJTRLaIyCcicq57/ApgDHC9iOwQkRdF5GIRedF37XIReda3v1pEijMoszkicoeIvAPsAo5IkbmDiHwgIr9Id18p93e7uz1IRNaIyAQR2SAi60Tk4nT34x7vKCLPichG9xn8NKXcp4vIX0RkO3CRK/ttIvKOW56vi0g73zXTRORL977fEpHu1d2DkQBU1T72SfsBVgKnAc8Dt7vHLgPmuNttgK3ABTg9l9Huflv397nAH4CGwHeAMuAv7m/fBjYDw3EaNUPc/fZAU2A7cLR7bgegexoZb/al2RlQ4BGgMdAb2Ascm+baKcAWoL8r/1Tgafe3psBq4GL3tz7AJk8O99rbfWkdAWxz76UDsApY6/ttq/tbdWU2B/gc6O7+Xt89dpl7f58CV2T4/MplBAYB+4Fb3TSH4yiq1mnupw6wEPg10MC9h8+A7/nK/SvgLPfcxq6c/wGO8u3f6UvzEqC5+z7cB5RUJqt9kvWxHomRKb8GfiIi7VOOnw4sU9UnVXW/qj4FfAyMEJFOQD/gV6q6V1XfAl70Xfsj4GVVfVlVD6jqTGABTgUHcADoISKNVXWdqi7NQt5bVHW3qi4GFuMolHQ8r6rzVHU/jiIpdo+fAaxU1cfde1sEPAeMrCwRVf0MR1EWA6cCrwFrReQYd/9tVT1AFWXmS26Kqi51f//KPdYNp2L+jao+nEVZ+PkKuFVVv1LVl4EdwNFpzu0HtFfVW1V1n3t/jwDn+86Zq6p/c5/fbvfY46r6qbv/LN+UJ6r6mKqWqepeHEXUW0Ra5ngvRoFgisTICFVdAswAJqb81BGn5e1nFU5voyOwVVV3pvzmcTgwyjVrbRORbcApQAf3mvOAK4F1runpmCxE/tK3vQtolsO5hwMnpMg3BvhWFWm9idPy/467PQdHiZzq7kPVZeaxupK0xwBrgelV5F8dm12F6VFV2RwOdEy5/5uAQ6uRs9LyFJG6InKniPzHNYWtdM9ph5FoTJEY2fAb4HIqVnhf4FQ4fjrhVHjrgNbim/Hl/uaxGnhSVVv5Pk1V9U4AVX1NVYfgmIk+xmkN55PVwJsp8jVT1XHu75W5zvYUyUB3+00OViRVlZlHZWnfjGNa+6uI1M3+dqolNc/VwIqU+2+uqsOruKYqfgiciWMqbYljpgOQXAU2CgNTJEbGqOpy4Bngp77DLwNHicgPRaSeiJyHY4KZoaqrcExVt4hIAxE5hYrmm7/gmMC+57ZWG7kDwkUicqiI/MBVQntxTDBf5+M+fcxw7+0CEanvfvqJyLHu7+tJGQjHURbfBRqr6hrgbWAY0Bb4l3tO2jKrRp6vgFE4YzdPSvizuVLvZx6wXURuEJHG7jPqISL9cky/Oc6z3Aw0AX4bTFyjUDBFYmTLrTgVGQCquhlnLGECTgVxPXCGqm5yT/khcALOgPZvgD/7rl2N00K9CdiI0wK+Due9rOOm+YV77anA+Ajv6yBUtQwYijMm8AWOyeZ3OAPFAI8C3Vyzz9/caz7FUXpvu/vbcQao31HVr91j1ZVZVTLtA84BDgEeC1mZVLgfV94ROGMcK3B6Q/+D05vIhT/jTkAA/g28F1hioyAQVQtsZRiGYeSO9UgMwzCMQORFkbi21X+JyAx3/2YRWSsiJe5nuO/cG92FXJ+IyPfyIZ9hGIaRO/lyaXAN8BHQwnfsXlW923+SiHTDsUd3x5kiOUtEjvJsy4ZhGEbhEXmPRESKcBZgZeKd9UycVcV7VXUFsBxnxbFhGIZRoOSjR3IfzqyU5inHrxaRC3Gmh05Q1a046xP8MznWUHHNAlDuF+gKgKZNmx5/zDHZrFMzDMMwFi5cuElVUz1V5ESkikREzgA2qOpC8TnjAyYDt+EsZroNuAfHB09lC5MOmlbmuod4GKBv3766YMGCcAU3DMOo4YhIqneFnIm6R3Iy8AN3ML0R0EJE/qKqP/JOEJFH+GYh1hrgMN/1RTjz9w3DMIwCJdIxElW9UVWLVLUzziD6/6rqj0Skg++0s4El7vY/gPNFpKGIdAG64qyuNQzDMAqUuALR3OXGZVAcx20/BlDVpeLEb/g3jrvrq2zGlmEYRmGT+JXtNkZiGLWbr776ijVr1rBnz564RSlIGjVqRFFREfXr169wXEQWqmrfMPKw0JiGYSSaNWvW0Lx5czp37oyIORL2o6ps3ryZNWvW0KVLl8jyMRcphmEkmj179tC2bVtTIpUgIrRt2zby3popEsMwEo8pkfTko2xMkRiGYRiBMEViGIZhBMIUiWEYRkCaNTs47P3NN9/M3Xc7fmkvuugiunTpQnFxMcXFxTzwwAP5FjFSbNaWYRi1kntnfsrPhhyVt/x+//vfM3LkyLzll0+sR2IYRq3k/tnL4hahUl5//XUGDBhAnz59GDVqFDt27GDVqlV07dqVTZs2ceDAAQYOHMjrr78OwF133UXPnj3p3bs3EydOjEVmUySGYRh54Lrrris3bX344YeVnrNp0yZuv/12Zs2axaJFi+jbty9/+MMfOPzww7nhhhu48sorueeee+jWrRtDhw7llVde4W9/+xvvv/8+ixcv5vrrr8/zXTmYacswDCMPZGLaeu+99/j3v//NySefDMC+ffsYMGAAAJdddhnTpk3joYceoqSkBIBZs2Zx8cUX06RJEwDatGkT3Q1UQV4UiYjUxYk7slZVzxCRNsAzQGccX1vnuvFIEJEbgUuBr4Gfqupr+ZDRMAwjblSVIUOG8NRTTx30265du1izZg0AO3bsoHnz5qhqQayhyZdpywu16zERmK2qXYHZ7n5qqN1hwCRXCRmGYdR4TjzxRN555x2WL18OOMrj008/BeCGG25gzJgx3HrrrVx++eUADB06lMcee4xdu3YBsGXLlljkjrxH4gu1ewfwc/fwmcAgd/sJYA5wA75Qu8AKEfFC7c6NWk7DMGoX1wzuGlpau3btoqioqHz/5z//eRVnp6d9+/ZMmTKF0aNHs3fvXgBuv/121q1bx/z583nnnXeoW7cuzz33HI8//jgXX3wxJSUl9O3blwYNGjB8+HB++9vfhnJP2RC5918RmQ78F06o3V+4pq1tqtrKd85WVW0tIn8E3lPVv7jHHwVeUdXp6dI377+GUbv56KOPOPbYY+MWo6CprIzC9P4bqWnLH2o300sqOXaQphORK0RkgYgs2LhxYyAZDcMwjGDEEmoXWC8iHVR1nRstcYN7fkahdlNjtkd5A4ZhGFFwwgknlJuvPJ588kl69uwZk0S5E6kiUdUbgRsBRGQQjmnrRyLye2AscKf7/Xf3kn8AfxWRPwAdsVC7hmHUUN5///24RQiNuNaR3Ak8KyKXAp8Do8BC7RqGYSSRvCkSVZ2DMzsLVd0MDE5z3h04M7wMwzCMBGAuUgzDMIxAmCIxDMMwAmGKxDAMIyBhxiMZPnw427ZtqzK/QYMGUUjr58xpo2EYtZM3/gu+e2Pesss0HsnLL7+cB2nCxXokhmHUTt68M24JKqVz585s2rSJlStXcuyxx3L55ZfTvXt3hg4dyu7du8vPmzZtGv379+eoo47i7bffjlFiUySGYRh5IZN4JKksW7aMq666iqVLl9KqVSuee+658t/279/PvHnzuO+++7jllluiEjsjzLRlGIaRB3IJteuNqwAcf/zxrFy5svy3c845p9LjcWA9EsMwjAKlYcOG5dt169Zl//79B/2WejwOTJEYhmEYgTDTlmEYtZNTJ4aWVFjxSJJK5PFIosbikRhG7cbikVRP0uORNBKReSKyWESWisgt7vGbRWStiJS4n+G+a24UkeUi8omIfC9K+QzDMIzgRG3a2gv8H1XdISL1gX+KyCvub/eq6t3+k1NitncEZonIUeYB2DCMmobFI8kQdexmO9zd+u6nKluaxWw3DKNWUJPikUQ+a0tE6opICU4UxJmq6pXe1SLygYg8JiKt3WPfBlb7Ll/jHktN00LtGoZhFAiRKxJV/VpVi3HC5vYXkR7AZOBIoBhYB9zjnp5RzHZVfVhV+6pq3/bt20cit2EYhpEZeVtHoqrbcAJbDVPV9a6COQA8gmO+ggxjthuGYRiFQ9SzttqLSCt3uzFwGvCxiHTwnXY2sMTd/gdwvog0FJEuWMx2wzASgIgwYcKE8v27776bm2++udJz58yZQ8uWLcv9bt16663Vpv/LX/6Sww47rFJ39YVA1LO2OgBPiEhdHKX1rKrOEJEnRaQYx2y1EvgxWMx2wzCSScOGDXn++ee58cYbadeuXdrzPFcmAwcOZMaMGRmnP2LECK6++mq6du0aWNYoiHrW1gfAcZUcv6CKayxmu2EYkTOpZBLji8eHkla9evW44ooruPfee7njjorV10UXXUSbNm3417/+RZ8+fRgxYkTadM466yxWr17Nnj17uOaaa7jiiisAOPHEE0ORMyrM15ZhGLWSyYsnh5reVVddxdSpUyktLT3ot08//ZRZs2Zxzz3OvKK5c+fSu3dvvv/977N06dLy8x577DEWLlzIggULeOCBB9i8eXOoMkaF+doyDMMIgRYtWnDhhRfywAMP0Lhx4wq/jRo1irp16wLQp08fVq1aRbNmzXj55Zc566yzWLZsGQAPPPAAL7zwAgCrV69m2bJltG3bNr83kgPWIzEMwwiJa6+9lkcffZSdO3dWON60adPy7RYtWpQPmg8fPpyvvvqKTZs2MWfOHGbNmsXcuXNZvHgxxx13HHv27Mmr/LliisQwDCMk2rRpw7nnnsujjz6a9pwvv/wSz1nuvHnzOHDgAG3btqW0tJTWrVvTpEkTPv74Y9577718iR0YUySGYRghMmHCBDZt2pT29+nTp9OjRw969+7NT3/6U55++mlEhGHDhrF//3569erFr371qwoD7Ndffz1FRUXl7urTTS2OC3MjbxhGosnVjXyYs7YKnUS7kTcMwyhUaosSyQemSAzDMIxAmCIxDMMwAmGKxDAMwwhEXKF224jITBFZ5n639l1joXYNwzASRNQ9Ei/Ubm+c2CPDROREYCIwW1W7ArPd/dRQu8OASa7DR6OGMu/Fz5j34mehpeX/Diu9MIkizULKr1DyDoOd2/ZW+I4r/yQQqSJRh8pC7Z4JPOEefwI4y90uD7WrqisAL9SuUUOZ/9JK5r+0MnA6L9yzsDydbNOrrMKb9+Jnocjlx5Mx6grWU85R3EM2ePdaqAqlqop657a97Czdy9Yvd7KztPoKvW7duhQXF9OjRw9GjRrFrl27GDRoEK+99lqF8+677z4uv/THAAwbNoxWrVpxxhlnHJy3m391cuZK2M8krlC7h6rqOgD3+xD3dAu1a+TEF8sOdpSXKZVVtlFUwJ6MUVfunnKOU4mkylKIVKUgvN++2ptZFIvGjRtTUlLCkiVLaNCgAQ899BCjR4/m6aefrnDe008/zYhhZwNw3XXX8eSTT1aat1+2TBRZtoT9TOIKtZsOC7Vbi3jhnoVxi2DUQrwW/q4nH4kk/YEDB7J8+XJGjhzJjBkz2LvXyW/lypV88cUXnNBvAACDBw+mefPmkchQFV5vpFXT9h3DSjOWULvAei9Kovu9wT3NQu3WIrwWer/TO8crSBoKVS4jGF4Lf/df/iej85u2bJhx2vv37+eVV16hZ8+etG3blv79+/Pqq68CTm/kvPPOQ6Sy9nIaWSMwa3m9keaNW3eo+szMiSXULk5I3bHuaWOBv7vbFmq3FtJ/xBGhpfXCPQuzVgD5Vhgdu7aMNP1+p3eOPI/qeOKmd8q3k6qQ69TNvHrcvXs3xcXF9O3bl06dOnHppZcCVDBvPf3004wePbpaxVS/Yd3yvHeW7s1KkWVK2M8krlC7c4FnReRS4HNgFFioXSM3/AOHXywr5ewJx2d1fTpFNv+llaEqOY8g4zmZ0H/EETx45f8GSsMr01zvf8eW5Mw4SseBrw8AbmXequrK3BsjSeWss87i5z//OYsWLWL37t306dOn2nxTx2WqyzsXwn6vo5619YGqHqeqvVS1h6re6h7frKqDVbWr+73Fd80dqnqkqh6tqq9EKZ9RMwh74NCvmAp1xlHUZDpInkn5FNpge3Ut/DDNSc2aNWPQoEFccskljB49utrz8zHlt9/pnZM3a8swqiPISx32HyJ1ymyhVYKZkE/ll8Tyqa6FH7Y5afTo0SxevJjzzz+/wvGBAwcyatQoZs+eTVFREa+99lokM7Q8/L3MxM3aMozqCPJSh/2HyDW9Quq5zH9pZezjEs3aOBVx3GM1VdHuqqvS/patOWnHjh1pfzv77LNRVY455pgKx99++202btzI7t27WbNmDd/7XrSOPFLf7bLdW9eFlbYpEsMIgUJrmQe1gQdVRGN/ezLgjAfFrdTS0f4nV8ctQqX4e0NRDLR7bNu5MbQZsaZIjMQTdqs3H7OqoiZoDylTRZTuXvxrhKKYsBAlTVs2rDBWEWVl7mfntoNNalEMtIPz3A5t1enosNLLWJGIyDUi0kIcHhWRRSIyNCxBDCNXwpwF1e/0zhXWt0RR6UddsfY7vXPeekjp7iXqmWlR0rRVwwpjFVFV5ql4s8OiGifxv8v9RxxBg3qNmoWVdjY9kktUdTswFGgPXAzcGZYgRu0ljMraSyNoWv6Ksf+IIwK3zOPAk7mQZEoyX63fUP1JCcD/Lm/87z+GmnY2isRbjjkceFxVF1O5SxPDyIogLXSvsvTSiMuMUojmm7jHSQA6r3wpcBpxs39jzVAkfjY9+GCo6WWjSBaKyOs4iuQ1EWkOHAhVGqNW0axNQ1pu+zRQGv1HHFFe4QVNyyMqk1bnlS/RcM/m0FuDleHJ33DP5pzTCKKIOnZtSb/TO3PEypdzTiNOmrZsSIO9pdSrk78qzhsf8fKu3zDaCBr79u9JP9UsS7JRJJfixA3pp6q7gAY45i3DyInhHf7F8SX3B07Hq/DCSMtLr/+II0Kv8I9Y+TInv/fr0FuDleGVyWlfvxh5XpVx9oTj6eIqkXwozrBp2qohTVs2pHHpmozOz8aN/Pjx4ykpKWHAgAF0796dXr168cwzz5SPxTRt1ZCG+0ppJjsjNaut3/b5J2GlVa0iEZE+ItIHJzAVwBHu/uFE72LFqMHko0INQqHLlwm758+PLW+v/JJajvUPdaJb1Gt/SDVnZudGfvTo0TRp0oQ///nPLF26lFdffZVrr72Wbdu2VTh3/8YNkZnVqlpDkwuZ9EjucT8PAu8BDwOPAO8DD1R1oYgcJiJviMhHbqjda9zjN4vIWhEpcT/DfddYqF3DMCIn0ynSnkLJlOrcyJ9yyikcddRRdO3aFYCOHTtyyCGHkM/YSmGvoalWkajqd1X1u8Aq4Hg3DsjxwHE4EQyrYj8wQVWPBU4ErnLD6QLcq6rF7udlsFC7Rs3GawU27tcvZknyR9gt3zCJYop0Lm7k582bx759+zjyyCPLj2XSCyokshkjOUZVP/R2VHUJ35i7KkVV16nqIne7DPiISiIe+rBQu0ZOhGmHj8qm77UC82FuKoRxCU+JFLIyCYts3Mj7WbduHRdccAGPP/44deocXB1HqVC+Va9eLIGtPhKR/xGRQSJyqog8gqMYMkJEOuP0Yt53D10tIh+IyGMi0to9ZqF2jZwI0w7vpZXkCrAQxiXa/+RqNj34YMG6IqmObAa6vTGSkpIS/vu//5sGDRoAjhv52bNnV+pGfvv27Zx++uncfvvtnHjiiRXS88ZGsjWrZUPbuvViCWx1MbAUuAa4FidmSEaztkSkGfAccK27qHEycCROj2YdzhgMWKhdo4BIagVohEMYA93p3Mjv27ePs88+mwsvvJBRo0YFziduMp51pap7gHvdT8aISH0cJTJVVZ9301rv+/0RYIa7a6F2jRpPkns6RvaMHj2ac845p8IMrmeffZa33nqLzZs3M2XKFACmTJlCcXFxPEIGJJPpv8+63x+6pqgKn2quFeBR4CNV/YPvuL9LdTawxN22ULu1iBX/N7zhr3ZXXRVaBR1VRT+pZBIQfU9nUsmkUMs2VxkgeFl66aRuh4F/0emGXRV7H6n71ZGtG/kf/ehHrC1dW24OKykpKVciXt5RjY945bil/oG8Lki8xv0+AxhRyacqTgYuAP5PylTfuzzFBHwX+Bk4oXYBL9Tuq1io3RrLpJJJ3HDUotDSmjawDtMGhuPMOqqKfvLiyZGkW1k+XtnGpVC8ew1alv4yC7v8Kvie2vXNWOuGXRvYuGsjO1rUDzW/VPx5VnY8qvGRyYsnM6lkElvb1QnNaWO1pi1VXed+r6rqPBGZq6oDUq79J5WPe6T1m6CqdwB3VCeXkWzCrBT8aY0vHh9KmpNKJoWWVpzccNQihld/WmQksRy9inxDk/002x6zMBERtlIOMx5JoxDTMmoJSw+r/pw4iKr3MO2U2uPn9OJXL85bLywqtobWZs+Ofa2bxpNxjoSpSA6aXWUY1XHLjwrPy06UdvlpA/O3vjZs2bNlwfoFgdMY13tcpdth075J5bM/tzbLn+L3j8usabiLFaUr8pZ3UCxCohELUVQKYaUZhV0+jko9V9k9WYPI3PfQvjlf68dvFovSRHZIk2/GI5rUb1LhO1+kjpns+mpXZHmN6z2O/dv3F2TM9trTZzcCU+h287AqQo/JiyeHnmZUeAooiBL1eiNR9iKiYtdXu2jfpD1N6zfNuzKB9L2jMBlfPJ79W/bHE7NdRA4XkdPc7cZuTBKPC8ISyjAyZVLJpPIKOozeg9cKD8Msk0q/b/XLizIZ13tchQo8LhNXs/rNAjUY4jTNHdLkEDbu2kjT+pmNVfjdyI8YMeIgT76V4VcYF110Ea//4/Vcxc2Kcb3HhV622cRsvxyYDvzJPVQE/M373fW9ZRh5ZfLiyfT7VnhOECcvnhyZXX7y4smRKKhUxhePL6/Ax/UeF9uA946vdgSqsAphoD7dFN1U/G7k27Rpw4MZuKjxzGn79+8HoEXDFhXyjKo3NL54PJMXT6Zem3h8bV2Fsy5kO4CqLgOS5aLSKEiCto78FU4YLS2vEk7i1NVUcpHfU55hKNFCUAbpeHfa1EqPBzUtDRgwgLVr1wJQUlLCiSeeSK9evTj77LPZunUrAIMGDeKmm27i1FNP5f77nYBs89+ez8CBAzn9hNOZ8/ocurTsEkiO6qjXIh5fW3tVdZ+3IyL1sJlaRghEsaYkqELpe2jfgq4EMyWXcvCUT9KVaHXMnf7UQcc27NpQ3lPIRaF8/fXXzJ49mx/84AcAXHjhhfzud7/jgw8+oGfPntxyyy3l527bto0333yTCRMmAE68kjfffJNJf53Ebb+4jT179mS9wj4uslEkb4rITUBjERkCTAPiieNpGC5eqzl17CFXJeClF4UJKo7B9riUYRi9mTgG6v2mLP9Mrurw3Mi3bduWLVu2MGTIEEpLS9m2bRunnnoqAGPHjuWtt94qv+a8886rkMa5555LnTp16NuzL0WHF/Hxxx9nbFrLlrDLNhtFMhHYCHwI/Bhndfr/C1Uaw8gSr9X8+LDHQ00vbMb1HpeX8ZHUPOPCP0YTNI0k4I2RrFq1in379mU0RtK0acWBfC/glafAUgNghUnYZZuxIlHVA6r6iKqOUtWR7naVpq0qQu22EZGZIrLM/W7tu8ZC7dYSvBZ6kMomypk9SZy66idIZR5WuSZJGYRBy5YteeCBB7j77rtp0qQJrVu35u233wbgySefLO+dVMa0adM4cOAA85bMY82qNRx99NH5EjswmXj/rdTrbybef0kfanciMFtVuwKz3X0LtVvL8FroQSqb1DERb2pjGEpg/pfhRTIMe0JANuRSvkFNYt4zuPjVjEIWFQz+cZFcV5Yfd9xx9O7dm6effponnniC6667jl69elFSUsKvf/3rtNcdffTRnHrqqZx75rn86u5f0ahRI+rXic5xpO7V0Lz/ZuKf4gz32/MH/aT7PQaocuml6/DRc/pYJiJeqN0zgUHuaU8Ac4Ab8IXaBVaIiBdqd24GchoJ4eJXLw7NFAUHD4xPXjyZD8d+WMUVlePN0opyLQk48uWjpR7nOgzvGfR8omdsMlTHgJHfBJryBrU9s9KK0hVZrSxPdSP/4ovfDB+/9957B50/Z86cCvteTBKApZuWlm9/deCrjGXIFO89l4YSmiexanskqrrK9fx7sqper6ofup+JQMamp5RQu4f6vAqv45tpxBZqtxYQdgXtTy9ISzqMFd2FRNz3Ebevr+o4adSY8u2NuzZWGNiO0j1J3ETxXmQz2N5URE7xdkTkJCCjZZ+VhNpNe2olxyzUrpF44hxvyaVCr+lrSAqRKKf6lu0riyxtyE6RXAo8KCIrRWQlMAm4pLqLKgu1C6z3oiS6314JWqhdI2c6NA1tfRUQ7nTduAadc10Pk6u8qUor7GeST6Icn6iMqKb6QuWKJBanjaq6UFV7A72A3qparKpVhrhLF2oXJ6TuWHd7LPB333ELtVvDCbOC9vuVWrdzXaCWdKpcYY7j5BuvQg/TfUwmeErLK8t1O0OrqyKlfZP2FQba69epH8n4RCEQRe84G19bLUXkD8D/ArNF5B4RaVnNZelC7d4JDBGRZcAQd99C7dYSUiu3ILZ0z69UGMopdewmKht/PsxccY/35HvNTFAOaXJIhQWIhaBEojJ1eRNK4nKR8hhQBpzrfrYDVTbZVPWfqiqq2svtwRSr6suqullVB6tqV/d7i++aO1T1SFU9WlVfyeWmjMImtXILY6qpV3FFFcI3TGrb2gojM1JdsoRp6mreoHmF/ThD7R6pqr9R1c/czy3AEaFKYxhZMqlkUqh/Cr9bem/fyI6aUmbZ+tq644476N69O7169aK4uJj333+/2mv8a1Wqcsny1ltv0adPH+rVq8f06dOzkgsOViRhk40i2Z0ya+tkYHf4IhlG5lSmRHI1HXku1xesX1CeRphKKp8Dz2G6ws9GMcTptj5M2jdpn5Wvrblz5zJjxgwWLVrEBx98wKxZszjssMOqva66acaeMuvUqRNTpkzhhz/8YcYyVUdcERLHUXHW1h9xfG4ZRlakBtYJc8xgXO9xOZuOUq8LeywjnwPPYYSo9Z5RNorByysM9zdRUzpzVdrfslEiAOvWraNdu3Y0bNgQgHbt2tGxY0fmz5/PSSedRO/evenfvz9lZWVMmTKFc845h2HDhjG8/3Cuv/56wBkTadasGfffcT/nDDqHHw77IVrmrH7o3LkzvXr1ok6dilX2jh07GDx4MH369KFnz578/e9/pzq85xpXhMSPgLtwxkqexwlqdVZYghi1C3/lFOaYQVhp5Wv1eSGTS88i1StAIZdh2ezPgW8GtYMMbg8dOpTVq1dz1FFHMX78eN5880327dvHeeedx/3338/ixYuZNWsWjRs3Bpw4Jc888wwvvPUCzzzzDKtXr2bjro3s3LmT3n178/yc5zl+wPE88sgjVebbqFEjXnjhBRYtWsQbb7zBhAkTqMYFYuwLEv8OjAD2AGuBHcDO0CUyajz+Fzloi9Wb/hv2lOLKtpNIvuVPjTCZBLxB7Y27NuasTJo1a8bChQt5+OGHad++Peeddx5/+tOf6NChA/36ObMUW7RoQb16jleqwYMH07JlS1o3b023bt1YtcrpHTVo0IBThzqOHbv16sbKlSurzFdVuemmm+jVqxennXYaa9euZf369WnPj2r8KhtFUqSq56vqXap6j/eJRCqj1hCGY8TxxePLxzXCjJCYuh0GccQkCUq2iqGQeyHV4Z8pla1SqVu3LoMGDeKWW27hj3/8I88//3xaV/CeCaxLyy7UrVu3PNxu/fr1y6/xH0/H1KlT2bhxIwsXLqSkpIRDDz2UPXv2pD3fa8SFPV6XjSJ5V0QK1wObkUiCrjdINZEV+kBvvtdXBCkPT4EECdebZLKZfvvJJ5+wbNmy8v2SkhKOPfZYvvjiC+bPdxpLZWVlVSqGXCIylpaWcsghh1C/fn3eeOON8p5NZfg9ZIc9XpeNIjkFWOjGCfnAcy8fqjRGraDvoX0jaZmH0RsJq1cTN2H3zDIliQrEq8D9FXm2vZEdO3YwduxYunXrRq9evfj3v//NrbfeyjPPPMNPfvITevfuzZAhQ6rsLVQ1wD9//nyKioqYNm0aP/7xj+nevTsAY8aMYcGCBfTt25epU6dyzDHHpE3Da1RE0WPMxI28x/dDz92olXit8uJPW1JyVGlo6YbRGxlfPD4y1+dh329VzJ32Vzgq+nzenTa1ghddr5Iq9J4hQPPBnYBvKnB/RZ7tYsDjjz+ed99996Dj7dq1O8iN/EUXXcRFF11Uvj9jxozy7R07dpS7kR/6g6H87JKfAdCvXz/WrFlTafpz52YeZWNc73G8O20qAK1bNwktclY2vrZWVfYJSxCj9lD8qeNZp3h5q8Bpjes9jmdunlieblgt4mFzDwUo/9OFgXe/YaZZVV5eOUfJ3OlPRZ5HFOzYspmWQw4/6LhfmbRv0p4WO7Npa4dD+ybtabw3mnh+44vHM3f6U/Q9tC9NqZ+/eCRBEJHHRGSDiCzxHbtZRNam+N7yfrMwu7WAMBSIx/ji8az5aEl5umF127+1tREQfkVZ/GnLvFW+YZZzTWPH1i3VntNkT13q74+0imTHls0H7TfZU5cme8JXJP5G1uVlp4WadrSlBFNwQuamcq/f9xZYmN3axmXbBwPh2dTDXtQYFfmu3L1yzjfjeo/La97VrZ3IlnZfN89I2QQlNY8dW7eUH2tSv0koeXhl429khd2YiVSRqOpbQKZPozzMrqquALwwu0YNZP8/lwPQ9m+fh5Je8bJwzDjvTpta/ofLhwkqKrwwsl45R3Uv/nC1Hl4ZenlHTaNGjdi8eXOoykR37A0trVxp/3WLwGmoKps3b6ZRo0blxyp7ZkHJvwHQ4WoRuRBYAExQ1a04IXX9o1KVhtk1ks+AkaPLW0SeWSp10DZb5k5/igEjR4eSTmXbSeOkUWPK5X932lTmTn8qULlUlU8qqeUW9JlUR1FREWvWrCGbsNt7d+5k60cfpf19+8ZvZm1t3Vf1Wo4gbN+4oUL6/nxZ+wUNmzSlYdOMAtGmpVGjRhQVFQHfPIu505+ibM/e0OYAx6FIJgO34YTQvQ24ByfSYkZhdsGJ2Q5cAY4zMyNZ+Cs5j1wrunenTaXo2B6s+WgJJ40awz3nnRG40kqyAvHw90DiuJ9UhRylIqlfvz5dunQJNc17br6uvMEz4ZkZ1V+QI+8uWcSx3zm1wn7q8wozf+9ZDBg5Gl6cHVq6UY+RHISqrlfVr1X1APAI35ivMg6zazHbDY+505/ivJvvBKIx30RhBsgHXmWUVPlrC6kKNkqFm5pP80YNYwlsFQperHaXswFvRpeF2TUCEUbL21/xFh3bI5I/dj4rd0/+fOZZU5SXZy7NN0ksv6in/z4FzAWOFpE1InIpcJdvVfx3gZ+Bhdmt7QT584TZEynv9vPN+E2YRKWcqiOfeabmlcSK0SPOZzVg5OjQyy6qZxH1rK3RqtpBVeurapGqPqqqF6hqTzf87g9UdZ3vfAuzW0soOrZHhf2wBsgLncO658ddnVdheIs1842/woqjMg6K937GMXPPy/OkUWNCL7uonkXeTVuGAdG09sMiSsWUL6XnVRhrPloSS4/AX2ElcRq1937GPVEhKWVnisSInSB/Fq+S9FqQSTajREUcPYK4Z42FSRyVufceR1l2Xx84sC+stEyRGLET5M/ib3mHQVJagIVO0pWHn5p0L37q1qnTIKy0TJEYNYqgf/ooK4047e5GZvifTfN28S0tmDv9qdjGt3LBFIlh5IF3p00tX+9SU1u46UiCudFTIP71N2WbsnMlHzaFPI6YiikSI3aSUNEEZe70p/LaE/Hyiqts/bPykjBrK1W5+2WOsgzj7J3u2//1jrDSMkVixE5YFU3zdu0PmlacLf5KI+wKJJ89ES+vk0aNybuJ5N1pUxPVmq6OKBVhde9ElEpsQ9mOT8JKKy6njYYROmWbNgY2R3iVxuqlH0ZWgeSrl+Ap1XxX6kk23RVa7zgJvTmwHolRABTK4LN/IVjYxFFB5WvxY1UUyrOtDu/5VPbsk3IPcWKKxIidQmnB+uUIuxXvr6Dycb9+V/1xUggyZEJVjYco76GyBkbUjY4oFKMpEsPIA3G2aoOOG2VLoZmHghD1QHuqAos6dgtEoxjjiNneRkRmisgy97u17zeL2W7USPLdMvfn5007zhdJsetnQr4H2pPSg0sljpjtE4HZqtoVmO3uW8z2WkyheP6NuiWdDzcuqeURt30/6b2TOMsv6rJr2bhRx7DSiiNm+5nAE+72E8BZvuMWs72WENY6g9QATkH+fJ4c706bGsmf2Bt3yWcrN84Wblwu88PAv0CxpsUk8UJSJzqwFXCo5zre/T7EPf5tYLXvvLQx20XkChFZICILsonTbBQOUU1JDaPi8sKRhrn+wl8x5KOVG3dPYMDI0YlbS5LO0WS+poGnvhdRNQIqC3UdlEIabM84ZruF2jVSieJPF2ZFmO9ZW0b25Pu5pCooL/93p01N3DsShyJZ74Xbdb83uMczjtluGB5xt7wLjXy4H8+EuPMPizhmvOWr7Mr27F1X/VmZEYci+Qcw1t0eC/zdd9xithtZkVQbfFRYeQTHP0aWNPNcJnj3V7p7T2gN9Thitt8JDBGRZcAQd99ithuByXfrMVesF1XYeGNkHvmauZXaG4nqPUncOpI0Mds3q+pgVe3qfm/xnW8x242sCdunVGrUxbDJR6+hEJSVNzsoKaQrs3yHR063HyY1ebDdqGV0b3VyKBVeVO5MkmzWOGnUGLq3Ojm2/AeMHE33VqckaqzEzIK5Y4rEiI0erU+he6tTQkvvu98aTenMVYHTKZ25itKZqyKpiPNVuZfOXEWP1qdwRtGVeckvlZNGjaFs9uflsiQJr3FzRtGVsSjjYSdFk6/3HKLorZoiMWLBe5m9yiYI3VudTNGxPTikcadQ0iub/Tllsz+nR+vwlFzpzFUMGDk61DSrwiuHpvVbxlKRe3l2b3VyKM8kn5w0agylM1fRtH5LerQ+Ja9mwgEjR9NynZPvhj8tDjVt7zmcNGpM6PdkisSIhTDNCD1an5J3f1LZUjb789hMJ3FU5F6enuJMWq/EX2ZRPzd/2fjz2rdie2R5njRqDB2at0+GixTDMA4maZVqrjTo0qJ8O2m9knwSV9m0a9om0S5SDCN0vMq5+eBOgdPypxFFpZ+PiiOMcgiK16IuBFmSQNQNjCifgykSI/E0H/zN2EjLIYcHTq/lkMPL/3RhVfrNB3fKa0/EXw5xVOReng26tAjlmeSLOHuL/netQZcW1GnVINT0o3wOpkiMWKgt5h2PlkMOj82EEaQCyfU5eXkmrVcSxzNK7QE3H9yJfSu2c2Dbvsjy3PCnxWzauSXRLlIMI9Q/bBR//ppi0w9agYdVDknqleQbf9mUzf68wn5UDa59K7azrmxjMlykGEbUJNmuHBXeOpjUY/mWoaaQr3up7F1LSoMmNkUiIitF5EMRKRGRBe6xtGF4DaMyov6jJbEl7a2D8Y8d5btC8vJLmiL2y+vNOstX2SXxXfOIu0fyXVUtVtW+7n6lYXiNmod/amihEmYlWDpzVeiDp9URRsWUyyQB//lJqxz98jY8olXe82/QpUVkPSAv3dKZq0L//8WtSFJJF4bXqGFEudgqLHYu/DK0tMpmf14+eJovhRJGhZTLJIHU88NeoZ0v4jAr7VuxvUK+YTZm/L3TQ37cO7R0IV5FosDrIrJQRK5wj6ULw1sBC7VbswhS4Xl/tLB7D80Hd4pk1kydVg0inY0DTln4zVresXzi5Vc6c1UiGg2FhtfYaDnk8ESMN8WpSE5W1T7A94GrROQ7mV5ooXZrFkFaflGYTqKcORO1EgGnTFLLJdtyCuuekzJYXGj435MoyjBs5RSbIlHVL9zvDcALQH/Sh+E1ahhht5CjrLDCSjsJ40IeQTz3pvaGkoh/QWUUpCtXrzcZBf7ee9jPJxZFIiJNRaS5tw0MBZaQPgyvUcMIsycRhXkLwh/L8OzSSVQo2ZD6bJN0vx6pCyrDJl25+nuTYZebl24Uvfi4eiSHAv8UkcU4cdlfUtVXSROG16iZhKUAovqDdJx4QqjpeYQ90Fno1Lb7DQuv3JIwhbpeHJmq6mfAQW+Xqm4GBudfIiMOvBlBQRVAEhYletNo4xr0DnJdkDSSbOLy5M/3M0t9T5IwhbrQpv8aRtaEXVmlVhxhOYIsm/05ez/bFjitbPMNcl3zwZ0Cp5FUojQFVaWckugd2hSJERth9iTC/GNEWQEmbSps0LJI4vhIPqiuXMtmfx5pTzvsd9wUiREbYba8wvxjJGHefjr8sufbdX1lJE1x+om77JJkFjRFYtQYKnNWmEsaUbcGo8Rf+ez9bFvgyiip5ZAL/nv13oMkDHTnQo1ZR2IYYeL98YNWnHE5OYyCMHoDNaEcMsW/dqam33eNWEdiGKmtv6Ak6Y9fm1r5ScT/LsUd6CopmCIxYiHuP2ucRHm/hVQJmcLMjSTOdjNFYtQ4gjqBLKTKOFvCroRyLYsGXVokuoEQ13vgeUpO2jtoisSoUQStwPwuKqxFnTtJXs0eZyXujWslrVdiisSIhTBWTvtp0KUFzQd3CnW6aVQt6iS1NpPcq8gVb/FoTb73Gr8gUUSGicgnIrJcRCxCYg3F3+IKo/V1yI97J6YVlxQ5g2C9uWBEXX41ekGiiNQFHsSJUdINGC0i3eKVyih0/EGU/PthkdRKMaxV5bncf01uzUdJPuPEd2jevmNYaRWUIsGJSbJcVT9T1X3A0zjhdw0jLV7ryltAFnZrK6mVYhjjFEEcLybJhAfhm1tzIZ9jS+2atukQVlqiqmGlFRgRGQkMU9XL3P0LgBNU9eqU864AvPC8RwOf5FVQIxR6fuvo4wE+/PKThWGlF2Zam3ZuWbeubOMXYaUb9v1mmmfQ/HJJw7smzGeSb+J4Xv68vfcvqjxaN255/JZd2ySMtGJxI18Fld3UQZpOVR8GHo5eHMMwDKM6Cs20tQY4zLdfBESmkQ3DMIzgFJoimQ90FZEuItIAOB8n/K5hGIZRoBSUaUtV94vI1cBrQF3gMVVdGrNYhmEYRhUU1GC7YRiGkTwKzbRlGIZhJAxTJIZhGEYgTJEYhmEYgTBFYhiGYQTCFIlhGIYRCFMkhmEYRiBMkRiGYRiBMEViGIZhBMIUiWEYhhEIUySGYRhGIEyRGIZhGIEwRWIYhmEEwhSJYRiGEQhTJIZhGEYgCioeSS60a9dOO3fuHLcYhmEYiWLhwoWbVLV9GGklXpF07tyZBQsWxC2GkQOdJ74EwMo7T49ZEsOofYjIqrDSMtOWYRiGEQhTJIZhGEYgTJEYhmEYgTBFYhiGYQTCFIlhGIYRCFMkhmEYRiBMkRiGYRiBMEViGIZhBMIUiWEYhhEIUyRG4uk88aXyVfKFShJkNIxcSbyLFMMwjLDxK31z4VM91iMxDMMwAmGKxDAMwwiEKRLDqKHYuExySdqzszESw0jB7OOGkR3WIzGMPJK0lmYQatO91nZMkRiGYRiBMNOWYdQwrBeQXJL67EyRGHknqj+Lhe6Nn6RWhLWJKJ6RmbYMwzCMQJgiMQzDMAJhpi0jsYTdRTezjFHZO2Am0+oxRWLETiH/UQtZtlTCUoSp6WRy71XlnYQyzGcjIpu8wiq7qO9PVDXSDKJGRMqAT+KWIwPaAZviFiIDTM5wSYKcSZARTM6wOVpVm4eRUE3okXyiqn3jFqI6RGSByRkeJmd4JEFGMDnDRkQWhJWWDbYbhmEYgTBFYhiGYQSiJiiSh+MWIENMznAxOcMjCTKCyRk2ocmZ+MF2wzAMI15qQo/EMAzDiBFTJIZhGEYgEq1IRGSYiHwiIstFZGKMchwmIm+IyEcislRErnGP3ywia0WkxP0M911zoyv3JyLyvTzKulJEPnTlWeAeayMiM0VkmfvdOk45ReRoX5mViMh2Ebm2EMpTRB4TkQ0issR3LOvyE5Hj3eewXEQeEBHJg5y/F5GPReQDEXlBRFq5xzuLyG5fuT4Us5xZP+co5Uwj4zM++VaKSIl7PM6yTFcPRf9+qmoiP0Bd4D/AEUADYDHQLSZZOgB93O3mwKdAN+Bm4BeVnN/Nlbch0MW9j7p5knUl0C7l2F3ARHd7IvC7uOVMec5fAocXQnkC3wH6AEuClB8wDxgACPAK8P08yDkUqOdu/84nZ2f/eSnpxCFn1s85SjkrkzHl93uAXxdAWaarhyJ/P5PcI+kPLFfVz1R1H/A0cGYcgqjqOlVd5G6XAR8B367ikjOBp1V1r6quAJbj3E9cnAk84W4/AZzlOx63nIOB/6jqqirOyZucqvoWsKWS/DMuPxHpALRQ1bnq/Gv/7LsmMjlV9XVV3e/uvgcUVZVGXHJWQSzlWZWMbkv9XOCpqtLIU1mmq4cifz+TrEi+Daz27a+h6so7L4hIZ+A44H330NWuKeExX5cyTtkVeF1EForIFe6xQ1V1HTgvI3BIAcjpcT4V/6SFVp6Qffl9291OPZ5PLsFpaXp0EZF/icibIjLQPRannNk85zjlHAisV9VlvmOxl2VKPRT5+5lkRVKZzS7Wucwi0gx4DrhWVbcDk4EjgWJgHU4XGOKV/WRV7QN8H7hKRL5TxbmxlrGINAB+AExzDxVieVZFOrniLtdfAvuBqe6hdUAnVT0O+DnwVxFpQXxyZvuc4yzP0VRs6MRelpXUQ2lPTSNT1rImWZGsAQ7z7RcBX8QkCyJSH+fhTVXV5wFUdb2qfq2qB4BH+MbcEpvsqvqF+70BeMGVab3bnfW64BviltPl+8AiVV0PhVmeLtmW3xoqmpXyJq+IjAXOAMa4Zgtc08Zmd3shjq38qLjkzOE5xyKniNQDzgGe8Y7FXZaV1UPk4f1MsiKZD3QVkS5uy/V84B9xCOLaSR8FPlLVP/iOd/Cddjbgzfr4B3C+iDQUkS5AV5zBrajlbCoizb1tnMHXJa48Y93TxgJ/j1NOHxVae4VWnj6yKj/XvFAmIie6786FvmsiQ0SGATcAP1DVXb7j7UWkrrt9hCvnZzHKmdVzjktO4DTgY1UtNwPFWZbp6iHy8X6GOWsg3x9gOM7MhP8Av4xRjlNwun4fACXuZzjwJPChe/wfQAffNb905f6EkGdvVCHnETizNBYDS70yA9oCs4Fl7nebOOV0820CbAZa+o7FXp44im0d8BVOy+3SXMoP6ItTQf4H+COul4mI5VyOYxP33tGH3HP/r/s+LAYWASNiljPr5xylnJXJ6B6fAlyZcm6cZZmuHor8/TQXKYZhGEYgkmzaMgzDMAoAUySGYRhGIEyRGIZhGIEwRWIYhmEEwhSJYRiGEQhTJEbiEJFWIjLet99RRKZHmF+x+DzQxomINHZdb9QNmE5PEZkSklhGLccUiZFEWgHlikRVv1DVkRHmV4wzH78QuAR4XlW/DpKIqn4IFIlIp3DEMmozto7ESBwi4nl6/gSYCTwIzFDVHiJyEY6n0rpADxw/TQ2AC4C9wHBV3SIiR7rXtQd2AZer6sciMgr4DfA1UIqzenk50BhYC/wXsAK4zz22G7hYVT/JIu85OIvF+gMtgEtUdZ6InArc796mAt9Rx4ur/97fBX6oqitFZBBwC7AeR9k9j7OQ7xpXtrNU9T+p96Sq33HTugZoqKp3ZfcEDCOFMFdW2sc++fiQEvPBvw9chFPxN8dREqW4q4+Be3Ec2YGzwreru30C8L/u9ofAt93tVr40/+jLrwXfxPU4DXguy7znAI+429/xyf4ijlNNgGZeHr58GwBf+vYHAdtw4lA0xFF0t7i/XQPcl+6e3O2TgRfjfp72Sf6nXhY6xzCSwhvqtOTLRKQUp4IGp0Lt5XpHPQmY5gv81tD9fgeYIiLP4rTwK6Ml8ISIdMXpOdTPNG/feU+BE+tCRFqIE63wHeAPIjIVx3zld+UN0A5HcfiZr66LcBH5D/C6L7/vVnNPG4COae7RMDLGxkiMmshe3/YB3/4BoB7Oe79NVYt9n2MBVPVK4P/heEUtEZG2laR/G47C6AGMABplkbdHqk1ZVfVO4DIcs9R7InJMyjm7U/LKKL8q7qmRm6ZhBMIUiZFEynDMRzmhToyGFe7YAeLQ290+UlXfV9VfA5twKt/U/FrimJHAMWflwnlufqfgjFuUunl/qKq/AxYAFRSJqm4F6opIqjKpkjT3BI578yXprzSMzDBFYiQOdeI9vCMiS0Tk9zkmMwa4VEQ8T8hemObfi8iHIrIEeAvHi+sbQDcRKRGR83BiYP+XiLyDM7CeC1vdgfOHcDzeAlzr3tNinJ7CK5Vc9zqOl9dsqOyewDF9vZS96IZREZu1ZRh5xp219QtVXZDDtccBP1fVCwLK0BB4EzhFv4njbhg5YT0Sw0gQqvov4I2gCxKBTsBEUyJGGFiPxDAMwwiE9UgMwzCMQJgiMQzDMAJhisQwDMMIhCkSwzAMIxCmSAzDMIxA/H8WJ6dI1GqwtAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plot_raster(config_file='bio_disconnected_sims/config.simulation_recurrent.json', group_by='model_name')" ] }, { "cell_type": "markdown", "id": "96c7f667", "metadata": {}, "source": [ "#### Recreating the Whole Simulation (Validation of Synaptic Activity Summation) \n", "\n", "Now that we can show the contribution of feedforward only synaptic activity and recurrent only synapstic activity, we might expect the two to sum up to the full simulation activity. Indeed we can combine the feedforward inputs with the recurrent replay inputs, which we will do in a new configuration file, *config.simulation_recreated.json*:\n", "\n", "```json\n", "{\n", " \"inputs\": {\n", " \"replay_spikes\": {\n", " \"input_type\": \"replay_spikes\",\n", " \"module\": \"replay\",\n", " \"spikes_file\": \"$BASE_DIR/previous_results/spikes.baseline.h5\",\n", " \"edges\": {\n", " \"edges_file\": \"$NETWORK_DIR/internal_internal_edges.h5\",\n", " \"edge_types_file\": \"$NETWORK_DIR/internal_internal_edge_types.csv\"\n", " }\n", " },\n", "\n", " \"external_spikes\": {\n", " \"input_type\": \"spikes\",\n", " \"module\": \"sonata\",\n", " \"input_file\": \"$INPUT_DIR/external_spikes.h5\",\n", " \"node_set\": \"external\"\n", " }\n", " }\n", "}\n", "```\n", "\n", "And when we run the simulation we see that we can recreate the original simulation results:" ] }, { "cell_type": "code", "execution_count": 8, "id": "81f51dde", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-01-11 14:56:08,394 [INFO] Created log file\n", "Mechanisms already loaded from path: /local1/workspace/bmtk/docs/tutorial/bio_disconnected_sims/components/mechanisms. Aborting.\n", "2023-01-11 14:56:08,424 [INFO] Building cells.\n", "2023-01-11 14:58:22,580 [INFO] Building recurrent connections\n", "2023-01-11 14:58:23,046 [INFO] Building replay connections \"replay_spikes\"\n", "2023-01-11 14:58:27,402 [INFO] Building virtual cell stimulations for external_spikes\n", "2023-01-11 14:58:28,245 [INFO] Running simulation for 2000.000 ms with the time step 0.100 ms\n", "2023-01-11 14:58:28,245 [INFO] Starting timestep: 0 at t_sim: 0.000 ms\n", "2023-01-11 14:58:28,246 [INFO] Block save every 5000 steps\n", "2023-01-11 14:59:41,169 [INFO] step:5000 t_sim:500.00 ms\n", "2023-01-11 15:00:53,811 [INFO] step:10000 t_sim:1000.00 ms\n", "2023-01-11 15:02:07,672 [INFO] step:15000 t_sim:1500.00 ms\n", "2023-01-11 15:03:21,741 [INFO] step:20000 t_sim:2000.00 ms\n", "2023-01-11 15:03:21,809 [INFO] Simulation completed in 4.0 minutes, 53.56 seconds \n" ] } ], "source": [ "bionet.reset()\n", "\n", "conf = bionet.Config.from_json('bio_disconnected_sims/config.simulation_recreated.json')\n", "conf.build_env()\n", "\n", "net = bionet.BioNetwork.from_config(conf)\n", "sim = bionet.BioSimulator.from_config(conf, network=net)\n", "sim.run()" ] }, { "cell_type": "code", "execution_count": 9, "id": "17cc1ce0", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plot_raster(config_file='bio_disconnected_sims/config.simulation_recreated.json', group_by='model_name')" ] }, { "cell_type": "markdown", "id": "3e486b3c", "metadata": {}, "source": [ "### \"Replay\" Options for Selecting Subnets \n", "\n", "#### filtering by source/target properties\n", "\n", "By default the `replay_spikes` input module will resimulate all the possible synapses in the `edges` files. However sometimes we may only want to replay subsets of recurrent synapses. To do so we can use the optional arguments `source_node_set` and/or `target_node_set` to filter out a smaller subset of synapses.\n", "\n", "For example, we may want to see the synaptic contribution that the internal excitatory neurons had on the population of \"Scnn1a\" cells. We can modify the \"**inputs**\" section of the config file:\n", "\n", "```json\n", "{\n", " \"inputs\": {\n", " \"replay_spikes\": {\n", " \"input_type\": \"replay_spikes\",\n", " \"module\": \"replay\",\n", " \"spikes_file\": \"$BASE_DIR/previous_results/spikes.baseline.h5\",\n", " \"source_node_set\": {\n", " \"population\": \"internal\",\n", " \"ei\": \"e\"\n", " },\n", " \"target_node_set\": {\n", " \"population\": \"internal\",\n", " \"model_name\": \"Scnn1a\"\n", " },\n", " \"edges\": {\n", " \"edges_file\": \"$NETWORK_DIR/internal_internal_edges.h5\",\n", " \"edge_types_file\": \"$NETWORK_DIR/internal_internal_edge_types.csv\"\n", " }\n", " }\n", " }\n", "}\n", "```\n", "\n", "* `source_node_set` will select only thoses synapses in the \"internal\" populaton of cells that originate from excitatory cells (defined by \"`ei==e`\")\n", "* `target_node_set` will subsequently refine the subset of replayable connections to those which connect to cells with \"`model_name==Scnn1a`\"\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "046277a1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-01-11 15:03:22,195 [INFO] Created log file\n", "Mechanisms already loaded from path: /local1/workspace/bmtk/docs/tutorial/bio_disconnected_sims/components/mechanisms. Aborting.\n", "2023-01-11 15:03:22,210 [INFO] Building cells.\n", "2023-01-11 15:06:16,657 [INFO] Building recurrent connections\n", "2023-01-11 15:06:17,267 [INFO] Building replay connections \"replay_spikes\"\n", "2023-01-11 15:06:18,419 [INFO] Running simulation for 2000.000 ms with the time step 0.100 ms\n", "2023-01-11 15:06:18,420 [INFO] Starting timestep: 0 at t_sim: 0.000 ms\n", "2023-01-11 15:06:18,421 [INFO] Block save every 5000 steps\n", "2023-01-11 15:07:45,439 [INFO] step:5000 t_sim:500.00 ms\n", "2023-01-11 15:09:12,347 [INFO] step:10000 t_sim:1000.00 ms\n", "2023-01-11 15:10:40,169 [INFO] step:15000 t_sim:1500.00 ms\n", "2023-01-11 15:12:08,931 [INFO] step:20000 t_sim:2000.00 ms\n", "2023-01-11 15:12:08,955 [INFO] Simulation completed in 5.0 minutes, 50.54 seconds \n" ] } ], "source": [ "bionet.reset()\n", "\n", "conf = bionet.Config.from_json('bio_disconnected_sims/config.simulation_exc2scnn1a.json')\n", "conf.build_env()\n", "\n", "net = bionet.BioNetwork.from_config(conf)\n", "sim = bionet.BioSimulator.from_config(conf, network=net)\n", "sim.run()" ] }, { "cell_type": "code", "execution_count": 11, "id": "09c569b6", "metadata": {}, "outputs": [ { "data": { "image/png": "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406ePJm2bdvW9Lt1zTXXbHP+V1xxBTvvvHPG7urLQbGv2uoE3G9mjQiS1qPuPt7MHjCzKoJmqwXAz0A120WkMjVr1ownn3ySyy67jA4dOmQdL9WVycCBAxk/fnzO8x8xYgTnn38+PXv2LDjWYij2VVtvAftkGH5SLdOoZruIFN2fqv/EuVXnxjKvxo0bc/bZZ3PLLbdw3XVb7r5OPfVU2rVrx7/+9S/69evHiBEjss7nyCOPZNGiRaxfv54LL7yQs88+G4ABAwbEEmexqK8tEWmQ/jzrz7HO77zzzuPBBx9k1apVW7323nvvMXHiRG66KbiuaOrUqfTt25cf/ehHzJ07t2a8e++9lxkzZjB9+nTGjh3LihUrYo2xWNTXlohIDNq0acPJJ5/M2LFjadGixRavjRw5kkaNGgHQr18/Fi5cSKtWrXj++ec58sgjmTdvHgBjx47lqaeeAmDRokXMmzeP9u3bl3ZF6kBHJCIiMbnooou45557+Oqrr7YY3rJly5rHbdq0qTlpPnz4cL7++muWL1/O5MmTmThxIlOnTmXWrFnss88+rF+/vqTx15USiYhITNq1a8exxx7LPffck3WcTz75hFRnuW+++SabN2+mffv2rFq1ih133JHtt9+ed955h9dff71UYRdMiUREJEajR49m+fLlWV9//PHH2Xvvvenbty8///nPefjhhzEzhg0bxqZNm+jTpw+/+tWvtjjBfskll9ClS5ea7uqzXVqcFHUjLyIVra7dyMd51Va5q+hu5EVEylVDSSKloEQiIiIFUSIREZGCKJGIiEhBkiq1287MJpjZvPD/jpFpVGpXRKSCFPuIJFVqty9B7ZFhZjYAGANMcveewKTweXqp3WHAn8IOH0VEpEwVNZF4IFOp3SOA+8Ph9wNHho9rSu26+4dAqtSuiEjZatSoEVVVVey9996MHDmStWvXMmjQIF588cUtxrv11ls599zgarFhw4axww47cPjhhycRcqySKrX7HXdfChD+3ykcXaV2RaTitGjRgurqaubMmUPTpk254447GDVqFA8//PAW4z388MOMGjUKgF/+8pc88MADSYQbu6RK7WajUrsiUhKf/b8/FmW+AwcOZP78+RxzzDGMHz+eDRs2ALBgwQI+/vhjDj74YAAGDx5M69atixJDqSVSahdYlqqSGP7/NBxNpXZFpCSW33577PPctGkTL7zwAr1796Z9+/bsv//+/OMf/wCCo5HjjjsOs0y/lytbIqV2CUrqnhKOdgrwdPhYpXZFpOKsW7eOqqoq+vfvT9euXTnjjDMAtmjeijZr1TdJldqdCjxqZmcAHwEjQaV2RaQypc6RpDvyyCO5+OKLmTlzJuvWraNfv36lD64Ekiq1uwIYnGUaldoVkXqhVatWDBo0iNNPP73eHo2A7mwXESmqUaNGMWvWLI4//vgthg8cOJCRI0cyadIkunTpstWlwpVEpXZFpEHqcN55sc1rzZo1WV876qijyFSu49VXX41t+UnTEYmINEgdLzg/6RDqDSUSEREpSM6JxMwuNLM2FrjHzGaa2dBiBiciIuUvnyOS0939S2Ao0BE4Dbi+KFGJiEjFyCeRpG7HHA7c5+6zyNyliYiINCD5JJIZZvYSQSJ50cxaA5uLE5aIiFSKfBLJGQR1Q/Zz97VAU4LmLRGRBi3fbuSrq6s54IAD2GuvvejTpw+PPPJIQpHHY5uJxMz6mVk/gsJUALuEz7uh+1BERPLuRn777bfnL3/5C3PnzuUf//gHF110EStXrkwm+BjkckRyU/h3O/A6cBdwN/AGMLa2Cc1sZzN72czeDkvtXhgOv8rMlphZdfg3PDKNSu2KSNG9+ewHRZlvLt3I9+rVi549ewLQuXNndtppJyq5ttI2E4m7/8DdfwAsBPYN64DsS9CH1vxtTL4JGO3uewADgPPCcroAt7h7Vfj3PKjUroiUzrTnFsQ+z7p0I//mm2+yceNGdt1119jjKZV8zpHs7u6zU0/cfQ7fNndl5O5L3X1m+Hg18DYZKh5GqNSuiFScunYjv3TpUk466STuu+8+ttuucu8Pz+ccx9tm9l/AXwmqFp5IkBhyYmbdCY5i3gAOAs43s5OB6QRHLV8QJJnXI5NlLbULnA3QtWvXPFZBRCR+delG/ssvv+THP/4x1157LQMGDChhtPHLJwWeBswFLgQuIqgZktNVW2bWCngCuCi8qfHPwK4ERzRLCc7BgErtikg9kq0b+Y0bN3LUUUdx8sknM3LkyAQjjEfORyTuvh64JfzLmZk1IUgiD7r7k+G8lkVevxsYHz5VqV0RqVdGjRrF0UcfvcUVXI8++iivvPIKK1asYNy4cQCMGzeOqqqqZIIs0DYTiZk96u7HmtlsMh8d9KllWgPuAd5295sjwzu5+9Lw6VHAnPDxM8DfzOxmoDMqtSsiRbLfj7vHNq98u5E/8cQTOfHEE2NbftJyOSK5MPx/eB3mfxBwEjDbzKrDYZcDo8ysiiAxLQB+Biq1KyKls/+IXZIOod7YZiJJHTm4+8LaxjOzqe5+QNq0/0Pm8x7P17I8ldoVEakgcV5v1jzGeYmISIWIM5FsXUtSRETqvcq9A0ZERMpCnIlEtUlERBqgvBKJmXUzs8PCxy3CmiQpJ8UamYhIhYh2Iz9ixIi8e/I99dRTefzxx4sTXAnkU7P9LOBx4M5wUBfg76nXw763REQanGg38u3ateP222/PedpNmzYVMbLSyOeI5DyC+0K+BHD3ecBOxQhKRKTY/vnYg0WZ7wEHHMCSJUsAqK6uZsCAAfTp04ejjjqKL774AoBBgwZx+eWXc+ihh3LbbbcBMHHiRAYOHEivXr0YP3581vmXo3wSyQZ335h6YmaN0ZVaIlKhpj7+UOzz/Oabb5g0aRI/+clPADj55JP5/e9/z1tvvUXv3r25+uqra8ZduXIlU6ZMYfTo0UBQr2TKlCk899xznHPOOaxfvz72+Ioln0QyxcwuB1qY2RDgMeDZ4oQlIlI5Ut3It2/fns8//5whQ4awatUqVq5cyaGHHgrAKaecwiuvvFIzzXHHHbfFPI499li22247evbsyS677MI777xT0nUoRD6JZAzwGTCboEuT54H/W4ygREQqSeocycKFC9m4cWNO50hatmy5xfP0glfpz8tZzonE3Te7+93uPtLdjwkf19q0VUup3XZmNsHM5oX/d4xMo1K7IlKR2rZty9ixY7nxxhvZfvvt2XHHHXn11VcBeOCBB2qOTjJ57LHH2Lx5M++//z4ffPABu+22W6nCLlguvf9m7PU3pbbef/m21O7M8FLhGWY2ATgVmOTu15vZGIKjnUvTSu12BiaaWS913CgilWKfffahb9++PPzww9x///2cc845rF27ll122YX77rsv63S77bYbhx56KMuWLeOOO+6gefPK6XUql95/U73+nhf+fyD8fwKwtrYJww4fU50+rjazVKndI4BB4Wj3A5OBS4mU2gU+NLNUqd2pOcQpIpKzA44Zte2RcpTejfyzz357+vj1119PH53Jkydv8TxVk6RS5dL770IAMzvI3Q+KvDTGzF4DrsllQWmldr8T6VV4qZmlLiNWqV0RKYkDR56QdAj1Rj4n21ua2cGpJ2Z2INCylvFrZCi1m3XUDMNUaldEpIzlXGoXOAO418zahs9XAqdva6JMpXaBZakqiWbWCfg0HK5SuyIiFSafq7ZmuHtfoA/Q192r3H1mbdNkK7VLUFL3lPDxKcDTkeHHm1kzM+uBSu2KiJS9nI9IwiORK4FDwudTgGvcfVUtk2UrtXs98KiZnQF8BIwEldoVEalE+TRt3QvMAY4Nn58E3AccnW2CWkrtAgzOMo1K7YqIVJB8Trbv6u5XuvsH4d/VwC7FCkxEpJJcd9117LXXXvTp04eqqireeOON2Ob9yiuv0K9fPxo3blyW3c3nc0SyzswODo8yMLODgHXFCUtEpHJMnTqV8ePHM3PmTJo1a8by5cvZuHHjtifMUdeuXRk3bhw33nhjbPOMUz5HJP8J3G5mC8xsAfBHgj63REQqzqoJC2Ob19KlS+nQoQPNmjUDoEOHDnTu3Jlp06Zx4IEH0rdvX/bff39Wr17NuHHjOProoxk2bBg9e/bkkksuqZlPq1atuOKKK+jbty8DBgxg2bJlAHTv3p0+ffqw3XZb7rLXrFnD4MGD6devH7179+bpp58mCfkkkreBPxCcK3mSoKjVkfGHJCJSfKsnfRTbvIYOHcqiRYvo1asX5557LlOmTGHjxo0cd9xx3HbbbcyaNYuJEyfSokULIKhT8sgjjzB79mweeeQRFi1aBMBXX33FgAEDmDVrFocccgh33313rctt3rw5Tz31FDNnzuTll19m9OjRbKMLxKLIJ5E8DYwA1gNLgDXAV8UISkSkkrRq1YoZM2Zw11130bFjR4477jjuvPNOOnXqxH777QdAmzZtaNw4OJswePBg2rZtS/Pmzdlzzz1ZuDA4OmratCmHHx70SrXvvvuyYMGCWpfr7lx++eX06dOHww47jCVLltQcxZRSPudIurj7sKJFIiJSwRo1asSgQYMYNGgQvXv35vbbb8/aFXyqCSw1XarcbpMmTWqmiQ7P5sEHH+Szzz5jxowZNGnShO7duydSECufI5J/mlnvokUiIlKh3n33XebNm1fzvLq6mj322IOPP/6YadOmAbB69erY67OvWrWKnXbaiSZNmvDyyy/XHNmUWj5HJAcDp5rZh8AGgvtDfBvdyIuI1Htr1qzhggsuYOXKlTRu3Jjvfe973HXXXZx22mlccMEFrFu3jhYtWjBx4sQ6zX/atGk1Nd+fffZZrrzySubOncsJJ5zAiBEj6N+/P1VVVey+++4xr1luLNcTM2bWLdPwVO/ASenfv79Pnz49yRBEJEFvv/02e+yxR97TrZqwkLZDMu7W6p1M28jMZrh7/zjmn/MRSdIJQ0QkTg0liZRCPudI8mZm95rZp2Y2JzLsKjNbYmbV4d/wyGsqsysiUmGKmkiAcUCmK71uCXsPrnL35wHSyuwOA/5kZo2KHJ+I1ANJ3DtRKUqxbYqaSNz9FeDzHEevKbPr7h8CqTK7IiJZNW/enBUrViiZZODurFixouj13/O5aitO55vZycB0YLS7f0GOZXZFRKK6dOnC4sWL+eyzz5IOpSw1b96cLl26FHUZSSSSPwO/ISih+xvgJoJKizmV2QXVbBeRbzVp0oQePXokHUaDVuxzJFtx92Xu/o27bwbu5tvmq5zL7Kpmu4hI+Sh5IglrtKccRVAsC1RmV0SkIhW1acvMHgIGAR3MbDFBqd5BZlZF0Gy1gLArepXZFRGpTDnf2V6udGe7iEj+4ryzveRNWyIiUr8okYiISEGUSEREpCBKJCIiUhAlEhERKYgSiYiIFESJRERECqJEIiIiBVEiERGRgiiRiIhIQZRIRESkIEnUbG9nZhPMbF74f8fIa6rZLiJSYZKo2T4GmOTuPYFJ4XPVbBcRqVBJ1Gw/Arg/fHw/cGRkuGq2i4hUmCTOkXzH3ZcChP93Cod/F1gUGS9rzXYzO9vMppvZdNVpFhFJVjmdbM+5ZrtK7YqIlI8kEsmyVLnd8P+n4fCca7aLiEj5SCKRPAOcEj4+BXg6Mlw120VEKkwSNduvBx41szOAj4CRoJrtIiKVqqiJxN1HZXlpcJbxrwOuK15EIiISt3I62S4NzKoJC2v+4ppX6nEc88v0uFCf3jkr9nlmE9e2LWT5lSr9s5TEuiT9/uVDiUQSs3rSRzV/cc3r0ztnFTy/VRMW1swrNe+4bPzwy5r5F1uh27bQnVhq2antWAlS6xz9LJXq/Ur59M5ZNcuMe7nFSkxKJFLxol+OjR9+udWwfKW+vKl5xSW6kyq26PrXdUee2okWsvxVExbGvh2LKbrOqbhLmURSy822zLiSe9yUSKTiZfpylPrLn4tSxhRdViE78rrGnJquHN+HbSnnmMs1NiUSkVpUShu1FFfrwV0TW3YlfAaVSETSRHcaqV+Axfoyl/NOIsmdZ1KyrXPbId1KHMm34jwKKdZ7qkQiidluh6axzCfTl6OQL0z6TqP14K6xfJmb9mizxTyheE0Vceww2g7pVuf5RKeLrnclaD24a+JJNLXN0rddoXEVKyEqkUgiVk1YyOaVG4s2/zi/MHHNK3quoti/cOOaf9sh3Qo+aqq0k+1th3RL9AgEvt1m6dsuzri+177bbnHNS4lEEhHnL/H0eRX6q62cm5uSUJf3qlxPCtdVffxMtGjSvFVc81IikYqW7Qsex+W/UcVq6ki6CSVX9XFHmo/6lhjjllgiMbMFZjbbzKrNbHo4LGsZXpFM0r/gTXu0KcqNXHE3daR2zEk3oeSqoexIU4m9nBJnJfzYSPqI5AfuXuXu/cPnGcvwSv1TrC/HTj/rW5T5FmrVhIXQ7NuvW7F3zHHtCCvprvQ4pBJ7qW8ajQ4rxcUJcb+vSSeSdNnK8Eo9U6xf4uX0SzJq9aSPYMPm0i4vBpV0oryYivHDJ9uNtOnbvBhJLe73NclE4sBLZjbDzM4Oh2Urw7sFldqVlPQveOpLF+cXv1yTUylVQvNKMVVKE2RSkkwkB7l7P+BHwHlmdkiuE6rUbv2V70472xc8jstWUxrK+YFsWg/u2uB2pA09ceYrsUTi7h+H/z8FngL2J3sZXmkg4thpF3qzX7F2IqW8MS/OdWhoSWTVhIUlWefWg7tu9WMn7ptrMynGeZhEEomZtTSz1qnHwFBgDtnL8IrkrNCjkWLtREp5IUBD2/nHqVRHoG2HdNtqWZnet7jfy9WTPor9s1jUCom1+A7wlJmlYvibu//DzKaRoQyvSL7KvX+ihtR0Uh/WtVRHKZUqkSMSd//A3fuGf3uFJXZx9xXuPtjde4b/P08iPim91BFEXXY62aaJYwfWtEebWHYg6c0Y9X2nFN329WFdS32erBTNoOu+Xr8mrnmV2+W/0kClvqh12emkTxPnzX5xXSaZqRkDSndFWKmvPKvk5FHKI6hsy4p+7uJ+71LLVBcpIhHpX7TVkz6qmOaUUv3SLfUv6tR7ElcPz6UUTYLF/hzlknDLvZcGUCKRMlDozib1RYvOp5AvS3piqsT7SJKOOfWepHp4Tjqeukp9jsrhKKWcKZFI4jav3BjLlyeObulXTVi41S/AuH4RlvLy33KLuRLuxYkmu9TjVFcipWyqK8Wy4k7sSiRSFuL88hSSlIq5w8t0vqVUvz7rupyG1EVKtBpm6nE5rH+pumcphBKJJKKYTR2VfKK3WLRNclduR0+V8N4pkUgiyu3LWptiNEmlEmk5l9qtq0w/Eiqx3T8plXg+SYlEKl6cVwZl2uEVo3mj2Ik0yV+xqyd9tFXyrYRf1emin4VS7txL8SMr7sSuRCIVL87a75W4w8tFITvCukzbbJcd6ry8JH1656yaneyGD1YGA5ttl1h9ktqGFyLuz7kSidRLldI8UKomn0I6sGxINds3fvhlzU625ki0RHVksm2zStiWZZdIzGyYmb1rZvPNTBUSG6A4kkAhX77ozr1pjzZF7Wur3I+A6hJfpZ4PqdS4y0FZJRIzawTcTlCjZE9glJntmWxUUmr5JoH0HUChiajtkG41513K4fLPukqdp4hjB5nPNi335JhNprjj3Ib1WVklEoKaJPPDTh03Ag8TlN+VeqaY9TLiaAqInncpRtNCKZorUl2Ftx3SraDtXdfmrUqUnjii27DYitn5aLGZuycdQw0zOwYY5u5nhs9PAr7v7uenjXc2kCrPuxvwbkkDlVj0/o/d9k09nv3JuzOiw6PP850XwPKvPl+6dPVnH8cRW3p8ddWpdcfOHVq26xTnPLelLtsyjvlke28rSWqd49qGuSrV52THFm33/XztSotjXknVI8km00ptlenc/S7gruKHIyIi21JuTVuLgZ0jz7sAdf5VKSIixVduiWQa0NPMephZU+B4gvK7IiJSpsqqacvdN5nZ+cCLQCPgXnefm3BYIiJSi7I62S4iIpWn3Jq2RESkwiiRiIhIQZRIRESkIEokIiJSECUSEREpiBKJiIgURIlEREQKokQiIiIFUSIREZGCKJGIiEhBlEhERKQgSiQiIlIQJRIRESmIEomIiBSkrOqR1EWHDh28e/fuSYchIlJRZsyYsdzdO8Yxr4pPJN27d2f69OlJhyEJ6z7mOQAWXP/jhCPJLBUflG+M0rCY2cK45qWmLUlU9zHPbbGTFZHKo0QiIlJmKu0HVsU3bYmIxE1NkfnREYlIPVZpv2ylMimRiIhIQZRIRESkIEokIiJSECUSkQx0bkEkd7pqSxKhnXT9V+43iUp8dEQiIiIFUSIREZGCKJGIiEhBlEhERKQgSiQiIlIQJRIRESmILv+VilaJlxEX+7LYpLdJ0suX0lMiEYnQTlDSlfJ+mEr9/KlpS0RECqIjEqlXdDe1SO2KcdSjRCIiGam4U/Iq5T1QIhGpRaV8kSUelXqOImlKJCLS4CmBFEaJRMpCpi9yIUcA5XIkUdsOqlzP52SKOZdYs61rubwX5aKuSauQz0uxE6W5e1EXUGxmthp4N+k4ctABWJ50EDlQnPGqhDgrIUZQnHHbzd1bxzGj+nBE8q679086iG0xs+mKMz6KMz6VECMozriZ2fS45qX7SEREpCBKJCIiUpD6kEjuSjqAHCnOeCnO+FRCjKA44xZbnBV/sl1ERJJVH45IREQkQUokIiJSkIpOJGY2zMzeNbP5ZjYmwTh2NrOXzextM5trZheGw68ysyVmVh3+DY9Mc1kY97tm9sMSxrrAzGaH8UwPh7UzswlmNi/8v2OScZrZbpFtVm1mX5rZReWwPc3sXjP71MzmRIblvf3MbN/wfZhvZmPNzEoQ5w1m9o6ZvWVmT5nZDuHw7ma2LrJd70g4zrzf52LGmSXGRyLxLTCz6nB4ktsy236o+J9Pd6/IP6AR8D6wC9AUmAXsmVAsnYB+4ePWwHvAnsBVwC8yjL9nGG8zoEe4Ho1KFOsCoEPasD8AY8LHY4DfJx1n2vv8CdCtHLYncAjQD5hTyPYD3gQOAAx4AfhRCeIcCjQOH/8+Emf36Hhp80kizrzf52LGmSnGtNdvAn5dBtsy236o6J/PSj4i2R+Y7+4fuPtG4GHgiCQCcfel7j4zfLwaeBv4bi2THAE87O4b3P1DYD7B+iTlCOD+8PH9wJGR4UnHORh4390X1jJOyeJ091eAzzMsP+ftZ2adgDbuPtWDb+1fItMULU53f8ndN4VPXwe61DaPpOKsRSLbs7YYw1/qxwIP1TaPEm3LbPuhon8+KzmRfBdYFHm+mNp33iVhZt2BfYA3wkHnh00J90YOKZOM3YGXzGyGmZ0dDvuOuy+F4MMI7FQGcaYcz5Zf0nLbnpD/9vtu+Dh9eCmdTvBLM6WHmf3LzKaY2cBwWJJx5vM+JxnnQGCZu8+LDEt8W6bth4r++azkRJKpzS7Ra5nNrBXwBHCRu38J/BnYFagClhIcAkOysR/k7v2AHwHnmdkhtYyb6DY2s6bAT4DHwkHluD1rky2upLfrFcAm4MFw0FKgq7vvA1wM/M3M2pBcnPm+z0luz1Fs+UMn8W2ZYT+UddQsMeUdayUnksXAzpHnXYCPE4oFM2tC8OY96O5PArj7Mnf/xt03A3fzbXNLYrG7+8fh/0+Bp8KYloWHs6lD8E+TjjP0I2Cmuy+D8tyeoXy332K2bFYqWbxmdgpwOHBC2GxB2LSxInw8g6CtvFdScdbhfU4kTjNrDBwNPJIalvS2zLQfogSfz0pOJNOAnmbWI/zlejzwTBKBhO2k9wBvu/vNkeGdIqMdBaSu+ngGON7MmplZD6AnwcmtYsfZ0sxapx4TnHydE8ZzSjjaKcDTScYZscWvvXLbnhF5bb+weWG1mQ0IPzsnR6YpGjMbBlwK/MTd10aGdzSzRuHjXcI4P0gwzrze56TiBA4D3nH3mmagJLdltv0Qpfh8xnnVQKn/gOEEVya8D1yRYBwHExz6vQVUh3/DgQeA2eHwZ4BOkWmuCON+l5iv3qglzl0IrtKYBcxNbTOgPTAJmBf+b5dknOFytwdWAG0jwxLfngSJbSnwNcEvtzPqsv2A/gQ7yPeBPxL2MlHkOOcTtImnPqN3hOP+7/DzMAuYCYxIOM683+dixpkpxnD4OOCctHGT3JbZ9kNF/3yqixQRESlIJTdtiYhIGVAiERGRgiiRiIhIQZRIRESkIEokIiJSECUSqThmtoOZnRt53tnMHi/i8qos0gNtksysRdj1RqMC59PbzMbFFJY0cEokUol2AGoSibt/7O7HFHF5VQTX45eD04En3f2bQmbi7rOBLmbWNZ6wpCHTfSRSccws1dPzu8AE4HZgvLvvbWanEvRU2gjYm6CfpqbAScAGYLi7f25mu4bTdQTWAme5+ztmNhK4EvgGWEVw9/J8oAWwBPgd8CFwazhsHXCau7+bx7InE9wstj/QBjjd3d80s0OB28LVdOAQD3pxja77P4GfuvsCMxsEXA0sI0h2TxLcyHdhGNuR7v5++jq5+yHhvC4Emrn7H/J7B0TSxHlnpf70V4o/0mo+RJ8DpxLs+FsTJIlVhHcfA7cQdGQHwR2+PcPH3wf+O3w8G/hu+HiHyDz/GFleG76t63EY8ESey54M3B0+PiQS+7MEnWoCtEotI7LcpsAnkeeDgJUEdSiaESS6q8PXLgRuzbZO4eODgGeTfj/1V/l/jfPIOSKV4mUPfsmvNrNVBDtoCHaofcLeUQ8EHosUfmsW/n8NGGdmjxL8ws+kLXC/mfUkOHJokuuyI+M9BEGtCzNrY0G1wteAm83sQYLmq2hX3gAdCBJH1DQPuwg3s/eBlyLL+8E21ulToHOWdRTJmc6RSH20IfJ4c+T5ZqAxwed+pbtXRf72AHD3c4D/S9ArarWZtc8w/98QJIy9gRFA8zyWnZLepuzufj1wJkGz1OtmtnvaOOvSlpXT8mpZp+bhPEUKokQilWg1QfNRnXhQo+HD8NwBFugbPt7V3d9w918Dywl2vunLa0vQjARBc1ZdHBcu72CC8xarwmXPdvffA9OBLRKJu38BNDKz9GRSqyzrBEH35nOyTymSGyUSqTge1Ht4zczmmNkNdZzNCcAZZpbqCTlVpvkGM5ttZnOAVwh6cX0Z2NPMqs3sOIIa2L8zs9cITqzXxRfhifM7CHq8BbgoXKdZBEcKL2SY7iWCXl7zkWmdIGj6ei7/0EW2pKu2REosvGrrF+4+vQ7T7gNc7O4nFRhDM2AKcLB/W8ddpE50RCJSQdz9X8DLhd6QCHQFxiiJSBx0RCIiIgXREYmIiBREiURERAqiRCIiIgVRIhERkYIokYiISEH+P1UQOAVYKnesAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plot_raster(config_file='bio_disconnected_sims/config.simulation_exc2scnn1a.json', group_by='model_name')" ] }, { "cell_type": "markdown", "id": "65d4f1e3", "metadata": {}, "source": [ "We may also want to filter only by the pre-synaptic source cell (or post-synaptic target). For example if we want to select only recurrent synapses that target either one of our PV cells, no matter the source-cell, we can use the following option:\n", "\n", "```json\n", "{\n", " \"inputs\": {\n", " \"replay_spikes\": {\n", " \"input_type\": \"replay_spikes\",\n", " \"module\": \"replay\",\n", " \"spikes_file\": \"$BASE_DIR/previous_results/spikes.h5\",\n", " \"target_node_set\": {\n", " \"population\": \"internal\",\n", " \"model_name\": [\"PV1\", \"PV2\"]\n", " },\n", " \"edges\": {\n", " \"edges_file\": \"$NETWORK_DIR/internal_internal_edges.h5\",\n", " \"edge_types_file\": \"$NETWORK_DIR/internal_internal_edge_types.csv\"\n", " }\n", " }\n", " }\n", "} \n", "```" ] }, { "cell_type": "code", "execution_count": 12, "id": "b7cebebb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-01-11 15:12:09,279 [INFO] Created log file\n", "Mechanisms already loaded from path: /local1/workspace/bmtk/docs/tutorial/bio_disconnected_sims/components/mechanisms. Aborting.\n", "2023-01-11 15:12:09,294 [INFO] Building cells.\n", "2023-01-11 15:15:39,650 [INFO] Building recurrent connections\n", "2023-01-11 15:15:40,376 [INFO] Building replay connections \"replay_spikes\"\n", "2023-01-11 15:15:41,595 [INFO] Running simulation for 2000.000 ms with the time step 0.100 ms\n", "2023-01-11 15:15:41,596 [INFO] Starting timestep: 0 at t_sim: 0.000 ms\n", "2023-01-11 15:15:41,597 [INFO] Block save every 5000 steps\n", "2023-01-11 15:16:55,998 [INFO] step:5000 t_sim:500.00 ms\n", "2023-01-11 15:18:09,830 [INFO] step:10000 t_sim:1000.00 ms\n", "2023-01-11 15:19:23,905 [INFO] step:15000 t_sim:1500.00 ms\n", "2023-01-11 15:20:38,985 [INFO] step:20000 t_sim:2000.00 ms\n", "2023-01-11 15:20:39,008 [INFO] Simulation completed in 4.0 minutes, 57.41 seconds \n" ] } ], "source": [ "bionet.reset()\n", "\n", "conf = bionet.Config.from_json('bio_disconnected_sims/config.simulation_pvalb.json')\n", "conf.build_env()\n", "\n", "net = bionet.BioNetwork.from_config(conf)\n", "sim = bionet.BioSimulator.from_config(conf, network=net)\n", "sim.run()" ] }, { "cell_type": "code", "execution_count": 13, "id": "fa3de8bc", "metadata": {}, "outputs": [ { "data": { "image/png": "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c8Ln5wDPxw1XzXYRkQITRc3224EnzewC4DNgBKhmu4hIocpqInH3UQneOjbB+LcBt2UvIhERybR8OtkuIiIFSIlERETSokQiIiJpUSIREZG0KJGIiEhalEhERCQtSiQiIpIWJRIREUmLEomIiKRFiURERNKS1S5SamJm5cAG4Ftgh7v3MbM2wBNACVAOnObuX0UVo4iI1C7qI5Lvu3upu/cJX1dbhldERPJX1ImkqkRleEVEJE9FmUgceM3MZpvZxeGwRGV4K1GpXRGR/BHZORLgSHdfYWZ7Aa+b2YfJTujuDwIPAvTp06facrwiIpIbkR2RuPuK8O8XwHNAPxKX4RURkTwVSSIxs6Zm1jz2HBgMzCdxGV4REclTUTVt7Q08Z2axGP7u7v80s5lUU4ZXRETyVySJxN0/AXpVM3wtCcrwiohIfsq3y39FRKTAKJGIiEhalEhERCQtSiQiIpIWJRIREUmLEomIiKRFiURERNKiRCIiImlRIhERkbQokYiISFryLpGY2RAzW2hmi81MFRJFRPJcXiUSMysC7gd+CBwEjDKzg6KNSkREapJXiYSgJslid//E3bcDEwnK74qISJ6KskJidfYBlsa9XgYcXnWksDRvrDzvRjNbmIPYRER2J/tlakb5lkismmG7lNKNL7UrIiLRyremrWXA9+JedwJWRBSLiIgkId8SyUygq5l1NrNGwOkE5XdFRCRP5VXTlrvvMLPLgVeBImCcuy+IOCwREamBue9yCkJERCRp+da0JSIiBUaJRERE0qJEIiIiaVEiERGRtCiRiIhIWpRIREQkLUokIiKSFiUSERFJixKJiIikRYlERETSokQiIiJpUSIREZG0KJGIiEhalEhERCQteVWPpC7atWvnJSUlUYchIlJQZs+evcbd22diXgWfSEpKSpg1a1bUYUgdlIx5CYDy20+IOBKR+sfMlmRqXmraEhGRtCiRiIhIWpRIREQkLUokIiKSFiUSERFJixKJiIikRYlEJEdKxrxUccmzyO5EiURERNKiRCIiImlRIhERkbQokYiIVEPntJKnRCIiImlRIhERkbQokYiISFqUSKTgqS17V9omha3QPr+Cr0ciEqP6Jvkhfgeoz6J+0BGJiIikRYlEpIpCa1YQiZoSiYiIpEXnSEQka3TeKjW5OBLOxjKUSESyLMpmMp34Tp2aNVOnRCKS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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plot_raster(config_file='bio_disconnected_sims/config.simulation_pvalb.json', group_by='model_name')" ] }, { "cell_type": "markdown", "id": "90f5ceca", "metadata": {}, "source": [ "#### Selecting Cells by their node-id\n", "\n", "If you have a list of specific cells identified by their node_ids you can pass in a list:\n", "\n", "```json\n", "{\n", " \"inputs\": {\n", " \"replay_spikes\": {\n", " \"input_type\": \"replay_spikes\",\n", " \"module\": \"replay\",\n", " \"spikes_file\": \"$PREV_RESULTS_DIR/spikes.baseline.h5\",\n", " \"source_node_set\": {\n", " \"population\": \"internal\",\n", " \"node_id\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n", " },\n", " \"target_node_set\": {\n", " \"population\": \"internal\",\n", " \"node_id\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n", " },\n", " \"edges\": {\n", " \"edges_file\": \"$NETWORK_DIR/internal_internal_edges.h5\",\n", " \"edge_types_file\": \"$NETWORK_DIR/internal_internal_edge_types.csv\"\n", " }\n", " }\n", " }\n", "}\n", "```" ] }, { "cell_type": "markdown", "id": "1bddb76e", "metadata": {}, "source": [ "#### Using multiple edges/subnets\n", "\n", "If you have a simulation that incorporates multiple networks and/or needs to run multiple subpopulations of synapses you can use the module more than once in the same configuration json:\n", "\n", "```json\n", "{\n", " \"inputs\": {\n", " \"replay_edges_1\": {\n", " \"input_type\": \"replay_spikes\",\n", " \"module\": \"replay\",\n", " // ...\n", " }\n", " \"replay_edges_2\": {\n", " \"input_type\": \"replay_spikes\",\n", " \"module\": \"replay\",\n", " // ...\n", " }\n", " }\n", "}\n", "```" ] }, { "cell_type": "code", "execution_count": null, "id": "f5bf3a63", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.10.16" } }, "nbformat": 4, "nbformat_minor": 5 }