// File for implementing photocurent input into the photoreceptor layer
load_file("create_Cells.hoc")
load_file("Parameters.hoc")
objref darkinput_PR_upper[PR_total_upper_cells], darkinput_PR_lower[PR_total_lower_cells]
objref brightinput_PR_upper[PR_total_upper_cells], brightinput_PR_lower[PR_total_lower_cells]
objref input_amps, input_times
objref sav_input_amps, sav_input_times
number_pulses = 16
delay = 400
proc create_Input() {
input_amps = new Vector(number_pulses+1)
input_times = new Vector(number_pulses+1)
// 2*RodStimAmp to reach threshold value
for(i = 0; i < number_pulses; i = i + 2) {
input_amps.x[i] = (i*0.1*RodStimAmp)/1000
input_amps.x[i+1] = ((-i*0.1)*RodStimAmp)/1000
input_times.x[i] = delay + i*500
input_times.x[i+1] = delay + (i+1)*500
}
input_amps.x[number_pulses] = 0
input_times.x[number_pulses] = input_times.x[number_pulses-1] + 500
for i = 0, PR_total_upper_cells - 1 {
if(PR_upper_cell_type.x[i][0] == 1) {
PR_upper[i].soma darkinput_PR_upper[i] = new IinjLTDim(0.5)
darkinput_PR_upper[i].amp = 0
darkinput_PR_upper[i].ssI = 100 // steady state gray value
darkinput_PR_upper[i].del = 0
darkinput_PR_upper[i].ton = Simul_Time
PR_upper[i].soma brightinput_PR_upper[i] = new IClamp(0.5)
brightinput_PR_upper[i].del = 0
brightinput_PR_upper[i].dur = 1e9
input_amps.play(&brightinput_PR_upper[i].amp, input_times, 1)
}
if(PR_upper_cell_type.x[i][0] == 2) {
PR_upper[i].soma darkinput_PR_upper[i] = new IinjLT_cone(0.5)
darkinput_PR_upper[i].amp = 0
darkinput_PR_upper[i].ssI = 100
darkinput_PR_upper[i].del = 0
darkinput_PR_upper[i].ton = Simul_Time
PR_upper[i].soma brightinput_PR_upper[i] = new IClamp(0.5)
brightinput_PR_upper[i].del = 0
brightinput_PR_upper[i].dur = 1e9
input_amps.play(&brightinput_PR_upper[i].amp, input_times, 1)
}
}
for i = 0, PR_total_lower_cells - 1 {
if(PR_lower_cell_type.x[i][0] == 1) {
PR_lower[i].soma darkinput_PR_lower[i] = new IinjLTDim(0.5)
darkinput_PR_lower[i].amp = 0
darkinput_PR_lower[i].ssI = 100
darkinput_PR_lower[i].del = 0
darkinput_PR_lower[i].ton = Simul_Time
PR_lower[i].soma brightinput_PR_lower[i] = new IClamp(0.5)
brightinput_PR_lower[i].del = 0
brightinput_PR_lower[i].dur = 1e9
input_amps.play(&brightinput_PR_lower[i].amp, input_times, 1)
}
if(PR_lower_cell_type.x[i][0] == 2) {
PR_lower[i].soma darkinput_PR_lower[i] = new IinjLT_cone(0.5)
darkinput_PR_lower[i].amp = 0
darkinput_PR_lower[i].ssI = 100
darkinput_PR_lower[i].del = 0
darkinput_PR_lower[i].ton = Simul_Time
PR_lower[i].soma brightinput_PR_lower[i] = new IClamp(0.5)
brightinput_PR_lower[i].del = 0
brightinput_PR_lower[i].dur = 1e9
input_amps.play(&brightinput_PR_lower[i].amp, input_times, 1)
}
}
sav_input_amps = new File()
sav_input_amps.wopen("Matrices/input_amps.csv")
input_amps.printf(sav_input_amps)
sav_input_amps.close
sav_input_times = new File()
sav_input_times.wopen("Matrices/input_times.csv")
input_times.printf(sav_input_times)
sav_input_times.close
}