// Input/Output- Routines used by fit.hoc
proc ReadIC_and_leak() {local COUNT, i, File_NumVSteps, TStepCount,File_measTime, VStepCount
// $s1 = ExperimentName
// $s2 = LeakName (more general)
sprint(loadProg,"ClampCurrents/%s.iCl",$s1)
print " Loading ClampCurrents from " , loadProg // debug
ropen(loadProg)
File_NumVSteps=fscan()
if (File_NumVSteps!=NumVSteps) {
print "Total Number of Voltage Steps - Mismatch File<>Experiment (.iCl)"
print "File_NumVSteps: ",File_NumVSteps, "NumVSteps: ", NumVSteps
} // debug
for TStepCount=0,NumTSteps {
File_measTime=fscan()
if (File_measTime!=MeasTimes[TStepCount]) {
print "MeasTime - Mismatch File<>Experiment (.iCl)"
print "TStepCount: ",TStepCount, "File_measTime: ",File_measTime, "MeasTimes[TStepCount]: ",MeasTimes[TStepCount]
} // debug: comparing given experimental MeasTimes-Arr with meastimes in file
}
for VStepCount=0,NumVSteps-1 {
File_vclmp = fscan()
if (DebugOn) print "reading voltage: ",File_vclmp,"(VStepCount:",VStepCount,")"
if (File_vclmp!=vclmp[VStepCount]) {
print "VClmp - Mismatch (.iCl) "
print "VStepCount:", VStepCount, "File_vclmp: ",File_vclmp,"vclmp[VStepCount]:", vclmp[VStepCount]
}
for TStepCount=0,NumTSteps {
iclmp[VStepCount][TStepCount]=fscan()
}
}
ropen()
//+++++++++++++++++++++++++++++++ LEAK LEAK LEAK +++++++++++++++++
sprint(loadProg,"SimLeak/%s.iL",$s2)
print " Loading Simulated LeakCurrents from " , loadProg // debug
ropen(loadProg)
File_NumVSteps=fscan()
if (File_NumVSteps!=NumVSteps) {
print "Total Number of Voltage Steps - Mismatch File<>Experiment (.iL)"
print "File_NumVSteps: ",File_NumVSteps, "NumVSteps: ", NumVSteps
} // debug
for TStepCount=0,NumTSteps {
File_measTime=fscan()
if (File_measTime!=MeasTimes[TStepCount]) {
print "MeasTime - Mismatch File<>Experiment (.iL)"
print "TStepCount: ",TStepCount, "File_measTime: ",File_measTime, "MeasTimes[TStepCount]: ",MeasTimes[TStepCount]
} // debug: comparing given experimental MeasTimes-Arr with meastimes in file
}
for VStepCount=0,NumVSteps-1 {
File_vclmp = fscan()
if (File_vclmp!=vclmp[VStepCount]) {
print "VClmp - Mismatch (.iL)"
print "VStepCount:", VStepCount, "File_vclmp: ",File_vclmp,"vclmp[VStepCount]:", vclmp[VStepCount]
}
for TStepCount=0,NumTSteps {
leak[VStepCount][TStepCount]=fscan()
}
}
ropen()
}
proc Write() {local FitTStepCount, FitTPoint, VStepCount
// $s1 = Output-Filename
print "Writing Conductances to ", $s1
wopen($s1)
// fprint("V/mV\t")
fprint("\t")
for VStepCount=0,int(gDKVRange/OutputVScale) { //writing voltage-scale
fprint("%g\t",OutputVScale*VStepCount-gDKVPointerConverter) // taking original array-pointer-conversion into account
}
fprint("\n")
for FitTStepCount=0,NumFitTPoints {
FitTPoint =FitTPoints[FitTStepCount]
fprint("%g\t",MeasTimes[FitTPoint])
for VStepCount=0,int(gDKVRange/OutputVScale) {
fprint("%g\t",gbar[OutputVScale*VStepCount][gbarTRes*MeasTimes[FitTPoint]])
}
fprint("\n")
}
wopen()
}