{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2ee1d062", "metadata": {}, "outputs": [], "source": [ "# This code is written by Nooshin Abdollahi\n", "# Information about this code:\n", "# - Motor axons are not included\n", "# - there are not transverse connections between Boundary and Boundary" ] }, { "cell_type": "code", "execution_count": 2, "id": "af4c646e", "metadata": {}, "outputs": [], "source": [ "# show the time of execution\n", "from datetime import datetime\n", "start_time = datetime.now()\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "493e7e8a", "metadata": {}, "outputs": [], "source": [ "from neuron import h\n", "import netpyne \n", "from netpyne import specs, sim \n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from typing import Tuple, List\n", "import math\n", "import sys\n", "\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 4, "id": "d05a8722", "metadata": {}, "outputs": [], "source": [ "# Import nesseccery files from Matlab\n", "\n", "R = np.loadtxt(\"R.txt\") # All axons with different radius\n", "G = np.loadtxt(\"G.txt\") # Axon's groups\n", "C = np.loadtxt(\"C.txt\") # Coordinates of each axon (x,y)\n", "neighboringAxon = np.loadtxt(\"neighboringAxon.txt\")\n", "dist = np.loadtxt(\"dist.txt\") \n", "dist_edge = np.loadtxt(\"Distance_edge.txt\") \n", "AVE_area_around_axon = np.loadtxt(\"Ave_area_around_axon.txt\")\n", "\n", "unique_radius = np.loadtxt(\"unique_radius.txt\") # including different types\n", "Number_of_nodes = np.loadtxt(\"Number_of_nodes.txt\") # Number of nodes for the specified axon total length\n", "\n", "parameters = np.loadtxt(\"parameters.txt\") \n", "\n", "# importing all the connections\n", "import scipy.io as io\n", "\n", "for i in range(1,2):\n", " for j in range(1,2):\n", " if j>=i:\n", " l = [i, j]\n", " z = ''.join([str(n) for n in l])\n", " Input = io.loadmat('Connect_types_{}.mat'.format(z) , squeeze_me=True) \n", " I = Input['SAVE']; \n", " locals()[\"Connect_types_\"+str(z)]=[]\n", " for v in range(len(I)):\n", " D = I[v].strip() \n", " locals()[\"Connect_types_\"+str(z)].append(D) \n", "\n", "\n", "# Boundary connections\n", "for i in range(1,2):\n", " Input = io.loadmat('Boundary_to_{}.mat'.format(i) , squeeze_me=True) \n", " I = Input['SAVE']; \n", " locals()[\"Boundary_to_\"+str(i)]=[]\n", " for v in range(len(I)):\n", " D = I[v].strip() \n", " locals()[\"Boundary_to_\"+str(i)].append(D) \n", " \n", "\n", "\n", "#\n", "Boundary_coordinates = np.loadtxt(\"Boundary_coordinates.txt\")\n", "Boundary_neighboring = np.loadtxt(\"Boundary_neighboring.txt\")\n", "Boundary_dist = np.loadtxt(\"Boundary_dist.txt\") \n", "\n", "\n", "############## importing files related to transverse resistance (Rg) and Areas\n", "\n", "for i in range(1,2):\n", " for j in range(1,2):\n", " if j>=i:\n", " l = [i, j]\n", " z = ''.join([str(n) for n in l])\n", " Input = np.loadtxt('Rg_{}.txt'.format(z) ) \n", " locals()[\"Rg_\"+str(z)]=Input\n", " \n", "\n", "\n", " \n", "for i in range(1,2):\n", " Input = np.loadtxt('Boundary_Rg_{}.txt'.format(i) ) \n", " locals()[\"Boundary_Rg_\"+str(i)]=Input\n", "\n", " \n", " \n", " \n", " \n", "for i in range(1,2):\n", " for j in range(1,2):\n", " if j>i:\n", " l = [i, j]\n", " z = ''.join([str(n) for n in l])\n", " Input = np.loadtxt('Areas_{}.txt'.format(z) ) \n", " locals()[\"Areas_\"+str(z)]=Input\n", " \n", " \n", " \n", " \n" ] }, { "cell_type": "code", "execution_count": 5, "id": "cf1c9f69", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\t1 \n", "\t1 \n" ] } ], "source": [ "# Network parameters\n", "netParams = specs.NetParams()\n", "\n", "netParams.sizeX=3000\n", "netParams.sizeY=3000\n", "netParams.sizeZ=3000\n", "\n", "\n", "################################# Importing Axons(including C fibers and the others) and Boundary ####################################\n", "\n", "netParams.importCellParams(\n", " cellInstance=True,\n", " label='Boundary', \n", " conds={'cellType': 'Boundary', 'cellModel': 'Boundary'},\n", " fileName='Boundarycable.hoc', \n", " cellName='Boundary', \n", " importSynMechs=True) ;\n", "\n", "\n", "\n", "\n", "# Myelinated axons have different types (i.e. diameters)\n", "# How many types... do I have? print(len(unique_radius)-1), -1 because the first eleman is for C fiber\n", "# each type is a specific diameter\n", "\n", "netParams.importCellParams(\n", " cellInstance=True,\n", " label='type1', \n", " conds={'cellType': 'type1', 'cellModel': 'type1'},\n", " fileName='type1.hoc', \n", " cellName='type1', \n", " importSynMechs=True) ;\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "d5ef8f97", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n" ] } ], "source": [ "###################################### Locating each axon in specific (x,y) #################################################\n", "\n", "\n", "\n", "netParams.popParams[\"Axon0\"] = {\n", " 'cellType': 'type1', \n", " 'numCells':1 , \n", " 'cellModel': 'type1', \n", " 'xRange':[C[0][0], C[0][0]], \n", " 'yRange':[0, 0], \n", " 'zRange':[C[0][1], C[0][1]]} \n", "\n", "netParams.popParams[\"Axon1\"] = {\n", " 'cellType': 'type1', \n", " 'numCells':1 , \n", " 'cellModel': 'type1', \n", " 'xRange':[C[1][0], C[1][0]], \n", " 'yRange':[0, 0], \n", " 'zRange':[C[1][1], C[1][1]]}\n", " \n", " \n", " \n", " \n", " \n", "########################################### Locating Boundary Cables ########################################################\n", "\n", "\n", "\n", " \n", "netParams.popParams[\"Boundary0\"] = {\n", " 'cellType': 'Boundary', \n", " 'numCells':1 , \n", " 'cellModel': 'Boundary', \n", " 'xRange':[Boundary_coordinates[0][0], Boundary_coordinates[0][0]], \n", " 'yRange':[0, 0], \n", " 'zRange':[Boundary_coordinates[0][1], Boundary_coordinates[0][1]]} \n", "\n", "\n", " \n", " \n", "netParams.popParams[\"Boundary1\"] = {\n", " 'cellType': 'Boundary', \n", " 'numCells':1 , \n", " 'cellModel': 'Boundary', \n", " 'xRange':[Boundary_coordinates[1][0], Boundary_coordinates[1][0]], \n", " 'yRange':[0, 0], \n", " 'zRange':[Boundary_coordinates[1][1], Boundary_coordinates[1][1]]} \n", "\n", " \n", " \n", "\n", "# in Total, how many Cells does Netpyne generate? Length(R)+len(Boundary_coordinates)\n", "print(len(R)+len(Boundary_coordinates))\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "4adc83be", "metadata": {}, "outputs": [], "source": [ "################################################### Stimulation ############################################################\n", "# Which group of axons do you want to stimulate?\n", "# Group1: motor axons Group2: C fibers Group3: Adelta Group4: Abeta\n", "\n", "\n", "#netParams.stimSourceParams['Input1'] = {'type': 'IClamp', 'del': 1, 'dur': 0.1, 'amp': 0.4}\n", "netParams.stimSourceParams['Input1'] = {'type': 'VClamp', 'dur': [1, 0.02, 0], 'amp':[-80, 0, 0]}\n", "\n", " \n", "netParams.stimTargetParams['Input1->Stim_1'] = {'source': 'Input1', 'sec':'node_0', 'loc': 0.5, 'conds': {'pop':\"Axon0\"}} \n", "netParams.stimTargetParams['Input1->Stim_2'] = {'source': 'Input1', 'sec':'node_0', 'loc': 0.5, 'conds': {'pop':\"Axon1\"}} \n", "\n", "\n", "\n", "\n", "XG1 = 1e-9 # 1e-9: disconnect from ground 1e9: Connect to ground\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "90a2f08b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Start time: 2022-10-31 21:33:34.098127\n", "\n", "Creating network of 4 cell populations on 1 hosts...\n", " Number of cells on node 0: 4 \n", " Done; cell creation time = 0.35 s.\n", "Making connections...\n", " Number of connections on node 0: 0 \n", " Done; cell connection time = 0.00 s.\n", "Adding stims...\n", " Number of stims on node 0: 2 \n", " Done; cell stims creation time = 0.00 s.\n", "Recording 6 traces of 2 types on node 0\n" ] } ], "source": [ "simConfig = specs.SimConfig()\n", "simConfig.hParams = {'celsius': 37 }\n", "\n", "simConfig.dt = 0.005 # Internal integration timestep to use default is 0.025\n", "simConfig.duration = 6\n", "simConfig.recordStim = True\n", "simConfig.recordStep = 0.005 # Step size in ms to save data (e.g. V traces, LFP, etc) default is 0.1\n", "#simConfig.cache_efficient = True\n", "#simConfig.cvode_active = True\n", "# simConfig.cvode_atol=0.0001\n", "# simConfig.cvode_rtol=0.0001\n", "\n", "\n", "simConfig.recordTraces = {'V_node_0' :{'sec':'node_0','loc':0.5,'var':'v'}}\n", "simConfig.analysis['plotTraces'] = {'include': ['allCells']} # ['Axon0','Axon1']\n", "\n", "simConfig.analysis['plot2Dnet'] = True\n", "simConfig.analysis['plot2Dnet'] = {'include': ['allCells'], 'view': 'xz'}\n", "\n", "\n", "\n", "#simConfig.recordLFP = [[56.39,-4000,51.74]] # Determine the location of the LFP electrode\n", "\n", "\n", "\n", "\n", "\n", "\n", "sim.create(netParams, simConfig)\n", "\n", "\n" ] }, { "cell_type": "markdown", "id": "9045099d", "metadata": {}, "source": [ "### xraxial and transverese conductances" ] }, { "cell_type": "code", "execution_count": 9, "id": "41af5705", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.0\n", "1903.5717144126938\n", "3.0\n", "1903.5717144126938\n" ] } ], "source": [ "# Since by default Netpyne does not insert the parameters of the extracellular mechanism, I insert them in this section\n", "# this section includes \"longitudinal\" resistivities (i.e. xraxial)\n", "\n", "#Total_Length=10000\n", "\n", "number_boundary = 4000 #Total_Length/Section_Length \n", "number_boundary = int(number_boundary)\n", "\n", "\n", "\n", "\n", "\n", "rhoa=0.7e6 \n", "mycm=0.1 \n", "mygm=0.001 \n", "\n", "space_p1=0.002 \n", "space_p2=0.004\n", "space_i=0.004\n", "\n", "\n", "\n", "\n", "############################# For Boundary Cables #################################################\n", "\n", "# soma section is just for LFP recording, LFP in Netpyne does not work if at least one section is not called soma \n", "\n", "\n", "for j in range(len(R),len(R)+len(Boundary_coordinates)):\n", " \n", " S = sim.net.cells[j].secs[\"soma\"][\"hObj\"] \n", " for seg in S:\n", " seg.xraxial[0] = 1e9\n", " seg.xraxial[1] = 1e9\n", " seg.xg[0] = 1e9\n", " seg.xg[1] = 1e9\n", " seg.xc[0] = 0\n", " seg.xc[1] = 0\n", "\n", "\n", " for i in range(number_boundary): \n", " S = sim.net.cells[j].secs[\"section_%s\" %i][\"hObj\"]\n", " for seg in S:\n", " seg.xraxial[0] = 1e9\n", " seg.xraxial[1] = 1e9\n", " seg.xg[0] = 1e9\n", " seg.xg[1] = 1e9\n", " seg.xc[0] = 0\n", " seg.xc[1] = 0\n", " \n", " \n", "\n", " \n", "############################## For myelinated sensory axons ##################################### \n", "\n", "\n", "rho2 = 1211 * 1e-6 # Mohm-cm\n", "\n", "\n", "\n", "\n", "for j in range(len(R)):\n", " if G[j]!=2: # if it is not a C fiber \n", " x = np.where(unique_radius == R[j]) \n", " x = int(x[0])\n", " nodes = Number_of_nodes\n", " nodes=int(nodes)\n", " \n", " \n", " nl = parameters[4]\n", " nodeD = parameters[1]\n", " paraD1 = nodeD\n", " axonD = parameters[0]\n", " paraD2 = axonD\n", " \n", " Rpn0 = (rhoa*.01)/((math.pi)*((((nodeD/2)+space_p1)**2)-((nodeD/2)**2)))\n", " Rpn1 = (rhoa*.01)/((math.pi)*((((paraD1/2)+space_p1)**2)-((paraD1/2)**2)))\n", " Rpn2 = (rhoa*.01)/((math.pi)*((((paraD2/2)+space_p2)**2)-((paraD2/2)**2)))\n", " Rpx = (rhoa*.01)/((math.pi)*((((axonD/2)+space_i)**2)-((axonD/2)**2)))\n", " \n", " \n", " ################### xraxial[1]\n", " \n", " radi = R[j]\n", " \n", " AVE = (AVE_area_around_axon[j]+0) /2\n", " \n", " xr = rho2 / ((math.pi)*(((radi+AVE)**2) - (radi**2)) * 1e-8) # Mohm/cm\n", " \n", " xr = xr /1\n", " \n", " print(AVE_area_around_axon[j]+0)\n", " print(xr)\n", " \n", " ##################\n", " \n", " \n", " \n", "\n", " S = sim.net.cells[j].secs[\"soma\"][\"hObj\"]\n", " for seg in S:\n", " seg.xraxial[0] = Rpn1\n", " seg.xraxial[1] = xr \n", " seg.xg[0] = mygm/(nl*2)\n", " seg.xg[1] = XG1 # disconnect from ground\n", " seg.xc[0] = mycm/(nl*2)\n", " seg.xc[1] = 0\n", "\n", " \n", " for i in range(nodes):\n", " S = sim.net.cells[j].secs[\"node_%s\" %i][\"hObj\"]\n", " for seg in S:\n", " seg.xraxial[0] = Rpn0\n", " seg.xraxial[1] = xr\n", " seg.xg[0] = 1e6\n", " seg.xg[1] = XG1\n", " seg.xc[0] = 0\n", " seg.xc[1] = 0\n", "\n", "\n", " for i in range(2*nodes):\n", " S = sim.net.cells[j].secs[\"MYSA_%s\" %i][\"hObj\"]\n", " for seg in S:\n", " seg.xraxial[0] = Rpn1\n", " seg.xraxial[1] = xr\n", " seg.xg[0] = mygm/(nl*2)\n", " seg.xg[1] = XG1\n", " seg.xc[0] = mycm/(nl*2)\n", " seg.xc[1] = 0\n", "\n", "\n", " for i in range(10*nodes):\n", " S = sim.net.cells[j].secs[\"FLUT_%s\" %i][\"hObj\"]\n", " for seg in S:\n", " seg.xraxial[0] = Rpn2\n", " seg.xraxial[1] = xr\n", " seg.xg[0] = mygm/(nl*2)\n", " seg.xg[1] = XG1\n", " seg.xc[0] = mycm/(nl*2)\n", " seg.xc[1] = 0 \n", "\n", "\n", " for i in range(40*nodes):\n", " S = sim.net.cells[j].secs[\"STIN_%s\" %i][\"hObj\"]\n", " for seg in S:\n", " seg.xraxial[0] = Rpx\n", " seg.xraxial[1] = xr\n", " seg.xg[0] = mygm/(nl*2)\n", " seg.xg[1] = XG1\n", " seg.xc[0] = mycm/(nl*2)\n", " seg.xc[1] = 0\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "afaf323f", "metadata": {}, "outputs": [], "source": [ "\n", "##############################This section is about transverse connections between axons #####################################\n", "# *** If you do not want to include ephaptic interaction, do not run this section\n", "# To model ephaptic effect, \"LinearMechanism\" in NEURON is used.\n", "\n", "\n", "\n", "rho = 1211 * 10000 # ohm-micron\n", "\n", "count = 0\n", "\n", "for i in range(len(R)): \n", "\n", " \n", " for j in range(len(R)): \n", " \n", " if neighboringAxon[i][j]==1:\n", " \n", "\n", " a1 = np.where(unique_radius == R[i]) # find type of R[i]\n", " a1 = a1[0][0]+1\n", " a2 = np.where(unique_radius == R[j]) # find type of R[j]\n", " a2 = a2[0][0]+1\n", "\n", "\n", " NSEG = 0\n", "\n", "\n", "\n", " if a1==a2:\n", " SEC = locals()[\"Connect_types_\"+str(a1)+str(a1)]\n", " RG = locals()[\"Rg_\"+str(a1)+str(a1)]\n", " area = (math.pi)*(parameters[1])*(np.ones((len(RG),1))) # micron^2\n", " area = area * 1e-8 #cm^2\n", " b1=i\n", " b2=j\n", " if a1==0:\n", " area = (math.pi)*0.8*10*(np.ones((len(RG),1))) # micron^2\n", " area = area * 1e-8 #cm^2\n", " \n", " \n", "\n", " if a1<a2:\n", " SEC = locals()[\"Connect_types_\"+str(a1)+str(a2)]\n", " RG = locals()[\"Rg_\"+str(a1)+str(a2)]\n", " b1=i\n", " b2=j\n", " if a1==0:\n", " area = (math.pi)*(parameters[a2][1])*(np.ones((len(RG),1)))\n", " area = area * 1e-8 #cm^2\n", " b1=j\n", " b2=i\n", " \n", " else:\n", " area = locals()[\"Areas_\"+str(a1)+str(a2)]\n", " area = area[ : , np.newaxis]\n", " area = area * 1e-8\n", " \n", " \n", "\n", " if a1>a2:\n", " SEC = locals()[\"Connect_types_\"+str(a2)+str(a1)]\n", " RG = locals()[\"Rg_\"+str(a2)+str(a1)]\n", " b1=j\n", " b2=i\n", " if a2==0:\n", " area = (math.pi)*(parameters[a1][1])*(np.ones((len(RG),1)))\n", " area = area * 1e-8 #cm^2\n", " b1=i\n", " b2=j\n", " \n", " else:\n", " area = locals()[\"Areas_\"+str(a2)+str(a1)]\n", " area = area[ : , np.newaxis]\n", " area = area * 1e-8\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", " locals()[\"sl\"+str(count)] = h.SectionList()\n", "\n", " for z1 in range(int(len(SEC)/2)): \n", "\n", " S = sim.net.cells[b1].secs[SEC[z1]][\"hObj\"]\n", " NSEG=NSEG+S.nseg\n", " locals()[\"sl\"+str(count)].append(S)\n", "\n", " for z2 in range(int(len(SEC)/2),int(len(SEC))):\n", "\n", " S = sim.net.cells[b2].secs[SEC[z2]][\"hObj\"]\n", " locals()[\"sl\"+str(count)].append(S) \n", " \n", " \n", "\n", " nsegs=int(NSEG)\n", "\n", " locals()[\"gmat\"+str(count)] =h.Matrix(2*nsegs, 2*nsegs)\n", " locals()[\"cmat\"+str(count)] =h.Matrix(2*nsegs, 2*nsegs)\n", " locals()[\"bvec\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"xl\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"layer\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"layer\"+str(count)].fill(2) # connect layer 2\n", " locals()[\"e\"+str(count)] = h.Vector(2*nsegs)\n", "\n", " for z3 in range(2*nsegs):\n", " locals()[\"xl\"+str(count)][z3] = 0.5\n", " \n", " \n", " \n", " \n", " \n", " \n", " d = dist_edge[i][j] + 0 #dist[i][j]\n", " rd = rho*d\n", " s = ((unique_radius*2)+(unique_radius*2))/2\n", " locals()[\"RG\"+str(count)] = np.array(RG)*s\n", " locals()[\"Resistance\"+str(count)] = rd/locals()[\"RG\"+str(count)]\n", " locals()[\"Conductance\"+str(count)]=[]\n", " for z4 in range(len(locals()[\"Resistance\"+str(count)])):\n", " locals()[\"Conductance\"+str(count)].append(1/(locals()[\"Resistance\"+str(count)][z4]*area[z4]))\n", " \n", "\n", " \n", " for z5 in range(0,nsegs,1):\n", "\n", " locals()[\"gmat\"+str(count)].setval(z5, z5, locals()[\"Conductance\"+str(count)][z5][0] )\n", " locals()[\"gmat\"+str(count)].setval(z5, nsegs+z5, -locals()[\"Conductance\"+str(count)][z5][0])\n", " locals()[\"gmat\"+str(count)].setval(nsegs+z5, z5, -locals()[\"Conductance\"+str(count)][z5][0])\n", " locals()[\"gmat\"+str(count)].setval(nsegs+z5, nsegs+z5, locals()[\"Conductance\"+str(count)][z5][0])\n", " \n", " \n", " locals()[\"GMAT\"+str(i)+str(j)] = locals()[\"gmat\"+str(count)]\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "# geA= 1000\n", " \n", "# for z5 in range(0,nsegs,1):\n", "# locals()[\"gmat\"+str(count)].setval(z5, z5, geA)\n", "# locals()[\"gmat\"+str(count)].setval(z5, nsegs+z5, -geA)\n", "# locals()[\"gmat\"+str(count)].setval(nsegs+z5, z5, -geA)\n", "# locals()[\"gmat\"+str(count)].setval(nsegs+z5, nsegs+z5, geA)\n", "\n", "\n", "\n", "\n", " locals()[\"lm\"+str(count)] = h.LinearMechanism(locals()[\"cmat\"+str(count)], locals()[\"gmat\"+str(count)], locals()[\"e\"+str(count)], locals()[\"bvec\"+str(count)], locals()[\"sl\"+str(count)], locals()[\"xl\"+str(count)], locals()[\"layer\"+str(count)])\n", "\n", " count=count+1\n", " \n", " SEC.clear\n", " del RG\n", " del area\n", " \n", " \n", "\n", " \n", "#print(count) \n", " \n", " \n" ] }, { "cell_type": "code", "execution_count": 11, "id": "b71ff07f", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1.75e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.75e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.75e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.75e+03\n", " -1.75e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.75e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.5e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.5e+03 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.75e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.75e+03\n" ] }, { "data": { "text/plain": [ "0.0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "GMAT01.printf() " ] }, { "cell_type": "code", "execution_count": 12, "id": "9f7204b0", "metadata": {}, "outputs": [], "source": [ " \n", " \n", " \n", "############################### Transverse connections between Boundary cables and Axons ######################################\n", "\n", "\n", "rho = 1.136e5 * 10000 * 4.7e-4 * 10000 # ohm-micron^2\n", "\n", "\n", "\n", "rows = len(Boundary_neighboring)\n", "\n", "for i in range(rows):\n", " \n", " for j in range(len(R)):\n", " \n", " if Boundary_neighboring[i][j]==1:\n", " \n", " NSEG = 0\n", "\n", " a2 = np.where(unique_radius == R[j]) # find type \n", " a2 = a2[0][0]+1\n", " \n", " Boundary_RG = locals()[\"Boundary_Rg_\"+str(a2)]\n", " area = (math.pi)*(parameters[1])*(np.ones((len(Boundary_RG),1)))\n", " area = area * 1e-8 #cm^2\n", " \n", "\n", " SEC = locals()[\"Boundary_to_\"+str(a2)]\n", "\n", "\n", " locals()[\"sl\"+str(count)] = h.SectionList()\n", "\n", " for z1 in range(int(len(SEC)/2)): \n", "\n", " S = sim.net.cells[j].secs[SEC[z1]][\"hObj\"]\n", " NSEG=NSEG+S.nseg\n", " locals()[\"sl\"+str(count)].append(S)\n", "\n", " for z2 in range(int(len(SEC)/2),int(len(SEC))):\n", "\n", " S = sim.net.cells[len(R)+i].secs[SEC[z2]][\"hObj\"]\n", " locals()[\"sl\"+str(count)].append(S) \n", "\n", "\n", "\n", "\n", " nsegs=int(NSEG)\n", "\n", " locals()[\"gmat\"+str(count)] =h.Matrix(2*nsegs, 2*nsegs)\n", " locals()[\"cmat\"+str(count)] =h.Matrix(2*nsegs, 2*nsegs)\n", " locals()[\"bvec\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"xl\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"layer\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"layer\"+str(count)].fill(2) # connect layer 2\n", " locals()[\"e\"+str(count)] = h.Vector(2*nsegs)\n", "\n", " for z3 in range(2*nsegs):\n", " locals()[\"xl\"+str(count)][z3] = 0.5\n", "\n", "\n", " \n", " \n", " rd = rho\n", " s = (unique_radius*2)\n", " locals()[\"Boundary_RG\"+str(count)] = np.array(Boundary_RG)*s\n", " locals()[\"Resistance\"+str(count)] = rd/locals()[\"Boundary_RG\"+str(count)]\n", " locals()[\"Conductance\"+str(count)]=[]\n", " for z4 in range(len(locals()[\"Resistance\"+str(count)])):\n", " locals()[\"Conductance\"+str(count)].append(1/(locals()[\"Resistance\"+str(count)][z4]*area[z4]))\n", "\n", " \n", " for z5 in range(0,nsegs,1):\n", "\n", " locals()[\"gmat\"+str(count)].setval(z5, z5, locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " locals()[\"gmat\"+str(count)].setval(z5, nsegs+z5, - locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " locals()[\"gmat\"+str(count)].setval(nsegs+z5, z5, - locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " locals()[\"gmat\"+str(count)].setval(nsegs+z5, nsegs+z5, locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " \n", " \n", " \n", " locals()[\"GMAT_BOUNDARY\"+str(i)+str(j)] = locals()[\"gmat\"+str(count)]\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", "# geB= 1\n", " \n", "# for z6 in range(0,nsegs,1):\n", "\n", "# locals()[\"gmat\"+str(count)].setval(z6, z6, geB)\n", "# locals()[\"gmat\"+str(count)].setval(z6, nsegs+z6, -geB)\n", "# locals()[\"gmat\"+str(count)].setval(nsegs+z6, z6, -geB)\n", "# locals()[\"gmat\"+str(count)].setval(nsegs+z6, nsegs+z6, geB)\n", "\n", "\n", "\n", "\n", " locals()[\"lm\"+str(count)] = h.LinearMechanism(locals()[\"cmat\"+str(count)], locals()[\"gmat\"+str(count)], locals()[\"e\"+str(count)], locals()[\"bvec\"+str(count)], locals()[\"sl\"+str(count)], locals()[\"xl\"+str(count)], locals()[\"layer\"+str(count)])\n", "\n", " count=count+1\n", " \n", " \n", " SEC.clear\n", " del Boundary_RG\n", " del area\n", " \n", " \n", " \n", " \n", " \n", "\n", "#print(count) \n", " \n", " \n", " \n", "# from IPython.display import clear_output\n", "\n", "# clear_output(wait=True)\n", "\n", "\n", " \n", "#gmat0.printf() \n", "\n", "# for sec in sl0:\n", "# print(sec)" ] }, { "cell_type": "code", "execution_count": 13, "id": "2f2f0781", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(Boundary_neighboring)" ] }, { "cell_type": "code", "execution_count": 14, "id": "7808a6c6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 11.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -11.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -11.9 \n", " -11.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -23.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23.8 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -11.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11.9 \n" ] }, { "data": { "text/plain": [ "0.0" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "GMAT_BOUNDARY11.printf() " ] }, { "cell_type": "markdown", "id": "b2a6c256", "metadata": {}, "source": [ "#### Recordings" ] }, { "cell_type": "code", "execution_count": 15, "id": "d1494f97", "metadata": {}, "outputs": [], "source": [ "## Recording vext\n", "\n", "\n", "# v1 = sim.net.cells[45].secs[\"node_0\"][\"hObj\"]\n", "# ap1 = h.Vector()\n", "# t = h.Vector()\n", "# ap1.record(v1(0.5)._ref_v)\n", "\n", "# t.record(h._ref_t)" ] }, { "cell_type": "code", "execution_count": 16, "id": "5360fb79", "metadata": {}, "outputs": [], "source": [ "for i1 in range(36):\n", "\n", " locals()[\"Abeta0_imembrane\"+str(i1)] = sim.net.cells[0].secs[\"node_%s\"%i1][\"hObj\"]\n", " locals()[\"Abeta0_imembrane_node\"+str(i1)] = h.Vector()\n", " locals()[\"Abeta0_imembrane_node\"+str(i1)].record(locals()[\"Abeta0_imembrane\"+str(i1)](0.5)._ref_i_membrane)\n", " \n", " \n", " \n", "# for i1 in range(12):\n", "\n", "# locals()[\"Abeta0_icap\"+str(i1)] = sim.net.cells[0].secs[\"node_%s\"%i1][\"hObj\"]\n", "# locals()[\"Abeta0_icap_node\"+str(i1)] = h.Vector()\n", "# locals()[\"Abeta0_icap_node\"+str(i1)].record(locals()[\"Abeta0_icap\"+str(i1)](0.5)._ref_i_cap) \n", " \n", "\n", " \n", " \n", "# for i1 in range(12):\n", "\n", "# locals()[\"Abeta0_ik\"+str(i1)] = sim.net.cells[0].secs[\"node_%s\"%i1][\"hObj\"]\n", "# locals()[\"Abeta0_ik_node\"+str(i1)] = h.Vector()\n", "# locals()[\"Abeta0_ik_node\"+str(i1)].record(locals()[\"Abeta0_ik\"+str(i1)](0.5)._ref_ik_axnode) \n", " \n", " \n", " \n", "# for i1 in range(12):\n", "\n", "# locals()[\"Abeta0_il\"+str(i1)] = sim.net.cells[0].secs[\"node_%s\"%i1][\"hObj\"]\n", "# locals()[\"Abeta0_il_node\"+str(i1)] = h.Vector()\n", "# locals()[\"Abeta0_il_node\"+str(i1)].record(locals()[\"Abeta0_il\"+str(i1)](0.5)._ref_il_axnode) \n", " \n", " \n", "\n", "# for i1 in range(12):\n", "\n", "# locals()[\"Abeta0_ina\"+str(i1)] = sim.net.cells[0].secs[\"node_%s\"%i1][\"hObj\"]\n", "# locals()[\"Abeta0_ina_node\"+str(i1)] = h.Vector()\n", "# locals()[\"Abeta0_ina_node\"+str(i1)].record(locals()[\"Abeta0_ina\"+str(i1)](0.5)._ref_ina_axnode) \n", " \n", " \n", " \n", " \n", "# for i1 in range(12):\n", "\n", "# locals()[\"Abeta0_inap\"+str(i1)] = sim.net.cells[0].secs[\"node_%s\"%i1][\"hObj\"]\n", "# locals()[\"Abeta0_inap_node\"+str(i1)] = h.Vector()\n", "# locals()[\"Abeta0_inap_node\"+str(i1)].record(locals()[\"Abeta0_inap\"+str(i1)](0.5)._ref_inap_axnode) \n", " \n", " " ] }, { "cell_type": "code", "execution_count": 17, "id": "ca5603a0", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Vector[89]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## Recording v and vext[0], Abeta\n", "\n", "###################################################### Abeta0\n", "\n", "\n", "for i1 in range(36):\n", "\n", " locals()[\"Abeta0_v\"+str(i1)] = sim.net.cells[0].secs[\"node_%s\"%i1][\"hObj\"]\n", " locals()[\"Abeta0_v_node\"+str(i1)] = h.Vector()\n", " locals()[\"Abeta0_v_node\"+str(i1)].record(locals()[\"Abeta0_v\"+str(i1)](0.5)._ref_v)\n", "\n", "\n", "\n", "# for i2 in range(12):\n", "\n", "# locals()[\"Abeta0_vex\"+str(i2)] = sim.net.cells[0].secs[\"node_%s\"%i2][\"hObj\"]\n", "# locals()[\"Abeta0_vext1_node\"+str(i2)] = h.Vector()\n", "# locals()[\"Abeta0_vext1_node\"+str(i2)].record(locals()[\"Abeta0_vex\"+str(i2)](0.5)._ref_vext[1])\n", "\n", " \n", " \n", "# for i3 in range(0,24,2):\n", " \n", "# locals()[\"Abeta_vMext\"+str(i3)] = sim.net.cells[0].secs[\"MYSA_%s\"%i3][\"hObj\"]\n", "# locals()[\"Abeta0_vext1_MYSA\"+str(i3)] = h.Vector()\n", "# locals()[\"Abeta0_vext1_MYSA\"+str(i3)].record(locals()[\"Abeta_vMext\"+str(i3)](0.5)._ref_vext[1])\n", "\n", "\n", " \n", "# for i4 in range(12):\n", "\n", "# locals()[\"Abeta1_vext1\"+str(i4)] = sim.net.cells[1].secs[\"node_%s\"%i4][\"hObj\"]\n", "# locals()[\"Abeta1_vext1_node\"+str(i4)] = h.Vector()\n", "# locals()[\"Abeta1_vext1_node\"+str(i4)].record(locals()[\"Abeta1_vext1\"+str(i4)](0.5)._ref_vext[1]) \n", " \n", " \n", " \n", "# locals()[\"Abeta_vSext\"+str(220)] = sim.net.cells[0].secs[\"STIN_220\"][\"hObj\"]\n", "# locals()[\"Abeta0_vext1_STIN\"+str(220)] = h.Vector()\n", "# locals()[\"Abeta0_vext1_STIN\"+str(220)].record(locals()[\"Abeta_vSext\"+str(220)](0.5)._ref_vext[1]) \n", " \n", "# locals()[\"Abeta_v\"+str(220)] = sim.net.cells[0].secs[\"STIN_220\"][\"hObj\"]\n", "# locals()[\"Abeta0_v_STIN\"+str(220)] = h.Vector()\n", "# locals()[\"Abeta0_v_STIN\"+str(220)].record(locals()[\"Abeta_v\"+str(220)](0.5)._ref_v) \n", " \n", " \n", " \n", "t = h.Vector()\n", "t.record(h._ref_t)" ] }, { "cell_type": "markdown", "id": "d83f15db", "metadata": {}, "source": [ "#### Simulate and Analyze" ] }, { "cell_type": "code", "execution_count": 18, "id": "cd6d9f09", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Running simulation for 6.0 ms...\n", " Done; run time = 86.02 s; real-time ratio: 0.00.\n", "\n", "Gathering data...\n", " Done; gather time = 0.55 s.\n", "\n", "Analyzing...\n", " Cells: 4\n", " Connections: 0 (0.00 per cell)\n", " Spikes: 2 (83.33 Hz)\n", " Simulated time: 0.0 s; 1 workers\n", " Run time: 86.02 s\n", " Done; saving time = 0.00 s.\n", "Plotting recorded cell traces ... cell\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x576 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAH3CAYAAADUjAlgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA5IklEQVR4nO3debhddX3v8fc380wIiQkJmMgsoAxGoYpCiwPOXtFb1Grbx4rDdcC2etvbYhG1Dp30aqtypWoRqyKgdaqKVasoaGTSCDKHmYQh80jyvX+svc3O4Zycaa299vB+Pc961tlrr7P29xzzHD5+f+v3W5GZSJIkqbtMqLsASZIkjZ4hTpIkqQsZ4iRJkrqQIU6SJKkLGeIkSZK6kCFOkiSpCxniJNUuIn4QEZ9qef2ZiLiszpokqdMZ4iSNWUTsFxEfiojfRMTWiFgdEf8dEa+JiEkVf/aZEfG9iHgoIjIiThrjdT7T+P6MiEciYlVEfCIi9iu75r3U8LGI2BkRb23XZw5Sw/4RcWFErGz8HgzRUoczxEkak4g4ALgKOB04FzgeeBpwPvDnwNEVlzAD+C/gHSVc60fA/sAy4K0UP9O/lXDdYUXEDOAPgL8FzmzHZw5hKvAQ8I+AAU7qAoY4SWP1cYr/8B+fmRdm5q8z86bM/CzwJOCm5okR8ZaIuKHRrbspIv5qvJ26zPxwZr4P+N64forC9sy8LzPvysyvAh8GTouI6VH484i4NSK2R8QtEXFW6zdHxO0R8b6I+FRErI+IByLigxExkr+xvw/cArwXWBwRTx1w7Y83rj+35dinG7/H2Y3Xz4uIX0TEtkY39F8iYmbL+Z+JiMsa3ctVjRq/GhELmudk5u2Z+ZbMPB+4b7S/QEntZ4iTNGoRMQ94HvCxzFw38P3M3JGZmxrnnkPRmftL4PHA24DXA3/TtoJHbwvF38dJwJuA9wAfAI4C/g74QES8dsD3vAW4B3gy8HbgzcBZI/is1wOfzcxtwBd4dDfu7cB64P8BRMQrgVcCZ2Tmhoh4IvAfwH8DxwJ/CLwA+MSA6zwZ+F3g+cBpjXP/fgT1SepQld6zIqlnHUIRcn69t5MaQ4XvBF6amf/ZOHxbRPw18H+Bsyutcgwi4kjgfwFXNkLSXwAfzczzGqfcFBGHA39FMXTcdG1mvqvx9W8i4vHAn1IMTw71WcdQDEO/sHHoM8APIuKszFwLkJlbI+L3gRUR8f5GbX+Rmb9ofM87gKsy8+2N19dHxFuASyPirzNzVeP4duCPGmGRiPg4RaCW1KXsxEkai2jsc5jzjgKmAxdHxMbmBnwS2Kd1OK9mpzRq2wL8CrgVeGVEzAEOoOhytfohsKwRUpt+OuCcy4EljWsM5fXANzNzDUBm/gy4jeIeud/KzOspupl/AfyYYri36agh6gvgyJZj1zcDXMPdwMK91Capw9mJkzQWNwG7KALEpXs5r/l/FF8O3DjI+w+VXNdYXUkxDPkIcG9Lt6oZwAaG1WB4ez2ncc/aq4DZEfFIy1sTKIZUPzbgW54B7AQeC0yjGPJtGipMtx7fPsh7I/k5JHUoO3GSRi0zHwK+Bbw5IvYZ+H5ETG6ElJXAVuCgzLx5kG1nm0sfypZGPbe3dqsycz1wF3DygPOfAdyWmZtbjp044JzfAe5pXGMwZ1CEsmMo7k9rbk8HjoqI316vcf/dSxp1zAD+qeU6Kwep72SKkLbX4W5J3c1OnKSxehPFkOEvIuJdwDUU3Z4TKe7T+sPMvCYi/hb424gA+C7F350nAMdl5v8e64dHxCJgEbC4ceiQxlDtfZlZ5uzK9wP/EBE3AT8Afg94I8W9aa2ObUzi+DywnOJ+s3P2ct3XA5dm5i8HvhERl1N0465o3H/3EeDtmXl5RLwC+HFEfDczL6aYaHFVRPwjcB7FMikfBS7MzDtG84NGxLGNL+cBs5qvM/Oa0VxHUnsY4iSNSWbeERHHU9yndQ7FMN964HqKYPGrxnnviYh7KGZv/j3FMOCNFDfxj8cb2HOG66cb+3c36mnOjP2bzBzPsOHHgZnA/wH+BbiTYmLB+QPO+yiwFFhBMSz7cfbsmP1WIxw9maEndnwR+FBEvJ1ixuq3M/MTAJl5ZSM0fyoiVmTmdRHxIooZtP+L4n+DL1PcQzdaVw/x2mFXqQNF5nD3JUtSd4qIfwMWZeazK/6c24FPZeZ7q/wcSWplJ05ST2ostHsqxdpoktRzDHGSelJm7gKW1F2HJFXF4VRJkqQu5BIjkiRJXcgQJ0mS1IV6/p64+fPn57Jly+ouQ5IkaVi/+MUvHsjMET2SsOdD3LJly1ixYkXdZUiSJA0rIlaN9FyHUyVJkrqQIU6SJKkLGeIkSZK6kCFOkiSpCxniJEmSupAhTpIkqQsZ4iRJkrqQIU6SJKkLGeIkSZK6kCFOkiSpCxniJEmSupAhTpIkqQsZ4iRJkrqQIU6SJKkLGeIkSZK6kCFOkiSpCxni1Da7dsHOnXVXIUlSbzDEqS22b4ff+R044AC49da6q5EkqfsZ4tQWF14IP/sZ3HcffOADdVcjSVL3M8SpLT79aTjySHjlK+ErX3FYVZKk8TLEqXJr18JPfgL/43/Ai18Ma9bAT39ad1WSJHU3Q5wqd801ReftGc+A006DyZPha1+ruypJkrqbIU6Va05kOOQQmDMHli8vOnOSJGnsDHGq3C23wKRJ8NjHFq9PPBFWrIAdO+qtS5KkbmaIU+Vuvx0OPLAIclAsNbJ1K1x3Xa1lSZLU1QxxqtwDD8BjHrP79YknFnsnN0iSNHaGOFXuoYdg3rzdrw84ABYsgGuvra8mSZK6nSFOlXvwQdhvv92vI+Doo+FXv6qvJkmSup0hTpUb2ImD3SEus56aJEnqdoY4VeqRR2DdukeHuKOOgo0b4Y476qlLkqRuZ4hTpR5+uNi3DqdC0YkDh1QlSRorQ5wqtXZtsd9nnz2PH3VUsV+5sq3lSJLUMwxxqtT69cV+YIibOxfmz4ebbmp7SZIk9QRDnCo1VIgDOPRQQ5wkSWNliFOlmiFuzpxHv3fooXDzze2tR5KkXmGIU6WGC3F33w2bN7e3JkmSeoEhTpUaLsSB3ThJksbCEKdKjSTEeV+cJEmjZ4hTpdavhylTYOrUR79niJMkaewMcarU+vWDd+EAZs+GhQsNcZIkjYUhTpXaW4gDOOQQQ5wkSWNhiFOlRhLibrutffVIktQrDHGq1HAhbunSYpmR7dvbV5MkSb3AEKdKDRfili2DTLjrrraVJElSTzDEqVIj6cQBrFrVnnokSeoVhjhVaqQh7vbb21KOJEk9wxCnSg0X4g48ECLsxEmSNFqGOFVm+3bYunXvIW7KFFi82E6cJEmjZYhTZTZsKPZ7C3FQTG6wEydJ0ugY4lSZdeuK/XAhbulSO3GSJI2WIU6VWb++2O+zz97PW7asWGJk587KS5IkqWcY4lSZZogbSSfukUfgnnuqr0mSpF5hiFNlRhPiwCFVSZJGwxCnyow0xB1wQLG/++5q65EkqZcY4lQZQ5wkSdUxxKkyIw1xc+bArFk+P1WSpNEwxKkyGzbAhAkwffrez4uAJUsMcZIkjUZHhbiImBoR50fEqojYEBFXR8RzW94/NSJuiIjNEfH9iFhaZ73au61bYerUIqQN54ADHE6VJGk0OirEAZOAO4GTgX2As4EvRcSyiJgPXNI4Ng9YAXyxrkI1vG3bihA3EgccYCdOkqTRmFR3Aa0ycxNwTsuhr0fEbcCTgP2AlZl5EUBEnAM8EBFHZOYN7a5VwxtNiFuypFgnbudOmDix2rokSeoFndaJ20NELAQOA1YCRwHXNt9rBL5bGsfVgUbbidu5E1avrrYmSZJ6RceGuIiYDFwIfLbRaZsFrBtw2jpg9iDfe2ZErIiIFWvWrKm+WA1qtCEOHFKVJGmkOjLERcQE4AJgO/DmxuGNwMDFKuYAGwZ+f2ael5nLM3P5ggULKq1VQ9u2DaZNG9m5S5YUe0OcJEkj03EhLiICOB9YCJyemTsab60Ejmk5byZwcOO4OtBYOnHOUJUkaWQ6LsQBHwceD7wwM7e0HL8UODoiTo+IacC7gOuc1NC5RhPi5s+HyZPtxEmSNFIdFeIa6769HjgWuC8iNja2V2XmGuB04H3Aw8AJwBm1FathjSbETZjggr+SJI1Gpy0xsgoYcmnYzLwMOKJ9FWk8tm6F2Y+adjI0F/yVJGnkOqoTp94ymk4c2ImTJGk0DHGqzGhDXPOpDZnV1SRJUq8wxKkyY+nEbd0KDz1UXU2SJPUKQ5wqM9oQt3hxsb/vvmrqkSSplxjiVJnRhrj99y/2995bTT2SJPUSQ5wqM9oQt2hRsTfESZI0PEOcKrN9O0yZMvLz7cRJkjRyhjhVZudOmDhx5OfPng0zZxriJEkaCUOcKpFZbKMJcVB045zYIEnS8AxxqsSuXcV+wij/he2/v504SZJGwhCnSjRD3Gg7cYsWGeIkSRoJQ5wqsXNnsbcTJ0lSNQxxqsRYO3H77w8bNsCmTeXXJElSLzHEqRLj6cSBkxskSRqOIU6VaIa4sXTiwCFVSZKGY4hTJcYzOxUMcZIkDccQp0qMtRPno7ckSRoZQ5wqMdaJDfvtB5MmGeIkSRqOIU6VGOvEhgkTim6cExskSdo7Q5wqMdZOHLhWnCRJI2GIUyXG2okDQ5wkSSNhiFMlxtOJ89FbkiQNzxCnSoy3E7dmDezYUW5NkiT1EkOcKjHee+IAVq8urx5JknqNIU6VGG8nDhxSlSRpbwxxqsRYF/sFQ5wkSSNhiFMlxvrYLTDESZI0EoY4VWI8nbjHPKbY339/efVIktRrDHGqxHg6cVOmwL77GuIkSdobQ5wqMZ5OHMDChYY4SZL2xhCnSoxniREohlQNcZIkDc0Qp0qMZ4kRKDpxrhMnSdLQDHGqxHg7cQ6nSpK0d4Y4VaKMTtzatbBtW2klSZLUUwxxqkQZnThwSFWSpKEY4lSJMjpx4JCqJElDMcSpEmV14gxxkiQNzhCnStiJkySpWoY4VaKMxX7BECdJ0lAMcarEeB67BTB9OsyebYiTJGkohjhVYrydOHCtOEmS9sYQp0qMd2ID+OgtSZL2xhCnSox3YgP46C1JkvbGEKdKlNGJczhVkqShGeJUibI6cQ8+CI88Uk5NkiT1EkOcKlFWJy4T1qwppyZJknqJIU6VKKsTBw6pSpI0GEOcKlFWJw4McZIkDcYQp0rYiZMkqVqGOFWirMV+wRAnSdJgDHGqxHgfuwUwa1bx+C1DnCRJj2aIUyXK6MRFuFacJElDMcSpEmV04sBHb0mSNBRDnCqxdWuxnzp1fNfx0VuSJA3OEKdKrFsHU6YU97SNh8OpkiQNzhCnSqxdC3PnFve1jcfChcUTG5rDs5IkqWCIUyWaIW68Fi4sJkk8+OD4ryVJUi8xxKkSZYY4cEhVkqSBDHGqhCFOkqRqGeJUCUOcJEnVMsSpEuvWwT77jP86hjhJkgbXdSEuIuZFxKURsSkiVkXEK+uuSY+2Zcv4lxeBops3ZYohTpKkgSbVXcAY/DOwHVgIHAt8IyKuzcyVtValPWzdCtOmjf86ET61QZKkwXRVJy4iZgKnA2dn5sbM/DHwH8Cr661MrTLLC3FQhDif2iBJ0p66KsQBhwE7M/PGlmPXAkfVVI8GsX17sS8rxPnUBkmSHq3bQtwsYN2AY+uA2a0HIuLMiFgRESvWrFnTtuJUaD431RAnSVJ1ui3EbQTmDDg2B9jQeiAzz8vM5Zm5fMGCBW0rToUqQtzq1cUwrSRJKnRbiLsRmBQRh7YcOwZwUkMH2bat2E+dWs71Fi4shmjXri3nepIk9YKuCnGZuQm4BDg3ImZGxNOAFwMX1FuZWlXRiQOHVCVJatVVIa7hTcB0YDXw78AbXV6ksxjiJEmqXtetE5eZDwEvqbsODa3sELdoUbE3xEmStFs3duLU4arqxN13XznXkySpFxjiVLpmiCtrYsO8eTBxop04SZJaGeJUurI7cRMm+OgtSZIGMsSpdM0lRsoKceCCv5IkDWSIU+nKHk4FQ5wkSQMZ4lS6HTuK/eTJ5V1z0SInNkiS1MoQp9Lt2lXsJ5T4r6vZifPRW5IkFQxxKt3OncV+4sTyrtl89Na6deVdU5KkbmaIU+manbiyQxx4X5wkSU2GOJWu2YkrezgVDHGSJDUZ4lS6KjtxTm6QJKlgiFPpqujE+fxUSZL2ZIhT6aroxO23n4/ekiSplSFOpauiEzdhAixYYIiTJKnJEKfSVdGJA5/aIElSK0OcSldFJw6KEOfEBkmSCoY4lc5OnCRJ1TPEqXRVdeIWLfLRW5IkNRniVLpduyCi2Mq0cCFs2wbr15d7XUmSupEhTqXbubP8Lhz41AZJkloZ4lS6XbvKvx8OfGqDJEmtDHEqnZ04SZKqZ4hT6arqxPnoLUmSdjPEqXRVdeL226+4riFOkiRDnCqwc2c1nbiJE330liRJTYY4lW7Xrmo6ceBTGyRJajLEqXRVdeLApzZIktRkiFPpqu7EGeIkSTLEqQJVduJ89JYkSQVDnEpX1RIjUHTitm6FDRuqub4kSd3CEKfSVbXECPjUBkmSmgxxKl3VnTjwvjhJkgxxKl07OnGGOElSvzPEqXR24iRJqp4hTqWrshO3YIGP3pIkCQxxqkCVnbiJE2H+fCc2SJJkiFPpquzEgQv+SpIEhjhVoMpOHBjiJEkCQ5wqYCdOkqTqGeJUunZ14nz0liSpnxniVLqqO3GLFsGWLT56S5LU3wxxKl07OnHgkKokqb8Z4lS6dtwTB4Y4SVJ/M8SpdFV34hYtKvauFSdJ6meGOJWu6k7c/vsX+3vvre4zJEnqdIY4lW7nzmo7cfPnw6RJhjhJUn8zxKl0u3ZV24mbMKG4L+6ee6r7DEmSOp0hTqWruhMHsHixnThJUn8zxKl0VU9sgOK+OEOcJKmfGeJUuqonNoAhTpIkQ5xK145O3OLF8MADsH17tZ8jSVKnMsSpdO3qxIFrxUmS+teI/lMbEc+OiM9HxLURcWtj//mIeFbVBar7ZLYvxDmkKknqV5OGOyEi3g68E/h/wMXAOmAOcAzw2Yj4YGZ+pNIq1VUyq/+MxYuLvcuMSJL61bAhDngH8LuZecOA45dExL8D3wcMcdpDRLXXtxMnSep3Ixn0mgkM1e+4D5hRXjnqBe3oxD3mMcWQrSFOktSvRhLiLga+FhGnRsSCiJgSEfMj4lTgUuDL1ZaoblR1J27iRJ/aIEnqbyMJcW8AfgJ8Frgf2NLYfxa4AnhjZdWpK7WjEweuFSdJ6m/D3hOXmduBvwT+MiLmArOAjZm5duC5EfG0zLy87CLVfaruxEER4u6+u/rPkSSpE41qIYjMXJuZdw0W4Bq+Nf6S1O3a1YlbvNjhVElS/yp7Na8x9V8iYmpEnB8RqyJiQ0RcHRHPHXDOqRFxQ0RsjojvR8TSckpWFdrViVuzBh55pPrPkiSp05Qd4sbag5kE3AmcDOwDnA18KSKWAUTEfOCSxvF5wArgi+MtVtVo5z1xmXD//e35PEmSOklHPHYrMzdl5jmZeXtm7srMrwO3AU9qnPJSYGVmXpSZW4FzgGMi4oiaStYw2tGJay746+QGSVI/6ogQN1BELAQOA1Y2Dh0FXNt8PzM3Abc0jqvDtLMTB94XJ0nqTx1xT9weF4iYDFwIfLblKRGzKB731WodMHuIa5wZESsiYsWaNWvGW5LGoF33xIGdOElSfxpViIuI/SLi1RHxzsbrxRFxQPP9zBwqVP0gInKI7cct500ALgC2A29uucRGiue1tpoDbBjs8zLzvMxcnpnLFyxYMJofUSVoVydu4cIiLBriJEn9aMQhLiJOBn4DvIpiggHAocDHh/vezDwlM2OI7aTG9QM4H1gInJ6ZO1ousRI4pqWWmcDB7B5uVYdpRydu8mRYsMDhVElSfxpNJ+7DwO9n5mlAc1GHK4GnlFTLx4HHAy/MzC0D3rsUODoiTo+IacC7gOtahlvVQTLbE+IAlixxwV9JUn8aTYhblpnfa3zdHDDbzgie+jCcxppvrweOBe6LiI2N7VUAmbkGOB14H/AwcAJwxng/V9Vo13AqwAEHGOIkSf1pNAHs1xHxnMz8dsuxZwK/HG8RmbmKYSZFZOZlgEuKdIl2deIOOAB+8pP2fJYkSZ1kNCHuz4CvR8Q3gOkR8UnghcCLK6lMXavdnbgHH4QtW2D69PZ9riRJdRvxcGpmXkExuWAl8K8Ui/E+JTN/XlFt6mLt7MSBQ6qSpP4zqvvZMvNu4EMV1aIe0e5OHMBdd8Ehh7TvcyVJqtteQ1xEXMAInoeama8prSL1hHZ34u66qz2fJ0lSpxhuOPVmisdb3ULxhISXABOBuxrf+2JgbXXlqRu1sxO3ZEmxN8RJkvrNXjtxmfnu5tcR8W3g+Zn5o5ZjJ7F74V/pt9rViZs5E/bd1xAnSeo/o1kn7kTgigHHrgR+p7xy1Ava2YmDohtniJMk9ZvRhLirgb+NiOkAjf37gGsqqEtdrl2dOCjuizPESZL6zWhC3B8BTwPWRcT9FPfInQQ4qUF7aHcnzqc2SJL60YiXGMnM24GnRsSBwGLg3sy8o6rC1N3a3Ym7/37Yvh2mTGnf50qSVKfRdOKIiH2B3wV+Dzil8VraQx2duEy49972fq4kSXUacYiLiN+hWGrkDcATKR5Yf0vjuLSHdnfiwPviJEn9ZTRPbPgw8KbM/ELzQET8PvB/gSeXXJe6WKYhTpKkqo1mOPUw4EsDjn0Z8GFH2kMdw6lgiJMk9ZfRhLibgDMGHHs5xRCrtId2duLmzIFZswxxkqT+Mprh1LOAr0fEW4FVwDLgUOAF5ZelbtbuTlyEa8VJkvrPaJYY+UlEHAw8n2KJka8B38zMh6oqTt2rnZ04MMRJkvrPaDpxZObDwOcqqkU9ot2dOChC3GWXtf9zJUmqy4hDXEQ8juIxW8cCs1rfy8zHlluWul0dnbh77oFHHoFJo/q/JpIkdafR/Ofu8xSTGP4M2FxNOeoFdXTili6FXbuKx28tXdr+z5ckqd1GE+KOAp6WmbuqKka9o92duGZwW7XKECdJ6g+jWWLkv4HjqipEvaOuThzA7be3/7MlSarDaDpxtwPfjohLgPta38jMd5VZlLpfuztxj23clblqVXs/V5KkuowmxM2kWFZkMnBgy/Ea+i7qZHV04qZNg4ULDXGSpP4xmnXi/ni4cyLiFZn57+MrSb2g3Z04KIZUDXGSpH4xmnviRuKTJV9PXaiOThzAsmWGOElS/yg7xNXQf1EnqqsTd8cdxVIjkiT1urJDnPfHicz6Qty2bbB6dfs/W5Kkdis7xEm1aV0rTpKkXjdsiIsIg55Gpc5OHLhWnCSpP4wkoN0dER+KiKNHcO4d4y1I3a+uiQ124iRJ/WQkIe4NwOOAn0fEVRHxtohYMNiJmTmSoKc+UEcnbs4cmDvXECdJ6g/DhrjM/GpmvhzYn2IJkZcDd0bEf0TE6RExueoi1V3q6sSBa8VJkvrHiO93y8y1mfnJzDwJeDywAvgn4N6qilP3qqMTB8Vacd4TJ0nqB6OetBARU4EnAycAC4Ffll2UuludnbiDDoLbbqu3BkmS2mHEIS4iToqI84D7gfcCVwCHZebvVlWculddnbiDDoLNm+H+++v5fEmS2mXYZ6dGxDnAq4F5wEXA8zPz8orrUherswt28MHF/pZbYNGi+uqQJKlqI+nEnQj8FbB/Zp5pgNNI1NmJgyLESZLUy4btxGXmae0oRL2jzk7csmVFgLz11vpqkCSpHXwagypRVydu6lQ48EA7cZKk3meIU+nqnhl60EF24iRJvc8Qp0rU1YmDYnKDnThJUq8zxKl0mfWGuIMOKpYY2bSpvhokSaqaIU49p7nMiEOqkqReZohT6eruxLWuFSdJUq8yxKnnNNeKsxMnSeplhjiVru5O3Lx5MHeunThJUm8zxKl0dS8xAsWQ6s03112FJEnVMcSpEnV24gAOPxx+85t6a5AkqUqGOJWuEzpxhx0Gd9wBW7bUXYkkSdUwxKkSndCJy3RIVZLUuwxxKl0ndOIOP7zYO6QqSepVhjhVou5O3KGHFvsbb6y3DkmSqmKIU+k6oRM3axYsWWInTpLUuwxxqkTdnThwhqokqbcZ4lS6TujEwe4Q1yn1SJJUJkOcKtEJnbjDDoO1a+GBB+quRJKk8hniVLq6H7vV5AxVSVIvM8SpZxniJEm9zBCnSnRCJ27pUpgyBW64oe5KJEkqnyFOPWviRDjiCPj1r+uuRJKk8nVciIuIQyNia0R8bsDxUyPihojYHBHfj4ilddWooTVngnZCJw7g6KNh5cq6q5AkqXwdF+KAfwZ+3nogIuYDlwBnA/OAFcAX21+ahtNpy3kcdRSsWgUbNtRdiSRJ5eqoEBcRZwBrge8NeOulwMrMvCgztwLnAMdExBHtrVAj1SmduKOOKvYOqUqSek3HhLiImAOcC/zZIG8fBVzbfJGZm4BbGscHu9aZEbEiIlasWbOminI1hE7rxB19dLH/1a/qrUOSpLJ1TIgD3gOcn5l3DvLeLGDdgGPrgNmDXSgzz8vM5Zm5fMGCBSWXqZHolE7c4x4H06d7X5wkqfe0JcRFxA8iIofYfhwRxwLPBP5piEtsBOYMODYH8E6nDtNpnbgJE+DII+3ESZJ6z6R2fEhmnrK39yPiLGAZcEcULZxZwMSIODIzjwdWAn/Ycv5M4ODGcXWgTunEQXFf3GWX1V2FJEnl6pTh1PMoQtmxje0TwDeA5zTevxQ4OiJOj4hpwLuA6zLTZVw7TKd14qC4L+6ee+Dhh+uuRJKk8nREiMvMzZl5X3OjGD7dmplrGu+vAU4H3gc8DJwAnFFbwRpWp3XiwPviJEm9pS3DqaOVmecMcuwywCVFOlynduIArrsOTjqp3lokSSpLR3Ti1Hs6qRN34IGw775wzTV1VyJJUnkMcSpVpz12C4pajjsOrr667kokSSqPIU594bjj4Je/hB076q5EkqRyGOJUqk7sxAEcfzxs2wbXX193JZIklcMQp75w3HHF3iFVSVKvMMSpVJ3aiTvsMJgxwxAnSeodhjj1hYkT4YlPNMRJknqHIU6l6tROHOyeobprV92VSJI0foY4laoTF/ttOu442LABbr217kokSRo/Q5wq0YmduCc9qdivWFFvHZIklcEQp1J1cifuCU+A6dPhyivrrkSSpPEzxKkSndiJmzy56MZdcUXdlUiSNH6GOJWqkztxACeeCFddVSz8K0lSNzPEqRKd2ImDIsRt3w7XXlt3JZIkjY8hTqXq9E7cCScUe4dUJUndzhCnSnRqJ+6AA2DJEkOcJKn7GeJUqk5e7LfpxBOdoSpJ6n6GOPWdE04oFvxdvbruSiRJGjtDnErVDZ24k04q9j/6Ub11SJI0HoY49Z3ly2HGDPjhD+uuRJKksTPEqVTd0ImbPBme+lRDnCSpuxni1Jee8Qz45S/hoYfqrkSSpLExxKlU3dCJAzj55KJW74uTJHUrQ5xK1emL/TY95SkwdapDqpKk7mWIUyU6vRM3bVqxXtx//3fdlUiSNDaGOJWqWzpxAKecAldf7X1xkqTuZIhTJTq9EwfwrGfBrl3wve/VXYkkSaNniFOpuqkTd8IJsM8+8O1v112JJEmjZ4hTJbqhEzdpEpx6KnznO90VPiVJAkOcStZtYeg5z4E774Qbbqi7EkmSRscQp0p0QycOihAHDqlKkrqPIU6l6pbFfpuWLoXDDzfESZK6jyFOfe+5z4Xvfx82bqy7EkmSRs4Qp1J1WycO4MUvhm3b7MZJkrqLIU5976STYN48+OpX665EkqSRM8SpVN3YiZs0CV7wAvj612HHjrqrkSRpZAxxEvCSl8DDD8OPf1x3JZIkjYwhTqXqxk4cwLOfDdOmwaWX1l2JJEkjY4iTgJkzizXjLr4Ydu6suxpJkoZniFOpurUTB3DGGXDPPQ6pSpK6gyFOpeq2x261euELYcYM+Pd/r7sSSZKGZ4hTJbqxEzdzJrzoRfDlLztLVZLU+QxxKlU3d+IAXvEKePBBuOyyuiuRJGnvDHGqRDd24qCY3DB3LlxwQd2VSJK0d4Y4larbO3FTp8KrXgWXXFKsGydJUqcyxKkS3dqJA3jta4tnqV54Yd2VSJI0NEOcStXNS4w0HXccHH88fOpT3d9ZlCT1LkOcNIg/+RO49lq46qq6K5EkaXCGOJWqFzpxUMxSnTYNzj+/7kokSRqcIU4axNy58PKXw+c+B+vX112NJEmPZohTqXqlEwfw1rfChg3w6U/XXYkkSY9miJOGsHw5PO1p8JGPwM6ddVcjSdKeDHEqVS914gDOOgtuuw2+9rW6K5EkaU+GOGkvXvISWLoUPvzhuiuRJGlPhjiVqtc6cZMmwVveAj/8IaxYUXc1kiTtZoiThvG618G++8J731t3JZIk7WaIU6l6rRMHMGdOcW/cV78K11xTdzWSJBUMcSpVrz6m6q1vLcKc3ThJUqcwxKkSvdSJg2Lx37e9DS6+GH71q7qrkSTJEKeS9WonDooh1dmz4eyz665EkqQOC3ERcUZEXB8RmyLiloh4est7p0bEDRGxOSK+HxFL66xVe9drnTiAefPgne+Er3wFLr+87mokSf2uY0JcRDwL+CDwx8Bs4BnArY335gOXAGcD84AVwBfrqVR704sTG1r96Z/C4sXwjnf0dtdRktT5OibEAe8Gzs3MKzJzV2benZl3N957KbAyMy/KzK3AOcAxEXFEXcWqP82YAeeeCz/9KVxySd3VSJL6WUeEuIiYCCwHFkTEzRFxV0R8LCKmN045Cri2eX5mbgJuaRxXB+n1ThzAH/0RHH10MbS6dWvd1UiS+lVHhDhgITAZeBnwdOBY4DjgrxvvzwLWDfiedRTDro8SEWdGxIqIWLFmzZpKClb/mjixeAzXrbfCBz5QdzWSpH7VlhAXET+IiBxi+zGwpXHqRzPz3sx8APhH4HmN4xuBOQMuOwfYMNjnZeZ5mbk8M5cvWLCgih9JQ+iHThzAqafCK14B738/3HRT3dVIkvpRW0JcZp6SmTHEdlJmPgzcBQx1q/hK4Jjmi4iYCRzcOC7V4h/+AaZNgze/2UkOkqT265ThVIBPA2+JiMdExL7AWcDXG+9dChwdEadHxDTgXcB1mXlDPaVqKP3SiQPYf//iCQ7f+Q5ccEHd1UiS+k0nhbj3AD8HbgSuB64G3geQmWuA0xuvHwZOAM6op0xptze9CZ72tOKxXHfdVXc1kqR+0jEhLjN3ZOabMnNuZi7KzLc2lhNpvn9ZZh6RmdMbw7O311iuhtBPnTgoJjl85jOwYwe89rUOq0qS2qdjQpzUrQ45BP7u74ph1U98ou5qJEn9whCnUvVbJ67pDW+A006Dt78drr667mokSf3AEKdS9etw4oQJ8G//BvvtB//zf8L69XVXJEnqdYY4VaLfOnEACxbAF75QLALs/XGSpKoZ4lSqfg8uT3968RSHL38Z3v3uuquRJPWySXUXoN7Uj524pj//c/j1r4sQd/jhxZMdJEkqm504lapfJza0ioBPfrLoyv3xH8NPf1p3RZKkXmSIkyowZQpccgkccAA8//lw3XV1VyRJ6jWGOJXKTtxu8+fDd78LM2bAs54FN95Yd0WSpF5iiJMq9LjHwWWXFeH21FPhttvqrkiS1CsMcSqVnbhHO+KIoiO3aROcdFIx6UGSpPEyxEltcMwx8MMfwq5dxYSHn/2s7ookSd3OEKdS2Ykb2hOeAJdfDvvsUwytfv3rdVckSepmhjipjQ46CH78YzjsMHjRi+Dv/s4FkiVJY2OIU6nsxA1v8WL40Y/g5S+Hd74TXvOa4n45SZJGwxAn1WDGjOI5q+eeCxdeCE96ElxzTd1VSZK6iSFOpbITN3IRcPbZxRIk69fDCSfARz/q8KokaWQMcVLNfu/34NpriwWB3/rWYtLDzTfXXZUkqdMZ4lQqO3Fjs2ABfO1rxTNXr7qqmMn6wQ/Cjh11VyZJ6lSGOJXKocCxi4AzzywWA37uc+Ev/qJYX+6b3/T3Kkl6NEOcKmEnbuwWL4ZLLoGvfrXoxD3/+fCc58B119VdmSSpkxjiVCqHU8vzohfBypXw4Q/DihVFV+5lLzPMSZIKhjipg02ZAm97G9xySzGT9bvfLcLc6afDz39ed3WSpDoZ4lQqO3HV2HffYk2522+Hd70Lvvc9eMpT4KlPhS9+0QkQktSPDHFSF9l3X3j3u+GOO+AjH4HVq+GMM+BxjytC3qpVdVcoSWoXQ5xKZSeuPebMKdaUu/HGYmmSI4+Ev/mbIsw985nFUyA2b667SklSlQxxUhebMAFe8AL4znfgttuKIHfLLfAHfwCLFsGrX13Mct26te5KJUllM8SpVHbi6rNs2e4Q9/3vFzNZv/ENeMlLisWEX/EKuPhi2Lix7kolSWUwxEk9ZsIEOOUU+Nd/hfvvh29/G175yuIZrS97GcybVzza6+//vljCxIWEJak7GeJUKjtxnWXyZHj2s4vHed17b9GhO+usYkLEO94BRx8NS5fC615X3Ed31111VyxJGqlJdRcgqT0mTSo6dKecAh/6ENx5J/znf8K3vgUXXQSf+lRx3sEHw8kn796WLq2zaknSUAxxKpWduO5x4IFFB+51r4OdO+Haa+GHPyy2Sy8thmMBliyBE04o1qU74QR40pNg9ux6a5ckGeIkARMnwvHHF9vb3w67dsGvflUEuiuugCuvLJ7nCsU9d0ceWQS6Jz+5eILEE54AM2fW+zNIUr8xxKlUduJ6w4QJ8MQnFttb3lIce/BB+NnPikB35ZVFt+7884v3IuDQQ4tAd+yxxf6YY4ounv8WJKkahjhJI7LffvDc5xYbFIH99tuLYdjm9otfFPfXNc2bV3TtHv/43dsRR8BjH1sERUnS2BniVCo7cf0jonhCxOMeV6xF17R+PVx33e5gd/31xVDsgw/uPmfGDDj88N2h7rDD4JBDikkVc+e2+yeRpO5kiFOpDHGaMwdOOqnYWj3wQBHomtsNN8Dll8PnP7/nefPmFWGuGepav160yH9bktRkiJPUFvPnw9OfXmytNm0qnjLR3G6+udhfcQV88YvFJIumGTOKodilSwffL1lSrI0nSf3AEKdS2YnTaM2cuXsSxUDbt8OqVXuGvFWr4I474KqrYM2aPc+fMAEWLy4CXTPcLVlSHGvuFy2CKVPa87NJUpUMcZI61pQpxazXQw8d/P0tW4pFi5vBrrm/445iJu3FF8OOHY/+vgULikDXGu4GbgsWFAskS1Kn8k+USmUnTu00fXoxKeKwwwZ/f9eu4l68e+4ZfLv7brj66uIZswOfIRtRzMhduBAe85hia3492H7GjOp/XklqZYiT1LMmTNgdwI49dujzHnmkCHKt4W716uJYc3/VVcV+/frBrzFz5p6Bb/78IgTut9/gX8+bZ6dP0vj4J0SlshOnbjRpUjGsumTJ8Odu3VoEu4Ehr3V/222wYkWxrMq2bUNfa+7c3eFub2Fv332Lc/fdt5j9O3FiWT+5pG5miJOkUZg2bffEieFkwubNxZDugw8WW+vXra9Xr4Zf/7r4euPGoa8ZUQS51mA31H6wY9OmlfFbkNQJDHEqlZ04abeIYph15sxipuxIbdsGDz1UBLyHHoK1a+Hhh4fe33RTsX/44SI07s3Uqbs7enPmwD777P66dRvsePPY7Nku5SJ1AkOcJHWYqVNh//2LbbS2by/C3XDBb/363dvq1bBu3e7XrWvzDWX69OGD4OzZMGtWsbV+PfDY9On+Hz9pLAxxKpWdOKleU6bsnlwxFs0h4PXr9wx2zW1vx265Zc/XIwmDUPy9GCzoDfd6qGMzZxbB0OfzqtcZ4iRJv9U6BDyWTmBTZjEJZOPGYtuwYffXIz12332PPj7SYAhFkJsxo/hZhtuP5JyBe2cXq27+E1Sp7MRJguJvwPTpxbZgQTnXHGkw3Ly5eJzbUPuHHioWiW6+br43cK3A4UyePHzYa/4OBm57e2+wzRnJGowhTpLUFaoIhk3NgDhU8NtbKBy437ixuM9w8+biqSJbthRfb9069vqmTBlZ2BtNOGyeO3VqMWu5dZs61eDYDQxxKpWdOEndqDUg7rdfNZ/RDIrNYDfU1hr+RnLu+vXFGoWDvT/a7mKrSZMeHe6aAa8dx6dO9b8lwzHEqVSGOEkaXGtQbIfMYrbycOFw27YiXG7duufXrdtgx7dsKWY7D3X+I4+M/2doDXoDQ9/Uqbu3KVP2/nok54zkeyZO7Kz/vhniJEnqQRG7w8fcue3//EceeXT4G01IHMnx5j2O27cXx1q35rGdO8v7mVp/p1WFxdEwxKlUduIkSVAMx06aVEzyqNPOnXuGuoEhb2/Hxvo9GzYUi3UP9T3bto1vqLvJECdJknrWxInFJI4ZM+quZE/NTuXAoHf44SO/hiFOpbITJ0nS8MroVLqetSRJUhcyxKlUduIkSWoPQ5wkSVIXMsSpVHbiJElqj44JcRGxLCK+GREPR8R9EfGxiJjU8v6pEXFDRGyOiO9HxNI665UkSapTx4Q44F+A1cD+wLHAycCbACJiPnAJcDYwD1gBfLGWKrVXduIkSWqPTgpxjwO+lJlbM/M+4D+BoxrvvRRYmZkXZeZW4BzgmIg4op5SJUmS6tVJ68R9BDgjIn4A7As8l6LzBkWYu7Z5YmZuiohbGsdv2NtFb7oJnvOcSurVIFavLvZ24iRJqlYnhbgfAq8D1gMTgc8CX2m8NwtYM+D8dcDswS4UEWcCZwJMmfJE1q+voFoNato0OO00OPTQuiuRJKm3tSXENbprJw/x9uXAM4BvA58EnkoR2v4V+CDwTmAjMGfA980BNgx2wcw8DzgPYPny5fnTn46vfkmSpE7TlnviMvOUzIwhtpMoJiscCHwsM7dl5oPAp4HnNS6xEjimeb2ImAkc3DguSZLUdzpiYkNmPgDcBrwxIiZFxFzgD9l9H9ylwNERcXpETAPeBVyXmXu9H06SJKlXdUSIa3gpcBrFvW83A48AbwfIzDXA6cD7gIeBE4Az6ilTkiSpfh0zsSEzrwFO2cv7lwEuKSJJkkRndeIkSZI0QoY4SZKkLmSIkyRJ6kKGOEmSpC5kiJMkSepChjhJkqQuZIiTJEnqQoY4SZKkLmSIkyRJ6kKGOEmSpC5kiJMkSepChjhJkqQuZIiTJEnqQoY4SZKkLhSZWXcNlYqIDcBv6q6jz8wHHqi7iD7j77z9/J23n7/z9vN33n6HZ+bskZw4qepKOsBvMnN53UX0k4hY4e+8vfydt5+/8/bzd95+/s7bLyJWjPRch1MlSZK6kCFOkiSpC/VDiDuv7gL6kL/z9vN33n7+ztvP33n7+TtvvxH/znt+YoMkSVIv6odOnCRJUs8xxEmSJHWhng1xETEvIi6NiE0RsSoiXll3Tb0uIt4cESsiYltEfKbuevpBREyNiPMb/8Y3RMTVEfHcuuvqZRHxuYi4NyLWR8SNEfEnddfULyLi0IjYGhGfq7uWfhARP2j8vjc2NtdcbYOIOCMirm/kl1si4ulDndvL68T9M7AdWAgcC3wjIq7NzJW1VtXb7gHeCzwHmF5zLf1iEnAncDJwB/A84EsR8YTMvL3OwnrY+4HXZua2iDgC+EFEXJ2Zv6i7sD7wz8DP6y6iz7w5Mz9VdxH9IiKeBXwQ+H3gZ8D+ezu/JztxETETOB04OzM3ZuaPgf8AXl1vZb0tMy/JzK8AD9ZdS7/IzE2ZeU5m3p6ZuzLz68BtwJPqrq1XZebKzNzWfNnYDq6xpL4QEWcAa4Hv1VyKVKV3A+dm5hWNv+l3Z+bdQ53ckyEOOAzYmZk3thy7FjiqpnqktoiIhRT//u04Vygi/iUiNgM3APcC36y5pJ4WEXOAc4E/q7uWPvT+iHggIi6PiFPqLqaXRcREYDmwICJujoi7IuJjETHkyFavhrhZwLoBx9YBI3oWmdSNImIycCHw2cy8oe56ellmvoni78nTgUuAbXv/Do3Te4DzM/POugvpM/8bOAhYQrF22dciwq5zdRYCk4GXUfxtORY4Dvjrob6hV0PcRmDOgGNzgA011CJVLiImABdQ3Af65prL6QuZubNxq8YBwBvrrqdXRcSxwDOBf6q5lL6TmVdm5obM3JaZnwUup7jvVtXY0th/NDPvzcwHgH9kL7/zXp3YcCMwKSIOzcybGseOwSEm9aCICOB8iv8X97zM3FFzSf1mEt4TV6VTgGXAHcU/dWYBEyPiyMw8vsa6+lECUXcRvSozH46Iuyh+zyPSk524zNxEMcRxbkTMjIinAS+m6FSoIhExKSKmARMp/shOi4he/T8KneTjwOOBF2bmluFO1thFxGMa0/9nRcTEiHgO8Argv+qurYedRxGSj21snwC+QTELXhWJiLkR8Zzm3/GIeBXwDODbddfW4z4NvKXxt2Zf4Czg60Od3Mv/gX0T8K/AaorZkm90eZHK/TXwNy2v/4Bips05tVTTByJiKfB6inuy7mt0KgBen5kX1lZY70qKodNPUPyf4FXAWZn51Vqr6mGZuRnY3HwdERuBrZm5pr6q+sJkiiWjjgB2UkzieUlmulZctd4DzKcYUdwKfAl431An++xUSZKkLtSTw6mSJEm9zhAnSZLUhQxxkiRJXcgQJ0mS1IUMcZIkSV3IECdJktSFDHGSelpErGzXg7sj4siIWFHBdS+JiNPKvq6k7uY6cZK6WmPx16YZFAsf72y8buuixxFxMXBRZn6h5Os+Bfh4Zj6pzOtK6m6GOEk9IyJuB/4kMy+r4bP3p3g+8+LM3FrB9W8CXpGZpXf6JHUnh1Ml9bSIuD0intn4+pyIuCgiPhcRGyLilxFxWET8ZUSsjog7I+LZLd+7T0ScHxH3RsTdEfHeiJg4xEc9C7iqNcA1PvsdEXFdRGxqXGthRHyr8fmXNZ6PSOMZlZ+LiAcjYm1E/DwiFrZc/wfA80v/BUnqWoY4Sf3mhcAFwL7A1RQP9J4ALAHOBT7Zcu5ngUeAQ4DjgGcDfzLEdZ8ADPZcydMpAt5hjc/+FvB/KJ6POAF4a+O8PwT2AQ4E9gPeAGxpuc71wDEj/ikl9TxDnKR+86PM/HZmPgJcBCwAPpCZO4AvAMsiYm6jC/Zcigfcb8rM1cA/AWcMcd25wIZBjn80M+/PzLuBHwFXZubVmbkNuJQiHALsoAhvh2Tmzsz8RWaub7nOhsZnSBIAk+ouQJLa7P6Wr7cAD2TmzpbXALOAxcBk4N6IaJ4/AbhziOs+DMwewecNfD2r8fUFFF24L0TEXOBzwF81wiWNa68d6oeS1H/sxEnS4O6kmOk6PzPnNrY5mXnUEOdfRzFkOiaZuSMz352ZRwJPBV4AvKbllMcD1471+pJ6jyFOkgaRmfcC3wH+ISLmRMSEiDg4Ik4e4lu+CxwfEdPG8nkR8bsR8YTGxIn1FMOrO1tOOZnifjpJAgxxkrQ3rwGmAL+mGC79MrD/YCdm5v3AfwEvHuNnLWpcfz3FJIYfUgypEhFPBjZl5s/GeG1JPch14iSpJBFxJMWM1qdkiX9cG4sIn5+Z3yzrmpK6nyFOkiSpCzmcKkmS1IUMcZIkSV3IECdJktSFDHGSJEldyBAnSZLUhQxxkiRJXcgQJ0mS1IUMcZIkSV3o/wOzrYrgm6GnGwAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 720x576 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "<Figure size 720x576 with 0 Axes>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "<Figure size 720x576 with 0 Axes>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Plotting 2D representation of network cell locations and connections...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAK/CAYAAABHknMvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA56klEQVR4nO3de5yXdZ3w//dnZjgMM8NJkVMoKCiVyMHJ3b09BLreHn5tapR51l+amm25bgesX2VZZrm/9a6Hmd626bpqqHtrrod1rX66pXu7dyIuIpVipoEcRAQ5DDMwM5/fH4CRgYzCfL8Mn+fz8ZhHfL/fa67Pe67A4cV1fa9JOecAAADY3dVUewAAAIBKED8AAEARxA8AAFAE8QMAABRB/AAAAEWoq/YAb2XPPffMo0ePrvYYAADsxp588slXc85DtvX67Nmzj6mrq7ss5zwsnDzYlXVExGPt7e0fP/jgg9dvbYNdOn5Gjx4ds2bNqvYYAADsxlJKL23rtdmzZx/Tp0+f740ePXp9fX39ipqaGj8nZhfV2dmZXnrppcNWrlz5iYj47ta2Ua4AALANdXV1l40ePXp9Q0PDOuGza6upqckjRoxYU1tbe842t6ngPAAA0KPknIfV19e3VnsOuqZ3794bcs4DtvW6+AEAgG2rccan50gpRbxF44gfAACgCOIHAAAogvgBAIAe7pBDDjmgf//+k9atW5e6e61nn32295/92Z/tX19fP3nMmDHvveeee5q6e82dRfwAAEAP9uyzz/Z+8sknG1NKMXPmzIHdvd5HP/rRfSdMmNCybNmy/7rssstePvPMM/dbtGjRLv0jdDYTPwAA0IP94Ac/2GPixIlrP/KRj7x6yy237BER0dramsaPH/+eK664Yq+IiPb29pgyZcr4z372s8MjImbPnt33kEMOOaCpqWnS2LFj33vbbbe9cYe06dOnjz7zzDP3njp16tiGhobJBx100Ph58+b1iYh4+umn+/zqV7/q93d/93eLGhsb8znnnLNy//33X3frrbcOqsbX/nb1iEIDAIBdwa2zFo1a/Hpbv+5cY/iAPi1nNI9Y0NXt77zzzj0uuuiipYceeujaadOmjV+wYEHdqFGj2m+55ZYXjjrqqPHHHXfcqjvuuGNgR0dHfOtb31rc1taWTjzxxLGnnXbaq7/4xS+e+8lPftJ46qmnjj3wwAN/NXHixLaIiHvvvXfwPffc89xhhx3WMn369DEzZswYef/997/wX//1X/Xvete72gYNGtS5ef33vve96+bNm9e3O47FzubMDwAA9FAPPfRQ46JFi3qfffbZKw4//PCWUaNGtd14442DIyLe9773tV5yySWLp0+fvt9111037NZbb/1dXV1dPPLIIw0tLS21V1xxxZK+ffvmD37wg6uPPPLIlTfffPMem/d77LHHrpg2bVpLr1694vTTT39t3rx59RERq1evrmlqaurYcoYBAwZ0rFmzprayX/k748wPAAB00ds5I1MJN9100x6HHXbYquHDh7dHREyfPv21mTNn7nnZZZe9EhFx4YUXLv/Wt7418phjjlkxYcKEtoiIBQsW9Bo2bNj62to/9MqoUaPWL1q0qNfmx0OHDt2w+dcNDQ2dLS0ttRERTU1NnW8OnVWrVtU0Njb+URDtqsQPAAD0QGvWrEkPPPDAoI6OjrTnnntOjIhYv359Wr16de3jjz9e/xd/8Rfrzj333L2nTZu28tFHH+3/0EMPNR5zzDFrRo0atWHJkiW9Ozo6YnMALViwoPe4cePatrfmpEmT1i1cuLDPihUrajZf+jZv3rx+J5988mvd+sXuJC57AwCAHui2224bVFNTE3PmzJk3e/bsebNnz573zDPPPHPwwQevufHGG/e49tprB8+dO7ffHXfc8eKVV1654Lzzzhv9+uuv10ydOnVtfX19x5e//OVhbW1t6f777296+OGHB5555pnbDZiDDjqobfz48S0zZswY0dLSkv7pn/5p4LPPPlt/xhlnrKjE17yjnPkBAIAe6NZbb93j5JNPfnXcuHHrt3z+wgsvfOX888/ft3///h133nnn/AEDBnReeOGFr913330DL7jgglG33377Sz/+8Y+f/8QnPrHPNddcM2yvvfbacN111/1u8uTJrV1Z984773zhzDPPHDN48ODJw4YNW3/LLbf8dsSIEe3d81XuXCnnXO0Ztqm5uTnPmjWr2mMAALAbSyk9mXNu3tprc+bMeXHixImvVnom3rk5c+bsOXHixNFbe81lbwAAQBHEDwAAUATxAwAAFEH8AAAARRA/AABAEcQPAABQBPEDAAAUQfwAAABFqKv2ALuSnHMsWbU+1m3oiKH9+0RD79pqjwQAsNvLnW2xYe2ciEjRq2FipJre1R6J3ZT42eQ3S9fGj55cHGva2qOmJkV7R47J72qKU6YMjz51TpABAOxsOedYu/DbsWbBlVs8m6Jx769Ew8hLIqVUtdl6mkMOOeSA3/zmN/VLly6dU19fn7tzrYsvvnjEgw8+OPCFF16o//SnP7346quvXtSd6+1MFftbfUppcErpxymltSmll1JKp1Vq7e15fllL/M//vSBea9kQ6ztytG7ojPbOHE8tXB3X/OL30Zm79fcPAECRVr/0lVj9+69H7li1xcfrsfqlL8ea33+j2uP1GM8++2zvJ598sjGlFDNnzhzY3euNHTu27Rvf+MbC97///Su7e62drZKnNK6NiPURMTQiTo+I61JK763g+tt015ylsaHjTwOnvTPH4lWt8dwrLVWYCgBg99XZvjLWLvx/Izq38veszpZYs/DK6GxfXfnBeqAf/OAHe0ycOHHtRz7ykVdvueWWPSIiWltb0/jx499zxRVX7BUR0d7eHlOmTBn/2c9+dnhExOzZs/secsghBzQ1NU0aO3bse2+77bYBm/c3ffr00WeeeebeU6dOHdvQ0DD5oIMOGj9v3rw+m1//1Kc+tfzkk09e1djY2Fnpr3VHVeSyt5RSQ0RMj4gDc85rIuKxlNK9EXFmRFxaiRm2pWV9Ryx6vXWbr7e153hywesxfmhDBacCANi9ta34SaSaXpE7tv73sJR6xfrXH46+e5xQ4cne2srnPjaqfe0z/bpzjbqGA1sG7n/jgq5uf+edd+5x0UUXLT300EPXTps2bfyCBQvqRo0a1X7LLbe8cNRRR40/7rjjVt1xxx0DOzo64lvf+tbitra2dOKJJ4497bTTXv3FL37x3E9+8pPGU089deyBBx74q4kTJ7ZFRNx7772D77nnnucOO+ywlunTp4+ZMWPGyPvvv/+F7vuqK6NSZ372j4iOnPNzWzw3JyL+5MxPSun8lNKslNKsZcuWdftgHZ15u9eTrt/KWSEAAN65nNdHxFv9HStH7myr1Dg91kMPPdS4aNGi3mefffaKww8/vGXUqFFtN9544+CIiPe9732tl1xyyeLp06fvd9111w279dZbf1dXVxePPPJIQ0tLS+0VV1yxpG/fvvmDH/zg6iOPPHLlzTffvMfm/R577LErpk2b1tKrV684/fTTX5s3b1599b7KnadSNzxojIjX3/Tc6xHR9OYNc843RMQNERHNzc3dXh2NfWqjX+/aWNXavtXX+9TVxLud9QEA2Kl6N/1F5Lz1v39FROTO9dG76c8rOFHXvJ0zMpVw00037XHYYYetGj58eHtExPTp01+bOXPmnpdddtkrEREXXnjh8m9961sjjznmmBUTJkxoi4hYsGBBr2HDhq2vrf3DnY1HjRq1ftGiRb02Px46dOiGzb9uaGjobGlp2S1ug1ypMz9rIqL/m57rHxFVv5AzpRTHv2fP6F279bM/vWpSTBn15tEBANgRdfX7Re8B0yJSnz99MfWNPoOPi9q+e1d+sB5kzZo16YEHHhj0y1/+smnPPfecuOeee0684YYbhj777LP1jz/+eH1ExLnnnrv3tGnTVj766KP9H3roocaIiFGjRm1YsmRJ746Ojjf2tWDBgt4jRozYsI2ldhuVOvPzXETUpZTG5Zznb3puYkTMq9D6b+nQMQNj+doN8cj81yJFxIbOHH3qaqJvXU186oi9o3etW10DAOxsg8bfESvm/VWsX/NEROf6jU/W9I7e/f8iBh5wS3WH6wFuu+22QTU1NTF79ux5ffr0eePmAx/60If2u/HGG/eYPXt2y9y5c/s988wzv5o5c+bA8847b/Qzzzzzq6lTp66tr6/v+PKXvzzssssuW/rTn/608eGHHx54+eWX/7or67a1taWOjo7o7OyM9vb2aGlpSb179851dbv+T9GpyIQ557Uppbsj4vKU0nkRMSkiToiI/1aJ9bcnpRQnTNgr3j92UPzXwtXR2t4Z7xrYJ94zrDFq3F8eAKBb1NQ1xR4T/z02rJkdbSseiogUfQYdG70aJ1V7tB7h1ltv3ePkk09+ddy4ceu3fP7CCy985fzzz9+3f//+HXfeeef8AQMGdF544YWv3XfffQMvuOCCUbfffvtLP/7xj5//xCc+sc8111wzbK+99tpw3XXX/W7y5MnbvgvYFk477bR97r777jfeH3TNNdcM/+53v/vipz/96eU7+2vc2VKu0M+wSSkNjogbI+LoiFgeEZfmnH/0Vp/T3NycZ82aVYnxAAAoVErpyZxz89ZemzNnzosTJ058tdIz8c7NmTNnz4kTJ47e2msVOzeVc34tIk6s1HoAAABb8mYWAACgCOIHAAAogvgBAACKIH4AAIAiiB8AAKAI4gcAACiC+AEAAIogfgAAgB0ycuTICffcc09TtefYHvEDAAA91MiRIyf07dt3Sr9+/Sb3799/0tSpU8c+//zzvao91860dOnS2qOPPnq/+vr6ySNGjJhw/fXXD36n+xI/AADQg91+++3zW1panlqyZMmcIUOGtF944YV7V3umrtqwYcN2tznvvPP27t27d16yZMmcm2666Xef+9zn9p41a1bfd7Ke+AEAgN1Av3798oc//OEVzz//fH1ExPLly2tPOumk0YMGDZo4YsSICZ///OeHd3R0RETE3/7t34444YQTxmz+3GeffbZ3SungzTFyyCGHHHDxxRePmDJlyviGhobJhx566LjFixfXbd7+2muvHTxixIgJAwcOnDRjxoxhW87xyCOP9Js0adL4pqamSUOGDDnorLPO2ru1tTVtfj2ldPCVV145ZJ999jlw9OjRE84888y9P/7xj79ry30ceeSRYy+//PK9Vq1aVfNv//Zvg6688sqXBwwY0HnMMcesOeqoo16/8cYb93gnx6hu+5sAAAAREbe+/MioxW2v9evONYb3GdxyxshpC97u561evbrmjjvuGDR58uQ1ERHnnXfeqFWrVtW+8MILc1955ZW6Y445Zv/hw4dvuOSSS17tyv7uvvvuwQ888MD8fffdd/2RRx65/9e//vWh3//+919+8skn+37uc5/b56677po/derUtZ/61KdGLl26tPfmz6urq4u///u/X3DEEUesfeGFF3ofd9xx46666qohX/nKV17ZvM1999038Je//OWvGxoaOp944on6j370o2Ovv/76hbW1tbF48eK6xx9/vOnmm29+ce7cuX1qa2vjoIMOatv8uQcddFDLY4899o7eX+TMDwAA9GCnnXba2KampkmDBg2a/Nhjj/X/whe+sLS9vT0eeOCBwVddddXLgwYN6jzggAPWf/KTn1wyc+bMLp8xOfXUU5cfdNBBbY2NjflDH/rQa3Pnzu0XETFz5sxBRx555OvHHXfcmvr6+nz11VcvSinlzZ93+OGHtxx11FFre/XqFQcccMD6c845Z9mjjz76R7Fy6aWXLhk6dGhHY2NjnjZtWktjY2PHvffe2z8i4qabbhp0yCGHrB41alT76tWraxsbGzu2/NwBAwZ0rFmzpvadHCtnfgAAoIveyRmZ7vajH/3o+RNPPHF1e3t73HbbbQOPPvroA5544olfbdiwIY0bN2795u3GjBmzfunSpV2+GcKwYcPeeENOv379OltaWmoiIhYtWtRr5MiRb+y3f//+nQMHDmzf/Pjpp5/uc/HFF4+aO3duQ2tra01HR0e85z3vadly32PGjFm/5eNTTjll+S233DL4pJNOWnXHHXfscdFFF70SEdHU1NSxdu3aPzphs2rVqj8Joq5y5gcAAHYDdXV1cfbZZ6+sqanJP//5zxvq6ury/Pnz37gc7cUXX+w9dOjQDRERDQ0NHevWrXujBRYuXNjlKBo+fPiGl19++Y39rl69umblypVvnFS54IIL9hk3blzr/Pnz565Zs+apL3zhCy+/eR8ppT96fO655y7/6U9/OvDxxx+vf+GFF/qefvrpKyIiJkyY0Nbe3p7mzp3bZ/O2Tz/9dP348ePXdXXeLYkfAADYDXR2dsatt946cPXq1XWTJ09ed/zxx6+49NJLR65YsaLmueee633ttdcOPeWUU5ZHREyZMmXdE0880Th//vzey5cvr/3mN785bHv73+zUU09d8fDDDw946KGHGltbW9NnPvOZETnnN2pmzZo1tf379+8YMGBA51NPPdX3xhtv3Gt7+9xvv/02TJgwYe3ZZ5895thjj13Z2NiYIzaeVTrmmGNWfvGLXxyxatWqmp/85CcNP/vZzwZ+7GMfW/5OjpH4AQCAHuyUU04Z169fv8lNTU2Tv/a1r4285pprftfc3Nz6D//wD7/v169f57777jvhiCOOGD99+vTXLr744lcjIk466aRVH/jAB1ZMmTLlPZMnT3738ccf/3pX12tubm799re//ftzzjlnzLBhwyYOGjSofejQoW9cxnbVVVctuOuuuwY3NjZOPu+88/Y58cQTX+vKfs8444zl8+fPrz/rrLP+KGx++MMfvrRu3bqaoUOHTjz77LP3/bu/+7vfNzc3t3Z13i2lnPP2t6qS5ubmPGvWrGqPAQDAbiyl9GTOuXlrr82ZM+fFiRMndunuaOyYBx98sPFjH/vYmIULF86trX1H9zOIiIg5c+bsOXHixNFbe82ZHwAAoKra2trSd77znaGnn376qzsSPtsjfgAAgKqZPXt234EDB0565ZVXen3xi19c2p1rudU1AABQNVOmTGldt27dU5VYy5kfAACgCOIHAAAogvgBAACKIH4AAIAiiB8AAKAI4gcAANghI0eOnHDPPfc0VXuO7RE/AADQQ40cOXJC3759p/Tr129y//79J02dOnXs888/36vac+1M3/zmN4cceOCB7+7du/eU6dOnj96RfYkfAADowW6//fb5LS0tTy1ZsmTOkCFD2i+88MK9qz1TV23YsGG724wcOXLDjBkzFn/kIx95dUfXEz8AALAb6NevX/7whz+84vnnn6+PiFi+fHntSSedNHrQoEETR4wYMeHzn//88I6OjoiI+Nu//dsRJ5xwwpjNn/vss8/2TikdvDlGDjnkkAMuvvjiEVOmTBnf0NAw+dBDDx23ePHius3bX3vttYNHjBgxYeDAgZNmzJgxbMs5HnnkkX6TJk0a39TUNGnIkCEHnXXWWXu3tramza+nlA6+8sorh+yzzz4Hjh49esKZZ56598c//vF3bbmPI488cuzll1++V0TE2WefvfLMM89cuccee7Tv6DGq2/4mAABARMTKaz82qv33z/TrzjXq9j6wZeAnb1zwdj9v9erVNXfcccegyZMnr4mIOO+880atWrWq9oUXXpj7yiuv1B1zzDH7Dx8+fMMll1zSpTMod9999+AHHnhg/r777rv+yCOP3P/rX//60O9///svP/nkk30/97nP7XPXXXfNnzp16tpPfepTI5cuXdr7jfnr6uLv//7vFxxxxBFrX3jhhd7HHXfcuKuuumrIV77ylVc2b3PfffcN/OUvf/nrhoaGzieeeKL+ox/96Njrr79+YW1tbSxevLju8ccfb7r55ptffLvHYHuc+QEAgB7stNNOG9vU1DRp0KBBkx977LH+X/jCF5a2t7fHAw88MPiqq656edCgQZ0HHHDA+k9+8pNLZs6cuUdX93vqqacuP+igg9oaGxvzhz70odfmzp3bLyJi5syZg4488sjXjzvuuDX19fX56quvXpRSyps/7/DDD2856qij1vbq1SsOOOCA9eecc86yRx999I9uhnDppZcuGTp0aEdjY2OeNm1aS2NjY8e9997bPyLipptuGnTIIYesHjVq1A6f6XkzZ34AAKCL3skZme72ox/96PkTTzxxdXt7e9x2220Djz766AOeeOKJX23YsCGNGzdu/ebtxowZs37p0qVdvhnCsGHD3nhDTr9+/TpbWlpqIiIWLVrUa+TIkW/st3///p0DBw58I1SefvrpPhdffPGouXPnNrS2ttZ0dHTEe97znpYt9z1mzJj1Wz4+5ZRTlt9yyy2DTzrppFV33HHHHhdddNEr0Q2c+QEA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\n", "text/plain": [ "<Figure size 864x864 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " Done; plotting time = 0.56 s\n", "\n", "Total time = 88.16 s\n", "\n", "End time: 2022-10-31 21:35:02.263439\n" ] } ], "source": [ "sim.simulate()\n", "sim.analyze()" ] }, { "cell_type": "code", "execution_count": 19, "id": "ceb34061", "metadata": {}, "outputs": [], "source": [ "# plotting\n", "\n", "#sim.analysis.plotLFP( plots = ['timeSeries', 'locations'] , electrodes=[ 'all'], lineWidth=1000 , fontSize=14, saveFig=True)\n", "\n", "# from matplotlib import pyplot\n", "# %matplotlib inline\n", "# pyplot.plot(t, ap1 )\n", "# #pyplot.xlim((0, 10))\n", "# pyplot.show()\n" ] }, { "cell_type": "code", "execution_count": 20, "id": "ddb4904a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Duration: 0:01:31.323536\n" ] } ], "source": [ "# show the execution time\n", "\n", "end_time = datetime.now()\n", "print('Duration: {}'.format(end_time - start_time))" ] }, { "cell_type": "code", "execution_count": null, "id": "eb4751f0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 21, "id": "d18ce34b", "metadata": {}, "outputs": [], "source": [ "# Longitudinal Current: picoamp\n", "\n", "\n", "\n", "# xraxia = xr*1e6 #ohm/cm\n", "# xraxia = xraxia*2*1e-4 # ohm, length between node to MYSA is 2 micron\n", "\n", "\n", "# v_diff_00 = (Abeta0_vext1_node0-Abeta0_vext1_MYSA0)/1000 #volt\n", "# Longi_Current_node0_MYSA0 = v_diff_00/xraxia #amp\n", "# Longi_Current_node0_MYSA0 = Longi_Current_node0_MYSA0*1e12 #picoamp\n", "\n", "# v_diff_12 = (Abeta0_vext1_node1-Abeta0_vext1_MYSA2)/1000 #volt\n", "# Longi_Current_node1_MYSA2 = v_diff_12/xraxia \n", "# Longi_Current_node1_MYSA2 = Longi_Current_node1_MYSA2*1e12 \n", "\n", "# v_diff_24 = (Abeta0_vext1_node2-Abeta0_vext1_MYSA4)/1000 #volt\n", "# Longi_Current_node2_MYSA4 = v_diff_24/xraxia \n", "# Longi_Current_node2_MYSA4 = Longi_Current_node2_MYSA4*1e12 \n", "\n", "\n", "\n", "\n", "# v_diff_36 = (Abeta0_vext1_node3-Abeta0_vext1_MYSA6)\n", "\n", "\n", "\n", "\n", "# # v_diff_36 = (Abeta0_vext1_node3-Abeta0_vext1_MYSA6)/1000 #volt\n", "# # Longi_Current_node3_MYSA6 = v_diff_36/xraxia \n", "# # Longi_Current_node3_MYSA6 = Longi_Current_node3_MYSA6*1e12 \n", "\n", "# v_diff_48 = (Abeta0_vext1_node4-Abeta0_vext1_MYSA8)/1000 #volt\n", "# Longi_Current_node4_MYSA8 = v_diff_48/xraxia \n", "# Longi_Current_node4_MYSA8 = Longi_Current_node4_MYSA8*1e12 \n", "\n", "# v_diff_510 = (Abeta0_vext1_node5-Abeta0_vext1_MYSA10)/1000 #volt\n", "# Longi_Current_node5_MYSA10 = (v_diff_510/xraxia)*1e12 \n", "\n", "# v_diff_612 = (Abeta0_vext1_node6-Abeta0_vext1_MYSA12)/1000 #volt\n", "# Longi_Current_node6_MYSA12 = (v_diff_612/xraxia)*1e12 \n", "\n", "# v_diff_714 = (Abeta0_vext1_node7-Abeta0_vext1_MYSA14)/1000 #volt\n", "# Longi_Current_node7_MYSA14 = (v_diff_714/xraxia)*1e12 \n", "\n", "# v_diff_816 = (Abeta0_vext1_node8-Abeta0_vext1_MYSA16)/1000 #volt\n", "# Longi_Current_node8_MYSA16 = (v_diff_816/xraxia)*1e12 \n", "\n", "# v_diff_918 = (Abeta0_vext1_node9-Abeta0_vext1_MYSA18)/1000 #volt\n", "# Longi_Current_node9_MYSA18 = (v_diff_918/xraxia)*1e12 \n", "\n", "# v_diff_1020 = (Abeta0_vext1_node10-Abeta0_vext1_MYSA20)/1000 #volt\n", "# Longi_Current_node10_MYSA20 = (v_diff_1020/xraxia)*1e12 \n", "\n", "# v_diff_1122 = (Abeta0_vext1_node11-Abeta0_vext1_MYSA22)/1000 #volt\n", "# Longi_Current_node11_MYSA22 = (v_diff_1122/xraxia)*1e12 \n" ] }, { "cell_type": "code", "execution_count": 22, "id": "d833f599", "metadata": {}, "outputs": [], "source": [ "# Transverse current: Picoamp/micron^2\n", "\n", "\n", "# v_diff00 = (Abeta0_vext1_node0 - Abeta1_vext1_node0)/1000 #volt\n", "# Trans_Current_node0_node0 = (v_diff00 * 6.9e+04 )*1e12/1e8 #volt*S/cm2 = Amp/cm2 = PicoAMP/cm2 = PicoAMP/micron^2\n", "\n", "# v_diff11 = (Abeta0_vext1_node1 - Abeta1_vext1_node1)/1000 #volt\n", "# Trans_Current_node1_node1 = v_diff11 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff22 = (Abeta0_vext1_node2 - Abeta1_vext1_node2)/1000 #volt\n", "# Trans_Current_node2_node2 = v_diff22 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff33 = (Abeta0_vext1_node3 - Abeta1_vext1_node3)/1000 #volt\n", "# Trans_Current_node3_node3 = v_diff33 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff44 = (Abeta0_vext1_node4 - Abeta1_vext1_node4)/1000 #volt\n", "# Trans_Current_node4_node4 = v_diff44 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff55 = (Abeta0_vext1_node5 - Abeta1_vext1_node5)/1000 #volt\n", "# Trans_Current_node5_node5 = v_diff55 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff66 = (Abeta0_vext1_node6 - Abeta1_vext1_node6)/1000 #volt\n", "# Trans_Current_node6_node6 = v_diff66 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff77 = (Abeta0_vext1_node7 - Abeta1_vext1_node7)/1000 #volt\n", "# Trans_Current_node7_node7 = v_diff77 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff88 = (Abeta0_vext1_node8 - Abeta1_vext1_node8)/1000 #volt\n", "# Trans_Current_node8_node8 = v_diff88 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff99 = (Abeta0_vext1_node9 - Abeta1_vext1_node9)/1000 #volt\n", "# Trans_Current_node9_node9 = v_diff99 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff1010 = (Abeta0_vext1_node10 - Abeta1_vext1_node10)/1000 #volt\n", "# Trans_Current_node10_node10 = v_diff1010 * 6.9e+04 *1e12/1e8 \n", "\n", "# v_diff1111 = (Abeta0_vext1_node11 - Abeta1_vext1_node11)/1000 #volt\n", "# Trans_Current_node11_node11 = v_diff1111 * 6.9e+04 *1e12/1e8 \n", "\n" ] }, { "cell_type": "code", "execution_count": 23, "id": "cbe681f7", "metadata": {}, "outputs": [], "source": [ "# import csv\n", "\n", "# with open('v_diff66_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , v_diff66 ))\n", " \n", " \n", " \n", "import csv\n", "\n", "# with open('LongVoltageDifference_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , v_diff_36 ))\n", " \n", " " ] }, { "cell_type": "markdown", "id": "8f3b15f1", "metadata": {}, "source": [ "#### saving the data" ] }, { "cell_type": "code", "execution_count": 24, "id": "890baeb5", "metadata": {}, "outputs": [], "source": [ "## saving the data\n", "\n", "\n", "import csv\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "# #################################### Connected to ground \n", "\n", "# with open('ConnectGround_v_Abeta0_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 )) \n", "\n", "\n", "\n", "# with open('ConnectGround_LongiCurrent_Abeta0_NodetoMYSA_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Longi_Current_node0_MYSA0 , Longi_Current_node1_MYSA2 , Longi_Current_node2_MYSA4 , Longi_Current_node3_MYSA6 , Longi_Current_node4_MYSA8 , Longi_Current_node5_MYSA10 , Longi_Current_node6_MYSA12 , Longi_Current_node7_MYSA14 , Longi_Current_node8_MYSA16 , Longi_Current_node9_MYSA18 , Longi_Current_node10_MYSA20 , Longi_Current_node11_MYSA22 ))\n", " \n", " \n", "\n", "# with open('ConnectGround_TransCurrent_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Trans_Current_node0_node0 , Trans_Current_node1_node1 , Trans_Current_node2_node2 , Trans_Current_node3_node3 , Trans_Current_node4_node4 , Trans_Current_node5_node5 , Trans_Current_node6_node6 , Trans_Current_node7_node7 , Trans_Current_node8_node8 , Trans_Current_node9_node9 , Trans_Current_node10_node10 , Trans_Current_node11_node11 ))\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", "# ##################################### Not connected to ground, Stimulate only one fiber \n", "\n", " \n", "with open('radius6_v_Abeta0_stimulateBOTH_edgedist3_.csv', 'w', newline='') as f:\n", " csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 , Abeta0_v_node12 , Abeta0_v_node13 , Abeta0_v_node14 , Abeta0_v_node15 , Abeta0_v_node16 , Abeta0_v_node17 , Abeta0_v_node18 , Abeta0_v_node19 , Abeta0_v_node20 , Abeta0_v_node21 , Abeta0_v_node22 , Abeta0_v_node23 , Abeta0_v_node24 , Abeta0_v_node25 , Abeta0_v_node26 , Abeta0_v_node27 , Abeta0_v_node28 , Abeta0_v_node29 , Abeta0_v_node30 , Abeta0_v_node31 , Abeta0_v_node32 , Abeta0_v_node33 , Abeta0_v_node34 , Abeta0_v_node35 )) \n", "\n", "\n", " \n", " \n", "with open('radius6_imembrane_Abeta0_stimulateBOTH_edgedist3_.csv', 'w', newline='') as f:\n", " csv.writer(f).writerows(zip( t , Abeta0_imembrane_node0 , Abeta0_imembrane_node1 , Abeta0_imembrane_node2 , Abeta0_imembrane_node3 , Abeta0_imembrane_node4 , Abeta0_imembrane_node5 , Abeta0_imembrane_node6 , Abeta0_imembrane_node7 , Abeta0_imembrane_node8 , Abeta0_imembrane_node9 , Abeta0_imembrane_node10 , Abeta0_imembrane_node11 , Abeta0_imembrane_node12 , Abeta0_imembrane_node13 , Abeta0_imembrane_node14 , Abeta0_imembrane_node15 , Abeta0_imembrane_node16 , Abeta0_imembrane_node17 , Abeta0_imembrane_node18 , Abeta0_imembrane_node19 , Abeta0_imembrane_node20 , Abeta0_imembrane_node21 , Abeta0_imembrane_node22 , Abeta0_imembrane_node23 , Abeta0_imembrane_node24 , Abeta0_imembrane_node25 , Abeta0_imembrane_node26 , Abeta0_imembrane_node27 , Abeta0_imembrane_node28 , Abeta0_imembrane_node29 , Abeta0_imembrane_node30 , Abeta0_imembrane_node31 , Abeta0_imembrane_node32 , Abeta0_imembrane_node33 , Abeta0_imembrane_node34 , Abeta0_imembrane_node35 )) \n", " \n", " \n", " \n", " \n", "# with open('i_Abeta0_stimulateBOTH_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 )) \n", "\n", "\n", "# with open('LongiCurrent_Abeta0_NodetoMYSA_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Longi_Current_node0_MYSA0 , Longi_Current_node1_MYSA2 , Longi_Current_node2_MYSA4 , Longi_Current_node3_MYSA6 , Longi_Current_node4_MYSA8 , Longi_Current_node5_MYSA10 , Longi_Current_node6_MYSA12 , Longi_Current_node7_MYSA14 , Longi_Current_node8_MYSA16 , Longi_Current_node9_MYSA18 , Longi_Current_node10_MYSA20 , Longi_Current_node11_MYSA22 ))\n", " \n", " \n", "\n", "# with open('TransCurrent_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Trans_Current_node0_node0 , Trans_Current_node1_node1 , Trans_Current_node2_node2 , Trans_Current_node3_node3 , Trans_Current_node4_node4 , Trans_Current_node5_node5 , Trans_Current_node6_node6 , Trans_Current_node7_node7 , Trans_Current_node8_node8 , Trans_Current_node9_node9 , Trans_Current_node10_node10 , Trans_Current_node11_node11 ))\n", " \n", " \n", " \n", "# with open('v_Abeta1_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta1_v_node0 , Abeta1_v_node1 , Abeta1_v_node2 , Abeta1_v_node3 , Abeta1_v_node4 , Abeta1_v_node5 , Abeta1_v_node6 , Abeta1_v_node7 , Abeta1_v_node8 , Abeta1_v_node9 , Abeta1_v_node10 , Abeta1_v_node11 )) \n", " \n", " \n", " \n", " \n", " \n", "# ##################################### Not connected to ground, Stimulate BOTH fibers \n", "\n", "\n", "# with open('v_Abeta0_stimulateBOTH_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 )) \n", "\n", "\n", "\n", "# with open('LongiCurrent_Abeta0_NodetoMYSA_stimulateBOTH_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Longi_Current_node0_MYSA0 , Longi_Current_node1_MYSA2 , Longi_Current_node2_MYSA4 , Longi_Current_node3_MYSA6 , Longi_Current_node4_MYSA8 , Longi_Current_node5_MYSA10 , Longi_Current_node6_MYSA12 , Longi_Current_node7_MYSA14 , Longi_Current_node8_MYSA16 , Longi_Current_node9_MYSA18 , Longi_Current_node10_MYSA20 , Longi_Current_node11_MYSA22 ))\n", " \n", " \n", "\n", "# with open('TransCurrent_stimulateBOTH_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Trans_Current_node0_node0 , Trans_Current_node1_node1 , Trans_Current_node2_node2 , Trans_Current_node3_node3 , Trans_Current_node4_node4 , Trans_Current_node5_node5 , Trans_Current_node6_node6 , Trans_Current_node7_node7 , Trans_Current_node8_node8 , Trans_Current_node9_node9 , Trans_Current_node10_node10 , Trans_Current_node11_node11 ))\n", " \n", " \n", " \n", "\n", "# with open('Connectground_vext1_Abeta0_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_vext1_node0 , Abeta0_vext1_node1 , Abeta0_vext1_node2 , Abeta0_vext1_node3 , Abeta0_vext1_node4 , Abeta0_vext1_node5 , Abeta0_vext1_node6 , Abeta0_vext1_node7 , Abeta0_vext1_node8 , Abeta0_vext1_node9 , Abeta0_vext1_node10 , Abeta0_vext1_node11 )) \n", " \n", " \n", "# with open('vext1_Abeta1_stimulateonlyAbeta0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta1_vext1_node0 , Abeta1_vext1_node1 , Abeta1_vext1_node2 , Abeta1_vext1_node3 , Abeta1_vext1_node4 , Abeta1_vext1_node5 , Abeta1_vext1_node6 , Abeta1_vext1_node7 , Abeta1_vext1_node8 , Abeta1_vext1_node9 , Abeta1_vext1_node10 , Abeta1_vext1_node11 )) \n", "\n" ] }, { "cell_type": "code", "execution_count": 25, "id": "7a4d2e6a", "metadata": {}, "outputs": [], "source": [ "\n", "# with open('STIN220_vext1_Abeta0_stimulateBOTH_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_vext1_STIN220))\n", " \n", " \n", "# with open('STIN220_v_Abeta0_stimulateBOTH_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_STIN220)) \n", " \n", " \n", " " ] }, { "cell_type": "code", "execution_count": null, "id": "a594bc51", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 26, "id": "8e386b67", "metadata": {}, "outputs": [], "source": [ " \n", "# with open('ConnectedGround_icap_Abeta0_stimulateonlyAbata0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_icap_node0 , Abeta0_icap_node1 , Abeta0_icap_node2 , Abeta0_icap_node3 , Abeta0_icap_node4 , Abeta0_icap_node5 , Abeta0_icap_node6 , Abeta0_icap_node7 , Abeta0_icap_node8 , Abeta0_icap_node9 , Abeta0_icap_node10 , Abeta0_icap_node11 )) \n", "\n", " \n", " \n", "# with open('ConnectedGround_ik_Abeta0_stimulateonlyAbata0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_ik_node0 , Abeta0_ik_node1 , Abeta0_ik_node2 , Abeta0_ik_node3 , Abeta0_ik_node4 , Abeta0_ik_node5 , Abeta0_ik_node6 , Abeta0_ik_node7 , Abeta0_ik_node8 , Abeta0_ik_node9 , Abeta0_ik_node10 , Abeta0_ik_node11 )) \n", "\n", "\n", " \n", "# with open('ConnectedGround_il_Abeta0_stimulateonlyAbata0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_il_node0 , Abeta0_il_node1 , Abeta0_il_node2 , Abeta0_il_node3 , Abeta0_il_node4 , Abeta0_il_node5 , Abeta0_il_node6 , Abeta0_il_node7 , Abeta0_il_node8 , Abeta0_il_node9 , Abeta0_il_node10 , Abeta0_il_node11 )) \n", "\n", "\n", " \n", "# with open('ConnectedGround_ina_Abeta0_stimulateonlyAbata0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_ina_node0 , Abeta0_ina_node1 , Abeta0_ina_node2 , Abeta0_ina_node3 , Abeta0_ina_node4 , Abeta0_ina_node5 , Abeta0_ina_node6 , Abeta0_ina_node7 , Abeta0_ina_node8 , Abeta0_ina_node9 , Abeta0_ina_node10 , Abeta0_ina_node11 )) \n", "\n", "\n", " \n", "# with open('ConnectedGround_inap_Abeta0_stimulateonlyAbata0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_inap_node0 , Abeta0_inap_node1 , Abeta0_inap_node2 , Abeta0_inap_node3 , Abeta0_inap_node4 , Abeta0_inap_node5 , Abeta0_inap_node6 , Abeta0_inap_node7 , Abeta0_inap_node8 , Abeta0_inap_node9 , Abeta0_inap_node10 , Abeta0_inap_node11 )) \n", "\n", " \n", " \n", "# with open('ConnectedGround_imembrane_Abeta0_stimulateonlyAbata0_edgedist0.1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_imembrane_node0 , Abeta0_imembrane_node1 , Abeta0_imembrane_node2 , Abeta0_imembrane_node3 , Abeta0_imembrane_node4 , Abeta0_imembrane_node5 , Abeta0_imembrane_node6 , Abeta0_imembrane_node7 , Abeta0_imembrane_node8 , Abeta0_imembrane_node9 , Abeta0_imembrane_node10 , Abeta0_imembrane_node11 )) \n", " \n", " \n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }