Improved optogenetics support in vanilla NWB. #517
Labels
category: enhancement
improvements of code or code behavior
category: extension
proposed extensions
priority: medium
non-critical problem and/or affecting only a small set of NWB users
I was wondering whether instead of using an extension it might make sense to improve the optogenetics capabilities of vanilla NWB.
The reason why I think this might be a good idea is that the current optogenetics support has a couple of issues which might be a bit closer to errors rather than simply incomplete features.
In particular the first 3 issues can't really be fixed by adding new classes and would need to be changed in the classes already present.
currently the stimulation wavelength is an attribute of the
OptogeneticStimulusSite
class which is used as an attribute of theOptogeneticSeries
class --- the wavelength is not specific to a site, but to the actual stimulation series, so it should be moved toOptogeneticSeries
.Further, the naming for the wavelength is
excitation_lambda
, “excitation” is a hypothesized result and not a parameter of the stimulation, further, the nomenclature isn't really consistent with optogeneticcs where opsins are commonly “activated” or “inactivated”, which in turn can lead to either neuronal “excitation” or “inhibition” depending on the opsin. So the name itself should also be changed to something like e.g.wavelength
to avoid confusion.OptogeneticStimulusSite
is currently listed as having an attribute namedDevice
. This is a bit backwardds since the stimulation happens with the involvement of one or multiple devices, which then have locations. Things necessitate places, places don't necessitate things. SoOptogeneticSeries.Device.OptogeneticStimulusSite
instead of the currentOptogeneticSeries.OptogeneticStimulusSite.Device
would be the correct way to go about this in principle --- though for the specific meaning ofDevice
OptogeneticSeries.Device
without any relationship to theOptogeneticStimulusSite
would be the way to go:Device
seems to refer specifically to the device which produces the stimulation, so the Laser/LED. This device doesn't have any experimentally meaningful location. It's somewhere in the lab.There is however a device which is crucial to the stimulus delivery, and needs to be documented, namely the optic canula. This should be a new class (in the extension linked above
OpticFiberImplant
--- though perhapsOpticFiberCannula
would be an even better name with reuse potential), which is then connected to the other classes asOptogeneticSeries.OpticFiberImplant.OptogeneticStimulusSite
. Proposed attributes for this class are listed in the extension.Other than the two attributes which might be considered for removal as per the arguments above, the current
OptogeneticStimulusSite
class is left with two arguments:description
andlocation
; which seem largely equivalent and only qualitatively informative. Further, differentiatingOptogeneticStimulusSite
from a general-purpose location specifier or at least a surgical location specifier seems superfluous. Ideally there should be a class which can specify surgical intervention targets to be reused by anything which requires such a procedure. Again, the linked extension proposal contains such a class,OrthogonalStereotacticTarget
with a number of proposed attributes providing quantitative unambiguous information.@rly , what do you think? There was a discussion on Optogenetics improvement before but you said it would be contingent on more interest :) We're quite interested!
@yarikoptic
The text was updated successfully, but these errors were encountered: