ibl-neuropixel 1.9.1__tar.gz → 1.9.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ibl_neuropixel-1.9.1/src/ibl_neuropixel.egg-info → ibl_neuropixel-1.9.3}/PKG-INFO +1 -1
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/setup.py +1 -1
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3/src/ibl_neuropixel.egg-info}/PKG-INFO +1 -1
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibl_neuropixel.egg-info/SOURCES.txt +1 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/utils.py +19 -6
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/voltage.py +72 -27
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/waveforms.py +4 -1
- ibl_neuropixel-1.9.3/src/tests/unit/test_cadzow.py +24 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/test_voltage.py +0 -10
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/LICENSE +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/MANIFEST.in +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/README.md +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/setup.cfg +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibl_neuropixel.egg-info/dependency_links.txt +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibl_neuropixel.egg-info/requires.txt +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibl_neuropixel.egg-info/top_level.txt +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/__init__.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/cadzow.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/cuda_tools.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/destripe_gpu.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/filter_gpu.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/fourier.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/icsd.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/plots.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/raw_metrics.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/smooth.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/spiketrains.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibldsp/waveform_extraction.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/neuropixel.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/neurowaveforms/__init__.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/neurowaveforms/model.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/spikeglx.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/np2split/NP1_meta/_spikeglx_ephysData_g0_t0.imec0.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/np2split/NP21_meta/_spikeglx_ephysData_g0_t0.imec0.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/np2split/NP24_meta/_spikeglx_ephysData_g0_t0.imec0.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/np2split/_spikeglx_ephysData_g0_t0.imec0.ap.ch +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/np2split/_spikeglx_ephysData_g0_t0.imec0.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_376_channels.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_g0_t0.imec.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_g0_t0.imec.lf.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_g0_t0.imec.wiring.json +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_short_g0_t0.imec.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B2_exported.imec0.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_catgt.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_g0_t0.imec1.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_g0_t0.imec1.lf.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_g0_t0.nidq.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_g0_t0.nidq.wiring.json +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_version202304.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.1_g0_t0.imec.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.1_prototype.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.4_1shank_g0_t0.imec.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.4_4shanks_appVersion20230905.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.4_4shanks_g0_t0.imec.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.4_4shanks_while_acquiring_incomplete.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNPultra_g0_t0.imec0.ap.meta +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_arr_in.npy +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_arr_peak.npy +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_df.csv +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_df_wavinfo.csv +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/integration/__init__.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/integration/csd_experiments.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/integration/test_destripe.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/__init__.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/test_ephys_np2.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/test_neuropixel.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/test_plots.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/test_spikeglx.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/test_utils.py +0 -0
- {ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/unit/test_waveforms.py +0 -0
|
@@ -8,7 +8,7 @@ with open("requirements.txt") as f:
|
|
|
8
8
|
|
|
9
9
|
setuptools.setup(
|
|
10
10
|
name="ibl-neuropixel",
|
|
11
|
-
version="1.9.
|
|
11
|
+
version="1.9.3",
|
|
12
12
|
author="The International Brain Laboratory",
|
|
13
13
|
description="Collection of tools for Neuropixel 1.0 and 2.0 probes data",
|
|
14
14
|
long_description=long_description,
|
|
@@ -58,6 +58,7 @@ src/tests/integration/__init__.py
|
|
|
58
58
|
src/tests/integration/csd_experiments.py
|
|
59
59
|
src/tests/integration/test_destripe.py
|
|
60
60
|
src/tests/unit/__init__.py
|
|
61
|
+
src/tests/unit/test_cadzow.py
|
|
61
62
|
src/tests/unit/test_ephys_np2.py
|
|
62
63
|
src/tests/unit/test_neuropixel.py
|
|
63
64
|
src/tests/unit/test_plots.py
|
|
@@ -383,21 +383,34 @@ class WindowGenerator(object):
|
|
|
383
383
|
yield (first, last, amp)
|
|
384
384
|
|
|
385
385
|
@property
|
|
386
|
-
def
|
|
386
|
+
def first_last_valid_noedge(self):
|
|
387
387
|
"""
|
|
388
388
|
Generator that yields a tuple of first, last, first_valid, last_valid index of windows
|
|
389
|
-
The valid indices span up to half of the overlap
|
|
389
|
+
The valid indices span up to half of the overlap.
|
|
390
|
+
The first and last windows have respectively the beginning and end of the signal discarded.
|
|
390
391
|
:return:
|
|
391
392
|
"""
|
|
393
|
+
return self._firstlast_valid(discard_edges=True)
|
|
394
|
+
|
|
395
|
+
@property
|
|
396
|
+
def firstlast_valid(self):
|
|
397
|
+
"""
|
|
398
|
+
Generator that yields a tuple of first, last, first_valid, last_valid index of windows
|
|
399
|
+
The valid indices span up to half of the overlap.
|
|
400
|
+
The first and last windows have the full beginning and end of the signal respectively.
|
|
401
|
+
To discard the beginning and end edges, use firstlast_valid_noedge instead.
|
|
402
|
+
:return:
|
|
403
|
+
"""
|
|
404
|
+
return self._firstlast_valid(self)
|
|
405
|
+
|
|
406
|
+
def _firstlast_valid(self, discard_edges=False):
|
|
392
407
|
assert self.overlap % 2 == 0, "Overlap must be even"
|
|
393
408
|
for first, last in self.firstlast:
|
|
394
409
|
first_valid = (
|
|
395
|
-
0 if first == 0 and
|
|
410
|
+
0 if first == 0 and discard_edges else first + self.overlap // 2
|
|
396
411
|
)
|
|
397
412
|
last_valid = (
|
|
398
|
-
last
|
|
399
|
-
if last == self.ns and not discard_edges
|
|
400
|
-
else last - self.overlap // 2
|
|
413
|
+
last if last == self.ns and discard_edges else last - self.overlap // 2
|
|
401
414
|
)
|
|
402
415
|
yield (first, last, first_valid, last_valid)
|
|
403
416
|
|
|
@@ -790,21 +790,59 @@ def decompress_destripe_cbin(
|
|
|
790
790
|
|
|
791
791
|
|
|
792
792
|
def detect_bad_channels(
|
|
793
|
-
raw,
|
|
793
|
+
raw,
|
|
794
|
+
fs,
|
|
795
|
+
similarity_threshold=(-0.5, 1),
|
|
796
|
+
psd_hf_threshold=None,
|
|
797
|
+
display=False,
|
|
798
|
+
outside_threshold=-0.75,
|
|
794
799
|
):
|
|
795
800
|
"""
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
:
|
|
806
|
-
|
|
807
|
-
|
|
801
|
+
Detect bad channels in Neuropixel probe recordings based on signal quality metrics.
|
|
802
|
+
|
|
803
|
+
This function analyzes raw electrophysiology data to identify and label problematic channels
|
|
804
|
+
using multiple criteria including cross-correlation with neighboring channels, power spectral
|
|
805
|
+
density analysis, and spatial coherence patterns. Channels are classified into four categories:
|
|
806
|
+
good (0), dead (1), noisy (2), or outside the brain (3).
|
|
807
|
+
|
|
808
|
+
Parameters
|
|
809
|
+
----------
|
|
810
|
+
raw : numpy.ndarray
|
|
811
|
+
Raw voltage traces array with shape (nc, ns), where nc is the number of channels
|
|
812
|
+
and ns is the number of samples.
|
|
813
|
+
fs : float
|
|
814
|
+
Sampling frequency in Hz.
|
|
815
|
+
similarity_threshold : tuple of float, optional
|
|
816
|
+
Two-element tuple (lower, upper) defining the acceptable range for high-frequency
|
|
817
|
+
cross-correlation values. Channels outside this range are flagged as dead (below lower)
|
|
818
|
+
or noisy (above upper). Defaults to (-0.5, 1).
|
|
819
|
+
psd_hf_threshold : float, optional
|
|
820
|
+
Threshold for high-frequency power spectral density to identify noisy channels.
|
|
821
|
+
If None, defaults to 0.02 for AP band (fs > 2600 Hz) or 1.4 for LF band (fs <= 2600 Hz).
|
|
822
|
+
Units are µV²/Hz.
|
|
823
|
+
display : bool, optional
|
|
824
|
+
If True, displays a diagnostic plot showing channel features and a raw data snippet.
|
|
825
|
+
Defaults to False.
|
|
826
|
+
outside_threshold : float or str, optional
|
|
827
|
+
Threshold for low-frequency cross-correlation to identify channels outside the brain.
|
|
828
|
+
Can be a float value (default -0.75) or 'adaptive' for automatic threshold detection
|
|
829
|
+
based on signal gradient analysis.
|
|
830
|
+
|
|
831
|
+
Returns
|
|
832
|
+
-------
|
|
833
|
+
ichannels : numpy.ndarray
|
|
834
|
+
Integer array of shape (nc,) containing channel labels:
|
|
835
|
+
- 0: good channel
|
|
836
|
+
- 1: dead channel (low coherence/amplitude)
|
|
837
|
+
- 2: noisy channel (high noise or excessive correlation)
|
|
838
|
+
- 3: outside of the brain
|
|
839
|
+
xfeats : dict
|
|
840
|
+
Dictionary containing computed features for each channel:
|
|
841
|
+
- 'ind': channel indices
|
|
842
|
+
- 'rms_raw': RMS amplitude of raw signal
|
|
843
|
+
- 'xcor_hf': detrended high-frequency cross-correlation
|
|
844
|
+
- 'xcor_lf': low-frequency cross-correlation component
|
|
845
|
+
- 'psd_hf': mean power spectral density in high-frequency band
|
|
808
846
|
"""
|
|
809
847
|
|
|
810
848
|
def rneighbours(raw, n=1): # noqa
|
|
@@ -897,21 +935,28 @@ def detect_bad_channels(
|
|
|
897
935
|
)[0]
|
|
898
936
|
# the channels outside of the brains are the contiguous channels below the threshold on the trend coherency
|
|
899
937
|
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
938
|
+
# deal with channels outside of the brain
|
|
939
|
+
if outside_threshold == "adaptive":
|
|
940
|
+
signal_noisy = xfeats["xcor_lf"]
|
|
941
|
+
# Filter signal
|
|
942
|
+
window_size = 25 # Choose based on desired smoothing (e.g., 25 samples)
|
|
943
|
+
kernel = np.ones(window_size) / window_size
|
|
944
|
+
# Apply convolution
|
|
945
|
+
signal_filtered = np.convolve(signal_noisy, kernel, mode="same")
|
|
946
|
+
|
|
947
|
+
diff_x = np.diff(signal_filtered)
|
|
948
|
+
indx = np.where(diff_x < -0.02)[0] # hardcoded threshold
|
|
949
|
+
if indx.size > 0:
|
|
950
|
+
indx_threshold = np.floor(np.median(indx)).astype(int)
|
|
951
|
+
threshold = signal_noisy[indx_threshold]
|
|
952
|
+
ioutside = np.where(signal_noisy < threshold)[0]
|
|
953
|
+
else:
|
|
954
|
+
ioutside = np.array([])
|
|
913
955
|
else:
|
|
914
|
-
|
|
956
|
+
assert np.isreal(outside_threshold) and np.isscalar(outside_threshold), (
|
|
957
|
+
"outside_threshold must be a real number or 'adaptive' for adaptive threshold"
|
|
958
|
+
)
|
|
959
|
+
ioutside = np.where(xfeats["xcor_lf"] < outside_threshold)[0]
|
|
915
960
|
|
|
916
961
|
if ioutside.size > 0 and ioutside[-1] == (nc - 1):
|
|
917
962
|
a = np.cumsum(np.r_[0, np.diff(ioutside) - 1])
|
|
@@ -297,7 +297,7 @@ def plot_wiggle(
|
|
|
297
297
|
return ax
|
|
298
298
|
|
|
299
299
|
|
|
300
|
-
def double_wiggle(wav, fs=1, ax=None, colors=None, **kwargs):
|
|
300
|
+
def double_wiggle(wav, fs=1, ax=None, colors=None, title=None, **kwargs):
|
|
301
301
|
"""
|
|
302
302
|
Double trouble: this wiggle colours both the negative and the postive values
|
|
303
303
|
:param wav: (nchannels, nsamples)
|
|
@@ -308,6 +308,7 @@ def double_wiggle(wav, fs=1, ax=None, colors=None, **kwargs):
|
|
|
308
308
|
:param fill_sign: -1 for negative (default for spikes), 1 for positive
|
|
309
309
|
:param plot_kwargs: kwargs for the line plot
|
|
310
310
|
:param fill_kwargs: kwargs for the fill
|
|
311
|
+
:param title: title for the axis (optional)
|
|
311
312
|
:return:
|
|
312
313
|
"""
|
|
313
314
|
if colors is None:
|
|
@@ -334,6 +335,8 @@ def double_wiggle(wav, fs=1, ax=None, colors=None, **kwargs):
|
|
|
334
335
|
fill_kwargs={"color": colors[1]},
|
|
335
336
|
**kwargs,
|
|
336
337
|
)
|
|
338
|
+
if title is not None:
|
|
339
|
+
ax.set(title=title)
|
|
337
340
|
return ax
|
|
338
341
|
|
|
339
342
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
|
|
5
|
+
import ibldsp.cadzow
|
|
6
|
+
import neuropixel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TestCadzow(unittest.TestCase):
|
|
10
|
+
def test_trajectory_matrixes_indices(self):
|
|
11
|
+
assert np.all(
|
|
12
|
+
ibldsp.cadzow.traj_matrix_indices(4) == np.array([[1, 0], [2, 1], [3, 2]])
|
|
13
|
+
)
|
|
14
|
+
assert np.all(
|
|
15
|
+
ibldsp.cadzow.traj_matrix_indices(3) == np.array([[1, 0], [2, 1]])
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
def test_trajectory(self):
|
|
19
|
+
th = neuropixel.trace_header(version=1)
|
|
20
|
+
tm, it, ic, trcount = ibldsp.cadzow.trajectory(
|
|
21
|
+
th["x"][:8], th["y"][:8], dtype=np.int32
|
|
22
|
+
)
|
|
23
|
+
# make sure tm can be indexed
|
|
24
|
+
np.testing.assert_array_equal(tm[it], 0)
|
|
@@ -148,13 +148,3 @@ class TestSaturation(unittest.TestCase):
|
|
|
148
148
|
saturation[45852:45865] = True
|
|
149
149
|
df_sat = ibldsp.voltage.saturation_samples_to_intervals(saturation)
|
|
150
150
|
self.assertEqual(81, np.sum(df_sat["stop_sample"] - df_sat["start_sample"]))
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
class TestCadzow(unittest.TestCase):
|
|
154
|
-
def test_trajectory_matrixes(self):
|
|
155
|
-
assert np.all(
|
|
156
|
-
ibldsp.cadzow.traj_matrix_indices(4) == np.array([[1, 0], [2, 1], [3, 2]])
|
|
157
|
-
)
|
|
158
|
-
assert np.all(
|
|
159
|
-
ibldsp.cadzow.traj_matrix_indices(3) == np.array([[1, 0], [2, 1]])
|
|
160
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/ibl_neuropixel.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_376_channels.ap.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_g0_t0.imec.ap.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_g0_t0.imec.lf.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_g0_t0.imec.wiring.json
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3A_short_g0_t0.imec.ap.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B2_exported.imec0.ap.meta
RENAMED
|
File without changes
|
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_g0_t0.imec1.ap.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_g0_t0.imec1.lf.meta
RENAMED
|
File without changes
|
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_g0_t0.nidq.wiring.json
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sample3B_version202304.ap.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.1_g0_t0.imec.ap.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNP2.1_prototype.ap.meta
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/sampleNPultra_g0_t0.imec0.ap.meta
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_arr_in.npy
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_arr_peak.npy
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_df.csv
RENAMED
|
File without changes
|
{ibl_neuropixel-1.9.1 → ibl_neuropixel-1.9.3}/src/tests/fixtures/waveform_sample/test_df_wavinfo.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|