// File for saving matrices
objref PR_upper_param, PR_lower_param
objref HZ_upper_param, HZ_lower_param
objref BIP_upper_param, BIP_lower_param
objref AII_upper_param, AII_lower_param
objref RGC_param
objref sav_PR_upper_param, sav_PR_lower_param
objref sav_HZ_upper_param, sav_HZ_lower_param
objref sav_BIP_upper_param, sav_BIP_lower_param
objref sav_AII_upper_param, sav_AII_lower_param
objref sav_RGC_param
proc sav_PR_Parameters() {
// 1 = cell type
// 2 = x position
// 3 = y position
PR_upper_param = new Matrix(PR_total_upper_cells, 5)
for i = 0, PR_total_upper_cells - 1 {
PR_upper_param.x[i][0] = PR_upper_cell_type.x[i][0]
PR_upper_param.x[i][1] = PR_upper_index.x[i][0]
PR_upper_param.x[i][2] = PR_upper_positions.x[i][0]
PR_upper_param.x[i][3] = PR_upper_positions.x[i][1]
PR_upper_param.x[i][4] = (IPL_GCL_Thickness + INL_Thickness + OPL_Thickness + ONL_PIS_Thickness)*1000
}
sav_PR_upper_param = new File()
sav_PR_upper_param.wopen("Matrices/PR_upper_parameters.txt")
PR_upper_param.fprint(sav_PR_upper_param, "%-16g")
sav_PR_upper_param.close()
PR_lower_param = new Matrix(PR_total_lower_cells, 5)
for i = 0, PR_total_lower_cells - 1 {
PR_lower_param.x[i][0] = PR_lower_cell_type.x[i][0]
PR_lower_param.x[i][1] = PR_lower_index.x[i][0]
PR_lower_param.x[i][2] = PR_lower_positions.x[i][0]
PR_lower_param.x[i][3] = PR_lower_positions.x[i][1]
PR_lower_param.x[i][4] = (IPL_GCL_Thickness + INL_Thickness + OPL_Thickness + ONL_PIS_Thickness)*1000
}
sav_PR_lower_param = new File()
sav_PR_lower_param.wopen("Matrices/PR_lower_parameters.txt")
PR_lower_param.fprint(sav_PR_lower_param, "%-16g")
sav_PR_lower_param.close()
}
proc sav_HZ_parameters() {
// 1 = number of PRs connected
// 2 = x position
// 3 = y position
HZ_upper_param = new Matrix(HZ_total_upper_cells, 4)
for i = 0, HZ_total_upper_cells - 1 {
HZ_upper_param.x[i][0] = num_PR_2_HZ_upper.x[i]
HZ_upper_param.x[i][1] = HZ_upper_positions.x[i][0]
HZ_upper_param.x[i][2] = HZ_upper_positions.x[i][1]
HZ_upper_param.x[i][3] = (IPL_GCL_Thickness + INL_Thickness + OPL_Thickness)*1000
}
sav_HZ_upper_param = new File()
sav_HZ_upper_param.wopen("Matrices/HZ_upper_parameters.csv")
HZ_upper_param.fprint(sav_HZ_upper_param, "%-16g")
sav_HZ_upper_param.close()
HZ_lower_param = new Matrix(HZ_total_lower_cells, 4)
for i = 0, HZ_total_lower_cells - 1 {
HZ_lower_param.x[i][0] = num_PR_2_HZ_lower.x[i]
HZ_lower_param.x[i][1] = HZ_lower_positions.x[i][0]
HZ_lower_param.x[i][2] = HZ_lower_positions.x[i][1]
HZ_lower_param.x[i][3] = (IPL_GCL_Thickness + INL_Thickness + OPL_Thickness)*1000
}
sav_HZ_lower_param = new File()
sav_HZ_lower_param.wopen("Matrices/HZ_lower_parameters.csv")
HZ_lower_param.fprint(sav_HZ_lower_param, "%-16g")
sav_HZ_lower_param.close()
}
proc sav_BIP_Parameters() {
// 1 = cell type
// 2 = dendritic field radius
// 3 = number of PRs connected
// 4 = x position
// 5 = y position
BIP_upper_param = new Matrix(BIP_total_upper_cells, 4)
for i = 0, BIP_total_upper_cells - 1 {
BIP_upper_param.x[i][0] = BIP_upper_cell_type.x[i][0]
BIP_upper_param.x[i][1] = BIP_upper_positions.x[i][0]
BIP_upper_param.x[i][2] = BIP_upper_positions.x[i][1]
BIP_upper_param.x[i][3] = (IPL_GCL_Thickness + INL_Thickness)*1000
}
sav_BIP_upper_param = new File()
sav_BIP_upper_param.wopen("Matrices/BIP_upper_parameters.csv")
BIP_upper_param.fprint(sav_BIP_upper_param, "%-16g")
sav_BIP_upper_param.close()
BIP_lower_param = new Matrix(BIP_total_lower_cells, 4)
for i = 0, BIP_total_lower_cells - 1 {
BIP_lower_param.x[i][0] = BIP_lower_cell_type.x[i][0]
BIP_lower_param.x[i][1] = BIP_lower_positions.x[i][0]
BIP_lower_param.x[i][2] = BIP_lower_positions.x[i][1]
BIP_lower_param.x[i][3] = (IPL_GCL_Thickness + INL_Thickness)*1000
}
sav_BIP_lower_param = new File()
sav_BIP_lower_param.wopen("Matrices/BIP_lower_parameters.csv")
BIP_lower_param.fprint(sav_BIP_lower_param, "%-16g")
sav_BIP_lower_param.close()
}
proc sav_AII_Parameters() {
// 1 = number of RBCs connected
// 2 = number of ON BCs connected
// 3 = number of OFF BCs connected
// 4 = number of OFF RGCs connected
// 5 = x position
// 6 = y position
// 7 = dendritic field radius
AII_upper_param = new Matrix(AII_total_upper_cells, 4)
for i = 0, AII_total_upper_cells - 1 {
AII_upper_param.x[i][0] = num_RBC_2_AII_upper.x[i]
AII_upper_param.x[i][1] = AII_upper_positions.x[i][0]
AII_upper_param.x[i][2] = AII_upper_positions.x[i][1]
AII_upper_param.x[i][3] = (IPL_GCL_Thickness)*1000
}
sav_AII_upper_param = new File()
sav_AII_upper_param.wopen("Matrices/AII_upper_parameters.csv")
AII_upper_param.fprint(sav_AII_upper_param, "%-16g")
sav_AII_upper_param.close()
AII_lower_param = new Matrix(AII_total_lower_cells, 4)
for i = 0, AII_total_lower_cells - 1 {
AII_lower_param.x[i][0] = num_RBC_2_AII_lower.x[i]
AII_lower_param.x[i][1] = AII_lower_positions.x[i][0]
AII_lower_param.x[i][2] = AII_lower_positions.x[i][1]
AII_lower_param.x[i][3] = (IPL_GCL_Thickness)*1000
}
sav_AII_lower_param = new File()
sav_AII_lower_param.wopen("Matrices/AII_lower_parameters.csv")
AII_lower_param.fprint(sav_AII_lower_param, "%-16g")
sav_AII_lower_param.close()
}
proc sav_RGC_Parameters() {
// 1 = type of RGC
// 2 = number of BIPs connected
// 3 = total number of synapses
// 3 = soma x position
// 4 = soma y position
// 5 = dendrite size
// 6 = RGC dendrite tree z start
RGC_param = new Matrix(num_gang, 8)
for i = 0, num_gang - 1 {
RGC_param.x[i][0] = ONOFF_type.x[i][0]
RGC_param.x[i][1] = num_BIP_2_RGC.x[i]
RGC_param.x[i][2] = num_BIPSyn_2_RGC.x[i]
RGC_param.x[i][3] = RGC_position.x[Cell_index.x[i][0]][0]
RGC_param.x[i][4] = RGC_position.x[Cell_index.x[i][0]][1]
RGC_param.x[i][5] = RGC_dend_radius.x[i][0]
RGC_param.x[i][6] = Dend_z.x[i][0]
RGC_param.x[i][7] = total_RGC_syn.x[i]
}
sav_RGC_param = new File()
sav_RGC_param.wopen("Matrices/RGC_parameters.csv")
RGC_param.fprint(sav_RGC_param, "%-16g")
sav_RGC_param.close
}
proc sav_matrix() {
sav_PR_Parameters()
//sav_HZ_parameters()
sav_BIP_Parameters()
sav_AII_Parameters()
sav_RGC_Parameters()
}