//Papoutsi,Kastellakis,Poirazi, J. Neurophysiology 2017
//Simulations reproduce Figure 7 (PFC microcircuits)
//Adjusted for single-tasking
//Set simulation setup
load_proc("nrnmainmenu")
cvode_active(0)
tstop=4000
dt=0.1
steps_per_ms=10
setdt()
//Biophysical properties of pyramidal neurons and interneuron
xopen ("L5PFC_biophysics.hoc")
xopen("incell.hoc")
//To be used for the microcircuit setup and stimulation
xopen("microcircuit.hoc")
xopen("time_stim.hoc")
xopen("background_noise.hoc")
//Graphs
xopen("basic-graphics.hoc")
for j=0, (nPcells-1) {addgraph_2("Pcells[j].soma.v(0.5)", 0,tstop, -70, -30)}
addgraph("INcells[0].soma.v",0 ,-70, -50, tstop)
//Synaptic Weights
nmdaweight = 0.2 //Pyramidal to pyramidal NMDA conductance, for 1.1 iNMDA-to-iAMPA ratio (Wang,Gao,200). For ratio 0.9 use: 0.16/For ratio 1.3 use:0.25
ampaweight= 0.000058 //Pyramidal to pyramidal AMPA conductance (Wang,Gao,200).
ampaweightin= 7.5e-4 //According to Wang,Gao,2009
nmdaweightin= 3.2e-4 //Ratio inmda/iampa for interneuron *0.5(Wang,Gao,2009)
gabaaweight= 6.9e-4 //According to Woo(2007)
gababweight= 1.05e-4
bc_inh=106 //Number of spontaneously activated excitatory synapses of the interneuron model. Number of synapses=2 synapses*length.
maxsynpi=2 //PC-IN connections (Thomson, 2007)
maxsynip=4 //IN-PC connections (Peters,2008,Tamas,1997,J.Physiology,Perez,Larkum,2006)
syn_basal_con=5
perc_back_ap=1 //All synapses (2synapses*length) are spontaneously active along the apical tree
perc_back_bas=1 //All synapses (2synapses*length) are spontaneously active along the basal tree
s_Hz=0.1 //Frequency of poisson process
//Make directory to save data
strdef data_dir,tempstr
objref vsoma[nPcells], somaref[nPcells], vinsoma, insomaref
sprint(data_dir, "coincidence/back_microcirc_scaled_original/cl%d_int%d",cl_id,interval_t)
sprint(tempstr,"mkdir -p %s", data_dir)
system(tempstr)
//---------------------------------------------------RUN SIMULATION----------------------------------------------------//
//connect pyramidal neurons
connect_pyrb(num_run)
//connecte pyramidal neurons with interneuron
connect_pyrin(num_run)
//Include to simulate spontaneous input
//background(num_run,s_Hz)
//Stimulation
time_stim(nPcells,interval_t,num_run)
//Record and save data
for cn=0, nPcells-1 {
vsoma[cn] = new Vector()
vsoma[cn].record(&Pcells[cn].soma[0].v(0.5))
}
vinsoma=new Vector()
vinsoma.record(&INcell[0].soma.v(0.5))
run()
for cn=0, nPcells-1 {
somaref[cn] = new File()
sprint(tempstr, "%s/soma_%d_run_%d.dat",data_dir, cn, num_run)
somaref[cn].wopen(tempstr)
vsoma[cn].printf(somaref[cn], "%f\n")
somaref[cn].close()
}
insomaref = new File()
sprint(tempstr, "%s/insoma_run_%d.dat",data_dir, num_run)
insomaref.wopen(tempstr)
vinsoma.printf(insomaref, "%f\n")
insomaref.close()