Skip to content

Commit 11846da

Browse files
committed
restricto to spikeglx only for simpliity
1 parent ae14e2e commit 11846da

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/probeinterface/neuropixels_tools.py

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

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

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

1114-
# Step 2: Get selected electrode indices from XML
1115-
selected_electrode_indices = [int(electrode_index) for electrode_index in selected_electrodes.attrib.values()]
1114+
if num_shank == 1:
1115+
elec_ids = np.arange(contact_per_shank, dtype=int)
1116+
shank_ids = None
1117+
else:
1118+
elec_ids = np.concatenate([np.arange(contact_per_shank, dtype=int) for i in range(num_shank)])
1119+
shank_ids = np.concatenate([np.zeros(contact_per_shank, dtype=int) + i for i in range(num_shank)])
1120+
1121+
full_probe = _make_npx_probe_from_description(
1122+
pt_metadata, probe_part_number, elec_ids, shank_ids, mux_info=mux_info
1123+
)
1124+
1125+
selected_electrode_indices = [int(electrode_index) for electrode_index in selected_electrodes_values]
11161126

1117-
# Step 3: Slice probe to selected electrodes
11181127
sliced_probe = full_probe.get_slice(selection=selected_electrode_indices)
11191128

11201129
np_probe_dict = {
@@ -1125,8 +1134,6 @@ def read_openephys(
11251134
"probe": sliced_probe,
11261135
}
11271136
else:
1128-
# ===== Path 2 (Legacy): Build probe from ELECTRODE_XPOS/YPOS fields =====
1129-
# This path is kept unchanged for backward compatibility with older OpenEphys versions
11301137

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

0 commit comments

Comments
 (0)