A network model of the vertebrate retina (Publio et al. 2009)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:124063
In this work, we use a minimal conductance-based model of the ON rod pathways in the vertebrate retina to study the effects of electrical synaptic coupling via gap junctions among rods and among AII amacrine cells on the dynamic range of the retina. The model is also used to study the effects of the maximum conductance of rod hyperpolarization activated current Ih on the dynamic range of the retina, allowing a study of the interrelations between this intrinsic membrane parameter with those two retina connectivity characteristics.
Reference:
1 . Publio R, Oliveira RF, Roque AC (2009) A computational study on the role of gap junctions and rod Ih conductance in the enhancement of the dynamic range of the retina. PLoS One 4:e6970 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Retina ganglion GLU cell; Retina photoreceptor cone GLU cell; Retina bipolar GLU cell;
Channel(s):
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s): Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Sensory processing;
Implementer(s): Publio, Rodrigo [publio at oist.jp];
Search NeuronDB for information about:  Retina ganglion GLU cell; Retina photoreceptor cone GLU cell; Retina bipolar GLU cell; Glutamate;
/
PublioEtAl2009
README.html
A2hh_k.mod
A2hh_na.mod
Bip_Ca.mod
Bip_Cad.mod
Bip_ih.mod
Bip_Ka.mod
Bip_Kv.mod
Cone_CPR.mod
Cone_ih.mod
Cone_Kv.mod
Ganglion_hh.mod *
gap.mod
IinjLT.mod
IinjLT_cone.mod
IinjLTDim.mod *
Rod_Ca.mod
Rod_Cad.mod
Rod_Clca.mod
Rod_ih.mod
Rod_Kca.mod
Rod_Kv.mod
Rod_Kx.mod
Rod_leak.mod
syn_bip_gan.mod
syn_rod_bip.mod
A2.tem
Bip.tem
Cone.tem
createcells.hoc
Ganglion.tem
gap.hoc *
init.hoc
mosinit.hoc *
netconnection.hoc
parameters.hoc
Rod.tem
screenshot1.jpg
screenshot2.jpg
session.ses
                            
objref Glur2rodbip[nrodx][nrody],Glur2conebip[nconex][nconey],prob
objref Glurrodbip2A2[nrodbipx][nrodbipy],Glurconebip2GAN[nconebipx][nconebipy]
objref CellConection[MAXNUMBERCONNECTIONS], GAP_rod2cone[MAXNUMBERCONNECTIONS] 
objref a2GAPa2[MAXNUMBERCONNECTIONS],GAP_A2conebip[MAXNUMBERCONNECTIONS]
prob = new Random(seed)


  print "Connecting cells"

//=================================================================
//                Gap Juntions in Receptors layer		  //		
//=================================================================



proc rod_gaps() {

// $1 Connection Prob

 for i = 0, nrodx-1 {
    for j = 0, nrody-2 {
       aprob = prob.uniform(0, 1) 
       if (aprob <= $1) { 

    CellConection[NumberConections] = new Gap()
	rod[i][j].soma CellConection[NumberConections].src(0.95)    
	rod[i][j+1].soma CellConection[NumberConections].target(0.95)
    CellConection[NumberConections].g(0.5)
	 
    NumberConections = NumberConections + 1

      }
   }
}

 for j = 0, nrody-1 {
    for i = 0, nrodx-2 {

       aprob = prob.uniform(0, 1)
       if (aprob <= $1 ) {

    CellConection[NumberConections] = new Gap()
	rod[i][j].soma CellConection[NumberConections].src(0.95)    
	rod[i+1][j].soma CellConection[NumberConections].target(0.95)
    CellConection[NumberConections].g(0.5)

      NumberConections = NumberConections + 1
      }
  }
}

// Gap Juntions Rod - Cones , each cone coupled with up to 4 rods, zhang et al.
NUMBERGAPS = 0

  for i = 0, nconex-1 {
    for j = 0, nconey-1 {
    
    ii = int(prob.uniform(0, nrodx))
	if (ii == nrodx ) { ii=nrodx-1 }
    jj = int(prob.uniform(0, nrody))
	if (jj == nrody ) { jj=nrody-1 }
    count=0
    aprob = prob.uniform(0, 1)
    if (aprob <= $1 ) {
	
    GAP_rod2cone[NUMBERGAPS] = new Gap()
  	rod[ii][jj].soma  GAP_rod2cone[NUMBERGAPS].src(0.95)
  	rod[ii+count][jj].soma  GAP_rod2cone[NUMBERGAPS].src(0.95)
  	rod[ii][jj+count].soma  GAP_rod2cone[NUMBERGAPS].src(0.95)
  	rod[ii+count][jj+count].soma  GAP_rod2cone[NUMBERGAPS].src(0.95)    
	cone[i][j].soma  GAP_rod2cone[NUMBERGAPS].target(0.95)
	GAP_rod2cone[NUMBERGAPS].g(0.5)

	NUMBERGAPS = NUMBERGAPS + 1
    count=count+1   
     }
   } 
  }
} // end proc

//=================================================================
//                Gap Juntions in A2 layer		 				 //		
//=================================================================

NUMBERGAPS = 0
proc A2_gaps() {

 for i = 0, na2x-1 {
    for j = 0, na2y-2 {
       
       aprob = prob.uniform(0, 1) 
       if (aprob <= $1 ) { 

    a2GAPa2[NUMBERGAPS] = new Gap()
	A2_cell[i][j].soma a2GAPa2[NUMBERGAPS].src(0.95)    
	A2_cell[i][j+1].soma a2GAPa2[NUMBERGAPS].target(0.95)
	a2GAPa2[NUMBERGAPS].g(2) 
        
 
      NUMBERGAPS = NUMBERGAPS + 1

      }
   }
}

 for j = 0, na2y-1 {
    for i = 0, na2x-2 {

       aprob = prob.uniform(0, 1)
       if (aprob <= $1 ) {

        a2GAPa2[NUMBERGAPS] = new Gap()
	A2_cell[i][j].soma a2GAPa2[NUMBERGAPS].src(0.95)    
	A2_cell[i+1][j].soma a2GAPa2[NUMBERGAPS].target(0.95)
	a2GAPa2[NUMBERGAPS].g(2) 

      NUMBERGAPS = NUMBERGAPS + 1
      }
    }
  }

// Gap Juntions A2-Cone Bipolar , each A2 coupled to 2 bipolar Sterling et al.1988.

NUMBERGAPS = 0
  for i = 0, nconebipx-1 {
    for j = 0, nconebipy-1 {
       for k = 1, a2toconebip {
         aprob = prob.uniform(0, 1)
       if (aprob <= $1 ) {
  
	ii = int(prob.uniform(0, na2x))
	if (ii == na2x ) { ii=na2x-1 }
        jj = int(prob.uniform(0, na2y))
	if (jj == na2y ) { jj=na2y-1 }
	GAP_A2conebip[NUMBERGAPS] = new Gap()
	A2_cell[ii][jj].soma GAP_A2conebip[NUMBERGAPS].src(0.95)    
	cone_bip[i][j].soma GAP_A2conebip[NUMBERGAPS].target(0.95)
    GAP_A2conebip[NUMBERGAPS].g(0.5) 

	NUMBERGAPS = NUMBERGAPS + 1
      
       } 
      }
    }
  }


} // end proc

//=================================================================
//                Glutamate Chemical synapses		         //		
//=================================================================

proc Glursyn () {

// Glutamate Synapse Rod - Bipolar

  for i = 0, nrodx-1 {
    for j = 0, nrody-1 {
      for k = 1, rodtobip {
        
	ii = int(prob.uniform(0, nrodbipx))
	if (ii == nrodbipx ) { ii=nrodbipx-1 }
    jj = int(prob.uniform(0, nrodbipy))
	if (jj == nrodbipy ) { jj=nrodbipy-1 }
    Glur2rodbip[i][j] = new GradSyn()						
   	rod_bip[ii][jj].soma Glur2rodbip[i][j].loc(1)		// Post synaptic compartment	
   	setpointer Glur2rodbip[i][j].V_pre, rod[i][j].soma.v(1)	
	Glur2rodbip[i][j].e = 0
	Glur2rodbip[i][j].V_thr = -44
       

      }
    }
  }
  
  // Glutamate Synapse Cone - Bipolar

  for i = 0, nconex-1 {
    for j = 0, nconey-1 {
      for k = 1, conetobip {
        
	ii = int(prob.uniform(0, nconebipx))
	if (ii == nconebipx ) { ii=nconebipx-1 }
    jj = int(prob.uniform(0, nconebipy))
	if (jj == nconebipy ) { jj=nconebipy-1 }
    Glur2conebip[i][j] = new GradSyn()						
   	cone_bip[ii][jj].soma Glur2conebip[i][j].loc(1)		// Post synaptic compartment	
   	setpointer Glur2conebip[i][j].V_pre, cone[i][j].soma.v(1)	
	Glur2conebip[i][j].e = 0
	Glur2conebip[i][j].V_thr = -42
       

      }
    }
  }
  
  // Glutamate Synapse Rod Bipolar - A2

  for i = 0, nrodbipx-1 {
    for j = 0, nrodbipy-1 {
      for k = 1, rodbiptoa2 {
        
	ii = int(prob.uniform(0, na2x))
	if (ii == na2x ) { ii=na2x-1 }
        jj = int(prob.uniform(0, na2y))
	if (jj == na2y ) { jj=na2y-1 }
	//    if (i==9&&j==9){print ii,jj}

        Glurrodbip2A2[i][j] = new GradSyn_bip_gan()					
   	A2_cell[ii][jj].soma Glurrodbip2A2[i][j].loc(1)		// Post synaptic compartment	
   	setpointer Glurrodbip2A2[i][j].V_pre, rod_bip[i][j].soma.v(1)	
	Glurrodbip2A2[i][j].e = 0
	Glurrodbip2A2[i][j].V_thr = -37.4
       

      }
    }
  }
  
  // Glutamate Synapse Cone Bipolar - Gan

  for i = 0, nconebipx-1 {
    for j = 0, nconebipy-1 {
      for k = 1, conebiptogan {
        
	ii = int(prob.uniform(0, nganx))
	if (ii == nganx ) { ii=nganx-1 }
        jj = int(prob.uniform(0, nconebipy))
	if (jj == ngany ) { jj=ngany-1 }
        Glurconebip2GAN[i][j] = new GradSyn_bip_gan()						
   	GAN[ii][jj].soma Glurconebip2GAN[i][j].loc(1)		// Post synaptic compartment	
   	setpointer Glurconebip2GAN[i][j].V_pre, cone_bip[i][j].soma.v(1)	
	Glurconebip2GAN[i][j].e = 0
	Glurconebip2GAN[i][j].V_thr = -37.28
       

      }
    }
  }


} // end proc