//=================================================================
// Load cells templates //
//=================================================================
load_file("Rod.tem")
load_file("Cone.tem")
load_file("Bip.tem")
load_file("A2.tem")
load_file("Ganglion.tem")
objref rod_bip[nrodbipx][nrodbipy], rod[nrodx][nrody], cone[nconex][nconey]
objref A2_cell[na2x][na2y],GAN[nganx][ngany], cone_bip[nconebipx][nconebipy]
objref brightcurr[nrodx][nrody],dimcurr[nrodx][nrody],input_cone[nconex][nconey],random
random = new Random(seed)
//=================================================================
// Create cells //
//=================================================================
print "Creating cells. This may take some time."
// Create Rods
for i = 0, nrodx-1 {
for j = 0, nrody-1 {
rod[i][j] = new Rod()
}
}
// Create Cones
for i = 0, nconex-1 {
for j = 0, nconey-1 {
cone[i][j] = new Cone()
}
}
// Create Rod bipolar cell
for i = 0, nrodbipx-1 {
for j = 0, nrodbipy-1 {
rod_bip[i][j] = new Bip()
}
}
// Create Cone bipolar cell
for i = 0, nconebipx-1 {
for j = 0, nconebipy-1 {
cone_bip[i][j] = new Bip()
cone_bip[i][j].soma.gkabar_IA(0.5) = 0 // USUI et al.
}
}
// Create A2
for i = 0, na2x-1 {
for j = 0, na2y-1 {
A2_cell[i][j] = new A2()
}
}
// Create Ganglion
for i = 0, nganx-1 {
for j = 0, ngany-1 {
GAN[i][j] = new Ganglion()
}
}
//=================================================================
// Add input currents //
//=================================================================
proc insert_iclamps() { local k,m,ii,jj // 1 arg - amp
InputNumber = ($2/100)*rodtotal
printf ("\n%d Rods receiving input\n",InputNumber)
for k = 0, nrodx-1 {
for m = 0, nrody-1 {
rod[k][m].soma brightcurr[k][m] = new IinjLT(0.5)
brightcurr[k][m].del = stim_init
brightcurr[k][m].ton = 6000
brightcurr[k][m].amp =0
rod[k][m].soma dimcurr[k][m] = new IinjLTDim(0.5)
dimcurr[k][m].del = stim_init
dimcurr[k][m].ton = 6000
dimcurr[k][m].ssI=0
dimcurr[k][m].amp =0
}
}
for k = 0, nconex-1 { // Dark current in cones
for m = 0, nconey-1 {
cone[k][m].soma input_cone[k][m] = new IinjLT_cone(0.5)
input_cone[k][m].amp=0
input_cone[k][m].del = 0
input_cone[k][m].ton = 6000
}
}
for i=0,InputNumber {
ii = int(random.uniform(0, nrodx))
if (ii == nrodx ) { ii=nrodx-1 }
jj = int(random.uniform(0, nrody))
if (jj == nrody ) { jj=nrody-1 }
if ($1>=30) {
brightcurr[ii][jj].amp = $1}else{
dimcurr[ii][jj].amp = $1}
i=i+1
}
} // end proc
//=================================================================
// Change Ih conductance //
//=================================================================
proc block_ih(){
for i = 0, nrodx-1 {
for j = 0, nrody-1 {
rod[i][j].soma.ghbar_h=$1
}
}
}
printf("\n")
access rod[0][0].soma
printf ("%d Rods created\n",rodtotal)
printf ("%d Cones created\n",conetotal)
printf ("%d Bipolar cells created\n",nrodbipx*nrodbipy)
printf ("%d A2 Amacrine cells created\n",A2total)
printf ("%d Ganglion cells created\n",gantotal)