Skip to content

Commit cd5fe70

Browse files
author
Thinh Nguyen
committed
handles new probe naming in latest Open Ephys format
1 parent 11a12ba commit cd5fe70

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

element_array_ephys/readers/openephys.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,21 @@ def load_probe_data(self):
140140
return probes
141141

142142

143+
# For more details on supported probes,
144+
# see: https://open-ephys.github.io/gui-docs/User-Manual/Plugins/Neuropixels-PXI.html
145+
_probe_model_name_mapper = {
146+
"Neuropix-PXI": "neuropixels 1.0 - 3B",
147+
"Neuropix-3a": "neuropixels 1.0 - 3A",
148+
"Neuropixels 1.0": "neuropixels 1.0 - 3B",
149+
"Neuropixels Ultra": "neuropixels UHD",
150+
"Neuropixels Ultra (Switchable)": "neuropixels UHD",
151+
"Neuropixels 21": "neuropixels 2.0 - SS",
152+
"Neuropixels 24": "neuropixels 2.0 - MS",
153+
"Neuropixels 2.0 - Single Shank": "neuropixels 2.0 - SS",
154+
"Neuropixels 2.0 - Four Shank": "neuropixels 2.0 - MS"
155+
}
156+
157+
143158
class Probe:
144159

145160
def __init__(self, processor, probe_index=0):
@@ -152,19 +167,13 @@ def __init__(self, processor, probe_index=0):
152167
if processor['@pluginName'] == 'Neuropix-3a' or 'NP_PROBE' not in processor['EDITOR']:
153168
self.probe_info = processor['EDITOR']['PROBE'] if isinstance(processor['EDITOR']['PROBE'], dict) else processor['EDITOR']['PROBE'][probe_index]
154169
self.probe_SN = self.probe_info['@probe_serial_number']
155-
self.probe_model = {
156-
"Neuropix-PXI": "neuropixels 1.0 - 3B",
157-
"Neuropix-3a": "neuropixels 1.0 - 3A"}[processor['@pluginName']]
170+
self.probe_model = _probe_model_name_mapper[processor['@pluginName']]
158171
self._channels_connected = {int(re.search(r'\d+$', k).group()): int(v)
159172
for k, v in self.probe_info.pop('CHANNELSTATUS').items()}
160173
else:
161174
self.probe_info = processor['EDITOR']['NP_PROBE'][probe_index]
162175
self.probe_SN = self.probe_info['@probe_serial_number']
163-
self.probe_model = {
164-
"Neuropixels 1.0": "neuropixels 1.0 - 3B",
165-
"Neuropixels Ultra": "neuropixels UHD",
166-
"Neuropixels 21": "neuropixels 2.0 - SS",
167-
"Neuropixels 24": "neuropixels 2.0 - MS"}[self.probe_info['@probe_name']]
176+
self.probe_model = _probe_model_name_mapper[self.probe_info['@probe_name']]
168177
self._channels_connected = {int(re.search(r'\d+$', k).group()): 1
169178
for k in self.probe_info.pop('CHANNELS')}
170179

0 commit comments

Comments
 (0)