{ "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-12-28 12:40:00.464976\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.31 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: 1 \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": [ "1.0\n", "9069.959345142834\n", "1.0\n", "9069.959345142834\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", "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", "\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 ##7.08e+03 ######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": [ " 3.54e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.54e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.54e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.54e+03\n", " -3.54e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.54e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7.08e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.08e+03 0 \n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3.54e+03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.54e+03\n" ] }, { "data": { "text/plain": [ "0.0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "GMAT01.printf() " ] }, { "cell_type": "code", "execution_count": 12, "id": "9f7204b0", "metadata": {}, "outputs": [], "source": [ " \n", " \n", " \n", "############################### Transverse connections between Boundary cables and Axons ######################################\n", "\n", "\n", "rho = 1.136e5 * 10000 * 4.7e-4 * 10000 # ohm-micron^2\n", "\n", "\n", "\n", "rows = len(Boundary_neighboring)\n", "\n", "for i in range(rows):\n", " \n", " for j in range(len(R)):\n", " \n", " if Boundary_neighboring[i][j]==1:\n", " \n", " NSEG = 0\n", "\n", " a2 = np.where(unique_radius == R[j]) # find type \n", " a2 = a2[0][0]+1\n", " \n", " Boundary_RG = locals()[\"Boundary_Rg_\"+str(a2)]\n", " area = (math.pi)*(parameters[1])*(np.ones((len(Boundary_RG),1)))\n", " area = area * 1e-8 #cm^2\n", " \n", "\n", " SEC = locals()[\"Boundary_to_\"+str(a2)]\n", "\n", "\n", " locals()[\"sl\"+str(count)] = h.SectionList()\n", "\n", " for z1 in range(int(len(SEC)/2)): \n", "\n", " S = sim.net.cells[j].secs[SEC[z1]][\"hObj\"]\n", " NSEG=NSEG+S.nseg\n", " locals()[\"sl\"+str(count)].append(S)\n", "\n", " for z2 in range(int(len(SEC)/2),int(len(SEC))):\n", "\n", " S = sim.net.cells[len(R)+i].secs[SEC[z2]][\"hObj\"]\n", " locals()[\"sl\"+str(count)].append(S) \n", "\n", "\n", "\n", "\n", " nsegs=int(NSEG)\n", "\n", " locals()[\"gmat\"+str(count)] =h.Matrix(2*nsegs, 2*nsegs)\n", " locals()[\"cmat\"+str(count)] =h.Matrix(2*nsegs, 2*nsegs)\n", " locals()[\"bvec\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"xl\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"layer\"+str(count)] =h.Vector(2*nsegs)\n", " locals()[\"layer\"+str(count)].fill(2) # connect layer 2\n", " locals()[\"e\"+str(count)] = h.Vector(2*nsegs)\n", "\n", " for z3 in range(2*nsegs):\n", " locals()[\"xl\"+str(count)][z3] = 0.5\n", "\n", "\n", " \n", " \n", " rd = rho\n", " s = (unique_radius*2)\n", " locals()[\"Boundary_RG\"+str(count)] = np.array(Boundary_RG)*s\n", " locals()[\"Resistance\"+str(count)] = rd/locals()[\"Boundary_RG\"+str(count)]\n", " locals()[\"Conductance\"+str(count)]=[]\n", " for z4 in range(len(locals()[\"Resistance\"+str(count)])):\n", " locals()[\"Conductance\"+str(count)].append(1/(locals()[\"Resistance\"+str(count)][z4]*area[z4]))\n", "\n", " \n", " for z5 in range(0,nsegs,1):\n", "\n", " locals()[\"gmat\"+str(count)].setval(z5, z5, locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " locals()[\"gmat\"+str(count)].setval(z5, nsegs+z5, - locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " locals()[\"gmat\"+str(count)].setval(nsegs+z5, z5, - locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " locals()[\"gmat\"+str(count)].setval(nsegs+z5, nsegs+z5, locals()[\"Conductance\"+str(count)][z5][0] * 1)\n", " \n", " \n", " \n", " locals()[\"GMAT_BOUNDARY\"+str(i)+str(j)] = locals()[\"gmat\"+str(count)]\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", "# geB= 1\n", " \n", "# for z6 in range(0,nsegs,1):\n", "\n", "# locals()[\"gmat\"+str(count)].setval(z6, z6, geB)\n", "# locals()[\"gmat\"+str(count)].setval(z6, nsegs+z6, -geB)\n", "# locals()[\"gmat\"+str(count)].setval(nsegs+z6, z6, -geB)\n", "# locals()[\"gmat\"+str(count)].setval(nsegs+z6, nsegs+z6, geB)\n", "\n", "\n", "\n", "\n", " locals()[\"lm\"+str(count)] = h.LinearMechanism(locals()[\"cmat\"+str(count)], locals()[\"gmat\"+str(count)], locals()[\"e\"+str(count)], locals()[\"bvec\"+str(count)], locals()[\"sl\"+str(count)], locals()[\"xl\"+str(count)], locals()[\"layer\"+str(count)])\n", "\n", " count=count+1\n", " \n", " \n", " SEC.clear\n", " del Boundary_RG\n", " del area\n", " \n", " \n", " \n", " \n", " \n", "\n", "#print(count) \n", " \n", " \n", " \n", "# from IPython.display import clear_output\n", "\n", "# clear_output(wait=True)\n", "\n", "\n", " \n", "#gmat0.printf() \n", "\n", "# for sec in sl0:\n", "# print(sec)" ] }, { "cell_type": "code", "execution_count": 13, "id": "2f2f0781", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(Boundary_neighboring)" ] }, { "cell_type": "code", "execution_count": 14, "id": "7808a6c6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 8.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -8.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 0 0 0 0 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 0 0 0 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 0 0 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 0 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 0 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16.1 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 8.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -8.03 \n", " -8.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", " 0 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 0 0 0 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 0 0 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 0 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 0 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -16.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16.1 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 -8.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.03 \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": "5dbd4f4b", "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(36):\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[450]" ] }, "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", "# for i2 in range(36):\n", "\n", "# locals()[\"Abeta0_vex\"+str(i2)] = sim.net.cells[0].secs[\"node_%s\"%i2][\"hObj\"]\n", "# locals()[\"Abeta0_vext0_05_node\"+str(i2)] = h.Vector()\n", "# locals()[\"Abeta0_vext0_05_node\"+str(i2)].record(locals()[\"Abeta0_vex\"+str(i2)](0.5)._ref_vext[0])\n", "\n", " \n", "################################################################################################## \n", " \n", "for i2 in range(36):\n", "\n", " locals()[\"Abeta0_vex\"+str(i2)] = sim.net.cells[0].secs[\"node_%s\"%i2][\"hObj\"]\n", " locals()[\"Abeta0_vext0_node05\"+str(i2)] = h.Vector()\n", " locals()[\"Abeta0_vext0_node05\"+str(i2)].record(locals()[\"Abeta0_vex\"+str(i2)](0.5)._ref_vext[0])\n", "\n", "\n", "for ii2 in range(36):\n", "\n", " locals()[\"Abeta0_vex\"+str(ii2)] = sim.net.cells[0].secs[\"node_%s\"%ii2][\"hObj\"]\n", " locals()[\"Abeta0_vext0_node1\"+str(ii2)] = h.Vector()\n", " locals()[\"Abeta0_vext0_node1\"+str(ii2)].record(locals()[\"Abeta0_vex\"+str(ii2)](1)._ref_vext[0]) \n", " \n", " \n", "for ij2 in range(36):\n", "\n", " locals()[\"Abeta0_vex\"+str(ij2)] = sim.net.cells[0].secs[\"node_%s\"%ij2][\"hObj\"]\n", " locals()[\"Abeta0_vext0_node0\"+str(ij2)] = h.Vector()\n", " locals()[\"Abeta0_vext0_node0\"+str(ij2)].record(locals()[\"Abeta0_vex\"+str(ij2)](0)._ref_vext[0]) \n", " \n", " \n", "for i3 in range(36):\n", "\n", " locals()[\"Abeta0_vex1\"+str(i3)] = sim.net.cells[0].secs[\"node_%s\"%i3][\"hObj\"]\n", " locals()[\"Abeta0_vext1_node05\"+str(i3)] = h.Vector()\n", " locals()[\"Abeta0_vext1_node05\"+str(i3)].record(locals()[\"Abeta0_vex1\"+str(i3)](0.5)._ref_vext[1]) \n", " \n", " \n", " \n", " \n", "for i5 in range(36):\n", "\n", " locals()[\"Abeta0_vexx\"+str(i5)] = sim.net.cells[0].secs[\"node_%s\"%i5][\"hObj\"]\n", " locals()[\"Abeta0_vext1_node0\"+str(i5)] = h.Vector()\n", " locals()[\"Abeta0_vext1_node0\"+str(i5)].record(locals()[\"Abeta0_vexx\"+str(i5)](0)._ref_vext[1])\n", " \n", "\n", " \n", "for i6 in range(36):\n", "\n", " locals()[\"Abeta0_vexg\"+str(i6)] = sim.net.cells[0].secs[\"node_%s\"%i6][\"hObj\"]\n", " locals()[\"Abeta0_vext1_node1\"+str(i6)] = h.Vector()\n", " locals()[\"Abeta0_vext1_node1\"+str(i6)].record(locals()[\"Abeta0_vexg\"+str(i6)](1)._ref_vext[1])\n", " \n", " \n", " \n", " \n", "\n", "for i4 in range(36):\n", "\n", " locals()[\"Abeta1_vex\"+str(i4)] = sim.net.cells[1].secs[\"node_%s\"%i4][\"hObj\"]\n", " locals()[\"Abeta1_vext1_node05\"+str(i4)] = h.Vector()\n", " locals()[\"Abeta1_vext1_node05\"+str(i4)].record(locals()[\"Abeta1_vex\"+str(i4)](0.5)._ref_vext[1])\n", "\n", " \n", "\n", "i8=1663 \n", "locals()[\"v1Mext\"+str(i8)] = sim.net.cells[2].secs[\"section_1663\"][\"hObj\"]\n", "locals()[\"boundary0_vext1_section\"+str(i8)] = h.Vector()\n", "locals()[\"boundary0_vext1_section\"+str(i8)].record(locals()[\"v1Mext\"+str(i8)](0.5)._ref_vext[1]) \n", "\n", " \n", " \n", "for ii3 in range(36*2):\n", "\n", " locals()[\"Abeta0_vexe\"+str(ii3)] = sim.net.cells[0].secs[\"MYSA_%s\"%ii3][\"hObj\"]\n", " locals()[\"Abeta0_vext0_MYSA05\"+str(ii3)] = h.Vector()\n", " locals()[\"Abeta0_vext0_MYSA05\"+str(ii3)].record(locals()[\"Abeta0_vexe\"+str(ii3)](0.5)._ref_vext[0])\n", " \n", " \n", "for ii4 in range(36*2):\n", "\n", " locals()[\"Abeta0_vexxx\"+str(ii4)] = sim.net.cells[0].secs[\"MYSA_%s\"%ii4][\"hObj\"]\n", " locals()[\"Abeta0_vext1_MYSA05\"+str(ii4)] = h.Vector()\n", " locals()[\"Abeta0_vext1_MYSA05\"+str(ii4)].record(locals()[\"Abeta0_vexxx\"+str(ii4)](0.5)._ref_vext[1])\n", " \n", " \n", " \n", "# for i3 in range(0,36*2):\n", " \n", "# locals()[\"Abeta_v0Mext\"+str(i3)] = sim.net.cells[0].secs[\"MYSA_%s\"%i3][\"hObj\"]\n", "# locals()[\"Abeta0_vext0_MYSA\"+str(i3)] = h.Vector()\n", "# locals()[\"Abeta0_vext0_MYSA\"+str(i3)].record(locals()[\"Abeta_v0Mext\"+str(i3)](0.5)._ref_vext[0])\n", " \n", " \n", " \n", "# for i3 in range(0,36*2):\n", " \n", "# locals()[\"Abeta_v1Mext\"+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_v1Mext\"+str(i3)](0.5)._ref_vext[1]) \n", "\n", "\n", "# i3=1663 \n", "# locals()[\"v1Mext\"+str(i3)] = sim.net.cells[2].secs[\"section_1663\"][\"hObj\"]\n", "# locals()[\"boundary0_vext1_section\"+str(i3)] = h.Vector()\n", "# locals()[\"boundary0_vext1_section\"+str(i3)].record(locals()[\"v1Mext\"+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 = 93.91 s; real-time ratio: 0.00.\n", "\n", "Gathering data...\n", " Done; gather time = 0.49 s.\n", "\n", "Analyzing...\n", " Cells: 4\n", " Connections: 0 (0.00 per cell)\n", " Spikes: 1 (41.67 Hz)\n", " Simulated time: 0.0 s; 1 workers\n", " Run time: 93.91 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": "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\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/CAYAAABHknMvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA33UlEQVR4nO3de5RV5Z3g/d9TVRQUVVwVuQUFBSVG5GLFmR4vAe0M6tuTaEiMlyhONGpMJ7a5oXk7MTExJvbbTrJso2M62rYY1BmN8dJpkx7tRPt1JiI2IkkUm2hALiKCXIoqqKpn/gBsYkAqSp1T8Hw+a9WSc84++/lVeZbWl73PPinnHAAAAPu6mmoPAAAAUAniBwAAKIL4AQAAiiB+AACAIogfAACgCHXVHuCt7L///nn06NHVHgMAgH3YU0899WrOeciuHp83b970urq6K3POw8LBg56sIyIeb29v/8RRRx21eWcb9Oj4GT16dMydO7faYwAAsA9LKb20q8fmzZs3vXfv3n8zevTozQ0NDWtqamp8TkwP1dnZmV566aVj165d+8mI+O7OtlGuAACwC3V1dVeOHj16c2Nj4ybh07PV1NTkESNGbKitrT1vl9tUcB4AANir5JyHNTQ0tFZ7Drqmvr5+S855wK4eFz8AALBrNY747D1SShFv0TjiBwAAKIL4AQAAiiB+AABgL3f00Ucf1r9//0mbNm1K3b3Wc889V/8f/sN/OLShoWHymDFj3nPffff16+419xTxAwAAe7Hnnnuu/qmnnmpKKcWcOXMGdvd6H/3oRw+eMGFCy6pVq/71yiuvfPmcc845ZNmyZT36I3S2Ez8AALAX+/73v7/fxIkTN37kIx959fbbb98vIqK1tTWNHz/+8KuvvvqAiIj29vaYMmXK+M9//vPDIyLmzZvX5+ijjz6sX79+k8aOHfueO+64440rpM2YMWP0Oeecc+DUqVPHNjY2Tj7yyCPHL1y4sHdExDPPPNP7V7/6Vd+/+qu/WtbU1JTPO++8tYceeuim2bNnD6rG9/7H2isKDQAAeoLZc5eNWv56W9/uXGP4gN4tH2sesaSr29999937XXLJJSuPOeaYjdOmTRu/ZMmSulGjRrXffvvti0888cTxJ5988rq77rprYEdHR3zrW99a3tbWlk499dSxZ5111qu/+MUvnv/pT3/adOaZZ4494ogjfjVx4sS2iIj7779/8H333ff8scce2zJjxowxs2bNGvnggw8u/td//deGd73rXW2DBg3q3L7+e97znk0LFy7s0x0/iz3NkR8AANhLPfzww03Lli2rnzlz5prjjjuuZdSoUW233HLL4IiI9773va2XXXbZ8hkzZhxy4403Dps9e/Zv6+rq4tFHH21saWmpvfrqq1f06dMnf+ADH1h/wgknrL3tttv2277fk046ac20adNaevXqFWefffZrCxcubIiIWL9+fU2/fv06dpxhwIABHRs2bKit7Hf+9jjyAwAAXfTHHJGphFtvvXW/Y489dt3w4cPbIyJmzJjx2pw5c/a/8sorX4mIuPjii1d/61vfGjl9+vQ1EyZMaIuIWLJkSa9hw4Ztrq39914ZNWrU5mXLlvXafnvo0KFbtv+5sbGxs6WlpTYiol+/fp1vDp1169bVNDU1/V4Q9VTiBwAA9kIbNmxIDz300KCOjo60//77T4yI2Lx5c1q/fn3tE0880fAnf/Inm84///wDp02btvaxxx7r//DDDzdNnz59w6hRo7asWLGivqOjI7YH0JIlS+rHjRvXtrs1J02atGnp0qW916xZU7P91LeFCxf2Pf3001/r1m92D3HaGwAA7IXuuOOOQTU1NTF//vyF8+bNWzhv3ryFzz777LNHHXXUhltuuWW/G264YfCCBQv63nXXXS9ec801Sy644ILRr7/+es3UqVM3NjQ0dHz5y18e1tbWlh588MF+jzzyyMBzzjlntwFz5JFHto0fP75l1qxZI1paWtLf//3fD3zuuecaPvaxj62pxPf8TjnyAwAAe6HZs2fvd/rpp786bty4zTvef/HFF79y4YUXHty/f/+Ou+++e9GAAQM6L7744tceeOCBgRdddNGoO++886Uf/ehHL3zyk5886Prrrx92wAEHbLnxxht/O3ny5NaurHv33XcvPuecc8YMHjx48rBhwzbffvvt/zZixIj27vku96yUc672DLvU3Nyc586dW+0xAADYh6WUnso5N+/ssfnz5784ceLEVys9E2/f/Pnz9584ceLonT3mtDcAAKAI4gcAACiC+AEAAIogfgAAgCKIHwAAoAjiBwAAKIL4AQAAiiB+AACAItRVe4CeJOccK9Ztjk1bOmJo/97RWF9b7ZEAAPZ5ubMttmycHxEpejVOjFRTX+2R2EeJn21+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6TOlb9++k/v37z9p6tSpY1944YVe1Z5rT1q5cmXt+9///kMaGhomjxgxYsJNN900+O3uS/wAAMBe7M4771zU0tLy9IoVK+YPGTKk/eKLLz6w2jN11ZYtW3a7zQUXXHBgfX19XrFixfxbb731t1/4whcOnDt3bp+3s574AQCAfUDfvn3zhz/84TUvvPBCQ0TE6tWra0877bTRgwYNmjhixIgJX/ziF4d3dHRERMRnP/vZER/84AfHbH/uc889V59SOmp7jBx99NGHXXrppSOmTJkyvrGxcfIxxxwzbvny5XXbt7/hhhsGjxgxYsLAgQMnzZo1a9iOczz66KN9J02aNL5fv36ThgwZcuS55557YGtra9r+eErpqGuuuWbIQQcddMTo0aMnnHPOOQd+4hOfeNeO+zjhhBPGXnXVVQesW7eu5h//8R8HXXPNNS8PGDCgc/r06RtOPPHE12+55Zb93s7PqG73mwAAABERs19+dNTyttf6ducaw3sPbvnYyGlL/tjnrV+/vuauu+4aNHny5A0RERdccMGodevW1S5evHjBK6+8Ujd9+vRDhw8fvuWyyy57tSv7u/feewc/9NBDiw4++ODNJ5xwwqFf//rXh37ve997+amnnurzhS984aB77rln0dSpUzd++tOfHrly5cr67c+rq6uLv/7rv15y/PHHb1y8eHH9ySefPO7aa68d8pWvfOWV7ds88MADA3/5y1/+urGxsfPJJ59s+OhHPzr2pptuWlpbWxvLly+ve+KJJ/rddtttLy5YsKB3bW1tHHnkkW3bn3vkkUe2PP7442/r/UWO/AAAwF7srLPOGtuvX79JgwYNmvz444/3v+KKK1a2t7fHQw89NPjaa699edCgQZ2HHXbY5k996lMr5syZ0+UjJmeeeebqI488sq2pqSl/6EMfem3BggV9IyLmzJkz6IQTTnj95JNP3tDQ0JCvu+66ZSmlvP15xx13XMuJJ564sVevXnHYYYdtPu+881Y99thjvxcrl19++YqhQ4d2NDU15WnTprU0NTV13H///f0jIm699dZBRx999PpRo0a1r1+/vrapqaljx+cOGDCgY8OGDbVv52flyA8AAHTR2zki091++MMfvnDqqaeub29vjzvuuGPg+9///sOefPLJX23ZsiWNGzdu8/btxowZs3nlypVdvhjCsGHD3nhDTt++fTtbWlpqIiKWLVvWa+TIkW/st3///p0DBw5s3377mWee6X3ppZeOWrBgQWNra2tNR0dHHH744S077nvMmDGbd7x9xhlnrL799tsHn3baaevuuuuu/S655JJXIiL69evXsXHjxt87YLNu3bo/CKKucuQHAAD2AXV1dTFz5sy1NTU1+ec//3ljXV1dXrRo0Runo7344ov1Q4cO3RIR0djY2LFp06Y3WmDp0qVdjqLhw4dvefnll9/Y7/r162vWrl37xkGViy666KBx48a1Llq0aMGGDRuevuKKK15+8z5SSr93+/zzz1/9s5/9bOATTzzRsHjx4j5nn332moiICRMmtLW3t6cFCxb03r7tM8880zB+/PhNXZ13R+IHAAD2AZ2dnTF79uyB69evr5s8efKmU045Zc3ll18+cs2aNTXPP/98/Q033DD0jDPOWB0RMWXKlE1PPvlk06JFi+pXr15d+81vfnPY7va/3ZlnnrnmkUceGfDwww83tba2ps997nMjcs5v1MyGDRtq+/fv3zFgwIDOp59+us8tt9xywO72ecghh2yZMGHCxpkzZ4456aST1jY1NeWIrUeVpk+fvvZLX/rSiHXr1tX89Kc/bfynf/qngR//+MdXv52fkfgBAIC92BlnnDGub9++k/v16zf5a1/72sjrr7/+t83Nza1/+7d/+7u+fft2HnzwwROOP/748TNmzHjt0ksvfTUi4rTTTlv3Z3/2Z2umTJly+OTJk999yimnvN7V9Zqbm1u//e1v/+68884bM2zYsImDBg1qHzp06BunsV177bVL7rnnnsFNTU2TL7jggoNOPfXU17qy34997GOrFy1a1HDuuef+Xtj84Ac/eGnTpk01Q4cOnThz5syD/+qv/up3zc3NrV2dd0cp57z7raqkubk5z507t9pjAACwD0spPZVzbt7ZY/Pnz39x4sSJXbo6Gu/MT37yk6aPf/zjY5YuXbqgtvZtXc8gIiLmz5+//8SJE0fv7DFHfgAAgKpqa2tL3/nOd4aeffbZr76T8Nkd8QMAAFTNvHnz+gwcOHDSK6+80utLX/rSyu5cy6WuAQCAqpkyZUrrpk2bnq7EWo78AAAARRA/AABAEcQPAABQBPEDAAAUQfwAAABFED8AAMA7MnLkyAn33Xdfv2rPsTviBwAA9lIjR46c0KdPnyl9+/ad3L9//0lTp04d+8ILL/Sq9lx70je/+c0hRxxxxLvr6+unzJgxY/Q72Zf4AQCAvdidd965qKWl5ekVK1bMHzJkSPvFF198YLVn6qotW7bsdpuRI0dumTVr1vKPfOQjr77T9cQPAADsA/r27Zs//OEPr3nhhRcaIiJWr15de9ppp40eNGjQxBEjRkz44he/OLyjoyMiIj772c+O+OAHPzhm+3Ofe+65+pTSUdtj5Oijjz7s0ksvHTFlypTxjY2Nk4855phxy5cvr9u+/Q033DB4xIgREwYOHDhp1qxZw3ac49FHH+07adKk8f369Zs0ZMiQI88999wDW1tb0/bHU0pHXXPNNUMOOuigI0aPHj3hnHPOOfATn/jEu3bcxwknnDD2qquuOiAiYubMmWvPOeectfvtt1/7O/0Z1e1+EwAAICJi7Q0fH9X+u2f7ducadQce0TLwU7cs+WOft379+pq77rpr0OTJkzdERFxwwQWj1q1bV7t48eIFr7zySt306dMPHT58+JbLLrusS0dQ7r333sEPPfTQooMPPnjzCSeccOjXv/71od/73vdefuqpp/p84QtfOOiee+5ZNHXq1I2f/vSnR65cubL+jfnr6uKv//qvlxx//PEbFy9eXH/yySePu/baa4d85StfeWX7Ng888MDAX/7yl79ubGzsfPLJJxs++tGPjr3pppuW1tbWxvLly+ueeOKJfrfddtuLf+zPYHcc+QEAgL3YWWedNbZfv36TBg0aNPnxxx/vf8UVV6xsb2+Phx56aPC111778qBBgzoPO+ywzZ/61KdWzJkzZ7+u7vfMM89cfeSRR7Y1NTXlD33oQ68tWLCgb0TEnDlzBp1wwgmvn3zyyRsaGhryddddtyyllLc/77jjjms58cQTN/bq1SsOO+ywzeedd96qxx577PcuhnD55ZevGDp0aEdTU1OeNm1aS1NTU8f999/fPyLi1ltvHXT00UevHzVq1Ds+0vNmjvwAAEAXvZ0jMt3thz/84Qunnnrq+vb29rjjjjsGvv/97z/sySef/NWWLVvSuHHjNm/fbsyYMZtXrlzZ5YshDBs27I035PTt27ezpaWlJiJi2bJlvUaOHPnGfvv37985cODAN0LlmWee6X3ppZeOWrBgQWNra2tNR0dHHH744S077nvMmDGbd7x9xhlnrL799tsHn3baaevuuuuu/S655JJXohs48gMAAPuAurq6mDlz5tqampr885//vLGuri4vWrTojdPRXnzxxfqhQ4duiYhobGzs2LRp0xstsHTp0i5H0fDhw7e8/PLLb+x3/fr1NWvXrn3joMpFF1100Lhx41oXLVq0YMOGDU9fccUVL795Hyml37t9/vnnr/7Zz3428IknnmhYvHhxn7PPPntNl7/xP4L4AQCAfUBnZ2fMnj174Pr16+smT5686ZRTTllz+eWXj1yzZk3N888/X3/DDTcMPeOMM1ZHREyZMmXTk08+2bRo0aL61atX137zm98ctrv9b3fmmWeueeSRRwY8/PDDTa2trelzn/vciJzzGzWzYcOG2v79+3cMGDCg8+mnn+5zyy23HLC7fR5yyCFbJkyYsHHmzJljTjrppLVNTU1vnEa3ZcuWaGlpSR0dHamjoyO1tLSkrlwlbmfEDwAA7MXOOOOMcX379p3cr1+/yV/72tdGXn/99b9tbm5u/du//dvf9e3bt/Pggw+ecPzxx4+fMWPGa5deeumrERGnnXbauj/7sz9bM2XKlMMnT5787lNOOeX1rq7X3Nzc+u1vf/t355133phhw4ZNHDRoUPvQoUPfOI3t2muvXXLPPfcMbmpqmnzBBRccdOqpp77Wlf1+7GMfW71o0aKGc889d/WO98+aNWtEY2PjlO9973vDfvzjHw9ubGycMmvWrBFdnXdHKee8+62qpLm5Oc+dO7faYwAAsA9LKT2Vc27e2WPz589/ceLEie/482XYvZ/85CdNH//4x8csXbp0QW1t7dvez/z58/efOHHi6J095sgPAABQVW1tbek73/nO0LPPPvvVdxI+uyN+AACAqpk3b16fgQMHTnrllVd6felLX1rZnWu51DUAAFA1U6ZMad20adPTlVjLkR8AAKAI4gcAAHato7OzM+1+M3qCbf+uOnf1uPgBAIBde/yll14a2NbW1qsnXyWZreGzatWqARHx7K628Z4fAADYhfb29k+sXbv2k+vXrz8v5zw4HDzoyToj4tn29vYLdrWB+AEAgF046qijNkfEd7d9sZdTrgAAQBHEDwAAUATxAwAAFEH8AAAARRA/AABAEcQPAABQBPEDAAAUQfwAAABFED8AAEARxA8AAFAE8QMAABRB/AAAAEUQPwAAQBHEDwAAUATxAwAAFEH8AAAARRA/AABAEcQPAABQBPEDAAAUQfwAAABFED8A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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.46 s\n", "\n", "Total time = 95.83 s\n", "\n", "End time: 2022-12-28 12:41:36.298323\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:38.281750\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", "# 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": "09bf554d", "metadata": {}, "outputs": [], "source": [ "# print(xraxia)" ] }, { "cell_type": "code", "execution_count": 23, "id": "d833f599", "metadata": {}, "outputs": [], "source": [ "# Transverse current: Picoamp/micron^2\n", "\n", "\n", "# TC = 2.3e+03\n", "\n", "\n", "# v_diff00 = (Abeta0_vext1_node0 - Abeta1_vext1_node0)/1000 #volt\n", "# Trans_Current_node0_node0 = (v_diff00 * TC )*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 * TC *1e12/1e8 \n", "\n", "# v_diff22 = (Abeta0_vext1_node2 - Abeta1_vext1_node2)/1000 #volt\n", "# Trans_Current_node2_node2 = v_diff22 * TC *1e12/1e8 \n", "\n", "# v_diff33 = (Abeta0_vext1_node3 - Abeta1_vext1_node3)/1000 #volt\n", "# Trans_Current_node3_node3 = v_diff33 * TC *1e12/1e8 \n", "\n", "# v_diff44 = (Abeta0_vext1_node4 - Abeta1_vext1_node4)/1000 #volt\n", "# Trans_Current_node4_node4 = v_diff44 * TC *1e12/1e8 \n", "\n", "# v_diff55 = (Abeta0_vext1_node5 - Abeta1_vext1_node5)/1000 #volt\n", "# Trans_Current_node5_node5 = v_diff55 * TC *1e12/1e8 \n", "\n", "# v_diff66 = (Abeta0_vext1_node6 - Abeta1_vext1_node6)/1000 #volt\n", "# Trans_Current_node6_node6 = v_diff66 * TC *1e12/1e8 \n", "\n", "# v_diff77 = (Abeta0_vext1_node7 - Abeta1_vext1_node7)/1000 #volt\n", "# Trans_Current_node7_node7 = v_diff77 * TC *1e12/1e8 \n", "\n", "# v_diff88 = (Abeta0_vext1_node8 - Abeta1_vext1_node8)/1000 #volt\n", "# Trans_Current_node8_node8 = v_diff88 * TC *1e12/1e8 \n", "\n", "# v_diff99 = (Abeta0_vext1_node9 - Abeta1_vext1_node9)/1000 #volt\n", "# Trans_Current_node9_node9 = v_diff99 * TC *1e12/1e8 \n", "\n", "# v_diff1010 = (Abeta0_vext1_node10 - Abeta1_vext1_node10)/1000 #volt\n", "# Trans_Current_node10_node10 = v_diff1010 * TC *1e12/1e8 \n", "\n", "# v_diff1111 = (Abeta0_vext1_node11 - Abeta1_vext1_node11)/1000 #volt\n", "# Trans_Current_node11_node11 = v_diff1111 * TC *1e12/1e8 \n", "\n" ] }, { "cell_type": "code", "execution_count": 24, "id": "b812647a", "metadata": {}, "outputs": [], "source": [ "# import csv\n", "\n", "# with open('v_diff66_edgedist3_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , v_diff66 ))\n", " \n", " \n", " \n", " \n", "import csv\n", "\n", "# with open('vext1_node15_MYSA30_stimulateonlyAbeta0_edgedist1_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t ,Abeta0_vext1_node15 , Abeta0_vext1_MYSA30 )) \n", "\n", "\n", "\n", "with open('ALLExtraVoltages_stimulateonlyAbeta0_edgedist1_.csv', 'w', newline='') as f:\n", " csv.writer(f).writerows(zip( t , Abeta0_vext0_node0515 , Abeta0_vext1_node0515 , Abeta0_vext1_node015 , Abeta0_vext1_node115 , Abeta1_vext1_node0515 , boundary0_vext1_section1663 , Abeta0_vext0_node115 , Abeta0_vext0_MYSA0530 , Abeta0_vext1_MYSA0530 , Abeta0_vext0_node015))\n" ] }, { "cell_type": "markdown", "id": "8f3b15f1", "metadata": {}, "source": [ "#### saving the data" ] }, { "cell_type": "code", "execution_count": 25, "id": "890baeb5", "metadata": {}, "outputs": [], "source": [ "## saving the data\n", "\n", "\n", "import csv\n", "\n", "\n", "\n", "\n", " \n", "# with open('nodexg0changed_v_Abeta0_stimulateonlyAbeta0_edgedist1_.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('imembrane_Abeta0_stimulateBOTH_edgedist3_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_imembrane_node0 , Abeta0_imembrane_node1 , Abeta0_imembrane_node2 , Abeta0_imembrane_node3 , Abeta0_imembrane_node4 , Abeta0_imembrane_node5 , Abeta0_imembrane_node6 , Abeta0_imembrane_node7 , Abeta0_imembrane_node8 , Abeta0_imembrane_node9 , Abeta0_imembrane_node10 , Abeta0_imembrane_node11 , Abeta0_imembrane_node12 , Abeta0_imembrane_node13 , Abeta0_imembrane_node14 , Abeta0_imembrane_node15 , Abeta0_imembrane_node16 , Abeta0_imembrane_node17 , Abeta0_imembrane_node18 , Abeta0_imembrane_node19 , Abeta0_imembrane_node20 , Abeta0_imembrane_node21 , Abeta0_imembrane_node22 , Abeta0_imembrane_node23 , Abeta0_imembrane_node24 , Abeta0_imembrane_node25 , Abeta0_imembrane_node26 , Abeta0_imembrane_node27 , Abeta0_imembrane_node28 , Abeta0_imembrane_node29 , Abeta0_imembrane_node30 , Abeta0_imembrane_node31 , Abeta0_imembrane_node32 , Abeta0_imembrane_node33 , Abeta0_imembrane_node34 , Abeta0_imembrane_node35 )) \n", " \n", " \n", "\n", "# #################################### Connected to ground \n", "\n", "# with open('ConnectGround_v_Abeta0_stimulateonlyAbeta0_edgedist3_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 )) \n", "\n", "\n", "# with open('NotConnectGround_vext1_Abeta0_stimulateonlyAbeta0_edgedist1_.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", "\n", "# with open('ConnectGround_LongiCurrent_Abeta0_NodetoMYSA_stimulateonlyAbeta0_edgedist3_.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_edgedist3_.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('v_Abeta0_stimulateonlyAbeta0_edgedist3_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 )) \n", "\n", "\n", " \n", "# with open('current_Abeta0_stimulateBOTH_edgedist3_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 )) \n", "\n", "\n", "\n", "# with open('LongiCurrent_Abeta0_NodetoMYSA_stimulateonlyAbeta0_edgedist3_.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_edgedist3_.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 BOTH fibers \n", "\n", "\n", "# with open('v_Abeta0_stimulateBOTH_edgedist3_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_v_node0 , Abeta0_v_node1 , Abeta0_v_node2 , Abeta0_v_node3 , Abeta0_v_node4 , Abeta0_v_node5 , Abeta0_v_node6 , Abeta0_v_node7 , Abeta0_v_node8 , Abeta0_v_node9 , Abeta0_v_node10 , Abeta0_v_node11 )) \n", "\n", "\n", "\n", "# with open('LongiCurrent_Abeta0_NodetoMYSA_stimulateBOTH_edgedist3_.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_edgedist3_.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" ] }, { "cell_type": "code", "execution_count": 26, "id": "7a4d2e6a", "metadata": {}, "outputs": [], "source": [ "\n", "# with open('i_vext1_Abeta1_stimulateonlyAbeta0_edgedist3_.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" ] }, { "cell_type": "code", "execution_count": null, "id": "a594bc51", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 27, "id": "8e386b67", "metadata": {}, "outputs": [], "source": [ " \n", "# with open('icap_Abeta0_stimulateBOTH_edgedist3_.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('ik_Abeta0_stimulateBOTH_edgedist3_.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('il_Abeta0_stimulateBOTH_edgedist3_.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", "# with open('ina_Abeta0_stimulateonlyAbata0_edgedist1_.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 , Abeta0_ina_node12 , Abeta0_ina_node13 , Abeta0_ina_node14 , Abeta0_ina_node15 , Abeta0_ina_node16 , Abeta0_ina_node17 , Abeta0_ina_node18 , Abeta0_ina_node19 , Abeta0_ina_node20 )) \n", "\n", "# with open('imembrane_Abeta0_stimulateonlyAbata0_edgedist1_.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 )) \n", "\n", " \n", "# with open('inap_Abeta0_stimulateBOTH_edgedist3_.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('imembrane_Abeta0_stimulateBOTH_edgedist3_.csv', 'w', newline='') as f:\n", "# csv.writer(f).writerows(zip( t , Abeta0_imembrane_node0 , Abeta0_imembrane_node1 , Abeta0_imembrane_node2 , Abeta0_imembrane_node3 , Abeta0_imembrane_node4 , Abeta0_imembrane_node5 , Abeta0_imembrane_node6 , Abeta0_imembrane_node7 , Abeta0_imembrane_node8 , Abeta0_imembrane_node9 , Abeta0_imembrane_node10 , Abeta0_imembrane_node11 )) \n", " \n", " " ] }, { "cell_type": "code", "execution_count": 28, "id": "5bcb410c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9069.959345142834\n" ] } ], "source": [ "print(xr)" ] } ], "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 }