// The goal of this experiment is to insure that our cell responses
// are reasonably similar to the data on back propagating action potentials
// where the site of current injection is either at the soma or the apical trunk
//load_proc("nrnmainmenu") // load main NEURON library
//load_template("ExperimentControl") // load a custom made library function that centralizes parameters so as to
load_file("nrngui.hoc") // load main NEURON library
load_file("CA1_multi/template/load_templates.hoc")
strdef accstr // not confuse experimental variable bindings with neurophysiological variable bindings
objref econ // Create an experiment object
show_errs=1
debug_lev=1
econ=new ExperimentControl(show_errs,debug_lev)
econ.self_define(econ) // points the object at itself
econ.morphology_dir = "CA1_multi/morphology/old20100419cell1" // Setup morphology directory
econ.generic_dir = "CA1_multi/experiment/" // Setup directory with cell-setup file
econ.add_lib_dir("Terrence","CA1_multi/lib") // Setup directory with library functions
if (unix_mac_pc() ==1 ) {
econ.data_dir = "CA1_multi/data" // Define directory to save produced data
sprint(econ.syscmd, "mkdir -p %s", econ.data_dir) // make the data directory
system(econ.syscmd)
}
// Setup cell
//econ.xopen_geometry_dependent("cell") // load the raw cell morphology
econ.xopen_geometry_dependent("old20100419cell1_topadj")
econ.xopen_geometry_dependent("cell-analysis") // load user-defined semantics on morphology
cell_analysis(econ)
printf("Opening cell setup\n")
econ.xopen_generic("cell-setup") // load the cell-setup file (define specific
printf("Opened. Setting up cell\n") // channels, membrane properties etc)
cell_setup(econ)
// Set simulation parameters for the experiment
econ.defvar("Simulation Control", "tstop", "750", "Defines when the simulation stops.")
econ.defvar("Simulation Control", "dt", "0.1", "Timestep")
econ.defvar("Simulation Control", "steps_per_ms", "10", "How many points are plotted per ms")
setdt()
// Define directories for different cases tested
strdef data_dir
//data_dir = "data/BPAP/Soma" // Define directory to save produced data for somatic stimulation
//data_dir = "data/BPAP/Dend62" // Define directory to save produced data for dendrite 62 stimulation
data_dir = "data/BPAP/Dend64" // Define directory to save produced data for dendrite 64 stimulation
if (unix_mac_pc() ==1 ) {
sprint(econ.syscmd, "mkdir -p %s", data_dir) // make directory
//system(econ.syscmd)
}
// Insert current clamp into soma or dendritic section
somaind = 0
//access soma[somaind] // uncomment this for poirazi who has multiple somatic compartments
access soma
proc usetables() { local usetab
usetab = $1
usetable_mykca = usetab
usetable_calH = usetab
usetable_cal = usetab
usetable_car = usetab
usetable_cat = usetab
usetable_hha2 = usetab
usetable_hha_old = usetab
usetable_kad = usetab
usetable_kap = usetab
usetable_km = usetab
usetable_nap = usetab
usetable_somacar = usetab
}
usetables(0)
// This function is used to override the function
// apical_caR_calH_insert()in CA1_multi/experiment/cell-setup.hoc
// The only difference is that the density of the HVA L-type channel is
// the same throughout the dendritic tree
proc cell_mods_apical_caR_caLH_insert() {
forsec apical_trunk_list {
for (x) {
xdist = find_vector_distance_precise(secname(),x)
insert car
gcabar_car(x) = 0.1*soma_car
insert calH
// if (xdist > 50) {
gcalbar_calH(x) = 4.6*soma_caLH
// } else {
// gcalbar_calH(x) = 0.1*soma_caLH
// }
}
}
}
proc cell_mods_original_apical_caR_caLH_insert() {
forsec apical_trunk_list {
apical_caR_caLH_insert()
}
}
cell_mods_apical_caR_caLH_insert()
// Set up the reference axis
// The base is suppose to be the cell body layer
apical_dendrite[1] base = new SegmentRef(0)
// The apex is around the bifurcation of the apical dendritic tree
apical_dendrite[26] apex = new SegmentRef(0.5)
// This is an adjustment for the distance of the true soma location
ra_adjustment = adjustment