Computational Optogenetics: modelling ChR2 in NMODL
Posted: Thu Aug 09, 2018 6:45 am
Dear All,
I implemented the channelrhodopsin model ChR2 (H134R mutant), described in a recent PLoS Comp Biology paper[1], as a nonspecific current mechanism. I have then shared this model on ModelDB (accession number 244414; to become public in the coming days).
Given my limited proficiency in NEURON and NMODL, I made possible for a user to specify the time course of the photo-stimulus by an a priori defined waveform (i.e. a pulse). I then expose the parameters of such a waveform (e.g. its intensity, duration, delay).
Is there a smarter way to feed in an arbitrary external waveform into the mechanism - without customising its code and recompiling it every time?
Say that I want to use ramps, sinusoids, or a repeated series of pulses: I am now forced to modify every time the NMODL source and come out with as many mechanisms as the waveforms of my choice. I have seen that other investigators (see the work by the group of Nikolic from Imperial College) have implemented the wild-type ChR2 as a point mechanism (not as a density) and they made use of "net_send" within their NMODL.
What is the best and most appropriate way to proceed?
Any feedback from you might be greatly appreciated.
Reference
1. Williams JC, Xu J, Lu Z, Klimas A, Chen X, Ambrosi CM, Cohen IS, Entcheva E (2013) Computational optogenetics: empirically-derived voltage- and light-sensitive channelrhodopsin-2 model. PLoS Comput Biol 9:e1003220
I implemented the channelrhodopsin model ChR2 (H134R mutant), described in a recent PLoS Comp Biology paper[1], as a nonspecific current mechanism. I have then shared this model on ModelDB (accession number 244414; to become public in the coming days).
Given my limited proficiency in NEURON and NMODL, I made possible for a user to specify the time course of the photo-stimulus by an a priori defined waveform (i.e. a pulse). I then expose the parameters of such a waveform (e.g. its intensity, duration, delay).
Is there a smarter way to feed in an arbitrary external waveform into the mechanism - without customising its code and recompiling it every time?
Say that I want to use ramps, sinusoids, or a repeated series of pulses: I am now forced to modify every time the NMODL source and come out with as many mechanisms as the waveforms of my choice. I have seen that other investigators (see the work by the group of Nikolic from Imperial College) have implemented the wild-type ChR2 as a point mechanism (not as a density) and they made use of "net_send" within their NMODL.
What is the best and most appropriate way to proceed?
Any feedback from you might be greatly appreciated.
Reference
1. Williams JC, Xu J, Lu Z, Klimas A, Chen X, Ambrosi CM, Cohen IS, Entcheva E (2013) Computational optogenetics: empirically-derived voltage- and light-sensitive channelrhodopsin-2 model. PLoS Comput Biol 9:e1003220