Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def __init__(self, file_path):
assert HAVE_NIXIO, self.installation_mesg
RecordingExtractor.__init__(self)
self._file = nix.File.open(file_path, nix.FileMode.ReadOnly)
self._load_properties()
self._kwargs = {'file_path': str(Path(file_path).absolute())}
def _parse_header(self):
self.file = nix.File.open(self.filename, nix.FileMode.ReadOnly)
sig_channels = []
size_list = []
for bl in self.file.blocks:
for seg in bl.groups:
for da_idx, da in enumerate(seg.data_arrays):
if da.type == "neo.analogsignal":
chan_id = da_idx
ch_name = da.metadata['neo_name']
units = str(da.unit)
dtype = str(da.dtype)
sr = 1 / da.dimensions[0].sampling_interval
da_leng = da.size
if da_leng not in size_list:
size_list.append(da_leng)
group_id = 0
for sid, li_leng in enumerate(size_list):
:param filename: Full path to the file
"""
check_nix_version()
BaseIO.__init__(self, filename)
self.filename = filename
if mode == "ro":
filemode = nix.FileMode.ReadOnly
elif mode == "rw":
filemode = nix.FileMode.ReadWrite
elif mode == "ow":
filemode = nix.FileMode.Overwrite
else:
raise ValueError("Invalid mode specified '{}'. "
"Valid modes: 'ro' (ReadOnly)', 'rw' (ReadWrite),"
" 'ow' (Overwrite).".format(mode))
self.nix_file = nix.File.open(self.filename, filemode)
if self.nix_file.mode == nix.FileMode.ReadOnly:
self._file_version = '0.5.2'
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
elif self.nix_file.mode == nix.FileMode.ReadWrite:
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
else:
self._file_version = '0.5.2'
filemd = self.nix_file.create_section("neo", "neo.metadata")
filemd["version"] = self._file_version
else:
# new file
filemd = self.nix_file.create_section("neo", "neo.metadata")
filemd["version"] = neover
def write_sorting(sorting, save_path, overwrite=False):
assert HAVE_NIXIO, NIXIOSortingExtractor.installation_mesg
if os.path.exists(save_path) and not overwrite:
raise FileExistsError("File exists: {}".format(save_path))
sfreq = sorting.get_sampling_frequency()
if sfreq is None:
unit = None
elif sfreq == 1:
unit = "s"
else:
unit = "{} s".format(1./sfreq)
nf = nix.File.open(save_path, nix.FileMode.Overwrite)
# use the file name to name the top-level block
fname = os.path.basename(save_path)
block = nf.create_block(fname, "spikeinterface.sorting")
commonmd = nf.create_section(fname, "spikeinterface.sorting.metadata")
if sfreq is not None:
commonmd["sampling_frequency"] = sfreq
spikes_das = list()
for unit_id in sorting.get_unit_ids():
spikes = sorting.get_unit_spike_train(unit_id)
name = "spikes-{}".format(unit_id)
da = block.create_data_array(name, "spikeinterface.spikes",
data=spikes)
da.unit = unit
da.label = str(unit_id)
spikes_das.append(da)
def write_recording(recording, save_path, overwrite=False):
assert HAVE_NIXIO, NIXIORecordingExtractor.installation_mesg
if os.path.exists(save_path) and not overwrite:
raise FileExistsError("File exists: {}".format(save_path))
nf = nix.File.open(save_path, nix.FileMode.Overwrite)
# use the file name to name the top-level block
fname = os.path.basename(save_path)
block = nf.create_block(fname, "spikeinterface.recording")
da = block.create_data_array("traces", "spikeinterface.traces",
data=recording.get_traces())
da.unit = "uV"
da.label = "voltage"
labels = recording.get_channel_ids()
if not labels: # channel IDs not specified; just number them
labels = list(range(recording.get_num_channels()))
chandim = da.append_set_dimension()
chandim.labels = labels
sfreq = recording.get_sampling_frequency()
timedim = da.append_sampled_dimension(sampling_interval=1./sfreq)
timedim.unit = "s"
def __init__(self, file_path):
assert HAVE_NIXIO, self.installation_mesg
SortingExtractor.__init__(self)
self._file = nix.File.open(file_path, nix.FileMode.ReadOnly)
md = self._file.sections
if "sampling_frequency" in md:
sfreq = md["sampling_frequency"]
self._sampling_frequency = sfreq
self._load_properties()
self._kwargs = {'file_path': str(Path(file_path).absolute())}
def __init__(self, filename, mode="rw"):
"""
Initialise IO instance and NIX file.
:param filename: Full path to the file
"""
check_nix_version()
BaseIO.__init__(self, filename)
self.filename = filename
if mode == "ro":
filemode = nix.FileMode.ReadOnly
elif mode == "rw":
filemode = nix.FileMode.ReadWrite
elif mode == "ow":
filemode = nix.FileMode.Overwrite
else:
raise ValueError("Invalid mode specified '{}'. "
"Valid modes: 'ro' (ReadOnly)', 'rw' (ReadWrite),"
" 'ow' (Overwrite).".format(mode))
self.nix_file = nix.File.open(self.filename, filemode)
if self.nix_file.mode == nix.FileMode.ReadOnly:
self._file_version = '0.5.2'
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
elif self.nix_file.mode == nix.FileMode.ReadWrite:
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
else:
self._file_version = '0.5.2'
filemd = self.nix_file.create_section("neo", "neo.metadata")
check_nix_version()
BaseIO.__init__(self, filename)
self.filename = filename
if mode == "ro":
filemode = nix.FileMode.ReadOnly
elif mode == "rw":
filemode = nix.FileMode.ReadWrite
elif mode == "ow":
filemode = nix.FileMode.Overwrite
else:
raise ValueError("Invalid mode specified '{}'. "
"Valid modes: 'ro' (ReadOnly)', 'rw' (ReadWrite),"
" 'ow' (Overwrite).".format(mode))
self.nix_file = nix.File.open(self.filename, filemode)
if self.nix_file.mode == nix.FileMode.ReadOnly:
self._file_version = '0.5.2'
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
elif self.nix_file.mode == nix.FileMode.ReadWrite:
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
else:
self._file_version = '0.5.2'
filemd = self.nix_file.create_section("neo", "neo.metadata")
filemd["version"] = self._file_version
else:
# new file
filemd = self.nix_file.create_section("neo", "neo.metadata")
filemd["version"] = neover
self._file_version = neover
def __init__(self, filename, mode="rw"):
"""
Initialise IO instance and NIX file.
:param filename: Full path to the file
"""
check_nix_version()
BaseIO.__init__(self, filename)
self.filename = filename
if mode == "ro":
filemode = nix.FileMode.ReadOnly
elif mode == "rw":
filemode = nix.FileMode.ReadWrite
elif mode == "ow":
filemode = nix.FileMode.Overwrite
else:
raise ValueError("Invalid mode specified '{}'. "
"Valid modes: 'ro' (ReadOnly)', 'rw' (ReadWrite),"
" 'ow' (Overwrite).".format(mode))
self.nix_file = nix.File.open(self.filename, filemode)
if self.nix_file.mode == nix.FileMode.ReadOnly:
self._file_version = '0.5.2'
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
elif self.nix_file.mode == nix.FileMode.ReadWrite:
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
else:
elif isinstance(v, string_types):
if len(v):
section.create_property(name, v)
else:
section.create_property(name, nix.DataType.String)
elif isinstance(v, bytes):
section.create_property(name, v.decode())
elif isinstance(v, Iterable):
values = []
unit = None
definition = None
if len(v) == 0:
# NIX supports empty properties but dtype must be specified
# Defaulting to String and using definition to signify empty
# iterable as opposed to empty string
values = nix.DataType.String
definition = EMPTYANNOTATION
elif hasattr(v, "ndim") and v.ndim == 0:
values = v.item()
if isinstance(v, pq.Quantity):
unit = str(v.dimensionality)
else:
for item in v:
if isinstance(item, string_types):
item = item
elif isinstance(item, pq.Quantity):
unit = str(item.dimensionality)
item = item.magnitude.item()
elif isinstance(item, Iterable):
self.logger.warn("Multidimensional arrays and nested "
"containers are not currently "
"supported when writing to NIX.")