to_neo#
- class braintools.file.to_neo(trains)#
Convert a
SpikeTrainsto a list ofneo.SpikeTrain.One
neo.SpikeTrainis created per neuron, holding its valid spikes (padding is dropped), with the population’st_startandt_stop.- Parameters:
trains (
SpikeTrains) – Unbatched spike trains whose times carry abrainunittime unit.- Returns:
trains.n_neuronsspike trains, in neuron order. Their unit is the same-namedquantitiesunit (ms,s,us, …) or, if there is none, seconds. Iftrains.overflowis set, every train carries the annotationbraintools_overflow=True.- Return type:
- Raises:
TypeError – If
trainsis not aSpikeTrains, is traced (insidejax.jit/jax.vmap), or its times have no time unit.ValueError – If
trainsis batched (times not 2-D).ImportError – If
neoorquantitiesis missing (pip install braintools[neo]).
See also
from_neoThe inverse conversion.
braintools.spike.SpikeTrains.to_listRagged per-neuron arrays.
Notes
Host-only: the output is ragged, so this cannot run under
jax.jitorjax.vmap. Unitless trains are rejected rather than assumed to be in seconds or milliseconds.Examples
>>> import brainunit as u >>> import numpy as np >>> from braintools.file._neo import to_neo >>> from braintools.spike import SpikeTrains >>> st = SpikeTrains.from_list([np.array([1., 3.]) * u.ms, np.array([]) * u.ms], ... t_start=0. * u.ms, t_stop=5. * u.ms) >>> neo_trains = to_neo(st) >>> len(neo_trains) 2 >>> neo_trains[0].magnitude.tolist(), str(neo_trains[0].units.dimensionality) ([1.0, 3.0], 'ms') >>> float(neo_trains[1].t_stop), neo_trains[1].size (5.0, 0)