#!/usr/bin/python
from neuron import h
from neuron import gui
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import sys
import pickle
import time
startTime = time.time()
h.load_file("nrngui.hoc")
h.load_file("import3d.hoc")
h.tstop = 250
h.v_init = 64
sectionNum = 44;
h.load_file("L5PCbiophys3_noActive.hoc")
h.load_file("TTC.hoc")
h("objref L5PC")
h.L5PC = h.TTC("cell1.asc")
h("forall nseg = 1")
h("forall e_pas = 70")
h("access L5PC.apic[" + str(sectionNum) + "]")
eSynlist = []
ePreconlist = []
iPreconlist = []
eStimlist = []
iStimlist = []
iSynlista = []
def placeNMDA(location):
eStimlist.append(h.NetStim())
eStimlist[1].interval = 1
eStimlist[1].number = 1
eStimlist[1].start = 100
eStimlist[1].noise = 0
eSynlist.append(h.ProbAMPANMDA2_RATIO(location))
eSynlist[1].gmax = 0.0004
eSynlist[1].mgVoltageCoeff = 0.08
ePreconlist.append(h.NetCon(eStimlist[1], eSynlist[1]))
ePreconlist[1].weight[0] = 1
ePreconlist[1].delay = 0
def placeGABA(location):
iStimlist.append(h.NetStim())
iStimlist[1].interval = 1
iStimlist[1].number = 1
iStimlist[1].start = 100
iStimlist[1].noise = 0
iSynlista.append(h.ProbUDFsyn2_lark(location))
iSynlista[1].tau_r = 0.18
iSynlista[1].tau_d = 5
iSynlista[1].e =  80
iSynlista[1].Dep = 0
iSynlista[1].Fac = 0
iSynlista[1].Use = 0.6
iSynlista[1].u0 = 0
iSynlista[1].gmax = 0.0007
iPreconlist.append(h.NetCon(iStimlist[1], iSynlista[1]))
iPreconlist[1].weight[0] = 1
iPreconlist[1].delay = 0
voltageVector = h.Vector()
timeVector = h.Vector()
tempVector = h.Vector()
delaysVoltageVector = {}
delaysVoltageNumpy = {}
voltageVector.record(h.L5PC.apic[sectionNum](0.5)._ref_v)
timeVector.record(h._ref_t)
h("access L5PC.apic[" + str(sectionNum) + "]")
h("nseg = 1000")
for i in range(1):
for location in np.linspace(0.2,0.7,20):
placeNMDA(location)
for location in np.linspace(0.915,0.915,1):
placeGABA(location)
for location in np.linspace(0.5,0.5,1):
placeGABA(location)
for location in np.linspace(0.084205474,0.084205474,1):
placeGABA(location)
h.finitialize()
h.run()
vec = h.Vector()
vec.copy(voltageVector)
delayDiff = 1
delays = np.array([100000] + list(np.arange(20, 60, delayDiff)))
locs = ['far','middle','close']
delaysVoltageNumpy
for loc_ind in range(3):
for loc_ind_other in range(3):
iSynlista[loc_ind_other].gmax = 0
iSynlista[loc_ind].gmax = 0.001
delaysVoltageNumpy[locs[loc_ind]] = {}
for delay in delays:
for stim in iStimlist:
stim.start = 100 + delay
h.run()
delaysVoltageVector[delay] = h.Vector()
delaysVoltageVector[delay].copy(voltageVector)
delaysVoltageNumpy[locs[loc_ind]][delay] = np.array(delaysVoltageVector[delay])
pickle.dump(delaysVoltageNumpy, open('figure_02_data.pickle', 'wb'),protocol=2)
