ibl_alignment_gui.plugins.datoviz_3d

Functions

callback

Open the 3D viewer.

create_random_color

Create a random hex color code.

data_to_colors

Convert data values to RGBA color codes.

get_regions

Get unique brain regions that the shank passes through.

get_xyz_picks

Get the xyz coordinates of the picks for the shank.

setup

Set up the 3D Features plugin.

update_channels

Get the channel data for the chosen plot.

update_clusters

Get the cluster data for the chosen plot.

Classes

Features3D

A class to manage viewing features in a 3D Urchin viewer.

Viewer3D

Popup window hosting the datoviz 3D scene and its display controls.

class ibl_alignment_gui.plugins.datoviz_3d.Features3D(controller)[source]

Bases: object

A class to manage viewing features in a 3D Urchin viewer.

Parameters:

controller (AlignmentGUIController) – The main application controller.

Variables:
  • controller (AlignmentGUIController) – The main application controller.

  • particles (oursin.particles.ParticleSystem or None) – The particle system for displaying points.

  • markers (oursin.particles.ParticleSystem or None) – The particle system for displaying markers.

  • regions (list or np.ndarray) – The list of brain regions displayed.

  • texts (list) – The list of text objects displayed.

  • point_size (float) – The size of the points displayed.

  • plot (str) – The type of plot currently displayed (‘channels’ or ‘clusters’).

  • plot_type (str or None) – The specific plot name currently displayed.

  • side (oursin.utils.Side) – The hemisphere side for displaying regions.

  • region_toggle (QtWidgets.QAction or None) – The action to toggle region visibility.

  • ba (AllenAtlas) – A brain atlas instance.

add_regions(regions, hemisphere=-1)[source]

Add a list of brain regions to the 3D view.

Parameters:
  • regions (list or np.ndarray) – A list of region names to add.

  • hemisphere (int, optional) – The hemisphere to display the regions in (-1 for left, 1 for right). Default is -1.

Return type:

None

data_button_pressed()[source]

Add regions and plots to the 3D view for the chosen probe.

Called when the data button is pressed in the main application.

Return type:

None

on_close()[source]

Triggered when the plugin window is closed.

Deactivate the plugin and callbacks.

Return type:

None

on_point_size_changed(slider)[source]

Update the size of the points in the 3D view based on the slider value.

Parameters:

slider (QtWidgets.QSlider) – A slider widget with values from 1 to 10 representing point size.

Return type:

None

plot_channels(plot_key, *args)[source]

Plot channel data in the 3D view.

Parameters:

plot_key (str) – The name of channel plot to display.

Return type:

None

plot_clusters(plot_key, *args)[source]

Plot cluster data in the 3D view.

Parameters:

plot_key (str) – The name of the cluster plot to display.

Return type:

None

plot_picks()[source]

Plot channel data in the 3D view.

Parameters:

plot_key (str) – The name of channel plot to display.

Return type:

None

remove_markers()[source]

Remove all markers from the 3D view.

Return type:

None

remove_regions()[source]

Remove all brain regions from the 3D view.

set_markers(markers)[source]

Add markers and text to indicate shank positions in the 3D view.

Parameters:

markers (dict) – A list of marker positions, colors, and names.

Return type:

None

set_picks(points)[source]

Add a set of pick points to the 3D view.

Parameters:

points (dict) – The position and color of the pick points to add.

Return type:

None

set_point_size(point_size)[source]

Set the size of the points in the 3D view.

Parameters:

point_size (float) – The size of the points to set.

Return type:

None

set_points(points)[source]

Add a set of points to the 3D view.

Parameters:

points (dict) – The position and color of the points to add.

Return type:

None

setup()[source]

Launch the 3D Urchin viewer and display the initial probe channels.

toggle_picks(display)[source]

Show or hide the pick points in the 3D view.

Parameters:

display (bool) – Whether to display the pick points.

Return type:

None

toggle_regions(display)[source]

Show or hide the brain regions in the 3D view.

Parameters:

display (bool) – Whether to display the brain regions.

Return type:

None

update_plots()[source]

Update the plots in the 3D view based on the current selection.

Return type:

None

class ibl_alignment_gui.plugins.datoviz_3d.Viewer3D(title, controller)[source]

Bases: PopupWindow

Popup window hosting the datoviz 3D scene and its display controls.

Parameters:
  • title (str) – Title shown in the popup’s title bar.

  • controller (AlignmentGUIController) – The main application controller.

setup()[source]

Create the datoviz server and figure, and add the display controls.

ibl_alignment_gui.plugins.datoviz_3d.callback(controller)[source]

Open the 3D viewer.

Return type:

None

ibl_alignment_gui.plugins.datoviz_3d.create_random_color()[source]

Create a random hex color code.

Returns:

A hex color code.

Return type:

str

ibl_alignment_gui.plugins.datoviz_3d.data_to_colors(data, cmap, vmin, vmax)[source]

Convert data values to RGBA color codes.

Parameters:
  • data (list or np.ndarray) – The data values to convert to colors.

  • cmap (str) – The name of the matplotlib colormap to use.

  • vmin (float) – The minimum value for the colormap.

  • vmax (float) – The maximum value for the colormap.

Returns:

chex – A list of RGBA color codes corresponding to each data value.

Return type:

list

ibl_alignment_gui.plugins.datoviz_3d.get_regions(_, items, **kwargs)[source]

Get unique brain regions that the shank passes through.

Parameters:

items (ShankController) – A ShankController instance containing model data.

Returns:

An array of unique region names.

Return type:

np.ndarray

ibl_alignment_gui.plugins.datoviz_3d.get_xyz_picks(_, items, **kwargs)[source]

Get the xyz coordinates of the picks for the shank.

Parameters:

items (ShankController) – A ShankController instance containing model data.

Returns:

An array of xyz coordinates of the picks.

Return type:

np.ndarray

ibl_alignment_gui.plugins.datoviz_3d.setup(controller)[source]

Set up the 3D Features plugin.

Adds a submenu to the main menu with options to show/hide regions and adjust point size. Also attaches necessary callbacks to the controller.

Parameters:

controller (AlignmentGUIController) – The main application controller.

Return type:

None

ibl_alignment_gui.plugins.datoviz_3d.update_channels(_, items, plot_key, **kwargs)[source]

Get the channel data for the chosen plot.

Parameters:
  • items (ShankController) – A ShankController instance containing model data.

  • plot_key (str) – The name of the plot to display data for.

Returns:

A dictionary containing data for 3D plotting.

Return type:

dict

ibl_alignment_gui.plugins.datoviz_3d.update_clusters(_, items, plot_key, **kwargs)[source]

Get the cluster data for the chosen plot.

Parameters:
  • items (ShankController) – A ShankController instance containing model data.

  • plot_key (str) – The name of the plot to display data for.

Returns:

A dictionary containing data for 3D plotting.

Return type:

dict