ibl_alignment_gui.loaders.alignment_loader

Classes

AlignmentLoader

Abstract base class for loading xyz picks and previous alignments.

AlignmentLoaderLocal

Alignment loader using local file system.

AlignmentLoaderOne

Alignment loader using ONE.

class ibl_alignment_gui.loaders.alignment_loader.AlignmentLoader(user=None, xyz_picks=None)[source]

Bases: ABC

Abstract base class for loading xyz picks and previous alignments.

Subclasses must implement the abstract load_alignments and load_xyz_picks methods.

Parameters:
  • user (str or None) – Username string used for tagging alignments.

  • xyz_picks (np.ndarray or None) – Pre-loaded xyz_picks. If None, it will be loaded using load_xyz_picks.

add_extra_alignments(extra_alignments)[source]

Add additional alignment data.

Parameters:

extra_alignments (dict) – Dictionary of new alignments to add.

Returns:

Updated alignment keys.

Return type:

list of str

get_previous_alignments()[source]

Return all available alignment keys sorted in reverse order.

Returns:

self.alignments – Alignment keys including ‘original’.

Return type:

list of str

get_starting_alignment(idx)[source]

Set the starting alignment based on the selected index.

Parameters:

idx (int) – Index in alignment_keys.

Return type:

None

abstractmethod load_alignments()[source]

Load previously saved alignments.

Return type:

dict[str, Any] | None

load_previous_alignments()[source]

Load previous alignments into memory.

Returns:

Sorted alignment keys including ‘original’.

Return type:

list of str

abstractmethod load_xyz_picks()[source]

Load xyz picks.

Return type:

ndarray | None

class ibl_alignment_gui.loaders.alignment_loader.AlignmentLoaderLocal(data_path, shank_idx, n_shanks, user=None, xyz_picks=None)[source]

Bases: AlignmentLoader

Alignment loader using local file system.

xyz picks and previous alignments are loaded from files on disk.

For single-shank data, expected filenames:
  • *xyz_picks.json

  • prev_alignments.json

For multi-shank data, expected filenames:
  • *xyz_picks_shank<N>.json

  • prev_alignments_shank<N>.json

Parameters:
  • data_path (Path) – The path to the local data folder.

  • shank_idx (int) – Index of the shank (0-based).

  • n_shanks (int) – Total number of shanks.

  • user (str or None) – Username for tagging alignments.

  • xyz_picks (np.ndarray or None) – Preloaded xyz picks. If not provided, it will attempt to load from file.

load_alignments()[source]

Load previous alignment data from local file.

Returns:

Dictionary of alignment data or None if file not found.

Return type:

dict or None

load_xyz_picks()[source]

Load xyz picks from local file.

Returns:

The xyz picks as a (N, 3) array in m, or None if not found.

Return type:

np.ndarray or None

class ibl_alignment_gui.loaders.alignment_loader.AlignmentLoaderOne(insertion, one, user=None)[source]

Bases: AlignmentLoader

Alignment loader using ONE.

xyz picks and previous alignments are loaded from the Alyx database.

Parameters:
  • insertion (dict) – Dictionary representing a probe insertion, must contain a ‘json’ key.

  • one (ONE) – An ONE instance used to query the Alyx database.

  • user (str or None) – Username for tagging alignments.

load_alignments()[source]

Load previous alignments from the Alyx database.

Returns:

Dictionary of alignments, or None if not found.

Return type:

dict or None

load_trajectory()[source]

Load the histology track trajectory and stores the trajectory id.

Return type:

None

load_xyz_picks()[source]

Load xyz picks from the insertion JSON field.

Returns:

The xyz picks as a (N, 3) array in m, or None if not available.

Return type:

np.ndarray or None