Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change wavelengths definition and add optical filter device #15

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

alessandratrapani
Copy link

@alessandratrapani alessandratrapani commented Apr 5, 2024

peak wavelength issue

  1. peak_wavelength for the photodetector can be confusing: does it mean the peak of the responsivity curve of the photodetector or the wavelength of interest (the one that is usually reported in the papers and filtered with an optical filter before hitting the detector)? I would store the actual detected wavelength and call the field: detected_wavelength
    image

  2. peak_wavelength for excitation_sources it's fine, but I would change to excitation_wavelength for simplicity.
    image

  3. finally, the emission_peak_wavelength and the excitation_peak_wavelength of the fluorophore are characteristics of the protein’s spectrum in a specific configuration, e.g. GCaMP6 bound to Ca2+ or independent from Ca2+.
    image

The important information for these experiments to be reproduced are:

  • excitation wavelength of the source with relative optical filter (peak/bandwidth)
  • emission wavelength recorded with relative optical filter (peak/bandwidth)
  • model of the excitation source, so you can retrieve the spectrum from the datasheet
  • model of the photodetector, so you can retrieve the responsivity curve from the datasheet
  • the fluorophore notation, so you can retrieve the relative emission and excitation spectra from databases.
  • also important the dichroic mirror device
    image

TODOs for this PR:

  • change peak_wavelength for the photodetector to detected_wavelength
  • change peak_wavelength for the excitation_sources to excitation_wavelength
  • remove emission_peak_wavelength and the excitation_peak_wavelength of the fluorophore (to avoid confusion)
  • add OpticalFilter (Device) (this could be designed to match the same device for ndx-microscopy (link to Make filter (on OpticalChannel and LightSource) an optional Device ndx-microscopy#6). It should be described by
    • filter_type: A string indicating the type of filter (e.g., "Excitation", "Emission", "Bandpass", "Longpass", "Shortpass"). This field helps users understand the filter's intended use in the optical path.
    • peak_wavelength: The central wavelength (in nm) that the filter is designed to pass or reflect, relevant for bandpass and notch filters.
    • bandwidth: The width of the wavelength range (in nm) that the filter allows to pass through (for bandpass filters) or blocks (for notch filters).
  • add optional field for reference the OpticalFilter in both photodetector and excitation_sources as an extra column
  • add DichroicMirror (Device) (also designed to be shared with ndx-microscopy). The following are the fields to be included in this device:
    • cut_on_wavelength: The wavelength (in nm) at which the mirror starts to transmit light more than reflect. This marks the boundary between reflection and transmission.
    • cut_off_wavelength: An optional field, if distinct from the CutOnWavelength, that can specify the wavelength at which transmission shifts back to reflection, for mirrors with complex transmission spectra.
    • reflection_bandwidth: The range of wavelengths (in nm) that are primarily reflected. This can be represented as a tuple or list if you want to specify the start and end wavelengths.
    • transmission_bandwidth: The range of wavelengths (in nm) that are primarily transmitted. Like ReflectionBandwidth, this can also be a tuple or list.
    • angle_of_incidence: The intended angle (in degrees) at which light strikes the mirror, as this can significantly affect its performance.
  • add optional field for reference the DichroicMirror in the fibers_table
  • implements tests

@luiztauffer
Copy link
Member

@alessandratrapani in your opinion, would it make sense to have OpticalFilter and DichroicMirror devices as optional fields of FiberPhotometryResponseSeries?
This might simplify the usage of the extension, at the same time that it keeps it flexible to possible different experimental setups combinations (if they'd be even possible, which I'm not sure of)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants