Source code for ibl_alignment_gui.plugins.allen.additional_plots_allen

from types import MethodType
from typing import TYPE_CHECKING, Any

from ibl_alignment_gui.loaders.plot_loader import skip_missing
from ibl_alignment_gui.utils.helpers import shank_loop
from iblutil.util import Bunch

if TYPE_CHECKING:
    from ibl_alignment_gui.app.controllers.app_controller import AlignmentGUIController
    from ibl_alignment_gui.app.controllers.shank_controller import ShankController


PLUGIN_NAME = 'Additional Plots Allen'


[docs] def setup(controller: 'AlignmentGUIController') -> None: """ Show how to add additional plots to the GUI. Parameters ---------- controller: AlignmentGUIController The main application controller. """ controller.plugins[PLUGIN_NAME] = Bunch() controller.plugins[PLUGIN_NAME]['activated'] = True # Attach callbacks to methods in the controller controller.plugins[PLUGIN_NAME]['load_data'] = add_plots
[docs] @shank_loop def add_plots(_, items: 'ShankController', **kwargs) -> None: """ Add additional plots to the plot loader. Parameters ---------- _ items: ShankController A ShankController instance. ------- """ # Add the additional data that may be required for the plots items.model.raw_data['rms_AP_main'] = items.model.loaders['data'].get_rms_data( 'ephysTimeRmsAPMain' ) items.model.raw_data['rms_LF_main'] = items.model.loaders['data'].get_rms_data( 'ephysTimeRmsLFMain' ) items.model.loaders['plots'].image_rms_ap_main = MethodType( image_rms_ap_main, items.model.loaders['plots'] ) items.model.loaders['plots'].image_rms_lf_main = MethodType( image_rms_lf_main, items.model.loaders['plots'] ) items.model.loaders['plots'].probe_rms_ap_main = MethodType( probe_rms_ap_main, items.model.loaders['plots'] ) items.model.loaders['plots'].probe_rms_lf_main = MethodType( probe_rms_lf_main, items.model.loaders['plots'] )
[docs] @skip_missing(['rms_AP_main']) def image_rms_ap_main(self) -> dict[str, Any]: """Generate image-plot data for the main-band AP RMS. Returns ------- dict[str, Any] A dict containing an ImageData object keyed by 'rms AP Main'. """ return self._image_rms('rms_AP_main', plot_key='rms AP Main')
[docs] @skip_missing(['rms_LF_main']) def image_rms_lf_main(self) -> dict[str, Any]: """Generate image-plot data for the main-band LF RMS. Returns ------- dict[str, Any] A dict containing an ImageData object keyed by 'rms LF Main'. """ return self._image_rms('rms_LF_main', plot_key='rms LF Main')
[docs] @skip_missing(['rms_AP_main']) def probe_rms_ap_main(self) -> dict[str, Any]: """Generate probe-plot data for the main-band AP RMS. Returns ------- dict[str, Any] A dict containing a ProbeData object keyed by 'rms AP Main'. """ return self._probe_rms('rms_AP_main', plot_key='rms AP Main')
[docs] @skip_missing(['rms_LF_main']) def probe_rms_lf_main(self) -> dict[str, Any]: """Generate probe-plot data for the main-band LF RMS. Returns ------- dict[str, Any] A dict containing a ProbeData object keyed by 'rms LF Main'. """ return self._probe_rms('rms_LF_main', plot_key='rms LF Main')