Skip to content

Commit 420c616

Browse files
committed
comparison
1 parent 4412a25 commit 420c616

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

src/probeinterface/neuropixels_tools.py

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,24 +1095,15 @@ def read_openephys(
10951095
pt_metadata, _, mux_info = get_probe_metadata_from_probe_features(probe_features, probe_part_number)
10961096

10971097
if selected_electrodes is not None:
1098-
selected_electrodes_values = selected_electrodes.attrib.values()
1098+
# ===== Path 1: Build full probe from probe_part_number and slice with SELECTED_ELECTRODES =====
10991099

1100-
num_shank = pt_metadata["num_shanks"]
1101-
contact_per_shank = pt_metadata["cols_per_shank"] * pt_metadata["rows_per_shank"]
1100+
# Step 1: Build full probe with all contacts
1101+
full_probe = build_neuropixels_probe(probe_part_number)
11021102

1103-
if num_shank == 1:
1104-
elec_ids = np.arange(contact_per_shank, dtype=int)
1105-
shank_ids = None
1106-
else:
1107-
elec_ids = np.concatenate([np.arange(contact_per_shank, dtype=int) for i in range(num_shank)])
1108-
shank_ids = np.concatenate([np.zeros(contact_per_shank, dtype=int) + i for i in range(num_shank)])
1109-
1110-
full_probe = _make_npx_probe_from_description(
1111-
pt_metadata, probe_part_number, elec_ids, shank_ids, mux_info=mux_info
1112-
)
1113-
1114-
selected_electrode_indices = [int(electrode_index) for electrode_index in selected_electrodes_values]
1103+
# Step 2: Get selected electrode indices from XML
1104+
selected_electrode_indices = [int(electrode_index) for electrode_index in selected_electrodes.attrib.values()]
11151105

1106+
# Step 3: Slice probe to selected electrodes
11161107
sliced_probe = full_probe.get_slice(selection=selected_electrode_indices)
11171108

11181109
np_probe_dict = {
@@ -1123,6 +1114,8 @@ def read_openephys(
11231114
"probe": sliced_probe,
11241115
}
11251116
else:
1117+
# ===== Path 2 (Legacy): Build probe from ELECTRODE_XPOS/YPOS fields =====
1118+
# This path is kept unchanged for backward compatibility with older OpenEphys versions
11261119

11271120
channel_names = np.array(list(channels.attrib.keys()))
11281121
channel_ids = np.array([int(ch[2:]) for ch in channel_names])

0 commit comments

Comments
 (0)