Skip to content

Commit 7f52f59

Browse files
committed
Merge branch 'dev_separated_create_probe' into nei_nienborg
1 parent 9299142 commit 7f52f59

File tree

1 file changed

+53
-50
lines changed

1 file changed

+53
-50
lines changed

element_array_ephys/probe.py

Lines changed: 53 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
"""
2-
Neuropixels Probes
3-
"""
4-
51
import datajoint as dj
62

73
from .readers import probe_geometry
84
from .readers.probe_geometry import build_electrode_layouts
95

6+
log = dj.logger
7+
108
schema = dj.schema()
119

1210

@@ -33,20 +31,6 @@ def activate(
3331
schema_name, create_schema=create_schema, create_tables=create_tables
3432
)
3533

36-
# Add neuropixels probes
37-
for probe_type in (
38-
"neuropixels 1.0 - 3A",
39-
"neuropixels 1.0 - 3B",
40-
"neuropixels UHD",
41-
"neuropixels 2.0 - SS",
42-
"neuropixels 2.0 - MS",
43-
):
44-
if not (ProbeType & {"probe_type": probe_type}):
45-
try:
46-
ProbeType.create_neuropixels_probe(probe_type)
47-
except dj.errors.DataJointError as e:
48-
print(f"Unable to create probe-type: {probe_type}\n{str(e)}")
49-
5034

5135
@schema
5236
class ProbeType(dj.Lookup):
@@ -87,39 +71,10 @@ class Electrode(dj.Part):
8771

8872
@staticmethod
8973
def create_neuropixels_probe(probe_type: str = "neuropixels 1.0 - 3A"):
90-
"""
91-
Create `ProbeType` and `Electrode` for neuropixels probes:
92-
+ neuropixels 1.0 - 3A
93-
+ neuropixels 1.0 - 3B
94-
+ neuropixels UHD
95-
+ neuropixels 2.0 - SS
96-
+ neuropixels 2.0 - MS
97-
98-
For electrode location, the (0, 0) is the
99-
bottom left corner of the probe (ignore the tip portion)
100-
Electrode numbering is 0-indexing
101-
"""
102-
103-
npx_probes_config = probe_geometry.M
104-
npx_probes_config["neuropixels 1.0 - 3A"] = npx_probes_config["3A"]
105-
npx_probes_config["neuropixels 1.0 - 3B"] = npx_probes_config["NP1010"]
106-
npx_probes_config["neuropixels UHD"] = npx_probes_config["NP1100"]
107-
npx_probes_config["neuropixels 2.0 - SS"] = npx_probes_config["NP2000"]
108-
npx_probes_config["neuropixels 2.0 - MS"] = npx_probes_config["NP2010"]
109-
110-
probe_type = {"probe_type": probe_type}
111-
probe_params = dict(
112-
zip(
113-
probe_geometry.geom_param_names,
114-
npx_probes_config[probe_type["probe_type"]],
115-
)
74+
log.warning(
75+
"Class method `ProbeType.create_neuropixels_probe` is deprecated. Use `create_neuropixels_probe` instead.",
11676
)
117-
electrode_layouts = probe_geometry.build_npx_probe(
118-
**{**probe_params, **probe_type}
119-
)
120-
with ProbeType.connection.transaction:
121-
ProbeType.insert1(probe_type, skip_duplicates=True)
122-
ProbeType.Electrode.insert(electrode_layouts, skip_duplicates=True)
77+
return create_neuropixels_probe(probe_type)
12378

12479

12580
@schema
@@ -171,3 +126,51 @@ class Electrode(dj.Part):
171126
-> master
172127
-> ProbeType.Electrode
173128
"""
129+
130+
131+
def create_neuropixels_probe_types():
132+
# Add neuropixels probes
133+
for probe_type in (
134+
"neuropixels 1.0 - 3A",
135+
"neuropixels 1.0 - 3B",
136+
"neuropixels UHD",
137+
"neuropixels 2.0 - SS",
138+
"neuropixels 2.0 - MS",
139+
):
140+
if not (ProbeType & {"probe_type": probe_type}):
141+
create_neuropixels_probe(probe_type)
142+
143+
144+
def create_neuropixels_probe(probe_type: str = "neuropixels 1.0 - 3A"):
145+
"""
146+
Create `ProbeType` and `Electrode` for neuropixels probes:
147+
+ neuropixels 1.0 - 3A
148+
+ neuropixels 1.0 - 3B
149+
+ neuropixels UHD
150+
+ neuropixels 2.0 - SS
151+
+ neuropixels 2.0 - MS
152+
153+
For electrode location, the (0, 0) is the
154+
bottom left corner of the probe (ignore the tip portion)
155+
Electrode numbering is 0-indexing
156+
"""
157+
npx_probes_config = probe_geometry.M
158+
npx_probes_config["neuropixels 1.0 - 3A"] = npx_probes_config["3A"]
159+
npx_probes_config["neuropixels 1.0 - 3B"] = npx_probes_config["NP1010"]
160+
npx_probes_config["neuropixels UHD"] = npx_probes_config["NP1100"]
161+
npx_probes_config["neuropixels 2.0 - SS"] = npx_probes_config["NP2000"]
162+
npx_probes_config["neuropixels 2.0 - MS"] = npx_probes_config["NP2010"]
163+
164+
probe_type = {"probe_type": probe_type}
165+
probe_params = dict(
166+
zip(
167+
probe_geometry.geom_param_names,
168+
npx_probes_config[probe_type["probe_type"]],
169+
)
170+
)
171+
electrode_layouts = probe_geometry.build_npx_probe(
172+
**{**probe_params, **probe_type}
173+
)
174+
with ProbeType.connection.transaction:
175+
ProbeType.insert1(probe_type)
176+
ProbeType.Electrode.insert(electrode_layouts)

0 commit comments

Comments
 (0)