Rod photoreceptor (Barnes and Hille 1989, Publio et al. 2006, Kourennyi and Liu et al. 2004)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:95870
This a conductance-based model of a rod photoreceptor cell based on other modeling works (Barnes and Hille 1989 and Publio et al. 2006 and Kourennyi and Liu et al. 2004 ). In this model four types of ionic channels identified in the inner segment of the rod: nonselective cation channel (h), delayed rectifying potassium channel (Kv), noninactivating potassium channel (Kx) and calcium channel (Ca) was used. The model accurately reproduces the rod response when stimulated with a simulated photocurrent signal. We can show the effect of nonselective cation channel. The absence of this channel cause increasing the peak amplitude and the time to reach the peak of voltage response and absence of transient mode in this response.
Reference:
1 . Barnes S, Hille B (1989) Ionic channels of the inner segment of tiger salamander cone photoreceptors. J Gen Physiol 94:719-43 [PubMed]
2 . Kourennyi DE, Liu XD, Hart J, Mahmud F, Baldridge WH, Barnes S (2004) Reciprocal modulation of calcium dynamics at rod and cone photoreceptor synapses by nitric oxide. J Neurophysiol 92:477-83 [PubMed]
3 . Liu XD, Kourennyi DE (2004) Effects of tetraethylammonium on Kx channels and simulated light response in rod photoreceptors. Ann Biomed Eng 32:1428-42 [PubMed]
4 . Publio R, Oliveira RF, Roque AC (2006) A realistic model of rod photoreceptor for use in a retina network model Neurocomputing 69:1020-1024
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s): Retina photoreceptor cone cell;
Channel(s): I Cl,Ca; I K,Ca; I Calcium; I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Ion Channel Kinetics; Calcium dynamics;
Implementer(s): Shahali, Mahboubeh [shahali222 at yahoo.com];
Search NeuronDB for information about:  Retina photoreceptor cone cell; I Cl,Ca; I K,Ca; I Calcium; I Potassium;
COMMENT
  IinjLT.mod
  Generates a train of photocurrent injections
  User specifies duration of each Iinj, interpulse interval (ton and toff),
  and number of pulses.
  6/30/2003 RARE LAB
           ___            ___            _ _
          /   \          /   \            |
 delay    |    \   toff  |    \           | amp
__________|     \________|     \_______  _|_
            ton
            
   num:      1              2          ...
ENDCOMMENT


NEURON {
	POINT_PROCESS IinjLT
	RANGE del, ton, toff, num, amp,ssI,i
	ELECTRODE_CURRENT i
}

UNITS {
	(pA) = (picoamp)
        (nA) = (nanoamp)
}

PARAMETER {
	del  = 1000 (ms)
	ton  = 8000 (ms) <0, 1e9>	: duration of ON phase
	toff = 1000 (ms) <0, 1e9>	: duration of OFF phase
	num  = 2			: how many to deliver
	amp  = 40 (pA)	  : absolute amplitude of the light induced current
        ssI  = 40 (pA)     : steady-state current (dark current)
        
}

ASSIGNED {
        Ncount     : counter of the number of the flashes/injections
	ival (nA)
	i (nA)
	on
	tally			: how many more to deliver
	tr (ms)   : the relative time in each flash 
        Part1
        Part2
        Part3
        ssInA (nA)
        ampnA (nA)
}

INITIAL {
	i = 0
        ssInA=0.001*ssI
        ampnA=amp*0.001
	ival = 0
	tally = num
        Ncount=0
	if (tally > 0) {
		net_send(del, 1)
		on = 0
		tally = tally - 1
	}
}

BREAKPOINT {
: printf("%g\n", t)
        tr=t-del-(ton+toff)*(Ncount-1)
        if (on ==1) { 
	 
          
        
          Part1=32*( 1-exp(- (tr/1000 )/0.05  ) )
          Part2=-33/(   1+exp(-   (  (tr/1000) -3.8   )/0.45    ) )
          Part3=1-exp(  - (tr/1000)  /0.8 )
          i=ssInA-ival*(Part1+Part2+Part3)/33.0
           
        
        } else {
        i = ssInA+ival
        }
         
}

NET_RECEIVE (w) {
	: ignore any but self-events with flag == 1
	if (flag == 1) {
		if (on == 0) {
			: turn it on
                        Ncount=Ncount+1
			ival = ampnA
			on = 1
			: prepare to turn it off
			net_send(ton, 1)
		} else {
			: turn it off
			ival = 0
			on = 0
			if (tally > 0) {
				: prepare to turn it on again
				net_send(toff, 1)
				tally = tally - 1
			}
		}
	}
}