// Parameters for Experiment, to be loaded first strdef iClampFileName, loadProg objref vC, sh, st load_file("stdgui.hoc") {load_proc("nrnmainmenu") nrnmainmenu()} load_file("twoclamp.hoc") strdef ExperimentName, CellName, CellFileName, CurrentFileName objref stimSec,VProtocol,VProtocolTVector ExperimentName = "cylinder" sprint(CurrentFileName,"ClampCurrents/%s.iCl",ExperimentName) CellName = "cylinder" // to be included later print "reading experimental Parameters from File",ExperimentName,".exp.par" // ++++ CELL PARAMETERS ++++ // Cell-Morphology, Passive and active Parameters // the following is inserted later ra = 250 global_ra = ra rm = 20000 c_m = 0.75 v_init = -110 celsius = 22 Ek = -80 Eca = 60 Epas = -65 gKslow = 0 gKfast = 50 gKv = 0 gKm = 0 gKap = 0 ReduceCell = 0 sprint(CellFileName,"cells/%s.cell",CellName) {xopen(CellFileName)} // Load Cell // defining VClamp-location: somaA stimSec = new SectionRef() stimPosI=0.5 stimPosV=0.5 // CELL - manipulations: // reducing cell model: if (ReduceCell) { xopen("ReduceModel.cell") ReduceModel() } // inserting PASSIVE & ACTIVE properties: forall { // passive: insert pas Ra = ra cm = c_m g_pas = 1/rm e_pas = Epas // active: if (gKslow!=0) { insert kslow gbar_kslow = gKslow // explicitely set above } if (gKfast!=0) { insert kfast gbar_kfast = gKfast } if (gKv!=0) { insert kv gbar_kv = gKv } if (gKm!=0) { insert km gbar_km = gKm } if (gKap!=0) { insert kap gkabar_kap = gKap } ek=Ek } //++++ VCLAMP- PARAMETERS: // setting duration and amplitude of clamp-protocol: VClampSeriesR = 1e-5 // setting it to something like ideal to accopunt for TEVC VProtocolNumSteps = 4 // including final (fit-) step double DTSteps[VProtocolNumSteps] double VProtocolTstart[VProtocolNumSteps] VProtocol = new Vector(VProtocolNumSteps) VProtocolTVector = new Vector(VProtocolNumSteps) VProtocol.x[0] = -110 DTSteps[0] = 100 VProtocolTstart[0] = 0 VProtocol.x[1] = -110 DTSteps[1] = 10 VProtocolTstart[1] = 8000 // start times! VProtocol.x[2] = -110 DTSteps[2] = 0.1 VProtocolTstart[2] = 8400 VProtocol.x[3] = -80 DTSteps[3] = 0.025 VProtocolTstart[3] = 8410 // i.e. beginning of measurements MeasTStart = VProtocolTstart[VProtocolNumSteps-1] // beginning of measurements for VProtCount=1,VProtocolNumSteps-1 { // make sure that voltage will be // =VProtocol[x] for TStart[x] <= t < TStart[x+1] VProtocolTVector.x[VProtCount]=VProtocolTstart[VProtCount]-DTSteps[VProtCount] } Experimental_dt = 0.025 // basic integration time step // Voltage - Steps: NumVSteps = 16 VStep = 10 // height of VStep FirstVStep = 2 // VStep to start Fit Routine at LastVStep = NumVSteps-1 VStepDirection = 1 // for toggling backward/forward calculation Vmin = -80 double vclmp[NumVSteps] //Voltages starting at COUNT=0!! for VStepCount=0,NumVSteps-1 {//array starts at 0 vclmp[VStepCount] =Vmin+VStepCount*VStep} // Initializing VClamp- Array // ++++ TIMES ++++ Experimental_dt = 0.025 // basic integration time step // Time - Steps: // timescale in experimental data: MaxMeasTime = 50 // unit is ms!! ExpTRes = 10 // steps per ms NumTSteps = ExpTRes*MaxMeasTime // i.e. number of timepoints at which // experiment is supposed to be done double MeasTimes[NumTSteps+1] // including time ZERO // Initialize ExpMeasTimepoint-Array (must match timescale in *.iCl: for TStepCount=0, NumTSteps MeasTimes[TStepCount]=TStepCount* 1/ExpTRes //times in [ms]!! // ++++ CURRENTS AND CONDUCTANCES ++++ // IClamp-Array for exp. data: double iclmp[NumVSteps][NumTSteps+1] // corresponding Ileak-Array: double leak[NumVSteps][NumTSteps+1] // Clamp Voltage array double VClmp[NumVSteps][NumTSteps+1] DebugOn = 0