- {
- “cells”: [
- {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“# Chapter 3: Multi-cell, single population network (with BioNet)n”, “n”, “In this tutorial, we will create a more complex network that contains multiple biophysical cells, but all of them having the same cell-type (we will cover hetergenous networks in the next tutorial). The network will contain recurrent connections, as well as external input that provide the next with stimululation.n”, “n”, “Note - scripts and files for running this tutorial can be found in the directory [sources/chapter03/](https://github.com/AllenInstitute/bmtk/tree/develop/docs/tutorial/sources/chapter03)n”, “n”, “requirements:n”, “* bmtkn”, “* NEURON 7.4+”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“## 1. Building the Networkn”, “n”, “First we will build our internal network, which consists of 100 different cells. All the cells are of the same type (we’ll show how to build a heterogeneous network in the next tutorial), however they all have a different location and y-axis rotation.n”, “n”, “#### nodes “
]
}, {
“cell_type”: “code”, “execution_count”: 1, “metadata”: {}, “outputs”: [], “source”: [
“import numpy as npn”, “from bmtk.builder.networks import NetworkBuildern”, “from bmtk.builder.auxi.node_params import positions_columinar, xiter_randomn”, “n”, “cortex = NetworkBuilder(‘mcortex’)n”, “cortex.add_nodes(N=100,n”, ” pop_name=’Scnn1a’,n”, ” positions=positions_columinar(N=100, center=[0, 50.0, 0], max_radius=30.0, height=100.0),n”, ” rotation_angle_yaxis=xiter_random(N=100, min_x=0.0, max_x=2*np.pi),n”, ” rotation_angle_zaxis=3.646878266,n”, ” potental=’exc’,n”, ” model_type=’biophysical’,n”, ” model_template=’ctdb:Biophys1.hoc’,n”, ” model_processing=’aibs_perisomatic’,n”, ” dynamics_params=’472363762_fit.json’,n”, ” morphology=’Scnn1a_473845048_m.swc’)n”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“The parameter N is used to indicate the number of cells in our population. The positions of each cell is defined by the columinar built-in method, which will random place our cells in a column (users can define their own positions as shown here). The rotation_angel_yaxis is similarl defined by a built-in function that will randomly assign each cell a given y angle.n”, “n”, “One thing to note is that while yaxis is defined by a function which returns a lists of values, the zaxis is defined by a single value. This means that all cells will share the zaxis. we could alteratively give all cells the same y-axis rotation:n”, “
`python\n", " rotation_angle_yaxis=rotation_value\n", "`
n”, “or give all cells a unique z-rotation anglen”, “`python\n", " rotation_angle_zaxis=xiter_random(N=100, min_x=0.0, max_x=2*np.pi)\n", "`
n”, “and in general, it is at the discretion of the modeler to choose what parameters are unqiue to each cell, and what parameters are global to the cell-type.”]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“#### edgesn”, “n”, “Next we want to add recurrent edges. To create the connections we will use the built-in distance_connector function, which will assign the number of connections between two cells randomly (between range nsyn_min and nsysn_max) but weighted by distance. The other parameters, including the synaptic model (AMPA_ExcToExc) will be shared by all connections.n”, “n”, “To use this, or even customized, connection functions, we must pass in the name of our connection function using the "connection_rule" parameter, and the function parameters through "connection_params" as a dictionary, which will looks something like:n”, “
`python\n", " connection_rule=<name_of_function>\n", " connection_params={'param_arg1': val1, 'param_arg2': val2, ...}\n", "`
n”, “The connection_rule method isn’t explicitly called by the script. Rather when the build() method is called, the connection_rule will iterate through every source/target node pair, and use the rule and build a connection matrix.n”, “n”, “n”, “After building the connections based on our connection function, we will save the nodes and edges files into the network/ directory.”]
}, {
“cell_type”: “code”, “execution_count”: 2, “metadata”: {}, “outputs”: [
- {
- “data”: {
- “text/plain”: [
“<bmtk.builder.connection_map.ConnectionMap at 0x7fbbfd164f50>”
]
}, “execution_count”: 2, “metadata”: {}, “output_type”: “execute_result”
}
], “source”: [
“from bmtk.builder.auxi.edge_connectors import distance_connectorn”, “n”, “cortex.add_edges(source={‘pop_name’: ‘Scnn1a’}, target={‘pop_name’: ‘Scnn1a’},n”, ” connection_rule=distance_connector,n”, ” connection_params={‘d_weight_min’: 0.0, ‘d_weight_max’: 0.34, ‘d_max’: 50.0, ‘nsyn_min’: 0, ‘nsyn_max’: 10},n”, ” syn_weight=2.0e-04,n”, ” distance_range=[30.0, 150.0],n”, ” target_sections=[‘basal’, ‘apical’, ‘soma’],n”, ” delay=2.0,n”, ” dynamics_params=’AMPA_ExcToExc.json’,n”, ” model_template=’exp2syn’)n”, “n”
]
}, {
“cell_type”: “code”, “execution_count”: 3, “metadata”: {}, “outputs”: [], “source”: [
“cortex.build()n”, “cortex.save_nodes(output_dir=’sim_ch03/network’)n”, “cortex.save_edges(output_dir=’sim_ch03/network’)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“### External networkn”, “n”, “After building our internal network, we will build the external thalamic network which will provide input (see previous tutorial for more detail). Our thalamic network will consist of 100 "filter" cells, which aren’t actual cells by just place holders for spike-trains.”
]
}, {
“cell_type”: “code”, “execution_count”: 4, “metadata”: {}, “outputs”: [], “source”: [
“thalamus = NetworkBuilder(‘mthalamus’)n”, “thalamus.add_nodes(N=100,n”, ” pop_name=’tON’,n”, ” potential=’exc’,n”, ” model_type=’virtual’)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“The external network doesn’t have recurrent connections. Rather all the cells are feedforward onto the internal network. To do this is in a separate script which must reload the saved mcortex cell files using the import function. Then we create an edge with the thalamus nodes as the sources and the cortext nodes as the targets. This time we use the built-in connect_random connection rule, which will randomly assign each thalamus –> cortex connection between 0 and 12 synaptic connections.”
]
}, {
“cell_type”: “code”, “execution_count”: 5, “metadata”: {}, “outputs”: [], “source”: [
“from bmtk.builder.auxi.edge_connectors import connect_randomn”, “n”, “thalamus.add_edges(source=thalamus.nodes(), target=cortex.nodes(),n”, ” connection_rule=connect_random,n”, ” connection_params={‘nsyn_min’: 0, ‘nsyn_max’: 12},n”, ” syn_weight=1.0e-04,n”, ” distance_range=[0.0, 150.0],n”, ” target_sections=[‘basal’, ‘apical’],n”, ” delay=2.0,n”, ” dynamics_params=’AMPA_ExcToExc.json’,n”, ” model_template=’exp2syn’)n”, “n”, “thalamus.build()n”, “thalamus.save_nodes(output_dir=’sim_ch03/network’)n”, “thalamus.save_edges(output_dir=’sim_ch03/network’)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“#### Spike Trainsn”, “n”, “We next need to create the individual spike trains for our thalamic filter cells. We will use a Poission distrubition to create a random distribution of spikes for our 300 hundred cells each firing at ~ 15 Hz over a 3 second window. Then we can save our spike trains as a [SONATA file](https://github.com/AllenInstitute/sonata/blob/master/docs/SONATA_DEVELOPER_GUIDE.md#spike-file) under sim_ch03/inputs directory. “
]
}, {
“cell_type”: “code”, “execution_count”: 6, “metadata”: {}, “outputs”: [
- {
- “data”: {
- “text/html”: [
“<div>n”, “<style scoped>n”, ” .dataframe tbody tr th:only-of-type {n”, ” vertical-align: middle;n”, ” }n”, “n”, ” .dataframe tbody tr th {n”, ” vertical-align: top;n”, ” }n”, “n”, ” .dataframe thead th {n”, ” text-align: right;n”, ” }n”, “</style>n”, “<table border="1" class="dataframe">n”, ” <thead>n”, ” <tr style="text-align: right;">n”, ” <th></th>n”, ” <th>node_ids</th>n”, ” <th>timestamps</th>n”, ” <th>population</th>n”, ” </tr>n”, ” </thead>n”, ” <tbody>n”, ” <tr>n”, ” <td>0</td>n”, ” <td>0</td>n”, ” <td>18.174358</td>n”, ” <td>mthalamus</td>n”, ” </tr>n”, ” <tr>n”, ” <td>1</td>n”, ” <td>0</td>n”, ” <td>31.941169</td>n”, ” <td>mthalamus</td>n”, ” </tr>n”, ” <tr>n”, ” <td>2</td>n”, ” <td>0</td>n”, ” <td>84.961867</td>n”, ” <td>mthalamus</td>n”, ” </tr>n”, ” <tr>n”, ” <td>3</td>n”, ” <td>0</td>n”, ” <td>99.193760</td>n”, ” <td>mthalamus</td>n”, ” </tr>n”, ” <tr>n”, ” <td>4</td>n”, ” <td>0</td>n”, ” <td>127.710868</td>n”, ” <td>mthalamus</td>n”, ” </tr>n”, ” </tbody>n”, “</table>n”, “</div>”
], “text/plain”: [
” node_ids timestamps populationn”, “0 0 18.174358 mthalamusn”, “1 0 31.941169 mthalamusn”, “2 0 84.961867 mthalamusn”, “3 0 99.193760 mthalamusn”, “4 0 127.710868 mthalamus”
]
}, “execution_count”: 6, “metadata”: {}, “output_type”: “execute_result”
}
], “source”: [
“from bmtk.utils.reports.spike_trains import PoissonSpikeGeneratorn”, “n”, “psg = PoissonSpikeGenerator(population=’mthalamus’)n”, “psg.add(node_ids=range(100), # Have 10 nodes to match mthalamusn”, ” firing_rate=15.0, # 15 Hz, we can also pass in a nonhomoegenous function/arrayn”, ” times=(0.0, 3.0)) # Firing starts at 0 s up to 3 sn”, “psg.to_sonata(‘sim_ch03/inputs/mthalamus_spikes.h5’)n”, “n”, “# Let’s do a quick check that we have reasonable results. Should see somewhere on the order of 15*3*100 = 4500n”, “# spikesn”, “psg.to_dataframe().head()n”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“## 2. Setting up BioNetn”, “n”, “#### file structure.n”, “n”, “Before running a simulation, we will need to create the runtime environment, including parameter files, run-script and configuration files. You’ve already completed Chapter 02 tutorial you can just copy the files to sim_ch03 (just make sure not to overwrite the network and inputs directory).n”, “n”, “Or create them from scracth by either running the command:n”, “
`bash\n", "$ python -m bmtk.utils.sim_setup \\\n", " --report-vars v,cai \\ \n", " --network sim_ch03/network \\ \n", " --spikes-inputs mthalamus:sim_ch03/inputs/mthalamus_spikes.h5 \\\n", " --dt 0.1 \\\n", " --tstop 3000.0 \\ \n", " --include-examples \\\n", " --compile-mechanisms \\ \n", " bionet sim_ch03\n", "`
n”, “n”]
}, {
“cell_type”: “code”, “execution_count”: 7, “metadata”: {}, “outputs”: [], “source”: [
“from bmtk.utils.sim_setup import build_env_bionetn”, “n”, “build_env_bionet(base_dir=’sim_ch03’, n”, ” network_dir=’sim_ch03/network’,n”, ” tstop=3000.0, dt=0.1,n”, ” report_vars=[‘v’, ‘cai’], # Record membrane potential and calcium (default soma)n”, ” spikes_inputs=[(‘mthalamus’, # Name of population which spikes will be generated forn”, ” ‘sim_ch03/inputs/mthalamus_spikes.h5’)],n”, ” include_examples=True, # Copies components filesn”, ” compile_mechanisms=True # Will try to compile NEURON mechanismsn”, ” )”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“It’s a good idea to check the configuration files sim_ch03/circuit_config.json and sim_ch03/simulation_config.json, especially to make sure that bmtk will know to use our generated spikes file (if you don’t see the below section in the simulation_config.json file go ahead and add it). n”, “n”, “
`json\n", "{\n", "\n", " \n", " \"inputs\": {\n", " \"tc_spikes\": {\n", " \"input_type\": \"spikes\",\n", " \"module\": \"csv\",\n", " \"input_file\": \"${BASE_DIR}/mthalamus_spikes.csv\",\n", " \"node_set\": \"mthalamus\"\n", " }\n", " }\n", "}\n", "`
”]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“## 3. Running the simulationn”, “n”, “Once our config file is setup we can run a simulation either through the command line:n”, “
`bash\n", "$ python run_bionet.py simulation_config.json\n", "`
n”, “n”, “or through the script”]
}, {
“cell_type”: “code”, “execution_count”: 8, “metadata”: {
“scrolled”: true
}, “outputs”: [
- {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 10:59:26,921 [INFO] Created log filen”
]
}, {
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 10:59:27,338 [INFO] Building cells.n”
]
}, {
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 10:59:38,443 [INFO] Building recurrent connectionsn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils:Building recurrent connectionsn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 10:59:39,577 [INFO] Building virtual cell stimulations for mthalamus_spikesn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils:Building virtual cell stimulations for mthalamus_spikesn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 10:59:49,788 [INFO] Running simulation for 3000.000 ms with the time step 0.100 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils:Running simulation for 3000.000 ms with the time step 0.100 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 10:59:49,790 [INFO] Starting timestep: 0 at t_sim: 0.000 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils:Starting timestep: 0 at t_sim: 0.000 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 10:59:49,791 [INFO] Block save every 5000 stepsn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils:Block save every 5000 stepsn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 11:00:21,051 [INFO] step:5000 t_sim:500.00 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils: step:5000 t_sim:500.00 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 11:00:51,856 [INFO] step:10000 t_sim:1000.00 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils: step:10000 t_sim:1000.00 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 11:01:21,888 [INFO] step:15000 t_sim:1500.00 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils: step:15000 t_sim:1500.00 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 11:01:53,515 [INFO] step:20000 t_sim:2000.00 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils: step:20000 t_sim:2000.00 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 11:02:23,534 [INFO] step:25000 t_sim:2500.00 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils: step:25000 t_sim:2500.00 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 11:02:53,165 [INFO] step:30000 t_sim:3000.00 msn”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils: step:30000 t_sim:3000.00 msn”
]
}, {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“2021-03-25 11:02:53,218 [INFO] Simulation completed in 3.0 minutes, 3.43 seconds n”
]
}, {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“INFO:NEURONIOUtils:Simulation completed in 3.0 minutes, 3.43 seconds n”
]
}
], “source”: [
“from bmtk.simulator import bionetn”, “n”, “n”, “conf = bionet.Config.from_json(‘sim_ch03/simulation_config.json’)n”, “conf.build_env()n”, “net = bionet.BioNetwork.from_config(conf)n”, “sim = bionet.BioSimulator.from_config(conf, network=net)n”, “sim.run()”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“## 4. Analyzing the run.n”, “n”, “If successful, we should have our results in the output directory. We can use the analyzer to plot a raster of the spikes over time:”
]
}, {
“cell_type”: “code”, “execution_count”: 9, “metadata”: {
“scrolled”: true
}, “outputs”: [
- {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“/opt/anaconda3/lib/python3.7/site-packages/bmtk-0.0.8-py3.7.egg/bmtk/simulator/utils/config.py:4: UserWarning: Please use bmtk.simulator.core.simulation_config instead.n”, ” warnings.warn(‘Please use bmtk.simulator.core.simulation_config instead.’)n”
]
}, {
- “data”: {
- “text/plain”: [
“<Figure size 640x480 with 2 Axes>”
]
}, “metadata”: {}, “output_type”: “display_data”
}
], “source”: [
“from bmtk.analyzer.spike_trains import plot_rastern”, “n”, “n”, “_ = plot_raster(config_file=’sim_ch03/simulation_config.json’)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“In our config file we used the cell_vars and node_id_selections parameters to save the calcium influx and membrane potential of selected cells. We can also use the analyzer to display these traces:”
]
}, {
“cell_type”: “code”, “execution_count”: 10, “metadata”: {}, “outputs”: [
- {
“name”: “stderr”, “output_type”: “stream”, “text”: [
“/opt/anaconda3/lib/python3.7/site-packages/IPython/core/pylabtools.py:128: UserWarning: Creating legend with loc="best" can be slow with large amounts of data.n”, ” fig.canvas.print_figure(bytes_io, **kw)n”
]
}, {
- “data”: {
“image/png”: “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n”, “text/plain”: [
“<Figure size 432x288 with 1 Axes>”
]
}, “metadata”: {
“needs_background”: “light”
}, “output_type”: “display_data”
}, {
- “data”: {
“image/png”: “iVBORw0KGgoAAAANSUhEUgAAAaEAAAEWCAYAAADPZygPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9eZxkVX33//7WvvVWvW/TPTCD7BocAUGUIAqJ8kMTElAiGhH1UWOM5iEuz5PwM/qA5DGCSlQiLlHCEtSIij+VzQXZZlAWgRmGmd636q59r7p1fn9U3Ut1d/U20+vMeb9e9eqqe8+9de7t7vO53+V8jyil0Gg0Go1mI7BtdAc0Go1Gc/SiRUij0Wg0G4YWIY1Go9FsGFqENBqNRrNhaBHSaDQazYahRUij0Wg0G4YWIc0RjYj8QUTO3eh+rAYi8kYR+e+N7sdqIiKnishvN7ofmo1Di5DmiEYpdZJS6sGN7sdiiMi5IjKyjKb/B7hurfuzFCJyjYh8dzXOpZR6CoiKyEWrcT7N1kOLkEYzBxFxbLbvEpFXAQ1KqUfWuEtL9WMt7s2twPvW4LyaLYAWIc2WQER6ReT7IhISkRkR+XJl+7Eicn9l27SI3CoijVXHDYjI+Uuc+xoRuUtEvisiceBdImITkY+LyIuVc98pIsFK+34RUSLyXhEZE5FxEflY1fncInJDZd9Y5b27su9cERkRkX8QkQngNuCnQJeIJCuvrhrd/BPgl3P6rUTkAyLygogkROSfK/fjYRGJV/rsqmp/sYj8vrLvRRG5sLK9S0TuFpGwiOwXkasWuTfvBz4JXFrp65OVdg0ickvlXoyKyGdExF7Z9xURuavqnJ8TkftERCqbHgReb94jzdGFFiHNpqcymP0YGAT6gW7gdnM3cC3QBZwA9ALXHMLXXAzcBTRSfjL/MPAW4HWVc0eAm+Yc88fATuCNwMerxO5TwJnAK4CXA6cD/6vquA4gCPQBV1AWmDGlVKDyGqvRv1OAvTW2Xwi8svJ9VwM3A5dTvg8nA28DEJHTgf8A/mflGl8LDFTOcRswUrnOS4D/IyKvX+De3ELZLXhHpa8vr7T5NlAEdgB/VLkn76ns+xhwqoi8S0TOAa4E3qkqNcOUUqNAAXhZjevTHOkopfRLvzb1C3g1EAIcy2j7FuB3VZ8HgPOXOOYa4Fdztj0HvL7qcyflgdJBWQgVcHzV/uuBWyrvXwT+tGrfBcBA5f25QB7wVO0/FxhZoo+/AN4/Z5sCzq76vAf4h6rPnwduqLz/GvCFGuftBQygrmrbtcC3Frk31wDfrfrcDuQAb9W2twEPVH0+HQhTfpB4W41+jAKv3ei/Nf1a/9e6+b41msOgFxhUShXn7hCRNuCLwDlAHWXrPnII3zE853Mf8AMRKVVtMygPuLWOGaRsrUDZohics6/axRZSSmVX2L8I5euby2TV+0yNzx2V973APTWO7wLCSqnEnP7uqvo8997MpQ9wAuMvediwVR+nlHpMRA4AbcCdNc5RB0SX+B7NEYh2x2m2AsPAtgWC4tdStghOVUrVA39F2UW3UuaWkx8G/kQp1Vj18qiy68ikt+r9NsB0o41RHphr7av1XcspZf8UcNwy2i3EMHBsje1jQFBEqgVuG2XLxGSp/g5TtoRaqu5VvVLqJLOBiHwQcFe+7+rqgysxMBe13Y2aIxwtQpqtwGPAOHCdiPhFxCMiZ1f21QFJymm+3ZRjHqvBV4HPikgfgIi0isjFc9r8bxHxichJwF8Dd1S23wb8r8oxLcA/AoulNE8CzSLSsEibeyjHpw6VW4C/FpHXV5IuukXkeKXUMPBb4NrKfT2Vcszm1iX62y8iNgCl1Djwc+DzIlJfOf+xIvI6ABE5DvgM5QeEdwBXi8grqs53LnC/Uip3GNen2aJoEdJsepRSBnAR5aD3EOUg+qWV3f8vcBoQA34CfH+VvvZG4G7g5yKSAB4BzpjT5pfAfuA+4P8qpX5e2f4ZYDdl6+Vp4InKtpoopZ6nLFwHRCRaKztOKfUEEBORuX1YFkqpxygL5Rco36tf8pK19jbKca4x4AfAPymlfrHI6f6r8nNGRJ6ovL+CsjXzLGXX4V1AZ8V6/S7wOaXUk0qpFyhn132nKhvucsqirzkKEaX0onYazUoQkX7gIOCsFadaw+99I/ABpdRb1us71xoROQW4WSn16o3ui2Zj0CKk0ayQjRIhjeZIRLvjNEcFIvLTqsmg1a9PbnTfNJqjGW0JaTQajWbD0JaQRqPRaDaMo3qyaktLi+rv79/obmg0Gs2WYs+ePdNKqdbVONeailClQOKNgB34ulLqujn73ZTrWb0SmAEuVUoNVPZ9gvJ8BQP4sFLqZyLiAX5FedKbA7hLKfVPlfbfojyPIlY5/buUUr9frH/9/f3s3r17Fa5Uo9Fojh5EZHDpVstjzUSoUnTyJuANlOd1PC4idyulnq1qdiUQUUrtEJHLgM9Rrs57InAZcBLlsiL3Via85YDzlFJJEXECvxGRn6qXytv/T6XUXWg0Go1mS7CWMaHTgf1KqQNKqTzlqsdzZ5xfTLn6LpQnt72+Ut79YuB2pVROKXWQ8oTA01WZZKW9s/LSmRUajUazRVlLEepmduHDkcq2mm0q8y1iQPNix4qIXUR+D0wBv1BKPVrV7rMi8pSIfGGhtUmkvAbMbhHZHQqFDv3qNBqNRnPYrGVMqFYRyblWy0JtFjy2UsLlFVJeuOwHInKyUuoZ4BPABOXSITcD/wB8et5JlLq5sp9du3bNs6IKhQIjIyNksystcqypxuPx0NPTg9Pp3OiuaDSaTcxaitAIs6sM9zC7knB1m5FKjakGymuOLHmsUioqIg9SXtTrmUoRRYCciHwT+PtD6vTICHV1dfT391NVll6zApRSzMzMMDIywvbt2ze6OxqNZhOzlu64x4GdIrK9ssTwZZQLQlZzN/DOyvtLKFfSVZXtl0l5meTtlFevfKxSlbgRQES8wPnA85XPnZWfQnlhs2cOpdPZbJbm5mYtQIeBiNDc3KytSY1GsyRrZgkppYoi8iHgZ5RTtL+hlPqDiHwa2K2UuptyefnviMh+yhbQZZVj/yAid1KuyFsEPqiUMipC8+1K5p0NuFMp9ePKV94qIq2UXXm/B95/qH3XAnT46Huo0WiWw5rOE1JK3cOc1RyVUv9Y9T4L/MUCx34W+OycbU9RXr++VvvzDre/Go1m41FKUSqVMAwDwzAoFAoYhoGIICKUSiUKhQL5fJ5SqYTdbsfhcOBwOHA6ndbLbrfrh6EtwFFdMUGzOrzrXe/izW9+M5dccslGd0WzySkUCmQyGZLJJIVCgWKxSLFYxDAMSqXS0idYITabDbvdDoDD4cDtduN2u/H5fHg8HmufZuPQInSUYBiG/ofTrBtKKYrFIplMhkQiQTqdJp/Ps1TBZBHBZrNhs9ksy8bhcGCz2VBKoZRCRHC5XLjdbux2uyVm1aJW/d4UN1MAa32f+dNut2O32/H5fDQ0NOB215zpoVlFtAhtUt7ylrcwPDxMNpvlb//2bzEMg4MHD3L99dcD8K1vfYs9e/bwpS99ie9+97t88YtfJJ/Pc8YZZ/Bv//Zv2O12AoEAH/3oR/nZz37G5z//ee6//35+9KMfkclkOOuss/ja176GiPD4449z5ZVX4vf7ec1rXsNPf/pTnnnmGQzD4OMf/zgPPvgguVyOD37wg7zvfe9DKcXf/M3fcP/997N9+/YlBxbNkYtSimw2SyqVIplMks/nZw38c3G5XHi9XrxeL263G4fDYbnTbLZDy5Pyer2L9q9UKqGUwjAM8vk8mUyGXC5HPp+3XH1z/4aTySRTU1MAVv9cLhdOp3PWT7P/pqtQs3K0CC3CRz4Cv1+0+tzKecUr4IYblm73jW98g2AwSCaT4VWvehX33XcfZ599tiVCd9xxB5/61Kd47rnnuOOOO3jooYdwOp184AMf4NZbb+WKK64glUpx8skn8+lPl6dLnXjiifzjP5ZDcu94xzv48Y9/zEUXXcRf//Vfc/PNN3PWWWfx8Y9/3OrDLbfcQkNDA48//ji5XI6zzz6bN77xjfzud79j7969PP3000xOTnLiiSfy7ne/e3VvlGbTUSgUyOVy5HI5stms9ar1EGJaMh6PB7/fj9/vx+12r/pAbQpLLpeb5dYzhUVELMsIoFQqWaJkCofD4bCOWeg7DMMgl8st2Z9qS86MTZlCZYqZ0+nE7XZbFtjRjhahTcoXv/hFfvCDHwAwPDzMwYMHOeaYY3jkkUfYuXMne/fu5eyzz+amm25iz549vOpVrwIgk8nQ1tYGlJ/g/vzP/9w65wMPPMD1119POp0mHA5z0kkncc4555BIJDjrrLMAePvb386Pf1xOOPz5z3/OU089xV13lcvxxWIxXnjhBX71q1/xtre9DbvdTldXF+edp3NCjlQKhQKxWIxIJLLgIOx0OvH7/QQCATweDy6Xa0VWzVwRW2pgzmazRCIREokE+Xx+3n5TBEwXnt1ux+VyzRIIEbHce6YgmYLhcDjmWUqmuJl9rf5Z3X/T4jITKpaDKU52u90SKLfbPas/K72f1W7JanGtTvgwr8e8/uo2xWIRpZR1r6r3r7ZwahFahOVYLGvBgw8+yL333svDDz+Mz+fj3HPPJZvNcumll3LnnXdy/PHH89a3vtX6R3rnO9/JtddeO+881YHXbDbLBz7wAXbv3k1vby/XXHPNgk+xJkopvvSlL3HBBRfM2n7PPffoJ7gjFKUUiUSCRCJBKpWaN8iLCF6v17JuvF7vgrFGpdQsK8V8mYO76barJUJzXzDbipmLiFjWRrXVYbrOaglQtZVUKBTIZrPk83kr6w6w2i/0vauBKQqLYV5ftSiZ96PWayuhRWgTEovFaGpqwufz8fzzz/PII+Ui4X/2Z3/GZz/7Wfr6+vjc5z4HwOtf/3ouvvhi/u7v/o62tjbC4TCJRIK+vr5Z5zQnjra0tJBMJrnrrru45JJLaGpqoq6ujkceeYQzzzyT22+/3Trmggsu4Ctf+QrnnXceTqeTffv20d3dzWtf+1q+9rWvccUVVzA1NcUDDzzA29/+9nW6O5q1IJ/PE4/HCYfDNYWnsbGRhoYGbDab9YRvGAaxWKxmQsBCg2H1077f75/3pG0+mZdKJcv1V21R2Gw2KynBHIzNAdkczE2hS6fTSw7uc6/TTE4wLZFq8apOYKj10xQp81rmimj1z1wuRzqdJpPJWKK3mHhUWzfLvZa5omzef/N3YMayTIEtlUqzjjPva/V1VV/naqFFaBNy4YUX8tWvfpVTTz2Vl73sZZx55pkANDU1ceKJJ/Lss89y+umnA+U4z2c+8xne+MY3UiqVcDqd3HTTTfNEqLGxkauuuopTTjmF/v5+y30H5djPVVddhd/v59xzz6WhoQGA97znPQwMDHDaaaehlKK1tZX//u//5q1vfSv3338/p5xyCscddxyve93r1unOaFaTUqlEJBIhEonMq25hZqCZg1cikSASiSx4LvMJ3YwDmYOYKRjmoLeYW6lUKpFIJIhGoySTSZRSuFwu2traqK+vXzSmZBiGFaPK5/Nks9macZ7qeUTm/lqDfzabnZVJN3dwrv5pvjevv9pimStAJm63G4/HY1le2WyWdDq9rLjTcliuaM21sKp/T3MzFJ1O5yEnjyzah6M5s2nXrl1q7qJ2zz33HCeccMIG9WhjSCaTBAIBAK677jrGx8e58cYbD/u8R+O93AoopYjH44yPj1MsFhd8ujWD9mYmmMvlwuPxWBaCUmreYHsoZLNZZmZmiMVilEolHA4HDQ0NNDQ04PV6a55bKUUmkyEajZJKpWYN3jabDbfbbQmgOeCbcaHl3iMzAcO07qqTHub+XO1xVESs+UzV2YTVE3Wrk0Ryudy6Zqmecsope5RSu1bjXNoS0vCTn/yEa6+9lmKxSF9fH9/61rc2ukuaNSKdTjMyMjLL5WYG76sTDMxYz1rF/kqlErFYjHA4TCaTQURoaGigsbERv9+/4PcqpYjFYszMzFjH+f1+Ghsb8Xg8s9xoh4OI4PF48Hg8y74e0xVY/TLFzHS7LRfTwjIMw0opr7a+HA4HdXV1NDc3W9ZJdSJCtVvS/O7luvLWGy1CGi699FIuvfTSje6GZo0wDIN4PE4oFJo3EDY1NdHR0bGuE5kTiQTj4+Pk83ncbjcdHR00NjbicNQejpRS1jwkMwbldrvp7OyksbFxU0zCrk7LLpVKpFIp0uk08Xh8nkvQtGzmWpWAFQszLZ1MJjMvM28u1S5B8xxmhttWQItQDeamLGpWztHs5t0MmFluZipzNSJCW1vbrKfo9SCfzzM+Pk4ikcDlctHX10cgEFg0zjMzM0M4HLYGVL/fT1dX16LHbRTFYpFwOGz1t7p/TqeTYDBIY2PjitfYMgyDdDptxanMuFf1/pUkYMBLrlbTAl6q3p5pWZk/VxMtQnPweDzMzMzo5RwOA3M9oeW6MjSrhxnvCYVCNZfSaGlpobW1dV2th2KxyPT0NDMzM4gI7e3tiwqgKT7T09OUSiVLePx+/6aweqpRSpFMJolGo8TjcStOZu4zXWaLuRirKRaLVownk8lY5Y5MzMSP+vp6q2JD9WRYM8sxkUhYcTLTQqtOOKhO585ms1YiyELMnXC7mmgRmkNPTw8jIyPopb8PD3NlVc36YFo+U1NTZLPZeYN1fX09HR0duFyude3TzMwMU1NTlEolGhoa6OjoWNASMMVnZmYGwzCoq6ujra1t0bI8G0kqlWJiYsKKTdntdis9vaWlhWAwuOT9NudSJRIJ4vE46XTa2udwOPB6vTQ2NlouvLkCYBgGyWSScDhMMpm0rBSfz0d7e7s1gXg5AlidbGG+N5MgzFhTqVSaV3/vcNEiNAen06lXA9VsKTKZDBMTE6RSKWsOjvkU7PF46OrqwufzrWufEokEExMT5HI5AoEAHR0dC1rGpliFQqEtIT65XI7JyUni8bhlGZjut6XiVMVikWQyaVk7ZvYdlH9Xra2tVomjhbIOTWs3HA6TSqWAsrVTV1dHIBCgrq7ukKwV00pab7QIaTRblGw2SygUIhaLYbfbaWlpIRqNWgLU3NxMR0fHurqVs9ksExMTJJNJXC4X27Zto76+vmZbczCdnJwkn8/j9/vp6OjYtOJjGAZTU1OEw2Gg/MBaKBRwuVz09vZSX1+/bNEArBRsn89HXV3dklZTsVgkEokQDocpFAo4nU5aWlqoq6vD5/Nt2fCBFiGNZotR/SQuIrS0tOB2uxkbG7P8+r29vdak4/WgWCxaA7TNZqOjo4NgMLjgk3UqlWJ8fJxsNovb7Wbbtm3U1dVt2oE0Ho8zNjZGsVi0LM1SqURXVxdNTU01+10qlQiHw0xPT1MsFnE6nbS1tVFXV2cVMF0O5jyqaDSKUgq/309nZ+emvl8rQYuQRrNFUEoRDoeZmJhARGhtbSUYDBIOhxkdHQXKcYT+/v51Swoxn/LHxsYwDINgMEhbW9ui6dahUIipqSmcTifd3d00NjZu2sG0UCgwPj5OPB63gvu5XI7GxkY6OjpqXudci8VMrFipaGQyGaampkgkElbppObm5iMu4UeLkEazBSgUCoyOjpJMJqmrq6OrqwuHw8HY2JhVTsfv99Pb27vq2UuL9WlsbIxEIoHH46G/v39RV1qhUGBkZIRUKkVjYyOdnZ2bLtvNxBSSUCiEUsqyfkzXm1lhZO4xZhagUgqfz0d3d3fNtgthJpiYiQY2m422tjaCweC6/V7XmyPzqjSaI4h4PM7o6Ogs949SiuHhYeLxOADBYJDOzs51sSiUUkSjUcbHx1FK0dHRseSUhlgsxtjYGKVSie7ubpqamta8n4dCqVQiFAoxPT1tiY9Z362trY2WlpZ5brS54tPY2Ehra+uKV2VNpVKMjY2Ry+VwOBzWXK7NKtSrhRYhjWaTYhgG4+PjRKNRPB4Pvb29uN1uisUig4ODVqpsZ2cnzc3N69KnYrHI6OgoiUTCetJfbLA1DIOxsTFisRher5eenp5Nu2R2Pp9naGiIbDaLx+OxFvEz3Wlz+20YBqFQ6LDFxzAMJiYmiEQiOJ3ORZMcjkTWVIRE5ELgRsAOfF0pdd2c/W7gP4BXAjPApUqpgcq+TwBXAgbwYaXUz0TEA/wKcFf6fpdS6p8q7bcDtwNB4AngHUqp5Rdr0mg2EclkktHRUQqFAi0tLbS1tWGz2cjn8xw8eNBK613PBIRMJsPg4CCGYSzL+ikUCgwODpLNZmlra6O1tXXTDqzpdJqhoSEMw8But5PNZvH7/VbKdHW/zfp1ExMTFItFGhoaaGtrW7H4KKWIRCJMTk5iGMas3/PRxJqJkIjYgZuANwAjwOMicrdS6tmqZlcCEaXUDhG5DPgccKmInAhcBpwEdAH3ishxQA44TymVFBEn8BsR+alS6pHKsV9QSt0uIl+tnPsra3V9Gs1aYBgGk5OThMNhXC4X27dvx+/3A+Un9QMHDlgTEvv6+qirq1uXfiUSCYaHh7Hb7RxzzDFLplFns1kGBgYolUrr2s9DIRKJMDY2Nsvt1d/fXzOWUx0H83q9bNu27ZDmYFXPo/L5fHR2dm7a1PS1Zi0todOB/UqpAwAicjtwMVAtQhcD11Te3wV8WcqPHBcDtyulcsBBEdkPnK6UehhIVto7Ky9VOeY8wFxZ7duV82oR0mwZMpkMQ0NDFAoFmpubaW9vn1Uh+eDBg9akSLPu2noQiUQYHR3F4/HQ19e3aO0z8+l+YmICm83G9u3bN+3gqpRiYmKCmZkZXC6XVVC1r69v3pydQ4mD1aI6weRodL3VYi1FqBsYrvo8ApyxUBulVFFEYkBzZfsjc47tBsvC2gPsAG5SSj0qIi1AVClVnNt+LiLyXuC9ANu2bTvki9NoVpNoNMro6Ch2u32W9QPlYPnAwACFQgERYfv27etSAaE6ndrv97Nt27ZFg+TV2W9+v5+enp4VF+tcL/L5PCMjI6TTaSvzLRAI0NvbO+8aq62f5cTBFiKRSDAyMkKpVFpyHtXRxFqKUC1pn1shb6E2Cx6rlDKAV4hII/ADETkZmFzGd1E5/mbgZigvale76xrN+qCUYnJykunpaXw+H9u2bZuViquUsuIqIrIsV9hqYBgGo6OjxONxGhsb6erqWnTATKVSDA8PLzmBczOQTCYZHh6elXrd0tJCe3v7vNjPalg/ADMzM4yPj89KMNGUWUsRGgF6qz73AGMLtBkREQfQAISXc6xSKioiDwIXAp8HGkXEUbGGan2XRrOpUEoxPj5OOBwmGAzS0dExa6BXSlmWBbDkPJzVIpfLMTQ0RC6Xo729nZaWlkUH3mg0ysjICC6Xa10nyh4KiUSCoaEha92ffD5fM2U8mUwyOTlJJpM5LOun2uVXV1dHT0/PEZ9yvVLW0hZ8HNgpIttFxEU50eDuOW3uBt5ZeX8JcL8q1x25G7hMRNyVrLedwGMi0lqxgBARL3A+8HzlmAcq56Byzh+u4bVpNIeFOTiFw2FaWlro7OycZ2lMTEwQi8WAchJCtYturSgUClbsqb+/f8mMtnA4zMjICD6fj2OPPXZTC1AkEmFwcNCq+Qawffv2WQKklGJ0dNRyf3Z1dbF9+/ZDEiDDMBgaGrKWhlnKnXm0smaWUCXG8yHgZ5RTtL+hlPqDiHwa2K2Uuhu4BfhOJfEgTFmoqLS7k3ISQxH4oFLKEJFO4NuVuJANuFMp9ePKV/4DcLuIfAb4XeXcGs2mw3TBmYPTXDcQwNTUFDMzMwB0d3evS3ZZsVi0MtqWk1AwPT3NxMQEgUCAbdu2ber4htlXj8dj1avr7++fFbMqlUqMjIwQj8cPO106m80yNDREPp9f13lcWxE5mlfA3LVrl9q9e/dGd0NzlDE1NcXU1NSCVQ7M/QAdHR20tLSseZ9MAcrlcktm3lXHserr6+np6dnUAmTGY7xeL5lMxioxVB17K5VKDA0NkUwmD/uex+NxRkZGEBG2bdu2LhbseiMie5RSu1bjXLpigkazjsTjcaampmhoaKgpQOFw2BIgMx6z1lQL0LZt2xYVoGproampia6urk2bgACzEwLM+E5fX98st5hhGAwODpJOp+nq6iIYDB7y95np7OYcos2aHbiZ0CKk0awT2WyWkZERvF4v3d3d8wbvRCLB2Fg5n6a1tZXW1tY179NcAVrM7WcmSsTj8WUlLGw0pkVpuuBquQ2rr/9wq0+EQiEmJye3hHtyM6FFSKNZB8wSNjabreYAZWakQbkYaXt7+5r3qVQqMTg4uCwBgnKihClA6yGQh4MpQH6/n1QqZaW/V9/3XC7HwMAAxWJxWde/ENXuyYaGBrq7u7UArQAtQhrNGmO6ewzDYPv27fNcNKYYKKXwer10dnaueZ/MLLBMJrOsAdisEh0MBtfFRXg4mAIUCARIJpNWpYdqYUilUpboH87k3+o0+63gntyMaBHSaNYQ04WVzWbp6+ubl3FmikE+n8dms9HX17cug9j09DSxWIz29vYFl982MYt11tfXr9tyEYfKzMyMZQElk0krC646BhSPxxkeHsbpdNLX13fIE0eVUtZ6TrUmu2qWhxYhjWYNGR8fJ5FIWMsxzyUSiVhzgeZmbK0V8XicyclJGhoalrRqUqmUFcfq6enZ1IOsWd3A5/ORSqVwu91s37591j01Bci0jg71fpvzvCKRCK2trbS1tW3qe7OZ0Y5LjWaNCIfDhMNhmpuba84TyWQyViJCR0fHutSDWyo5ohozTmVaDJs5zpFIJKwiq+Y8oFoCNDQ0VDNFe6XMzMxY87y0AB0em/evSqPZwqRSKcbHxwkEAnR0dMzbb8aJAAKBwLpMZjRn8C+UHFGNuXAecFgWw3pgrgXkcrkolUpWlfFaAuT1eue551ZKPB633JMdHR1agA4TLUIazSpTKBSsmENvb++8QcpcmrtYLOJwOGq2WW3M2FQ+n19y/orZtlAoHFbMZD3IZrNWKR673W5dX/VSDOl0muHh4VURoEwmY51rs7sntwpahDSaVcQUGMMwFqwVNj09TTJZXhbrcAfF5TIzM2PFppZy+4VCIZLJ5LLabiT5fJ6BgQFEBL/fb5LToLcAACAASURBVE02ra5QYC7Z7XA45k1SXSnFYpGhoSHsdrueB7SK6Luo0awi4+PjpNNpuru7axbzzGQyTE6WVx7p6upas4KfsViMffv2EQqFKBaLTE5OUldXt2Q1gGQyaVV0mFtZejNRXecuGAwSiUQIBoOzrs90KZqrux6OS9Es61MsFpdc2E+zMjavo1ej2WLMzMxYVbEbGxvn7TfnAwE0NDSsuDyMUopisUgoFLJm+OdyOQqFArlcjng8jlKKfD5vHTM5OWmJ3lIpxOaidC6Xa1PPdzGtzUKhQGdnJ+Pj4/j9/lnzq8yVaPP5PH19fYcl9mYafTqdpre3d9OuFLtV0SKk0awCyWTSSkSoVe0gnU5z4MABAESErq4uisUiZgFhp9OJYRjYbLZ5C6uVSiWmp6cJhUKzznngwIFZgrMY5vo5yWTScrGl02lyuRzBYNCKAxmGsW4uwkMllUqRSqVob29nenoau90+K65mir0pQIe7DHooFCIWi9HW1nZYZX00tdEipNGsEMMwrJVHs9ksXV1djIyMAGUxGh0dpVgsksvlqKurw+FwWEVJoWwFVS/VUI3H46G+vp6Wlhai0aiVwl2L5QoQlK0cUwTnYrPZSCaTpFIpenp6Ns2aQPl8nkgkgs1mw+12U19fTzKZZGBgACinZZtCY7raTDHNZDL09vYetgDFYjHLPbnZSxVtVbQIaTQVCoUCxWIRp9NZM35QLBYZHh62Vjo1GR4envU5Go1a78Ph8LzzVO+fSzabJZvNEgqFONRlVtxuNy6Xi3Q6bVlSizE6OgqUU8XD4TDJZHLeHKJSqbQqgXilFIlEgmw2S319PU6nk3Q6TSgUwu/309bWRiQSYXJyEsMwZh1rs9lmXUs6ncblcs1KRAiFQlZ9u8O1WtLptLVg31JzqjSHjhYhzVFNPp9namqKWCw2a9B3uVx0d3fj9/vJZrNWocu1QETmCU4tAfL5fHi9XhwOBx6Ph+npaVpaWshmszidTqamprDb7WQyGXK53Ir7YWbspdNpYrEYzc3NiIglGjabzfru9vZ2K3U7m83icrlqipQpXkopDMPgxRdftFY1rbYOze+d63Kce6655PN5nn32WRwOB3V1dUQikWVVgliK6qw6nQm3tmgR0hy1pFIpDh48WHOfmf7b3d1tudqWQkRwuVwrFoDlWjzpdJp0Oj1r21yrbLVQSjE9PT1rW6lUIp/Pk8/nicfjs8TTbrfj9/sJBoM4HA5cLhf79+8nn88TDAaJxWLzLJvVpFgsEolErM+JRGLJmngLYWbClUoljjnmmE09UfdIQN9dzVFHPp+3ljBYDDO+sFyUUodkgWxVqsXTMAzi8TjxeHxeu1ouybUkFosRi8UQEXp7e4lGo1bsKJfLISI4HI5Zk3CVUsRiMWZmZhARq+DsYvExwzAolUrY7XZtKR0GWoQ0RzSlUompqSmy2SypVOqQ4ywbwdwYiGZlKKWs5RoA9u7dO2t/S0sLdrudeDxOJpOZta+5uXneRF3DMMjn81Y6fLXgejwempubCYfDVoakYRhWTM7pdFqp9MAhr110JKJFSHNEUiqVGB8fn+WiWS0cDgfFYpG2tjZaW1sJh8PkcjkikYglcn6/H4/HY2VwHQpagNaWue7GaswCpSbm2kQLkc1mrQSPTCZT051Zjdvtprm5GYfDgdPpJB6PUygUsNlsdHR01LSszLia3W5flSQJ82917rmKxWLN71BKoZRadatPi5DmiEIpxczMDBMTE6t+bo/HQ0tLC5OTk9jtdiuwXldXRyAQoLGxERHB7XYTiUSYnp7G4/EcsghpNg+1BMjlclnp+nNZTICgXKF8ofT7fD5PfX09qVQKr9eL3+9ncHBwVmKM2+3G4/FYMbi59f0SiQTT09OkUinq6+upr6+3EkSgLDQTExOICF6vl+bmZtxut5WSDlhuy0AgYLlbbTYbO3bsWPxmrRBZS/eEiFwI3AjYga8rpa6bs98N/AfwSmAGuFQpNVDZ9wngSsAAPqyU+pmI9FbadwAl4Gal1I2V9tcAVwFmes0nlVL3LNa/Xbt2qd27d6/ClWo2klKpRCKRYGJiwsq8OhQ6Ojrw+/3YbDYikQjxeNxabO6EE05ARBgZGVk0xVqj2Sh8Ph+lUolsNrum3+PxeNi5c+cepdSu1TjfmllCImIHbgLeAIwAj4vI3UqpZ6uaXQlElFI7ROQy4HPApSJyInAZcBLQBdwrIscBReBjSqknRKQO2CMiv6g65xeUUv93ra5Js3kIh8NEIhGy2exhxXnMasjpdJrJyUnr6dBut9Pd3U0sFsPn8/Hiiy+Sy+W2VExJszmw2WxWrblcLofP55uX5bgarMU5a7HaIreW7rjTgf1KqQMAInI7cDFQLUIXA9dU3t8FfFnKjsiLgduVUjngoIjsB05XSj0MjAMopRIi8hzQPeecmiMQMyCcz+eJRqPzAskrweVy4fP5cDgcRCIRXnjhhVn7zRpt5voz2vLRHA6lUmlW1mS1WJgCZdb8M+ONm4X1SI5ZSxHqBqqnko8AZyzURilVFJEY0FzZ/sicY7urDxSRfuCPgEerNn9IRK4AdlO2mOZFpUXkvcB7AbZt27bSa9KsM/F4nEQisSoJBvX19QSDQYrFIqlUakm/vVJq3Z4uNUcncwWqWoBqTWJeb9YjOWYtRahW+sbcO7pQm0WPFZEA8D3gI0opM0/yK8A/V9r9M/B54N3zTqLUzcDNUI4JLX4Jmo0in8+zb9++wz6P0+nE4/EgIgvOY9FoNiNrJUBm1ttGC5zJWorQCNBb9bkHmJsOYrYZEREH0ACEFztWRJyUBehWpdT3zQZKqUnzvYj8O/DjVbsSzbqyWgIkIhQKhcNKVtBojjQ2i/iYrOU038eBnSKyXURclBMN7p7T5m7gnZX3lwD3q/Iduhu4TETcIrId2Ak8VokX3QI8p5T61+oTiUhn1ce3As+s+hVp1oxkMkk6nSaZTB62AG22Jz2NRrMwa2YJVWI8HwJ+RjlF+xtKqT+IyKeB3UqpuykLyncqiQdhykJFpd2dlBMOisAHlVKGiLwGeAfwtIj8vvJVZir29SLyCsruuAHgfWt1bZrVo1AoMDg4uGTGzVIB0uqArhYfjWbrsKbzhDY7ep7QxqGUIhKJLLpejkaj2Zyccsopm3+ekEZTi1wuh2EYjI2NrfmkOo1Gs/nRIqRZN6qXuNZoNBpY28QEjcYil8tpAdJoNPPQlpBm1TGXcA6FQgQCAerq6rQAaVaVTEZIp20UCjZmZuxs357H59NVx7ciWoQ0q8r4+PisEviZTGbRJZs1moUIh+0884yXYNCgWISXvzzD/v1ubrutmR/9qJFs9iVHjt9v0Nho4POV8PlKlErwoQ9N4XQqbrstyI4dOf74j+Pcd189drvida9LcOKJ5ZhkJiM8+aSPxx7z89RTPk49Nc2VV07j9y8sasmkjeef9xAIlMjnhVNOyRAKObjrriA9PXkuuihKOm3j178O0NVV4NFHA4TDdvbv9/Dyl6e5/PIZmppeqr49NuakpaWIzaY42hZy1dlxOjtuVSiVSoyMjOiKBJuEQgFSKTuNjS8NdJmMkErZCARKTE87eOIJP/G4nTe9KUpTk0GpBMPDLlpbC/h8L40LxSJMTzvo6Di8mma5nHDvvfX89rcBAI49Nsf0tIOnnvIxPu5k584sqZSNeNyO2604eNA9S2iCwSLhsAO7XfGWt0To78/hdCra2or85jcBslkb6XT5+FDIwfBweXmDhoYi8bgdpWYXYjn55DRTU06mpsrFRUUU/f05Dh700Npa4BOfGGf/fjetrUX6+3M89FAdBw+6MAzhmWe8TE87rXM5nSUKhZf6esopaf7wBy+l0uzv3LEjy/795dVam5sLnH9+nMFBN488EsDhUIDi/e8Pce65cXbv9rNtW56dO7Ok0za2bcszMuIikbBz0kkZDAOcThYkFHIQDBax21f2e1IKllquaDWz47QIaRE6bJRSHDhw4LCKimoOnyee8BGN2rn33nr27PEzNubiggtidHbmOXDAzaOPBsjl5oeBm5sLvPGNcR591M+BA+UBcseOLFdcMc3wsItf/KKBgQE3xx+fYXTUxWtek+BTnxrD6YSBAReDg27c7hLBYJGTTsrgdMLoqJN/+7c2Dhxw8+pXJ3nssQBPP10elOvri+RyNqsvPT15TjstxW9+U0cqZePMM5Pk8za2b89x+ulJCgXh8cf9/Nd/Bbnooij/439M0dOzeBWMdFq4+eY2cjnhAx+YIh6388gjAbZty9HcbPDd7zbzwAN1uN2KtrYCl18+w6telSIYNHjySS+f/nQX+/Z5Z53Tblf09uax2RTBoMEpp6QRgY6OAs8842XHjhyve12CBx6o48Yb2znrrCR/9VczHDxYvj9/8RcRRODZZz08+miAJ57w8etf19HRURYjgBdecPPb39ZedVVEWULqcJQwDOHMM1MA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n”, “text/plain”: [
“<Figure size 432x288 with 1 Axes>”
]
}, “metadata”: {
“needs_background”: “light”
}, “output_type”: “display_data”
}
], “source”: [
“from bmtk.analyzer.compartment import plot_tracesn”, “n”, “_ = plot_traces(config_file=’sim_ch03/simulation_config.json’, report_name=’v_report’)n”, “_ = plot_traces(config_file=’sim_ch03/simulation_config.json’, report_name=’cai_report’)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“## 5. Modifying the network”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“#### Customized node paramsn”, “n”, “When building our cortex nodes, we used some built-in functions to set certain parameters like positions and y-axis rotations:n”, “
`python\n", "cortex.add_nodes(N=100,\n", " pop_name='Scnn1a',\n", " positions=positions_columinar(N=100, center=[0, 50.0, 0], max_radius=30.0, height=100.0),\n", " rotation_angle_yaxis=xiter_random(N=100, min_x=0.0, max_x=2*np.pi),\n", " ...\n", "`
n”, “n”, “These functions will assign every cell a unique value in the positions and rotation_angle_yaxis parameters, unlike the pop_name parameter which will be the same for all 100 cells. We can verify by the following code:n”]
}, {
“cell_type”: “code”, “execution_count”: 11, “metadata”: {}, “outputs”: [
- {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“cell 0: pop_name: Scnn1a, positions: [-16.35143239 71.27301756 13.25941915], angle_yaxis: 2.1698809784731816n”, “cell 1: pop_name: Scnn1a, positions: [ -1.25740327 13.04986463 -13.84586871], angle_yaxis: 4.358094862290053n”
]
}
], “source”: [
“cortex_nodes = list(cortex.nodes())n”, “n0 = cortex_nodes[0]n”, “n1 = cortex_nodes[1]n”, “print(‘cell 0: pop_name: {}, positions: {}, angle_yaxis: {}’.format(n0[‘pop_name’], n0[‘positions’], n0[‘rotation_angle_yaxis’]))n”, “print(‘cell 1: pop_name: {}, positions: {}, angle_yaxis: {}’.format(n1[‘pop_name’], n1[‘positions’], n1[‘rotation_angle_yaxis’]))n”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“The Network Builder contains a growing number of built-in functions. However for advanced networks a modeler will probably want to assign parameters using their own functions. To do so, a modeler only needs to passes in, or alternatively create a function that returns, a list of size N. When saving the network, each individual position will be saved in the nodes.h5 file assigned to each cell by gid.n”, “n”, “
`python\n", "def cortex_positions(N):\n", " # codex to create a list/numpy array of N (x, y, z) positions.\n", " return [...]\n", "\n", "cortex.add_nodes(N=100,\n", " positions=cortex_positions(100),\n", " ...\n", "`
n”, “n”, “or if we wanted we could give all cells the same position (The builder has no restrictions on this, however this may cause issues if you’re trying to create connections based on distance). When saving the network, the same position is assigned as a global cell-type property, and thus saved in the node_types.csv file.n”, “`python\n", "cortex.add_nodes(N=100,\n", " positions=np.ndarray([100.23, -50.67, 89.01]),\n", " ...\n", "`
n”, “n”, “We can use the same logic not just for positions and rotation_angle, but for any parameter we choose.”]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“#### Customized connector functionsn”, “n”, “When creating edges, we used the built-in distance_connector function to help create the connection matrix. There are a number of built-in connection functions, but we also allow modelers to create their own. To do so, the modeler must create a function that takes in a source, target, and a variable number of parameters, and pass back a natural number representing the number of connections.n”, “n”, “The Builder will iterate over that function passing in every source/target node pair (filtered by the source and target parameters in add_edges()). The source and target parameters are essentially dictionaries that can be used to fetch properties of the nodes. A typical example would look like:n”, “n”, “
`python\n", "def customized_connector(source, target, param1, param2, param3):\n", " if source.node_id == target.node_id:\n", " # necessary if we don't want autapses\n", " return 0\n", " source_pot = source['potential']\n", " target_pot = target['potential']\n", " # some code to determine number of connections\n", " return n_synapses\n", " \n", "...\n", "cortex.add_edges(source=<source_nodes>, target=<target_nodes>,\n", " connection_rule=customized_connector,\n", " connection_params={'param1': <p1>, 'param2': <p2>, 'param3': <p3>},\n", " ...\n", "`
”]
}, {
“cell_type”: “code”, “execution_count”: null, “metadata”: {}, “outputs”: [], “source”: []
}
], “metadata”: {
“anaconda-cloud”: {}, “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”: 2
}