// File for dynamically saving all responses from each array
// DO NOT RUN IF COMPUTATIONAL TIME IS AN ISSUE
load_file("create_Cells.hoc")
load_file("read_population.hoc")
load_file("Parameters.hoc")
objref rect, savt
objref rec_PR_upper[PR_total_upper_cells], rec_PR_lower[PR_total_lower_cells], sav_PR_upper[PR_total_upper_cells], sav_PR_lower[PR_total_lower_cells]
objref rec_HZ_upper[HZ_total_upper_cells], rec_HZ_lower[HZ_total_lower_cells], sav_HZ_upper[HZ_total_upper_cells], sav_HZ_lower[HZ_total_lower_cells]
objref rec_BIP_upper[BIP_total_upper_cells], rec_BIP_lower[BIP_total_lower_cells], sav_BIP_upper[BIP_total_upper_cells], sav_BIP_lower[BIP_total_lower_cells]
objref rec_AII_upper[AII_total_upper_cells], rec_AII_lower[AII_total_lower_cells], sav_AII_upper[AII_total_upper_cells], sav_AII_lower[AII_total_lower_cells]
objref rec_RGC_soma[num_gang], sav_RGC_soma[num_gang], rec_RGC_axon[num_gang], sav_RGC_axon[num_gang]
proc record_t () {
rect = new Vector()
rect.record(&t, sample_time)
savt = new File()
savt.wopen("Cell responses/t.csv")
}
proc save_t() {
rect.printf(savt)
savt.close()
}
proc record_PR_response() {
strdef generate_sav_file
for i = 0, PR_total_upper_cells - 1 {
rec_PR_upper[i] = new Vector()
rec_PR_upper[i].record(&PR_upper[i].soma.v(0.95), sample_time)
sav_PR_upper[i] = new File()
sprint(generate_sav_file, "Cell responses/PRs/PR_upper_%d.csv", i)
sav_PR_upper[i].wopen(generate_sav_file)
}
for i = 0, PR_total_lower_cells - 1 {
rec_PR_lower[i] = new Vector()
rec_PR_lower[i].record(&PR_lower[i].soma.v(0.95), sample_time)
sav_PR_lower[i] = new File()
sprint(generate_sav_file, "Cell responses/PRs/PR_lower_%d.csv", i)
sav_PR_lower[i].wopen(generate_sav_file)
}
}
proc save_PR_response() {
for i = 0, PR_total_upper_cells - 1 {
rec_PR_upper[i].printf(sav_PR_upper[i])
sav_PR_upper[i].close()
}
for i = 0, PR_total_lower_cells - 1 {
rec_PR_lower[i].printf(sav_PR_lower[i])
sav_PR_lower[i].close()
}
}
proc record_HZ_response() {
strdef generate_sav_file
for i = 0, HZ_total_upper_cells - 1 {
rec_HZ_upper[i] = new Vector()
rec_HZ_upper[i].record(&HZ_upper[i].soma.v(0.0555556), sample_time)
sav_HZ_upper[i] = new File()
sprint(generate_sav_file, "Cell responses/HZs/HZ_upper_%d.csv", i)
sav_HZ_upper[i].wopen(generate_sav_file)
}
for i = 0, HZ_total_lower_cells - 1 {
rec_HZ_lower[i] = new Vector()
rec_HZ_lower[i].record(&HZ_lower[i].soma.v(0.0555556), sample_time)
sav_HZ_lower[i] = new File()
sprint(generate_sav_file, "Cell responses/HZs/HZ_lower_%d.csv", i)
sav_HZ_lower[i].wopen(generate_sav_file)
}
}
proc save_HZ_response() {
for i = 0, HZ_total_upper_cells - 1 {
rec_HZ_upper[i].printf(sav_HZ_upper[i])
sav_HZ_upper[i].close()
}
for i = 0, HZ_total_lower_cells - 1 {
rec_HZ_lower[i].printf(sav_HZ_lower[i])
sav_HZ_lower[i].close()
}
}
proc record_BIP_response() {
strdef generate_sav_file
for i = 0, BIP_total_upper_cells - 1 {
rec_BIP_upper[i] = new Vector()
rec_BIP_upper[i].record(&BIP_upper[i].soma.v(0.95), sample_time)
sav_BIP_upper[i] = new File()
sprint(generate_sav_file, "Cell responses/BIPs/BIP_upper_%d.csv", i)
sav_BIP_upper[i].wopen(generate_sav_file)
}
for i = 0, BIP_total_lower_cells - 1 {
rec_BIP_lower[i] = new Vector()
rec_BIP_lower[i].record(&BIP_lower[i].soma.v(0.95), sample_time)
sav_BIP_lower[i] = new File()
sprint(generate_sav_file, "Cell responses/BIPs/BIP_lower_%d.csv", i)
sav_BIP_lower[i].wopen(generate_sav_file)
}
}
proc save_BIP_response() {
for i = 0, BIP_total_upper_cells - 1 {
rec_BIP_upper[i].printf(sav_BIP_upper[i])
sav_BIP_upper[i].close()
}
for i = 0, BIP_total_lower_cells - 1 {
rec_BIP_lower[i].printf(sav_BIP_lower[i])
sav_BIP_lower[i].close()
}
}
proc record_AII_response() {
strdef generate_sav_file
for i = 0, AII_total_upper_cells - 1 {
rec_AII_upper[i] = new Vector()
rec_AII_upper[i].record(&AII_upper[i].soma.v(0.95), sample_time)
sav_AII_upper[i] = new File()
sprint(generate_sav_file, "Cell responses/AIIs/AII_upper_%d.csv", i)
sav_AII_upper[i].wopen(generate_sav_file)
}
for i = 0, AII_total_lower_cells - 1 {
rec_AII_lower[i] = new Vector()
rec_AII_lower[i].record(&AII_lower[i].soma.v(0.95), sample_time)
sav_AII_lower[i] = new File()
sprint(generate_sav_file, "Cell responses/AIIs/AII_lower_%d.csv", i)
sav_AII_lower[i].wopen(generate_sav_file)
}
}
proc save_AII_response () {
for i = 0, AII_total_upper_cells - 1 {
rec_AII_upper[i].printf(sav_AII_upper[i])
sav_AII_upper[i].close()
}
for i = 0, AII_total_lower_cells - 1 {
rec_AII_lower[i].printf(sav_AII_lower[i])
sav_AII_lower[i].close()
}
}
proc record_RGC_response() {
strdef generate_sav_file
for i = 0, num_gang - 1 {
rec_RGC_soma[i] = new Vector()
rec_RGC_soma[i].record(&Ganglion[i].soma[0].v(0.5), sample_time)
sav_RGC_soma[i] = new File()
sprint(generate_sav_file, "Cell responses/RGCs/RGC_soma_%d.csv", i)
sav_RGC_soma[i].wopen(generate_sav_file)
rec_RGC_axon[i] = new Vector()
rec_RGC_axon[i].record(&Ganglion[i].axon[600].v(0.5), sample_time)
sav_RGC_axon[i] = new File()
sprint(generate_sav_file, "Cell responses/RGCs/RGC_axon_%d.csv", i)
sav_RGC_axon[i].wopen(generate_sav_file)
}
}
proc save_RGC_response() {
for i = 0, num_gang - 1 {
rec_RGC_soma[i].printf(sav_RGC_soma[i])
sav_RGC_soma[i].close()
rec_RGC_axon[i].printf(sav_RGC_axon[i])
sav_RGC_axon[i].close()
}
}
proc record_response() {
record_t ()
record_PR_response()
record_HZ_response()
record_BIP_response()
record_AII_response()
record_RGC_response()
}
proc save_response() {
save_t()
save_PR_response()
save_HZ_response()
save_BIP_response()
save_AII_response()
save_RGC_response()
}