//Control crated by Oscar Javier Avella from modifications on Ronald vn Elburg
//Neuron-files
// --------------------------------------------------------------
// Loading Standard Menus
// --------------------------------------------------------------
UseGui=1
if(UseGui==1){
load_file("nrngui.hoc")
nrnmainmenu()
runStopAt=tstop
runStopIn = 100
nrncontrolmenu()
}
// --------------------------------------------------------------
// --------------------------------------------------------------
if(UseGui==1){
load_file("../Instrum_Visualize/spikeplot2.hoc")
}else{
load_file("emptyGUIClasses.hoc")
}
create cvode_init_dummy // CVode needs an accessed section for some of the settings to take effect
access cvode_init_dummy
Ra=150
load_file("../MRC/cvode_init.hoc")
// Set a few Global Flags
useprtmymes=0 // Setting this flag to one will make the template cells produce basic debugging info
screen_update_invl=0.05 // Screen Update Interval of GUI
// General simulation related settings
dt = 0.025 //time step
//tstop = 1200 //1 second simulation
steps_per_ms = 40
//celsius = 37 // temperature scales kinetics of active currents
//load_file("./in_process/functions_net_bgk_multitest_sparse_onboard.hoc")
load_file("functions_net_bgk_multitest_sparse.hoc")
//load_file("functions_net_bgk_multitest.hoc") //Load the network's builder-administrator
//load_file("functions_net_bgk_testING.hoc") //Load the network's builder-administrator
strdef win_title,win_title1
objref SP_FS[n_layerFS],SP_pyr[n_layerP] //,SP_NS[fs_popul+pyram_popul] references to spikeplots
objref SP_NS[n_layerP+n_layerFS] //references to spikeplots
//creating layers
//==================================================================================
//==================================================================================
if(n_layerP && n_P>0){
for i=0, n_layerP-1{
if(layerP[i].count()>0){
sprint(win_title1, "Pyramidal Cells Population # %d", i)
SP_pyr[i]= new SpikePlot2(layerP[i],0,win_title1)
}
}
}
if(n_layerFS>0 && n_FS>0){
for i=0, n_layerFS-1{
if(layerFS[i].count()>0){
sprint(win_title, "Fast Spiking Cells Population # %d", i)
SP_FS[i] = new SpikePlot2(layerFS[i],0,win_title)
}
}
}
//==================================================================================
//==================================================================================
//creating vectors to save the data
objref yvec1[n_layerFS], tvec1[n_layerFS], yvec3[n_layerP], tvec3[n_layerP]
objref yvec2[n_layerFS], tvec2[n_layerFS], yvec4[n_layerP], tvec4[n_layerP]
objref TracePlot
strdef buttontext, buttoncomand
if(UseGui==1){
}
if(n_P>0&&n_FS>0&&n_layerP==1&&n_layerFS==1){
load_file("sessions/DrivePower_run_mono_no_spk.ses")
flag_p=1
}else{
if(n_layerP==2&&n_layerFS==2){
load_file("sessions/DrivePower_run_multi.ses")
flag_p=2
}
}
load_file("./sessions/parameters.hoc")
print_parameters(flag_p,nme)
//creating vectors to save single cells voltage trace data
objref yvec1[n_layerFS], tvec1[n_layerFS], yvec3[n_layerP], tvec3[n_layerP]
objref yvec2[n_layerFS], tvec2[n_layerFS], yvec4[n_layerP], tvec4[n_layerP]
objref TracePlot
strdef buttontext, buttoncomand
if(UseGui==1){
newPlot(0,tstop,-100,60)
TracePlot = graphItem
if(n_layerFS>0 && n_FS>0){
for i=0,n_layerFS-1{
yvec1[i]= new Vector()
tvec1[i]= new Vector()
if(layerFS[i].count()>0){
layerFS[i].object(int(n_FS/2)).soma cvode.record(&v(0.5), yvec1[i], tvec1[i])
yvec2[i] = new Vector()
tvec2[i] = new Vector()
layerFS[i].object(0).soma cvode.record(&v(0.5), yvec2[i], tvec2[i])
}
}
}
if(n_layerP>0 && n_P>0){
for i=0,n_layerP-1{
yvec3[i] = new Vector()
tvec3[i] = new Vector()
if(layerP[i].count()>0){
layerP[i].object(int(n_P/2)).soma cvode.record(&v(0.5), yvec3[i], tvec3[i])
//layerP[i].object(87).soma cvode.record(&v(0.5), yvec3[i], tvec3[i])
yvec4[i] = new Vector()
tvec4[i] = new Vector()
layerP[i].object(0).soma cvode.record(&v(0.5), yvec4[i], tvec4[i])
}
}
}
xpanel("Plot Traces")
if(n_layerFS>0 && n_FS>0){
for i=0,n_layerFS-1{
if(layerFS[i].count()>0){
sprint(buttontext,"Center FS Cell from Population %d",i)
sprint(buttoncomand,"yvec1[%d].plot(TracePlot,tvec1[%d],3.3,2.5)",i,i)
xbutton(buttontext,buttoncomand)
sprint(buttontext,"Boundary FS Cell from Population %d",i)
sprint(buttoncomand,"yvec2[%d].plot(TracePlot,tvec2[%d],3.3,2.8)",i,i)
xbutton(buttontext,buttoncomand)
}
}
}
if(n_layerP>0 && n_P>0){
for i=0,n_layerP-1{
if(layerP[i].count()>0){
sprint(buttontext,"Boundary Pyramidal from Population %d",i)
sprint(buttoncomand,"yvec4[%d].plot(TracePlot,tvec4[%d],2,0.9)",i,i)
xbutton(buttontext,buttoncomand)
sprint(buttontext,"Center Pyramidal from Population %d",i)
sprint(buttoncomand,"yvec3[%d].plot(TracePlot,tvec3[%d],2,0.7)",i,i)
xbutton(buttontext,buttoncomand)
}
}
}
xpanel()
}
if(n_P>0&&n_FS>0&&n_layerP==1&&n_layerFS==1){
load_file("sessions/DrivePower_run_mono_no_spk.ses")
flag_p=1
}else{
if(n_layerP>=2||n_layerFS>=2){
load_file("sessions/DrivePower_run_multi.ses")
flag_p=2
}
}
load_file("./sessions/parameters.hoc")
print_parameters(flag_p,nme)
//==================================================================================================================
//==================================================================================================================
load_file("./sessions/Spk_rec_pre.hoc")
load_file("./sessions/Spk_rec_post.hoc")
//run()
//prt2file(word,wrd2)