1
1
from pathlib import Path
2
2
3
3
import numpy as np
4
+ import glob
4
5
5
6
import pytest
6
7
7
8
from probeinterface import read_openephys
9
+ from probeinterface .testing import validate_probe_dict
8
10
9
11
data_path = Path (__file__ ).absolute ().parent .parent / "data" / "openephys"
10
12
11
13
12
14
def test_NP2_OE_1_0 ():
13
15
# NP2 1-shank
14
16
probeA = read_openephys (data_path / "OE_1.0_Neuropix-PXI-multi-probe" / "settings.xml" , probe_name = "ProbeA" )
17
+ probe_dict = probeA .to_dict (array_as_list = True )
18
+ validate_probe_dict (probe_dict )
15
19
assert probeA .get_shank_count () == 1
16
20
assert "2.0" in probeA .model_name
17
21
assert probeA .get_contact_count () == 384
@@ -20,13 +24,17 @@ def test_NP2_OE_1_0():
20
24
def test_NP2 ():
21
25
# NP2
22
26
probe = read_openephys (data_path / "OE_Neuropix-PXI" / "settings.xml" )
27
+ probe_dict = probe .to_dict (array_as_list = True )
28
+ validate_probe_dict (probe_dict )
23
29
assert probe .get_shank_count () == 1
24
30
assert "2.0 - Single Shank" in probe .model_name
25
31
26
32
27
33
def test_NP2_four_shank ():
28
34
# NP2
29
35
probe = read_openephys (data_path / "OE_Neuropix-PXI-NP2-4shank" / "settings.xml" )
36
+ probe_dict = probe .to_dict (array_as_list = True )
37
+ validate_probe_dict (probe_dict )
30
38
# on this case, only shanks 2-3 are used
31
39
assert probe .get_shank_count () == 2
32
40
assert "2.0 - Four Shank" in probe .model_name
@@ -38,6 +46,8 @@ def test_NP_Ultra():
38
46
data_path / "OE_Neuropix-PXI-NP-Ultra" / "settings.xml" ,
39
47
probe_name = "ProbeA" ,
40
48
)
49
+ probe_dict = probeA .to_dict (array_as_list = True )
50
+ validate_probe_dict (probe_dict )
41
51
assert "Ultra" in probeA .model_name
42
52
assert probeA .get_shank_count () == 1
43
53
assert probeA .get_contact_count () == 384
@@ -46,6 +56,8 @@ def test_NP_Ultra():
46
56
data_path / "OE_Neuropix-PXI-NP-Ultra" / "settings.xml" ,
47
57
probe_name = "ProbeB" ,
48
58
)
59
+ probe_dict = probeB .to_dict (array_as_list = True )
60
+ validate_probe_dict (probe_dict )
49
61
assert "Ultra" in probeB .model_name
50
62
assert probeB .get_shank_count () == 1
51
63
assert probeB .get_contact_count () == 384
@@ -54,6 +66,8 @@ def test_NP_Ultra():
54
66
data_path / "OE_Neuropix-PXI-NP-Ultra" / "settings.xml" ,
55
67
probe_name = "ProbeF" ,
56
68
)
69
+ probe_dict = probeF .to_dict (array_as_list = True )
70
+ validate_probe_dict (probe_dict )
57
71
assert "Ultra" in probeF .model_name
58
72
assert probeF .get_shank_count () == 1
59
73
assert probeF .get_contact_count () == 384
@@ -62,6 +76,8 @@ def test_NP_Ultra():
62
76
data_path / "OE_Neuropix-PXI-NP-Ultra" / "settings.xml" ,
63
77
probe_name = "ProbeD" ,
64
78
)
79
+ probe_dict = probeD .to_dict (array_as_list = True )
80
+ validate_probe_dict (probe_dict )
65
81
assert "Ultra" in probeD .model_name and "Type 2" in probeD .model_name
66
82
assert probeD .get_shank_count () == 1
67
83
assert probeD .get_contact_count () == 384
@@ -72,12 +88,16 @@ def test_NP_Ultra():
72
88
def test_NP1_subset ():
73
89
# NP1 - 200 channels selected by recording_state in Record Node
74
90
probe_ap = read_openephys (data_path / "OE_Neuropix-PXI-subset" / "settings.xml" , stream_name = "ProbeA-AP" )
91
+ probe_dict = probe_ap .to_dict (array_as_list = True )
92
+ validate_probe_dict (probe_dict )
75
93
76
94
assert probe_ap .get_shank_count () == 1
77
95
assert "1.0" in probe_ap .model_name
78
96
assert probe_ap .get_contact_count () == 200
79
97
80
98
probe_lf = read_openephys (data_path / "OE_Neuropix-PXI-subset" / "settings.xml" , stream_name = "ProbeA-LFP" )
99
+ probe_dict = probe_lf .to_dict (array_as_list = True )
100
+ validate_probe_dict (probe_dict )
81
101
82
102
assert probe_lf .get_shank_count () == 1
83
103
assert "1.0" in probe_lf .model_name
@@ -92,6 +112,8 @@ def test_NP1_subset():
92
112
def test_multiple_probes ():
93
113
# multiple probes
94
114
probeA = read_openephys (data_path / "OE_Neuropix-PXI-multi-probe" / "settings.xml" , probe_name = "ProbeA" )
115
+ probe_dict = probeA .to_dict (array_as_list = True )
116
+ validate_probe_dict (probe_dict )
95
117
96
118
assert probeA .get_shank_count () == 1
97
119
assert "1.0" in probeA .model_name
@@ -100,17 +122,23 @@ def test_multiple_probes():
100
122
data_path / "OE_Neuropix-PXI-multi-probe" / "settings.xml" ,
101
123
stream_name = "RecordNode#ProbeB" ,
102
124
)
125
+ probe_dict = probeB .to_dict (array_as_list = True )
126
+ validate_probe_dict (probe_dict )
103
127
104
128
assert probeB .get_shank_count () == 1
105
129
106
130
probeC = read_openephys (
107
131
data_path / "OE_Neuropix-PXI-multi-probe" / "settings.xml" ,
108
132
serial_number = "20403311714" ,
109
133
)
134
+ probe_dict = probeC .to_dict (array_as_list = True )
135
+ validate_probe_dict (probe_dict )
110
136
111
137
assert probeC .get_shank_count () == 1
112
138
113
139
probeD = read_openephys (data_path / "OE_Neuropix-PXI-multi-probe" / "settings.xml" , probe_name = "ProbeD" )
140
+ probe_dict = probeD .to_dict (array_as_list = True )
141
+ validate_probe_dict (probe_dict )
114
142
115
143
assert probeD .get_shank_count () == 1
116
144
@@ -146,11 +174,16 @@ def test_multiple_probes_enabled():
146
174
probe = read_openephys (
147
175
data_path / "OE_6.7_enabled_disabled_Neuropix-PXI" / "settings_enabled-enabled.xml" , probe_name = "ProbeA"
148
176
)
177
+ probe_dict = probe .to_dict (array_as_list = True )
178
+ validate_probe_dict (probe_dict )
179
+
149
180
assert probe .get_shank_count () == 1
150
181
151
182
probe = read_openephys (
152
183
data_path / "OE_6.7_enabled_disabled_Neuropix-PXI" / "settings_enabled-enabled.xml" , probe_name = "ProbeB"
153
184
)
185
+ probe_dict = probe .to_dict (array_as_list = True )
186
+ validate_probe_dict (probe_dict )
154
187
assert probe .get_shank_count () == 4
155
188
156
189
@@ -159,7 +192,8 @@ def test_multiple_probes_disabled():
159
192
probe = read_openephys (
160
193
data_path / "OE_6.7_enabled_disabled_Neuropix-PXI" / "settings_enabled-disabled.xml" , probe_name = "ProbeA"
161
194
)
162
-
195
+ probe_dict = probe .to_dict (array_as_list = True )
196
+ validate_probe_dict (probe_dict )
163
197
assert probe .get_shank_count () == 1
164
198
165
199
# Fail as this is disabled:
@@ -173,6 +207,8 @@ def test_multiple_probes_disabled():
173
207
174
208
def test_np_opto_with_sync ():
175
209
probe = read_openephys (data_path / "OE_Neuropix-PXI-opto-with-sync" / "settings.xml" )
210
+ probe_dict = probe .to_dict (array_as_list = True )
211
+ validate_probe_dict (probe_dict )
176
212
assert probe .model_name == "Neuropixels Opto"
177
213
assert probe .get_shank_count () == 1
178
214
assert probe .get_contact_count () == 384
@@ -182,7 +218,8 @@ def test_older_than_06_format():
182
218
## Test with the open ephys < 0.6 format
183
219
184
220
probe = read_openephys (data_path / "OE_5_Neuropix-PXI-multi-probe" / "settings.xml" , probe_name = "100.0" )
185
-
221
+ probe_dict = probe .to_dict (array_as_list = True )
222
+ validate_probe_dict (probe_dict )
186
223
assert probe .get_shank_count () == 4
187
224
assert "2.0 - Four Shank" in probe .model_name
188
225
ypos = probe .contact_positions [:, 1 ]
@@ -193,6 +230,8 @@ def test_multiple_signal_chains():
193
230
# tests that the probe information can be loaded even if the Neuropix-PXI plugin
194
231
# is not in the first signalchain
195
232
probe = read_openephys (data_path / "OE_Neuropix-PXI-multiple-signalchains" / "settings.xml" )
233
+ probe_dict = probe .to_dict (array_as_list = True )
234
+ validate_probe_dict (probe_dict )
196
235
assert probe .model_name == "Neuropixels 1.0"
197
236
198
237
0 commit comments