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, in the Allen mapping.

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, in the Allen mapping.

The regions come from the track rather than the histology figure, so they do not change with the mapping chosen in the Set Mapping menu.

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