From f0d1761d7fba8a5b59327b7bf6744929c9db42a8 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Thu, 19 Feb 2026 12:21:23 +0100 Subject: [PATCH 1/2] Add 'channel_name' contact annotation for open ephys --- src/probeinterface/neuropixels_tools.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/probeinterface/neuropixels_tools.py b/src/probeinterface/neuropixels_tools.py index b89444c..d53ec93 100644 --- a/src/probeinterface/neuropixels_tools.py +++ b/src/probeinterface/neuropixels_tools.py @@ -1222,7 +1222,6 @@ def read_openephys( "probe": sliced_probe, } else: - channel_names = np.array(list(channels.attrib.keys())) channel_ids = np.array([int(ch[2:]) for ch in channel_names]) channel_order = np.argsort(channel_ids) @@ -1308,6 +1307,7 @@ def read_openephys( np_probe_dict = { "shank_ids": shank_ids, "elec_ids": elec_ids, + "channel_names": channel_names, "pt_metadata": pt_metadata, "slot": slot, "port": port, @@ -1446,6 +1446,8 @@ def read_openephys( probe.annotate(port=np_probe_info["port"]) if "dock" in np_probe_info: probe.annotate(dock=np_probe_info["dock"]) + if "channel_names" in np_probe_info: + probe.annotate_contacts(channel_name=np_probe_info["channel_names"]) return probe From 7cfb5749e14bf7ee178e435d2cc1d22065dad8cc Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Thu, 19 Feb 2026 12:29:56 +0100 Subject: [PATCH 2/2] Fix tests --- src/probeinterface/neuropixels_tools.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/probeinterface/neuropixels_tools.py b/src/probeinterface/neuropixels_tools.py index d53ec93..1737f44 100644 --- a/src/probeinterface/neuropixels_tools.py +++ b/src/probeinterface/neuropixels_tools.py @@ -1430,6 +1430,9 @@ def read_openephys( pt_metadata, probe_part_number, elec_ids, shank_ids=shank_ids, mux_info=mux_info ) + if "channel_names" in np_probe_info: + probe.annotate_contacts(channel_name=np_probe_info["channel_names"]) + chans_saved = get_saved_channel_indices_from_openephys_settings(settings_file, stream_name=stream_name) if chans_saved is not None: probe = probe.get_slice(chans_saved) @@ -1446,8 +1449,6 @@ def read_openephys( probe.annotate(port=np_probe_info["port"]) if "dock" in np_probe_info: probe.annotate(dock=np_probe_info["dock"]) - if "channel_names" in np_probe_info: - probe.annotate_contacts(channel_name=np_probe_info["channel_names"]) return probe