{ "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:31:01.123866\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.34 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": [ "0.1\n", "63978.96633503253\n", "0.1\n", "63978.96633503253\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": [ " 5.24e+04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5.24e+04 0 0 0 0 0 0 0 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 5.24e+04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5.24e+04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " -5.24e+04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.24e+04 0 0 0 0 0 0 0 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 0 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -1.05e+05 0 0 0 0 0 0 0 0 0 0 0 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.05e+05 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 -5.24e+04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.24e+04\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" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 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", " 0 0 0 0 0 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", " 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" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 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" ] }, { "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 -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" ] }, { "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 = 88.45 s; real-time ratio: 0.00.\n", "\n", "Gathering data...\n", " Done; gather time = 0.53 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: 88.45 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": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAH3CAYAAADUjAlgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA43klEQVR4nO3debxddX3v/9cnM5kIkJBAAIOAzDMoLSj0Qp396RUH1Do9qogUrfy8VmsdEItae29rrwNKpUoVJxSsONSKggoCJYggYUaGMIQESEKmk/Fz/1j7mJPDOSdnWGuvPbyej8d6rLPXXnutz9nG5M3nu9Z3RWYiSZKk9jKu7gIkSZI0coY4SZKkNmSIkyRJakOGOEmSpDZkiJMkSWpDhjhJkqQ2ZIiTVLuIuCoivtzn9Vcj4oo6a5KkVmeIkzRqEbFLRHw6Iu6MiJ6IWBoRv4qIN0XEhIrPfXpE/DwinoyIjIgTRnmcrzY+nxGxKSIeiIgvRsQuZdc8RA2fi4jNEfHuZp1zgBp2i4iLI2JR43swREstzhAnaVQiYg/gt8CpwLnAUcDxwIXA/wIOqbiEqcAvgPeVcKxfA7sBC4B3U/xO/17CcbcrIqYCfwF8Aji9GeccxGTgSeCfAAOc1AYMcZJG63yKf/iPysyLM/O2zLw7My8Cjgbu7t0xIt4VEXc0unV3R8TfjbVTl5mfyczzgJ+P6bcobMjMJZn5UGb+B/AZ4IURsUMU/ldE/CEiNkTEvRHxnr4fjoj7I+K8iPhyRDwVEY9HxD9ExHD+jn0tcC/w98DuEfGn/Y59fuP4s/ps+0rje5zReP3iiLgxItY3uqFfiIhpffb/akRc0ehePtCo8T8iYk7vPpl5f2a+KzMvBJaM9AuU1HyGOEkjFhE7Ay8GPpeZK/u/n5kbM3NNY99zKDpzfwscCPw18A7go00reOTWUfz9OAE4E/g48CngYOAfgU9FxF/2+8y7gEeAY4GzgbOA9wzjXO8ALsrM9cC3eHo37mzgKeBfASLi9cDrgdMyc1VEHAb8APgVcATwZuClwBf7HedY4M+AlwAvbOz7v4dRn6QWVek1K5I61r4UIee2oXZqDBX+DfDKzPzPxub7IuJDwP8FPlxplaMQEQcBfwVc3whJHwA+m5kXNHa5OyL2B/6OYui4182Z+ZHGz3dGxIHA/08xPDnYuQ6nGIZ+WWPTV4GrIuI9mbkCIDN7IuK1wMKI+GSjtg9k5o2Nz7wP+G1mnt14fXtEvAu4LCI+lJkPNLZvAN7SCItExPkUgVpSm7ITJ2k0orHO7ex3MLAD8L2IWN27AF8Cduw7nFezkxq1rQNuBf4AvD4iZgJ7UHS5+volsKARUntd22+fa4D5jWMM5h3AjzNzGUBm/jdwH8U1cn+UmbdTdDM/AFxNMdzb6+BB6gvgoD7bbu8NcA0PA3OHqE1Si7MTJ2k07ga2UASIy4bYr/c/FF8N3DXA+0+WXNdoXU8xDLkJeLRPt6o3gPUPq8H2DblP45q1NwAzImJTn7fGUQypfq7fR54HbAb2AqZQDPn2GixM992+YYD3hvN7SGpRduIkjVhmPgn8BDgrInbs/35ETGyElEVAD/DMzLxngGVzk0sfzLpGPff37VZl5lPAQ8CJ/fZ/HnBfZq7ts+24fvv8CfBI4xgDOY0ilB1OcX1a7/Jc4OCI+OPxGtffvaJRx1Tgn/scZ9EA9Z1IEdKGHO6W1N7sxEkarTMphgxvjIiPAL+j6PYcR3Gd1psz83cR8QngExEB8DOKv3cOBY7MzPeP9uQRMQ+YB+ze2LRvY6h2SWaWeXflJ4H/ExF3A1cB/wN4J8W1aX0d0biJ4xvAMRTXm50zxHHfAVyWmb/v/0ZEXEPRjbuucf3dvwBnZ+Y1EfE64OqI+Flmfo/iRovfRsQ/ARdQTJPyWeDizHxwJL9oRBzR+HFnYHrv68z83UiOI6k5DHGSRiUzH4yIoyiu0zqHYpjvKeB2imBxa2O/j0fEIxR3b/5vimHAuygu4h+LM9j2DtevNNYfa9TTe2fsRzNzLMOG5wPTgA8CXwAWU9xYcGG//T4LPANYSDEsez7bdsz+qBGOjmXwGzu+DXw6Is6muGP1p5n5RYDMvL4Rmr8cEQsz85aI+P8o7qD9K4r/Db5LcQ3dSN00yGuHXaUWFJnbuy5ZktpTRPw7MC8zn1/xee4HvpyZf1/leSSpLztxkjpSY6LdkynmRpOkjmOIk9SRMnMLML/uOiSpKg6nSpIktSGnGJEkSWpDhjhJkqQ21PHXxM2ePTsXLFhQdxmSJEnbdeONNz6emcN6JGHHh7gFCxawcOHCusuQJEnaroh4YLj7OpwqSZLUhgxxkiRJbcgQJ0mS1IYMcZIkSW3IECdJktSGDHGSJEltyBAnSZLUhgxxkiRJbcgQJ0mS1IYMcZIkSW3IECdJktSGDHGSJEltyBAnSZLUhgxxkiRJbcgQJ0mS1IYMcZIkSW3IEKem2bKl7gokSeochjg1xX/9F0ydCuedV3clkiR1BkOcmuJDH4L16+GjH4VHHqm7GkmS2p8hTpVbvBhuuAHe/nbYvBkuvrjuiiRJan+GOFXu178u1meeCUcdBZdfXm89kiR1AkOcKnfddTBtGhxyCJxySvF6zZq6q5Ikqb0Z4lS5u++GAw6ACRPg5JNh40a45pq6q5Ikqb0Z4lS5hx6CPfYofj7+eJg4Ea68st6aJElqd4Y4Ve7hh7eGuGnT4LDDYOHCemuSJKndGeJUqTVrYPlymD9/67Yjj4SbboLM+uqSJKndGeJUqcceK9bz5m3ddtRR8MQTxdQjkiRpdAxxqtTKlcV61qyt2448sljfdFPTy5EkqWMY4lSp3hC3445btx12GEQY4iRJGgtDnCo1UIibOhX23hvuuKOemiRJ6gSGOFXqqaeKdd8QB3DggYY4SZLGwhCnSg3UiYNi8t877yyepSpJkkbOEKdKDRXienrgwQebX5MkSZ3AEKdKrVwJU6bApEnbbj/ggGLtkKokSaNjiFOlnnoKZs58+nZDnCRJY2OIU6XWrIHp05++ffbsYrn99ubXJElSJzDEqVKrVxfPSx3IAQfYiZMkabQMcarUYJ04gP33L+5QlSRJI2eIU6VWrx48xO2zDyxdWuwjSZJGxhCnSq1ZM/hw6jOfWazvu6959UiS1CkMcarUUJ04Q5wkSaNniFOlhrqxoTfE/eEPzatHkqROYYhTpYa6sWHnnYs55AxxkiSNnCFOldmyZehr4iKKbpwhTpKkkTPEqTLr1hXrwTpxAHvvbYiTJGk0DHGqTO/UIUOFuGc+s7ixYcuW5tQkSVKnMMSpMmvWFOvBhlOhCHE9PbBkSXNqkiSpUxjiVJnhduLAIVVJkkbKEKfKDKcTt2BBsX7ggcrLkSSpoxjiVJnhdOL23LNYL15cfT2SJHUSQ5wq0xvihurETZsGO+1kiJMkaaQMcapM73DqUJ04gL32ggcfrL4eSZI6iSFOlRnOcCoUQ6p24iRJGhlDnCoznBsbwBAnSdJoGOJUmd5O3NSpQ++3557w5JNbQ58kSdo+Q5wq09MDkybB+PFD77fXXsXabpwkScNniFNl1q+HyZO3v5/TjEiSNHKGOFVmw4aiE7c9hjhJkkbOEKfKDLcTN38+RBjiJEkaCUOcKjPcTtykSTBvniFOkqSRMMSpMsPtxEExpOqEv5IkDZ8hTpUZbicOnCtOkqSRaqkQFxGTI+LCiHggIlZFxE0R8aI+758cEXdExNqIuDIinlFnvRraSDpxe+1VhLjMamuSJKlTtFSIAyYAi4ETgR2BDwPfiYgFETEbuLSxbWdgIfDtugrV9q1fP7JO3Jo1sGJFpSVJktQxJtRdQF+ZuQY4p8+mH0bEfcDRwC7Aosy8BCAizgEej4gDMvOOZteq7duwYWTXxEHRjdtpp+pqkiSpU7RaJ24bETEXeBawCDgYuLn3vUbgu7exXS1oJJ243Xcv1o8+Wl09kiR1kpYNcRExEbgYuKjRaZsOrOy320pgxgCfPT0iFkbEwmXLllVfrAY0kk5cb4h75JHq6pEkqZO0ZIiLiHHA14ANwFmNzauBmf12nQms6v/5zLwgM4/JzGPmzJlTaa0a3Eg6cbvtVqwNcZIkDU/LhbiICOBCYC5wamZubLy1CDi8z37TgH0a29WCRtKJmzwZdtnFECdJ0nC1XIgDzgcOBF6Wmev6bL8MOCQiTo2IKcBHgFu8qaF1jaQTB8WQqiFOkqThaakQ15j37R3AEcCSiFjdWN6QmcuAU4HzgOXAc4DTaitW2zWSeeLAECdJ0ki02hQjDwAxxPtXAAc0ryKNxUiGU6EIcbfeWl09kiR1kpbqxKmzjGY4dckS2Ly5upokSeoUhjhVZuNGmDhx+PvvvnsR4JwVRpKk7TPEqTJbtsD48cPf37niJEkaPkOcKpFZLONG8CfMueIkSRo+Q5wqsWVLsR5JiLMTJ0nS8BniVIneEDeS4dR584q1IU6SpO0zxKkSo+nETZwIu+5qiJMkaTgMcapE7zQhIwlx4IS/kiQNlyFOlRjNcCoY4iRJGi5DnCoxmuFUMMRJkjRchjhVYizDqUuXFhMFS5KkwRniVInRDqfOm1fML+dTGyRJGpohTpUY7XBq7zQjjz1Wbj2SJHUaQ5wqMdrh1Llzi/WSJeXWI0lSpzHEqRJjGU4FQ5wkSdtjiFMlRjuc2tuJczhVkqShGeJUidEOp06bBjNm2ImTJGl7DHGqxGiHU6HoxhniJEkamiFOlRjtcCoU18U5nCpJ0tAMcarEaIdToQhxduIkSRqaIU6VcDhVkqRqGeJUibEOp65YAevXl1qSJEkdxRCnSox1OBW8Lk6SpKEY4lSJsQynOuGvJEnbZ4hTJcYynOqjtyRJ2j5DnCrhcKokSdUyxKkSYxlO3XXXYm0nTpKkwRniVImxDKdOngw77WSIkyRpKIY4VWIsw6ngUxskSdoeQ5wqMZbhVPCpDZIkbY8hTpUYy3AqGOIkSdoeQ5wqMdbh1LlzHU6VJGkohjhVoozh1NWri0WSJD2dIU6VKGM4FezGSZI0GEOcKlHGcCoY4iRJGowhTpUoYzgVvLlBkqTBGOJUiTLmiQNDnCRJgzHEqRJjvSZuzpzisw6nSpI0MEOcKjHW4dTx42H2bDtxkiQNxhCnSox1OBWc8FeSpKEY4lSJsQ6ngiFOkqShGOJUibEOp4JPbZAkaSiGOFWijOHU3hCXWU5NkiR1EkOcKlHGcOrcudDTA6tWlVOTJEmdxBCnSpQ1nAoOqUqSNBBDnCpR1nAqGOIkSRqIIU6VKGs4FQxxkiQNxBCnSjicKklStQxxqkQZw6mzZ0OEc8VJkjQQQ5wqUcZw6oQJxTNU7cRJkvR0hjhVoozhVHDCX0mSBmOIUyXKGE4FQ5wkSYMxxKkSa9cW6x12GNtxDHGSJA3MEKdKLF9eBLjJk8d2HEOcJEkDM8SpEitWwE47jf04c+cWXb3Vq8d+LEmSOokhTpVYvhxmzRr7cZwrTpKkgRniVIkyO3HgXHGSJPVniFMlli8vN8TZiZMkaVuGOFVixQqHUyVJqpIhTpVYtQpmzBj7cebMKR69ZYiTJGlbbRfiImLniLgsItZExAMR8fq6a9LT9fSMfY44gIkTYZddDHGSJPU3oe4CRuHzwAZgLnAE8KOIuDkzF9ValbbR0wNTppRzLOeKkyTp6dqqExcR04BTgQ9n5urMvBr4AfDGeitTX5s2FYshTpKk6rRViAOeBWzOzLv6bLsZOLimejSA9euLtSFOkqTqtFuImw6s7LdtJbDNJfQRcXpELIyIhcuWLWtacSr09BRrQ5wkSdVptxC3GpjZb9tMYFXfDZl5QWYek5nHzJkzp2nFqVBFiFu9GtasKed4kiR1gnYLcXcBEyJivz7bDge8qaGFVBHiwG6cJEl9tVWIy8w1wKXAuRExLSKOB14OfK3eytTXunXF2hAnSVJ12irENZwJ7AAsBb4JvNPpRVpLbyeujHniwBAnSdJA2m6euMx8EnhF3XVocGUPp86bV6wNcZIkbdWOnTi1uLJD3K67FmtDnCRJWxniVLqyQ9zEibDzzoY4SZL6MsSpdGWHOHCuOEmS+jPEqXS9IW7y5PKOaYiTJGlbhjiVbuPGYj1pUnnHnDsXliwp73iSJLU7Q5xKt3lzsR5X4p8uO3GSJG3LEKfSbdlSrMePL++Yc+fCqlVbJxKWJKnbGeJUuqo6cWA3TpKkXoY4la43xJXdiQNDnCRJvQxxKl3vcGqZnTif2iBJ0rYMcSqdnThJkqpniFPpqrixwUdvSZK0LUOcSlfFjQ2TJ8OsWc4VJ0lSL0OcSldFJw6cK06SpL4McSpdFZ04MMRJktSXIU6lq+LGBjDESZLUlyFOpatiihEwxEmS1JchTqXbvBkiiqVMc+fCypXQ01PucSVJakeGOJVuy5byh1Jh61xxS5eWf2xJktqNIU6l27y5/KFU8KkNkiT1ZYhT6aruxBniJEkyxKkCVXXiekOcE/5KkmSIUwU2b7YTJ0lS1QxxKl1Vw6lTpsDMmYY4SZLAEKcKVDWcCs4VJ0lSL0OcSldVJw4McZIk9TLEqXR24iRJqp4hTqWr6sYGMMRJktTLEKfSVT2cunw5bNhQzfElSWoXhjiVrsrh1N6nNvjoLUlStzPEqXRVd+LACX8lSTLEqXRV39gAXhcnSZIhTqVrRifOECdJ6naGOJXOTpwkSdUzxKl0VU4xMnUqTJ9uiJMkyRCn0lU5nArOFSdJEhjiVIEqh1PBECdJEhjiVAE7cZIkVc8Qp9I1oxPnPHGSpG5niFPpqryxAYqnNjz5JGzcWN05JElqdYY4lW7Lluo7ceCjtyRJ3c0Qp9JV3YlzrjhJkgxxqkAzbmwAQ5wkqbsZ4lS6ZtzYAIY4SVJ3M8SpdHbiJEmqniFOpau6Ezd9evH4LUOcJKmbGeJUuqpvbAAn/JUkyRCn0lU9nApO+CtJ0rBCXEQ8PyK+ERE3R8QfGutvRMSfV12g2k/Vw6kAu+1miJMkdbft/lMbEWcDFwH3AOcCpwMfA+4GLoqIv660QrWdZnTidt8dHnmk2nNIktTKJgxjn/cBf5aZd/TbfmlEfBO4EviX0itT29qyBSKqPcfuu8OKFbB2bXGTgyRJ3WY4g17TgMF6HksA/wnVNjKbE+IAHn202vNIktSqhhPivgdcHhEnR8SciJgUEbMj4mTgMuC71ZaodtSsEOeQqiSpWw0nxJ0B/IbiurjHgHWN9UXAdcA7K6tObSmz+nMY4iRJ3W6718Rl5gbgb4G/jYhZwHRgdWau6L9vRByfmdeUXaTaj504SZKqNZwbG/6oEdxWDLHLT4CZY6hHHaAZnbiddoLJkw1xkqTuVfZsXhX3X9Ququ7ERcD8+YY4SVL3KjvENaEHo1bXjE4cOFecJKm7+dgtVaLqThwY4iRJ3a0lQlxETI6ICyPigYhYFRE3RcSL+u1zckTcERFrI+LKiHhGXfVqaHbiJEmqXqtcEzcBWAycCOwIfBj4TkQsAIiI2cClje07AwuBb4+1WFWnWZ241ath1arqzyVJUqsZUYiLiF0i4o0R8TeN17tHxB6972fmjNEUkZlrMvOczLw/M7dk5g+B+4CjG7u8EliUmZdkZg9wDnB4RBwwmvOpWs3sxIHdOElSdxp2iIuIE4E7gTdQdMQA9gPOL7uoiJgLPAtY1Nh0MHBz7/uZuQa4t7FdLahZnTgwxEmSutNIOnGfAV6bmS8ENjW2XQ88u8yCImIicDFwUWbe0dg8HVjZb9eVwICdv4g4PSIWRsTCZcuWlVmehsFOnCRJ1RtJiFuQmT9v/Nz7z/QGhjFhcERcFRE5yHJ1n/3GAV9rHPesPodYzdMnEZ4JDHg1VGZekJnHZOYxc+bMGd5vp1LZiZMkqVojCXG3RcQL+m07Bfj99j6YmSdlZgyynAAQEQFcCMwFTs3MjX0OsQg4vPdFREwD9mHrcKtaSGZzQtyMGTB9uiFOktSdRhLi3gtcHBEXATtExJeArwLvK6mW84EDgZdl5rp+710GHBIRp0bEFOAjwC19hlvVQpo1nApOMyJJ6l7DDnGZeR1FN2wR8G8Ud48+OzNvGGsRjTnf3gEcASyJiNWN5Q2Ncy8DTgXOA5YDzwFOG+t5VZ1mdOLAECdJ6l7bvZ6tr8x8GPh02UVk5gNsZ465zLwCcEqRNtDsTtx11zXvfJIktYohQ1xEfI1hPA81M99UWkXqCM3uxDXrOjxJklrF9oZT76GYj+1eiik9XgGMBx5qfPblwIrqylM7anYnrqcHli9v3jklSWoFQ3biMvNjvT9HxE+Bl2Tmr/tsO4GtE/9Kf9Ssrtj8+cX6oYdg552bc05JklrBSO5OPQ7of/XR9cCflFeOOkEzO3F77lmsFy9u3jklSWoFIwlxNwGfiIgdABrr84DfVVCX2lyzOnGGOElStxpJiHsLcDywMiIeo7hG7gTAmxq0jWZ24nbbDcaPN8RJkrrPsKcYycz7gT+NiD2B3YFHM/PBqgpTe2tWJ278+OLmBkOcJKnbjKQTR0TsBPwZ8D+AkxqvpW00sxMHxZCqIU6S1G2GHeIi4k8opho5AziM4gkL9za2S9to5pxthjhJUjcaSSfuM8CZmfmnmfm6zDweeCfwfyupTG2r2RPv7rlnMcVIszuAkiTVaSQh7lnAd/pt+y6wb3nlqBPUMZy6fj0sW9bc80qSVKeRhLi7efpD519NMcQqbaPZnThwSFWS1F2GfXcq8B7ghxHxbuABYAGwH/DS8stSO6ujEwdFiDv66OaeW5KkuoxkipHfRMQ+wEsophi5HPhxZj5ZVXFqX3biJEmq1kg6cWTmcuDrFdWiDtHsTtycOTBpkiFOktRdhh3iImJvisdsHQFM7/teZu5Vbllqd83sxI0bB3vsYYiTJHWXkXTivkFxE8N7gbXVlKNOUMdUH84VJ0nqNiMJcQcDx2fmlqqKUedoZicOihD3q18195ySJNVpJFOM/Ao4sqpC1Dnq6sQ9/DBs3tz8c0uSVIeRdOLuB34aEZcCS/q+kZkfKbMotb86OnGbN8OSJTB/fnPPLUlSHUYS4qZRTCsyEdizz3YfdqRt1NWJg+K6OEOcJKkbjGSeuLdub5+IeF1mfnNsJakT1NGJgyLEHXdcc88tSVIdRnJN3HB8qeTjqQ1lNj/E7dWY5ObBB5t7XkmS6lJ2iGvyP91qRXUMp86aBTNnwv33N//ckiTVoewQ5/VxAprfiYuAvfc2xEmSukfZIU6qpRMHRYi77756zi1JUrNtN8RFhEFPI9bsThzAggVFiKsrREqS1EzDCWgPR8SnI+KQYezrZeWqtRO3di08/ng955ckqZmGE+LOAPYGboiI30bEX0fEnIF2zMzhBD11gbo6ceCQqiSpO2w3xGXmf2Tmq4HdKKYQeTWwOCJ+EBGnRsTEqotUe6mzEwfe3CBJ6g7Dvt4tM1dk5pcy8wTgQGAh8M/Ao1UVp/ZlJ06SpGqN+KaFiJgMHAs8B5gL/L7sotTe6urEzZgBu+xiiJMkdYdhh7iIOCEiLgAeA/4euA54Vmb+WVXFqX3V0YkD54qTJHWP7T47NSLOAd4I7AxcArwkM6+puC61sTqn+Nh7b7j55vrOL0lSs2w3xAHHAX8HfD8zeyquRx2irk7cggXwgx/Ali0wzhkOJUkdbLshLjNf2IxC1Dky6x1OXb8eliyB3XevpwZJkprBXoU6ineoSpK6hSFOpauzE7fPPsX63nvrOb8kSc1iiFPp6ryxYcGC4lq4e+6prwZJkprBEKdK1NWJmzQJnvEMQ5wkqfMZ4lS6OjtxAPvtB3ffXW8NkiRVzRCnStTViQPYd98ixNUdJiVJqpIhTqWrOzzttx+sXAlPPFFvHZIkVckQp0rU3YkDr4uTJHU2Q5xK1wqdOPC6OElSZzPEqRJ1duKcZkSS1A0McSpd3Z24yZNhr73sxEmSOpshTpWosxMHxZCqnThJUiczxKl0dT52q5fTjEiSOp0hTh1pv/1gxQqnGZEkdS5DnErXCp243jtU77qr3jokSaqKIU6la4UhzAMPLNa3315vHZIkVcUQp0rU3YlbsKC4S/W22+qtQ5KkqhjiVLpW6MSNHw8HHGAnTpLUuQxxqkTdnTgohlQNcZKkTmWIU+laoRMHRYh74AFYu7buSiRJKp8hTpVolU5cJtx5Z92VSJJUPkOcOpZ3qEqSOpkhTpVohU7cfvvBuHGGOElSZzLEqVStcj0cFFOM7LOPIU6S1JlaLsRFxH4R0RMRX++3/eSIuCMi1kbElRHxjLpq1Pa1QicOvENVktS5Wi7EAZ8Hbui7ISJmA5cCHwZ2BhYC325+adqe3k5cK4W4u++GjRvrrkSSpHK1VIiLiNOAFcDP+731SmBRZl6SmT3AOcDhEXFAcytUuzn00CLAeYeqJKnTtEyIi4iZwLnAewd4+2Dg5t4XmbkGuLexfaBjnR4RCyNi4bJly6ooV4NotU7c4YcX65tvHno/SZLaTcuEOODjwIWZuXiA96YDK/ttWwnMGOhAmXlBZh6TmcfMmTOn5DLVTvbfHyZNgltuqbsSSZLK1ZQQFxFXRUQOslwdEUcApwD/PMghVgMz+22bCayqsGyNQqt14iZOhIMOshMnSeo8E5pxksw8aaj3I+I9wALgwSj+9Z8OjI+IgzLzKGAR8OY++08D9mlsVwtppSlGeh12GPzsZ3VXIUlSuVplOPUCilB2RGP5IvAj4AWN9y8DDomIUyNiCvAR4JbMvKP5pWo4WqUTB8V1cY8+Cl4eKUnqJC0R4jJzbWYu6V0ohk97MnNZ4/1lwKnAecBy4DnAabUVrEG1aicOvC5OktRZmjKcOlKZec4A264AnFKkTbRaJw6KEHfyyfXWIklSWVqiE6fO0YqduDlzYN48b26QJHUWQ5wq0UqdOCi6cYY4SVInMcSpVK3YiQM48ki49Vbo6am7EkmSymGIUyVarRN37LGwaZM3N0iSOochTqVqtcl+ex1zTLG+4YZ665AkqSyGOHWFPfeEXXc1xEmSOochTqVq1U5cRDGkaoiTJHUKQ5y6xrHHwu23w+rVdVciSdLYGeJUqlbtxEFxXVwm/Pa3dVciSdLYGeJUqladYgSKThw4pCpJ6gyGOFWiFTtxu+4Ke+1liJMkdQZDnErVyp04gOOOg2uvrbsKSZLGzhCnSrRiJw7ghBPgwQeLRZKkdmaIU6lavRN3wgnF+ppr6q1DkqSxMsSpEq3aiTv0UJgxA66+uu5KJEkaG0OcStXqnbgJE4rr4gxxkqR2Z4hTJVq1EwfFkOrvfw8rVtRdiSRJo2eIU6laebLfXiecUNTpXaqSpHZmiFPXec5zYPx4+PWv665EkqTRM8SpVO3QiZs2DZ79bPjFL+quRJKk0TPEqSudckrx5Aavi5MktStDnErVDp04KELcli1w1VV1VyJJ0ugY4tSVjjsOpk6FK66ouxJJkkbHEKdStUsnbtIkOPFEQ5wkqX0Z4lSqVp/st69TToE774TFi+uuRJKkkTPEqRKt3omDIsSB3ThJUnsyxKlU7dSJO/RQ2H13+NGP6q5EkqSRM8SpEu3QiYuAl74UfvpTWL++7mokSRoZQ5xK1U6dOChC3OrV8Mtf1l2JJEkjY4hTJdqhEwdw8skwZQr88Id1VyJJ0sgY4lSqdplipNfUqcUNDpdf3n5dRElSdzPEqeu97GVw//2waFHdlUiSNHyGOJWq3TpxUIS4CPje9+quRJKk4TPEqevtths873nwne/UXYkkScNniFOp2rETB/Ca18Btt8Gtt9ZdiSRJw2OIk4BTT4Vx4+zGSZLahyFOpWrXTtzcuXDSSfDtb3uXqiSpPRjiVKp2DkCveQ3cdRfcdFPdlUiStH2GOFWi3TpxAK9+NUyaBBddVHclkiRtnyFOpWrnTtzOO8MrXgEXXwwbNtRdjSRJQzPEqRLt2IkDeMtb4IknfAyXJKn1GeJUqnbuxAE8//mw++7wla/UXYkkSUMzxKkS7dqJGz8e3vQm+MlP4KGH6q5GkqTBGeJUqnadYqSv00+HLVvgS1+quxJJkgZniJP62XtveOlL4YILYP36uquRJGlghjiVqhM6cQDvehcsXQqXXFJ3JZIkDcwQJw3g5JNh//3hs5+tuxJJkgZmiFOpOqUTN24cnHUW/Pd/w/XX112NJElPZ4iTBvHmN8OsWfDpT9ddiSRJT2eIU6k6pRMHMGNGcW3cpZfCbbfVXY0kSdsyxElDePe7YepU+NSn6q5EkqRtGeJUqk7qxAHMng1nnAHf+Abcd1/d1UiStJUhTqVq98duDeS97y2e5GA3TpLUSgxxqkSndOKgeJbq6afDhRfCXXfVXY0kSQVDnErViZ04gA99CKZMKdaSJLUCQ5wq0UmdOIC5c4th1UsugYUL665GkiRDnErWaTc29PXe9xY3Orz//Z3bcZQktQ9DnDRMM2fCRz4Cv/gFfP/7dVcjSep2hjiVqpM7cQDvfCcceii85z2wdm3d1UiSullLhbiIOC0ibo+INRFxb0Q8t897J0fEHRGxNiKujIhn1FmrutOECfD5z8ODD8InPlF3NZKkbtYyIS4i/hz4B+CtwAzgecAfGu/NBi4FPgzsDCwEvl1PpRpKp3fiAJ77XPiLv4B//EenHJEk1adlQhzwMeDczLwuM7dk5sOZ+XDjvVcCizLzkszsAc4BDo+IA+oqVt3tH/+xeBzXX/4lbNlSdzWSpG7UEiEuIsYDxwBzIuKeiHgoIj4XETs0djkYuLl3/8xcA9zb2K4W0g2dOIB58+Azn4Grr4bPfa7uaiRJ3aglQhwwF5gIvAp4LnAEcCTQO7XqdGBlv8+spBh2fZqIOD0iFkbEwmXLllVSsPSmN8GLXwwf+ADcc0/d1UiSuk1TQlxEXBUROchyNbCusetnM/PRzHwc+CfgxY3tq4GZ/Q47E1g10Pky84LMPCYzj5kzZ04Vv5IG0S2dOCh+xwsugEmTikC3cWPdFUmSuklTQlxmnpSZMchyQmYuBx4CBptCdRFweO+LiJgG7NPYrhbSbZPgzp8PX/oSXHstfPSjdVcjSeomrTKcCvAV4F0RsWtE7AS8B/hh473LgEMi4tSImAJ8BLglM++op1RtTzd04nq99rXwtrfBpz4FP/tZ3dVIkrpFK4W4jwM3AHcBtwM3AecBZOYy4NTG6+XAc4DT6ilTQ+m2Tlyvf/kXOPDAYuqRxYvrrkaS1A1aJsRl5sbMPDMzZ2XmvMx8d2M6kd73r8jMAzJzh8bw7P01lqvt6KZOHBTTjXz3u7BuHbz85T7NQZJUvZYJceoM3XRjQ38HHgjf/Cb87nfw1rd2b1dSktQchjipRC95SXFt3He+A+eeW3c1kqRONqHuAtRZurkT1+t974NFi+Ccc2DuXDjjjLorkiR1IkOcVLII+PKX4Ykn4MwzYaedijtYJUkqk8OpKpWduMLEicWQ6gknwBvfCD/+cd0VSZI6jSFOqsjUqXD55XDoofCKV8D3v193RZKkTmKIU6nsxG1rxx3hiivgqKPgVa+Cb32r7ookSZ3CECdVbKediic5HH88vP718IUv1F2RJKkTGOJUKjtxA5sxA37yk2IKkr/6Kzj7bNi8ue6qJEntzBAnNcnUqcV1ce9+N3zmM/DKV8JTT9VdlSSpXRniVCo7cUMbP754zupnPws/+hEcfTTcfHPdVUmS2pEhTqXyUVPDc9ZZcOWVxTNWjzuumFfO706SNBKGOFXCTtz2Pfe5cNNNxVxyb387vPrVsHRp3VVJktqFIU6lcjh1ZHbdFf7zP+GTnyzmlDv4YLjkkrqrkiS1A0OcVLPx4+EDH4Df/hYWLIDXvAb+5/+E++6ruzJJUiszxKlUduJG7+CD4dpr4VOfgv/6LzjoIDjnHFi3ru7KJEmtyBAntZAJE+D974c77oCXvxw+9jHYf3+48ELYtKnu6iRJrcQQp1LZiSvHnnsWj+i68krYbTd429uKTt23vgVbttRdnSSpFRjipBZ20klw3XXFJMGTJsHrXgeHHFJ05tavr7s6SVKdDHEqlZ248kUUQ6u/+x1885sweXLRmVuwoLirdfnyuiuUJNXBECe1ifHj4bTTirtYf/YzOOww+OAHYf58eMtb4De/ccJgSeomhjiVyk5c9SLglFPgpz8tHtn15jfDpZfC8cfDoYcWz2VdsqTuKiVJVTPESW3ssMPg/PPhkUfgX/8VdtgBzj676M49//nw1a/CypV1VylJqoIhTqWyE1eP6dOL6+RuuAEWLSqGWe+9F976Vpg7t7im7sIL4bHH6q5UklQWQ5xK5TVZ9TvoIPj4x+Gee+D66+GMM4ph17e9rZiu5E/+pLgh4tZb/d9LktqZIU6VsBNXvwh49rOLa+Tuu68IcueeW0wa/MEPFtfPzZ8Pb3oT/Pu/w8MP112xJGkkJtRdgDqLw6mtKaK4fu6ww+BDHyoC249/DD//OfzkJ/C1rxX7HXAAnHwyPPe5xY0Se+xRb92SpMEZ4qQuNH8+vP3txbJlC9xySxHorrgCvvIV+Pzni/322qsIc73LoYcWU51IkupniFOp7MS1n3Hj4IgjiuW974WNG4uJhX/zG7jmGvjlL4tJhqG4geLII+Hoo7cuz3qWwU6S6mCIk7SNiRPh2GOL5a//ugjmDzxQBLprr4Ubb4QvfhF6eor9p03bGuyOOqro1h1wQDHdiSSpOoY4lcpOXOeJKB7xtWABvOENxbZNm+D224unR9x4Y7H867/C2rXF++PGwb77Fs957V0OPhj2268IiZKksTPESRqxCROKjtuhhxZPjADYvBnuuquYp+7WW7cu3/9+cd0dFAFu//2LIdj+y+zZhn9JGglDnEplJ657jR8PBx5YLK961dbtPT1wxx1bQ91ttxXL5ZcX19/1mjVr21C3337wzGfC3nsb8CRpIIY4SZWaMmXrjRN9bdpUXGt3113bLr/6FXz969vuO21aMZy7997F0v/nWbOa8ZtIUmsxxKlUduI0XBMmwD77FMuLXrTte2vXwh/+UExS3He5//4i5D311Lb7z5pVhLk99ti67Lnntq+nTm3SLyZJTWKIk9Rypk7dekNEf5mwfHkR6PoGvAcfhIceguuug8cff/rndtrp6cFu/nyYN694HNm8ebDrrk6XIql9GOJUKjtxqloE7LxzsRx11MD7rFtXPJXioYeKZfHirT8/9BDccAMsW/b0z40bB3PmbBvsBvt5+nT/nEuqlyFOUsfZYYdiipN99x18n54eePRReOyxYr1kSbH0/fnWW4v1pk1P//yUKUXgG+6y446GPknlMsSpVHbi1C6mTNl6c8RQtmwphm/7B72lS4tuXu9y553Fes2agY8zcWJxl23/cNfbVexddtll68+zZjm8K2lwhjiVyhCnTjNuXBGsdtll4Gv0+lu7trgmb9mypwe9vsv99xf7rVw59PFmzRo66PVfdtyx+MyUKf7/UOp0hjhJKtHUqbDXXsUyHJs2wYoV8OSTAy9PPLHt6z/8oVgvX771P5oGMmnS1kA3a9bgPw/23vTpRYCV1LoMcSqVnThpZCZMKIZZZ88e2ee2bBk4/K1cWWzvXff9+eGHt25bt27o448bBzNnbhvudtwRZswotveu+/480Hr6dIeEpaoY4iSpDY0bt3UIdTQ2bBg68PX9eeXKovP34IPFHH1PPQWrVsH69cM71/TpQwe9wcLg9OnbLtOmweTJ/kei1MsQp1LZiZPaw6RJW2+uGK0NG4ow1xvqBloP9t599227T99HsA1l/PinB7uhXg9nn2nTihtPpHZjiJMkjcqkSVtv+hir9eufHv7WrIHVq7ddBtu2dGlxvWDf7QNNDTPU7zJQ+Js2rbjOsXfd/+fhvjfBf21VAf9YqVR24iSNxuTJY+8M9rdhw/BD4EDbVq0qhpPXri1er11bLD09I69l4sSxB8H+P++ww7aLQ83dxxAnSepIkyaN7brBwWzeXNwY0hvq+oe8/q+Hem/t2uIO5P7vD/d6w74iiqll+oe7KhdvWqmXIU6lshMnqdP1vS6vKn2D4kCBcM2a4v2RLE88MfD20XQWe02cOPzA1xswp0zZdpk8+enbhrPdKXAMcZIktZxmBMVemUWQG2ko3N6yZk0xoXX/wNjTM/wbWYYycWI5YXC02ydNqr9hYYhTqezESVJ7idjaLWuWLVuKIePeUNd3Gcn2ofZdu7aYO3Gg/detK2oYq0mTinDXd+kNfIMtQ70/ZcrIzm+IkyRJTTVuXPODY3+bNo0uOPZ9r/8y0PaVK4feZyxdSUOcSmUnTpLUDiZMaN6Q9VC2bCnupO4NdXPnDv+zhjiVyhAnSdLwjRu39Tq7EX+2/HIkSZJUNUOcSmUnTpKk5jDESZIktSFDnEplJ06SpOYwxEmSJLUhQ5xKZSdOkqTmaJkQFxELIuLHEbE8IpZExOciYkKf90+OiDsiYm1EXBkRz6izXkmSpDq1TIgDvgAsBXYDjgBOBM4EiIjZwKXAh4GdgYXAt2upUkOyEydJUnO0UojbG/hOZvZk5hLgP4GDG++9EliUmZdkZg9wDnB4RBxQT6mSJEn1aqUnNvwLcFpEXAXsBLyIovMGRZi7uXfHzFwTEfc2tt8x1EHvvhte8IJK6tUAli4t1nbiJEmqViuFuF8CbweeAsYDFwHfb7w3HVjWb/+VwIyBDhQRpwOnA0yadBhPPVVBtRrQlCnwwhfCfvvVXYkkSZ2tKSGu0V07cZC3rwGeB/wU+BLwpxSh7d+AfwD+BlgNzOz3uZnAqoEOmJkXABcAHHPMMXnttWOrX5IkqdU05Zq4zDwpM2OQ5QSKmxX2BD6Xmesz8wngK8CLG4dYBBzee7yImAbs09guSZLUdVrixobMfBy4D3hnREyIiFnAm9l6HdxlwCERcWpETAE+AtySmUNeDydJktSpWiLENbwSeCHFtW/3AJuAswEycxlwKnAesBx4DnBaPWVKkiTVr2VubMjM3wEnDfH+FYBTikiSJNFanThJkiQNkyFOkiSpDRniJEmS2pAhTpIkqQ0Z4iRJktqQIU6SJKkNGeIkSZLakCFOkiSpDRniJEmS2pAhTpIkqQ0Z4iRJktqQIU6SJKkNGeIkSZLakCFOkiSpDUVm1l1DpSJiFXBn3XV0mdnA43UX0WX8zpvP77z5/M6bz++8+fbPzBnD2XFC1ZW0gDsz85i6i+gmEbHQ77y5/M6bz++8+fzOm8/vvPkiYuFw93U4VZIkqQ0Z4iRJktpQN4S4C+ouoAv5nTef33nz+Z03n9958/mdN9+wv/OOv7FBkiSpE3VDJ06SJKnjGOIkSZLaUMeGuIjYOSIui4g1EfFARLy+7po6XUScFRELI2J9RHy17nq6QURMjogLG3/GV0XETRHxorrr6mQR8fWIeDQinoqIuyLibXXX1C0iYr+I6ImIr9ddSzeIiKsa3/fqxuKcq00QEadFxO2N/HJvRDx3sH07eZ64zwMbgLnAEcCPIuLmzFxUa1Wd7RHg74EXADvUXEu3mAAsBk4EHgReDHwnIg7NzPvrLKyDfRL4y8xcHxEHAFdFxE2ZeWPdhXWBzwM31F1ElzkrM79cdxHdIiL+HPgH4LXAfwO7DbV/R3biImIacCrw4cxcnZlXAz8A3lhvZZ0tMy/NzO8DT9RdS7fIzDWZeU5m3p+ZWzLzh8B9wNF119apMnNRZq7vfdlY9qmxpK4QEacBK4Cf11yKVKWPAedm5nWNv9MfzsyHB9u5I0Mc8Cxgc2be1WfbzcDBNdUjNUVEzKX482/HuUIR8YWIWAvcATwK/LjmkjpaRMwEzgXeW3ctXeiTEfF4RFwTESfVXUwni4jxwDHAnIi4JyIeiojPRcSgI1udGuKmAyv7bVsJDOtZZFI7ioiJwMXARZl5R931dLLMPJPi75PnApcC64f+hMbo48CFmbm47kK6zPuBZwLzKeYuuzwi7DpXZy4wEXgVxd8tRwBHAh8a7AOdGuJWAzP7bZsJrKqhFqlyETEO+BrFdaBn1VxOV8jMzY1LNfYA3ll3PZ0qIo4ATgH+ueZSuk5mXp+ZqzJzfWZeBFxDcd2tqrGusf5sZj6amY8D/8QQ33mn3thwFzAhIvbLzLsb2w7HISZ1oIgI4EKK/4p7cWZurLmkbjMBr4mr0knAAuDB4o8604HxEXFQZh5VY13dKIGou4hOlZnLI+Ihiu95WDqyE5eZayiGOM6NiGkRcTzwcopOhSoSERMiYgownuIv2SkR0an/odBKzgcOBF6Wmeu2t7NGLyJ2bdz+Pz0ixkfEC4DXAb+ou7YOdgFFSD6isXwR+BHFXfCqSETMiogX9P49HhFvAJ4H/LTu2jrcV4B3Nf6u2Ql4D/DDwXbu5H9gzwT+DVhKcbfkO51epHIfAj7a5/VfUNxpc04t1XSBiHgG8A6Ka7KWNDoVAO/IzItrK6xzJcXQ6Rcp/iP4AeA9mfkftVbVwTJzLbC293VErAZ6MnNZfVV1hYkUU0YdAGymuInnFZnpXHHV+jgwm2JEsQf4DnDeYDv77FRJkqQ21JHDqZIkSZ3OECdJktSGDHGSJEltyBAnSZLUhgxxkiRJbcgQJ0mS1IYMcZI6WkQsataDuyPioIhYWMFxL42IF5Z9XEntzXniJLW1xuSvvaZSTHy8ufG6qZMeR8T3gEsy81slH/fZwPmZeXSZx5XU3gxxkjpGRNwPvC0zr6jh3LtRPJ9598zsqeD4dwOvy8zSO32S2pPDqZI6WkTcHxGnNH4+JyIuiYivR8SqiPh9RDwrIv42IpZGxOKIeH6fz+4YERdGxKMR8XBE/H1EjB/kVH8O/LZvgGuc+30RcUtErGkca25E/KRx/isaz0ek8YzKr0fEExGxIiJuiIi5fY5/FfCS0r8gSW3LECep27wM+BqwE3ATxQO9xwHzgXOBL/XZ9yJgE7AvcCTwfOBtgxz3UGCg50qeShHwntU490+AD1I8H3Ec8O7Gfm8GdgT2BHYBzgDW9TnO7cDhw/4tJXU8Q5ykbvPrzPxpZm4CLgHmAJ/KzI3At4AFETGr0QV7EcUD7tdk5lLgn4HTBjnuLGDVANs/m5mPZebDwK+B6zPzpsxcD1xGEQ4BNlKEt30zc3Nm3piZT/U5zqrGOSQJgAl1FyBJTfZYn5/XAY9n5uY+rwGmA7sDE4FHI6J3/3HA4kGOuxyYMYzz9X89vfHz1yi6cN+KiFnA14G/a4RLGsdeMdgvJan72ImTpIEtprjTdXZmzmosMzPz4EH2v4ViyHRUMnNjZn4sMw8C/hR4KfCmPrscCNw82uNL6jyGOEkaQGY+CvwX8H8iYmZEjIuIfSLixEE+8jPgqIiYMprzRcSfRcShjRsnnqIYXt3cZ5cTKa6nkyTAECdJQ3kTMAm4jWK49LvAbgPtmJmPAb8AXj7Kc81rHP8pipsYfkkxpEpEHAusycz/HuWxJXUg54mTpJJExEEUd7Q+O0v8y7UxifCFmfnjso4pqf0Z4iRJktqQw6mSJEltyBAnSZLUhgxxkiRJbcgQJ0mS1IYMcZIkSW3IECdJktSGDHGSJEltyBAnSZLUhv4fAhpiaNUW84wAAAAASUVORK5CYII=\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/CAYAAABHknMvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA5P0lEQVR4nO3de5iV5X3o/d89MwwMMxwVOQUFBSUqcnBi2+0hoHWjvt2JhsR4xjcaNabW2hzQvE1MTIyJfetOLmt0m0Zr1aB2a6zGpibZ2kS73Y2IRSSJYogGBBERZGCYgZm59x+AIQZkosxawP35XNdcstZ61nP/hqUOX571PCvlnAMAAGBPV1PtAQAAACpB/AAAAEUQPwAAQBHEDwAAUATxAwAAFKGu2gO8nb333juPHj262mMAALAHe+qpp17LOQ/Z3uNz586dXldXd2XOeVg4eLAr64yIxzs6Oj5++OGHb9jWBrt0/IwePTrmzJlT7TEAANiDpZRe2t5jc+fOnd67d++/Gz169IaGhoZVNTU1PidmF9XV1ZVeeumlo1avXv2JiPjmtrZRrgAAsB11dXVXjh49ekNjY+N64bNrq6mpySNGjFhbW1t77na3qeA8AACwW8k5D2toaGir9hx0T319/cac84DtPS5+AABg+2oc8dl9pJQi3qZxxA8AAFAE8QMAABRB/AAAwG7uiCOOOKh///6T1q9fn3p6reeee67+j/7ojw5saGiYPGbMmEPuv//+fj295s4ifgAAYDf23HPP1T/11FNNKaWYPXv2wJ5e76Mf/ej+EyZMaF2xYsV/XnnllS+fffbZByxdunSX/gidLcQPAADsxr797W/vNXHixHUf+chHXrv99tv3iohoa2tL48ePP/jqq6/eJyKio6MjpkyZMv7Tn/708IiIuXPn9jniiCMO6tev36SxY8cecuedd755hbQZM2aMPvvss/edOnXq2MbGxsmHHXbY+AULFvSOiHjmmWd6//znP+/7N3/zN0ubmpryueeeu/rAAw9cf8cddwyqxvf+h9otCg0AAHYFd8xZOmrZG+19e3KN4QN6t57VPGJxd7e/55579rr44ouXH3nkkeumTZs2fvHixXWjRo3quP322xcdd9xx40888cQ1d99998DOzs742te+tqy9vT2dfPLJY88444zXfvrTnz7/wx/+sOn0008fe+ihh/584sSJ7RERDzzwwOD777//+aOOOqp1xowZY2bNmjXy+9///qL//M//bHjPe97TPmjQoK4t6x9yyCHrFyxY0Kcnfi92Nkd+AABgN/Xwww83LV26tH7mzJmrjj766NZRo0a133LLLYMjIt73vve1XXbZZctmzJhxwI033jjsjjvu+HVdXV08+uijja2trbVXX331K3369Mkf+MAHWo499tjVt912215b9nvCCSesmjZtWmuvXr3izDPPfH3BggUNEREtLS01/fr169x6hgEDBnSuXbu2trLf+TvjyA8AAHTTH3JEphJuvfXWvY466qg1w4cP74iImDFjxuuzZ8/e+8orr3w1IuKiiy5a+bWvfW3k9OnTV02YMKE9ImLx4sW9hg0btqG29re9MmrUqA1Lly7tteX20KFDN275dWNjY1dra2ttRES/fv263ho6a9asqWlqavqdINpViR8AANgNrV27Nj300EODOjs709577z0xImLDhg2ppaWl9oknnmj4kz/5k/XnnXfevtOmTVv92GOP9X/44Yebpk+fvnbUqFEbX3nllfrOzs7YEkCLFy+uHzduXPuO1pw0adL6JUuW9F61alXNlre+LViwoO+pp576eo9+szuJt70BAMBu6M477xxUU1MT8+bNWzB37twFc+fOXfDss88+e/jhh6+95ZZb9rrhhhsGz58/v+/dd9/94jXXXLP4/PPPH/3GG2/UTJ06dV1DQ0Pn5z//+WHt7e3p+9//fr9HHnlk4Nlnn73DgDnssMPax48f3zpr1qwRra2t6R//8R8HPvfccw1nnXXWqkp8z++WIz8AALAbuuOOO/Y69dRTXxs3btyGre+/6KKLXr3gggv279+/f+c999yzcMCAAV0XXXTR6w8++ODACy+8cNRdd9310ve+970XPvGJT+x3/fXXD9tnn3023njjjb+ePHlyW3fWveeeexadffbZYwYPHjx52LBhG26//fZfjRgxoqNnvsudK+Wcqz3DdjU3N+c5c+ZUewwAAPZgKaWncs7N23ps3rx5L06cOPG1Ss/EOzdv3ry9J06cOHpbj3nbGwAAUATxAwAAFEH8AAAARRA/AABAEcQPAABQBPEDAAAUQfwAAABFED8AAEAR6qo9wK4k5xyvrNkQ6zd2xtD+vaOxvrbaIwEA7PFyV3tsXDcvIlL0apwYqaa+2iOxhxI/m/1y+br47lPLYm17R9TUpOjozDH5Pf3itCnDo3edA2QAADtbzjnWLfl6rF18zVb3pmja9wvROPKySClVbbbdzRFHHHHQL3/5y4bly5fPa2hoyD251qWXXjriBz/4wcBFixY1/MVf/MWy6667bmlPrrczVexP9SmlwSml76WU1qWUXkopnVGptXfkhRWt8T/+9+J4vXVjbOjM0baxKzq6cjy9pCWu/+lvoiv36L8/AABFannpC9Hymy9H7lyz1dcb0fLS52Ptb75S7fF2G88991z9U0891ZRSitmzZw/s6fXGjh3b/pWvfGXJ+9///tU9vdbOVslDGjdExIaIGBoRZ0bEjSmlQyq4/nbdO295bOz8/cDp6MqxbE1bPP9qaxWmAgDYc3V1rI51S/7/iK5t/DmrqzXWLrkmujpaKj/Ybujb3/72XhMnTlz3kY985LXbb799r4iItra2NH78+IOvvvrqfSIiOjo6YsqUKeM//elPD4+ImDt3bp8jjjjioH79+k0aO3bsIXfeeeeALfubMWPG6LPPPnvfqVOnjm1sbJx82GGHjV+wYEHvLY9fcsklK0899dQ1TU1NXZX+Xt+tirztLaXUGBEzIuLQnPPaiHg8pfRARJwdEZdXYobtad3QGUvfaNvu4+0dOZ5a/EaMH9pYwakAAPZs7at+GKmmV+TObf85LKVeseGNR6LPXh+s8GRvb/XzHxvVse7Zvj25Rl3joa0DD7xlcXe3v+eee/a6+OKLlx955JHrpk2bNn7x4sV1o0aN6rj99tsXHXfcceNPPPHENXfffffAzs7O+NrXvrasvb09nXzyyWPPOOOM1376058+/8Mf/rDp9NNPH3vooYf+fOLEie0REQ888MDg+++///mjjjqqdcaMGWNmzZo18vvf//6invuuK6NSR34OjIjOnPPzW903LyJ+78hPSumClNKclNKcFStW9PhgnV15h+8n3bCNo0IAALxzOW+IiLf7M1aO3NVeqXF2Ww8//HDT0qVL62fOnLnq6KOPbh01alT7LbfcMjgi4n3ve1/bZZddtmzGjBkH3HjjjcPuuOOOX9fV1cWjjz7a2NraWnv11Ve/0qdPn/yBD3yg5dhjj11922237bVlvyeccMKqadOmtfbq1SvOPPPM1xcsWNBQve9y56nUBQ+aIuKNt9z3RkT0e+uGOeebI+LmiIjm5uYer46m3rXRt7421rR1bPPx3nU18V5HfQAAdqr6fn8SOW/7z18REblrQ9T3++MKTtQ9f8gRmUq49dZb9zrqqKPWDB8+vCMiYsaMGa/Pnj177yuvvPLViIiLLrpo5de+9rWR06dPXzVhwoT2iIjFixf3GjZs2Iba2t9e2XjUqFEbli5d2mvL7aFDh27c8uvGxsau1tbWPeIyyJU68rM2Ivq/5b7+EVH1N3KmlOKkg/eO+tptH/3pVZNiyqi3jg4AwLtR13BA1A+YFpF6//6DqU/0Hnxi1PbZt/KD7UbWrl2bHnrooUE/+9nP+u29994T995774k333zz0Oeee67hiSeeaIiIOO+88/adNm3a6scee6z/ww8/3BQRMWrUqI2vvPJKfWdn55v7Wrx4cf2IESM2bmepPUaljvw8HxF1KaVxOeeFm++bGBELKrT+2zpyzMBYuW5jPLrw9UgRsbErR++6muhTVxOXHLNv1Ne61DUAwM42aPzdsWrBf4sNa5+M6Nqw6c6a+qjv/ycx8KDbqzvcbuDOO+8cVFNTE3Pnzl3Qu3fvNy8+8KEPfeiAW265Za+5c+e2zp8/v++zzz7789mzZw88//zzRz/77LM/nzp16rqGhobOz3/+88OuvPLK5T/60Y+aHnnkkYFXXXXVL7qzbnt7e+rs7Iyurq7o6OiI1tbWVF9fn+vqdv1P0anIhDnndSml+yLiqpTS+RExKSI+GBH/pRLr70hKKT44YZ94/9hB8Z9LWqKtoyveM7B3HDysKWpcXx4AoEfU1PWLvSb+W2xcOzfaVz0cESl6DzohejVNqvZou4U77rhjr1NPPfW1cePGbdj6/osuuujVCy64YP/+/ft33nPPPQsHDBjQddFFF73+4IMPDrzwwgtH3XXXXS9973vfe+ETn/jEftdff/2wffbZZ+ONN97468mTJ2//KmBbOeOMM/a777773jw/6Prrrx/+zW9+88W/+Iu/WLmzv8edLeUKfYZNSmlwRNwSEcdHxMqIuDzn/N23e05zc3OeM2dOJcYDAKBQKaWncs7N23ps3rx5L06cOPG1Ss/EOzdv3ry9J06cOHpbj1Xs2FTO+fWIOLlS6wEAAGzNySwAAEARxA8AAFAE8QMAABRB/AAAAEUQPwAAQBHEDwAAUATxAwAAFEH8AAAA78rIkSMn3H///f2qPceOiB8AANhNjRw5ckKfPn2m9O3bd3L//v0nTZ06dewLL7zQq9pz7UzLly+vPf744w9oaGiYPGLEiAk33XTT4He6L/EDAAC7sbvuumtha2vr06+88sq8IUOGdFx00UX7Vnum7tq4ceMOtzn//PP3ra+vz6+88sq8W2+99def+cxn9p0zZ06fd7Ke+AEAgD1A375984c//OFVL7zwQkNExMqVK2tPOeWU0YMGDZo4YsSICZ/97GeHd3Z2RkTEX/3VX4344Ac/OGbLc5977rn6lNLhW2LkiCOOOOjSSy8dMWXKlPGNjY2TjzzyyHHLli2r27L9DTfcMHjEiBETBg4cOGnWrFnDtp7j0Ucf7Ttp0qTx/fr1mzRkyJDDzjnnnH3b2trSlsdTSodfc801Q/bbb79DR48ePeHss8/e9+Mf//h7tt7HscceO/aqq67aZ82aNTX/+q//Ouiaa655ecCAAV3Tp09fe9xxx71xyy237PVOfo/qdrwJAAAQEXHHy4+OWtb+et+eXGN478GtZ42ctvgPfV5LS0vN3XffPWjy5MlrIyLOP//8UWvWrKldtGjR/FdffbVu+vTpBw4fPnzjZZdd9lp39nffffcNfuihhxbuv//+G4499tgDv/zlLw/91re+9fJTTz3V5zOf+cx+995778KpU6euu+SSS0YuX768fsvz6urq4m//9m8XH3PMMesWLVpUf+KJJ4679tprh3zhC194dcs2Dz744MCf/exnv2hsbOx68sknGz760Y+Ovemmm5bU1tbGsmXL6p544ol+t91224vz58/vXVtbG4cddlj7lucedthhrY8//vg7Or/IkR8AANiNnXHGGWP79es3adCgQZMff/zx/ldcccXyjo6OeOihhwZfe+21Lw8aNKjroIMO2vDJT37yldmzZ3f7iMnpp5++8rDDDmtvamrKH/rQh16fP39+34iI2bNnDzr22GPfOPHEE9c2NDTk6667bmlKKW953tFHH9163HHHrevVq1ccdNBBG84999wVjz322O/EyuWXX/7K0KFDO5uamvK0adNam5qaOh944IH+ERG33nrroCOOOKJl1KhRHS0tLbVNTU2dWz93wIABnWvXrq19J79XjvwAAEA3vZMjMj3tu9/97gsnn3xyS0dHR9x5550Djz/++IOefPLJn2/cuDGNGzduw5btxowZs2H58uXdvhjCsGHD3jwhp2/fvl2tra01ERFLly7tNXLkyDf3279//66BAwd2bLn9zDPP9L700ktHzZ8/v7Gtra2ms7MzDj744Nat9z1mzJgNW98+7bTTVt5+++2DTznllDV33333XhdffPGrERH9+vXrXLdu3e8csFmzZs3vBVF3OfIDAAB7gLq6upg5c+bqmpqa/JOf/KSxrq4uL1y48M23o7344ov1Q4cO3RgR0djY2Ll+/fo3W2DJkiXdjqLhw4dvfPnll9/cb0tLS83q1avfPKhy4YUX7jdu3Li2hQsXzl+7du3TV1xxxctv3UdK6Xdun3feeSt/9KMfDXziiScaFi1a1OfMM89cFRExYcKE9o6OjjR//vzeW7Z95plnGsaPH7++u/NuTfwAAMAeoKurK+64446BLS0tdZMnT15/0kknrbr88stHrlq1qub555+vv+GGG4aedtppKyMipkyZsv7JJ59sWrhwYf3KlStrv/rVrw7b0f63OP3001c98sgjAx5++OGmtra29KlPfWpEzvnNmlm7dm1t//79OwcMGND19NNP97nlllv22dE+DzjggI0TJkxYN3PmzDEnnHDC6qamphyx6ajS9OnTV3/uc58bsWbNmpof/vCHjT/+8Y8HfuxjH1v5Tn6PxA8AAOzGTjvttHF9+/ad3K9fv8lf+tKXRl5//fW/bm5ubvv7v//73/Tt27dr//33n3DMMceMnzFjxuuXXnrpaxERp5xyypo/+7M/WzVlypSDJ0+e/N6TTjrpje6u19zc3Pb1r3/9N+eee+6YYcOGTRw0aFDH0KFD33wb27XXXrv43nvvHdzU1DT5/PPP3+/kk09+vTv7Peuss1YuXLiw4ZxzzvmdsPnOd77z0vr162uGDh06cebMmfv/zd/8zW+am5vbujvv1lLOecdbVUlzc3OeM2dOtccAAGAPllJ6KufcvK3H5s2b9+LEiRO7dXU03p0f/OAHTR/72MfGLFmyZH5t7Tu6nkFERMybN2/viRMnjt7WY478AAAAVdXe3p6+8Y1vDD3zzDNfezfhsyPiBwAAqJq5c+f2GThw4KRXX3211+c+97nlPbmWS10DAABVM2XKlLb169c/XYm1HPkBAACKIH4AAIAiiB8AAKAI4gcAACiC+AEAAIogfgAAgHdl5MiRE+6///5+1Z5jR8QPAADspkaOHDmhT58+U/r27Tu5f//+k6ZOnTr2hRde6FXtuXamr371q0MOPfTQ99bX10+ZMWPG6HezL/EDAAC7sbvuumtha2vr06+88sq8IUOGdFx00UX7Vnum7tq4ceMOtxk5cuTGWbNmLfvIRz7y2rtdT/wAAMAeoG/fvvnDH/7wqhdeeKEhImLlypW1p5xyyuhBgwZNHDFixITPfvazwzs7OyMi4q/+6q9GfPCDHxyz5bnPPfdcfUrp8C0xcsQRRxx06aWXjpgyZcr4xsbGyUceeeS4ZcuW1W3Z/oYbbhg8YsSICQMHDpw0a9asYVvP8eijj/adNGnS+H79+k0aMmTIYeecc86+bW1tacvjKaXDr7nmmiH77bffoaNHj55w9tln7/vxj3/8PVvv49hjjx171VVX7RMRMXPmzNVnn3326r322qvj3f4e1e14EwAAICJi9Q0fG9Xxm2f79uQadfse2jrwk7cs/kOf19LSUnP33XcPmjx58tqIiPPPP3/UmjVrahctWjT/1VdfrZs+ffqBw4cP33jZZZd16wjKfffdN/ihhx5auP/++2849thjD/zyl7889Fvf+tbLTz31VJ/PfOYz+917770Lp06duu6SSy4ZuXz58vo356+ri7/9279dfMwxx6xbtGhR/Yknnjju2muvHfKFL3zh1S3bPPjggwN/9rOf/aKxsbHrySefbPjoRz869qabblpSW1sby5Ytq3viiSf63XbbbS/+ob8HO+LIDwAA7MbOOOOMsf369Zs0aNCgyY8//nj/K664YnlHR0c89NBDg6+99tqXBw0a1HXQQQdt+OQnP/nK7Nmz9+rufk8//fSVhx12WHtTU1P+0Ic+9Pr8+fP7RkTMnj170LHHHvvGiSeeuLahoSFfd911S1NKecvzjj766NbjjjtuXa9eveKggw7acO6556547LHHfudiCJdffvkrQ4cO7WxqasrTpk1rbWpq6nzggQf6R0Tceuutg4444oiWUaNGvesjPW/lyA8AAHTTOzki09O++93vvnDyySe3dHR0xJ133jnw+OOPP+jJJ5/8+caNG9O4ceM2bNluzJgxG5YvX97tiyEMGzbszRNy+vbt29Xa2loTEbF06dJeI0eOfHO//fv37xo4cOCbofLMM8/0vvTSS0fNnz+/sa2traazszMOPvjg1q33PWbMmA1b3z7ttNNW3n777YNPOeWUNXffffdeF1988avRAxz5AQCAPUBd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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.51 s\n", "\n", "Total time = 90.54 s\n", "\n", "End time: 2022-10-31 21:32:31.660741\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:34.957720\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_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 , 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_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 , 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 }