bmtk.utils.reports.spike_trains package¶
Submodules¶
bmtk.utils.reports.spike_trains.core module¶
bmtk.utils.reports.spike_trains.plotting module¶
-
bmtk.utils.reports.spike_trains.plotting.
plot_raster
(spike_trains, with_histogram=True, population=None, node_groups=None, times=None, title=None, show=True, save_as=None)[source]¶ will create a raster plot (plus optional histogram) from a SpikeTrains object or SONATA Spike-Trains file. Will return the figure
By default will display all nodes, if you want to only display a subset of nodes and/or group together different nodes (by node_id) by dot colors and labels then you can use the node_groups, which should be a list of dicts:
plot_raster('/path/to/my/spike.h5', node_groups=[{'node_ids': range(0, 70), 'c': 'b', 'label': 'pyr'}, # first 70 nodes are blue pyr cells {'node_ids': range(70, 100), 'c': 'r', 'label': 'inh'}]) # last 30 nodes are red inh cells
The histogram will not be grouped.
Parameters: - spike_trains – SpikeTrains object or path to a (SONATA) spikes file.
- with_histogram – If True the a histogram will be shown as a small subplot below the scatter plot. Default True.
- population – string. If a spikes-file contains more than one population of nodes, use this to determine which nodes to actually plot. If only one population exists and population=None then the function will find it by default.
- node_groups – None or list of dicts. Used to group sets of nodes by labels and color. Each grouping should be a dictionary with a ‘node_ids’ key with a list of the ids. You can also add ‘label’ and ‘c’ keys for label and color. If None all nodes will be labeled and colored the same.
- times – (float, float). Used to set start and stop time. If not specified will try to find values from spiking data.
- title – str, Use to add a title. Default no tile
- show – bool to display or not display plot. default True.
- save_as – None or str: file-name/path to save the plot as a png/jpeg/etc. If None or empty string will not save plot.
Returns: matplotlib figure.Figure object
-
bmtk.utils.reports.spike_trains.plotting.
plot_rates
(spike_trains, population=None, node_groups=None, times=None, smoothing=False, smoothing_params=None, title=None, show=True, save_as=None)[source]¶ Calculate and plot the rates of each node in a SpikeTrains object or SONATA Spike-Trains file. If start and stop times are not specified from the “times” parameter, will try to parse values from the timestamps data.
If you want to only display a subset of nodes and/or group together different nodes (by node_id) by dot colors and labels then you can use the node_groups, which should be a list of dicts:
plot_rates('/path/to/my/spike.h5', node_groups=[{'node_ids': range(0, 70), 'c': 'b', 'label': 'pyr'}, {'node_ids': range(70, 100), 'c': 'r', 'label': 'inh'}])
Parameters: - spike_trains – SpikeTrains object or path to a (SONATA) spikes file.
- population – string. If a spikes-file contains more than one population of nodes, use this to determine which nodes to actually plot. If only one population exists and population=None then the function will find it by default.
- node_groups – None or list of dicts. Used to group sets of nodes by labels and color. Each grouping should be a dictionary with a ‘node_ids’ key with a list of the ids. You can also add ‘label’ and ‘c’ keys for label and color. If None all nodes will be labeled and colored the same.
- times – (float, float). Used to set start and stop time. If not specified will try to find values from spiking data.
- smoothing – Bool or function. Used to smooth the data. By default (False) no smoothing will be done. If True will using a moving average smoothing function. Or use a function pointer.
- smoothing_params – dict, parameters when using a function pointer smoothing value.
- title – str, Use to add a title. Default no tile
- show – bool to display or not display plot. default True.
- save_as – None or str: file-name/path to save the plot as a png/jpeg/etc. If None or empty string will not save plot.
Returns: matplotlib figure.Figure object
-
bmtk.utils.reports.spike_trains.plotting.
plot_rates_boxplot
(spike_trains, population=None, node_groups=None, times=None, title=None, show=True, save_as=None)[source]¶ Creates a box plot of the firing rates taken from a SpikeTrains object or SONATA Spike-Trains file. If start and stop times are not specified from the “times” parameter, will try to parse values from the timestamps data.
By default will plot all nodes together. To only display a subset of the nodes and/or create groups of nodes use the node_groups options:
plot_rates_boxplot( '/path/to/my/spike.h5', node_groups=[{'node_ids': range(0, 70), 'label': 'pyr'}, {'node_ids': range(70, 100), 'label': 'inh'}] )
Parameters: - spike_trains – SpikeTrains object or path to a (SONATA) spikes file.
- population – string. If a spikes-file contains more than one population of nodes, use this to determine which nodes to actually plot. If only one population exists and population=None then the function will find it by default.
- node_groups – None or list of dicts. Used to group sets of nodes by labels and color. Each grouping should be a dictionary with a ‘node_ids’ key with a list of the ids. You can also add ‘label’ and ‘c’ keys for label and color. If None all nodes will be labeled and colored the same.
- title – str, Use to add a title. Default no tile
- show – bool to display or not display plot. default True.
- save_as – None or str: file-name/path to save the plot as a png/jpeg/etc. If None or empty string will not save plot.
Returns: matplotlib figure.Figure object
bmtk.utils.reports.spike_trains.spike_train_buffer module¶
-
class
bmtk.utils.reports.spike_trains.spike_train_buffer.
STCSVBuffer
(cache_dir=None, default_population=None, cache_name='spikes', **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains_api.SpikeTrainsAPI
A Class for creating, storing and reading multi-population spike-trains - especially for saving the spikes of a large scale network simulation. Keeps a running tally of the (timestamp, population-name, node_id) for each individual spike.
Uses a caching mechanism to periodically save spikes to the disk. Will encure a runtime performance penality but will always have an upper bound on the maximum memory used.
If running parallel simulations should use the STMPIBuffer adaptor instead.
-
add_spike
(node_id, timestamp, population=None, **kwargs)[source]¶ Add a single spike
Parameters: - node_id – integer, id of node/cell that spike belongs too.
- timestamp – double, time that spike occurred.
- population – string, name of population belong to spike. If none will try to use the default population.
- kwargs – optional arguments.
-
add_spikes
(node_ids, timestamps, population=None, **kwargs)[source]¶ Add a sequence of spikes.
Parameters: - node_ids – list of ints or int. If a list is used, it should be the same lenght as the corresponding timestamps. If a singluar integer value is used then assumes all timestamps corresponds with said node_id.
- timestamps – A list of doubles
- population – The population to which the node(s) belong too
- kwargs – optional arguments.
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
set_units
(u, population=None)[source]¶ Set the units associated with a population timestamps (ms, seconds)
-
spikes
(populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(populations=None, sort_order=<SortOrder.none: 'none'>, with_population_col=True, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_train_buffer.
STCSVMPIBuffer
(cache_dir=None, default_population=None, cache_name='spikes', **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_train_buffer.STCSVBuffer
-
get_times
(node_id, population=None, time_window=None, on_rank='all', **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None, on_rank='all')[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None, on_rank='all')[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
spikes
(populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, on_rank='all', **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
-
class
bmtk.utils.reports.spike_trains.spike_train_buffer.
STCSVMPIBufferV2
(cache_dir=None, default_population=None, cache_name='spikes', **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_train_buffer.STCSVMPIBuffer
-
to_dataframe
(populations=None, sort_order=<SortOrder.none: 'none'>, with_population_col=True, on_rank='all', **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_train_buffer.
STMPIBuffer
(default_population=None, store_type='array', **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_train_buffer.STMemoryBuffer
-
get_times
(node_id, population=None, time_window=None, on_rank='all', **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None, on_rank='all')[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None, on_rank='all')[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
spikes
(populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, on_rank='all', **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(populations=None, sort_order=<SortOrder.none: 'none'>, with_population_col=True, on_rank='all', **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_train_buffer.
STMemoryBuffer
(default_population=None, store_type='array', **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains_api.SpikeTrainsAPI
A Class for creating, storing and reading multi-population spike-trains - especially for saving the spikes of a large scale network simulation. Keeps a running tally of the (timestamp, population-name, node_id) for each individual spike.
The spikes are stored in memory and very large and/or epiletic simulations may run into memory issues. Not designed to work with parallel simulations.
-
add_spike
(node_id, timestamp, population=None, **kwargs)[source]¶ Add a single spike
Parameters: - node_id – integer, id of node/cell that spike belongs too.
- timestamp – double, time that spike occurred.
- population – string, name of population belong to spike. If none will try to use the default population.
- kwargs – optional arguments.
-
add_spikes
(node_ids, timestamps, population=None, **kwargs)[source]¶ Add a sequence of spikes.
Parameters: - node_ids – list of ints or int. If a list is used, it should be the same lenght as the corresponding timestamps. If a singluar integer value is used then assumes all timestamps corresponds with said node_id.
- timestamps – A list of doubles
- population – The population to which the node(s) belong too
- kwargs – optional arguments.
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
import_spikes
(obj, **kwargs)[source]¶ Import spikes from another spike-trains or other object. Highly dependent on stragey
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
set_units
(v, population=None)[source]¶ Set the units associated with a population timestamps (ms, seconds)
-
spikes
(populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(populations=None, sort_order=<SortOrder.none: 'none'>, with_population_col=True, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
bmtk.utils.reports.spike_trains.spike_train_readers module¶
-
class
bmtk.utils.reports.spike_trains.spike_train_readers.
CSVSTReader
(path, sep=' ', default_population=None, **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains_api.SpikeTrainsReadOnlyAPI
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
spikes
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(populations=None, sort_order=<SortOrder.none: 'none'>, with_population_col=True, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_train_readers.
EmptySonataReader
(path, **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains_api.SpikeTrainsReadOnlyAPI
A Hack that is needed for when a simulation produces a file with no spikes, since there won’t/can’t be <population_name> subgroup and/or gids/timestamps datasets.
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
spikes
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_train_readers.
NWBSTReader
(path, **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains_api.SpikeTrainsReadOnlyAPI
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
spikes
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_train_readers.
SonataOldReader
(path, **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_train_readers.SonataSTReader
Older version of SONATA
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
spikes
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_train_readers.
SonataSTReader
(path, **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains_api.SpikeTrainsReadOnlyAPI
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
set_units
(u, population=None)[source]¶ Set the units associated with a population timestamps (ms, seconds)
-
spikes
(node_ids=None, populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(populations=None, sort_order=<SortOrder.none: 'none'>, with_population_col=True, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
bmtk.utils.reports.spike_trains.spike_trains module¶
-
class
bmtk.utils.reports.spike_trains.spike_trains.
PoissonSpikeGenerator
(population=None, seed=None, output_units='ms', **kwargs)[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains.SpikeTrains
A Class for generating spike-trains with a homogeneous and inhomogeneous Poission distribution.
Uses the methods describe in Dayan and Abbott, 2001.
-
max_spikes_per_node
= 10000000¶
-
bmtk.utils.reports.spike_trains.spike_trains_api module¶
-
class
bmtk.utils.reports.spike_trains.spike_trains_api.
SpikeTrainsAPI
[source]¶ Bases:
object
-
add_spike
(node_id, timestamp, population=None, **kwargs)[source]¶ Add a single spike
Parameters: - node_id – integer, id of node/cell that spike belongs too.
- timestamp – double, time that spike occurred.
- population – string, name of population belong to spike. If none will try to use the default population.
- kwargs – optional arguments.
-
add_spikes
(node_ids, timestamps, population=None, **kwargs)[source]¶ Add a sequence of spikes.
Parameters: - node_ids – list of ints or int. If a list is used, it should be the same lenght as the corresponding timestamps. If a singluar integer value is used then assumes all timestamps corresponds with said node_id.
- timestamps – A list of doubles
- population – The population to which the node(s) belong too
- kwargs – optional arguments.
-
get_times
(node_id, population=None, time_window=None, **kwargs)[source]¶ Returns a list of spike-times for a given node.
Parameters: - node_id – The id of the node
- population – Name of the node-population which the node belongs to. By default will try to use the default population (if possible).
- time_window – A tuple (min-time, max-time) to limit the returned spikes. By default returns all spikes.
- kwargs – optional arguments.
Returns: list of spike times [float]
-
import_spikes
(obj, **kwargs)[source]¶ Import spikes from another spike-trains or other object. Highly dependent on stragey
-
is_equal
(other, populations=None, err=1e-05, time_window=None)[source]¶ Compares two SpikeTrains instances to see if they have the same spikes (exlcuding order or their method of storage). Use this method instead of == when one of the spike-train instances has extra populations or timestamps are stored at a different precision.
Parameters: - other – spike-trains instance being compared
- populations – string or list of strings, populations to compare between the two. By default (populations=None) will return True only if the two files have the same populations.
- err – precision on which two timestamps are compared.
- time_window –
Returns: True if the two spike-trains have the same node-ids/timestamps (given the conditions).
-
is_subset
(other, err=1e-05, strict=False)[source]¶ Checks to see if this given set of spike-trains is a subset of another, which means that every (population, node_id, timestamp) that exists in self also exists in other.
WARNING: It may be possible, possible due to precision, that a node has two spikes at the same time. Right now this isn’t accounted for, and if self’s node 0 has two spikes at 100.00 ms it except other.node[0] has two spikes at 100.00 ms as well. # TODO: Account for non-uniqueness in on the timestamps
Parameters: - other –
- err – precision for comparing two timestamps
- strict – bool, if True makes sure that self is a strict subset of other. default False
Returns:
-
merge
(other)[source]¶ Import Another SpikesTrain object into current file, always in-place.
Parameters: other – Another SpikeTrainsAPI object
-
n_spikes
(population=None)[source]¶ Get the number of spikes for the given population.
Parameters: population – population name. If none None will use the default population (when possible). Returns: unsigned integer, number of spikes.
-
node_ids
(population=None)[source]¶ Returns a list of (node-ids, population_name).
Parameters: population – Name of population, if not set uses the default_population Returns: A list of node-ids (integers).
-
populations
¶ Get all available spike population names
Returns: A list of strings
-
set_units
(u, population=None)[source]¶ Set the units associated with a population timestamps (ms, seconds)
-
spikes
(populations=None, time_window=None, sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Iterate over all the saved spikes, returning a single spike at a time. Will typically be slower than calling to_dataframe(), but not require as much memory. To use the generator:
for node_id, population, timestamp in spike_trains.spikes(): ...
Parameters: - populations – string or list of strings, used to select specific node_populations. By default all populations with spikes data is iterated over
- time_window –
- sort_order –
- kwargs –
Returns:
-
to_csv
(path, mode='w', sort_order=<SortOrder.none: 'none'>, **kwargs)[source]¶ Write spikes to csv file
Parameters: - path –
- mode –
- sort_order –
- kwargs –
Returns:
-
to_dataframe
(populations=None, sort_order=<SortOrder.none: 'none'>, with_population_col=True, **kwargs)[source]¶ Returns a pandas dataframe of the node_ids, populations, and timestamps of the given spikes
Parameters: - populations – string or list of strings, used to only return the dataframes associated with a given node population. By default (populations=None) all populations are included
- sort_order – ‘by_time’, ‘by_id’, ‘none’ or None. Returns the dataframe sorted within their population. By default will not sort and return spikes as they are saved
- with_population_col – bool, set to False to not return the ‘population’ column (useful for really large dataframs with only one population). True by default
- kwargs –
Returns: A pandas dataframe, unindex, with columns ‘node_ids’, ‘timestamps’, and ‘population’ (optional)
-
-
class
bmtk.utils.reports.spike_trains.spike_trains_api.
SpikeTrainsReadOnlyAPI
[source]¶ Bases:
bmtk.utils.reports.spike_trains.spike_trains_api.SpikeTrainsAPI
-
add_spike
(node_id, timestamp, population=None, **kwargs)[source]¶ Add a single spike
Parameters: - node_id – integer, id of node/cell that spike belongs too.
- timestamp – double, time that spike occurred.
- population – string, name of population belong to spike. If none will try to use the default population.
- kwargs – optional arguments.
-
add_spikes
(node_ids, timestamps, population=None, **kwargs)[source]¶ Add a sequence of spikes.
Parameters: - node_ids – list of ints or int. If a list is used, it should be the same lenght as the corresponding timestamps. If a singluar integer value is used then assumes all timestamps corresponds with said node_id.
- timestamps – A list of doubles
- population – The population to which the node(s) belong too
- kwargs – optional arguments.
-
import_spikes
(obj, **kwargs)[source]¶ Import spikes from another spike-trains or other object. Highly dependent on stragey
-
warning_msg
= 'read-only SpikeTrains, trying to add or import spikes will be ignored.'¶
-
bmtk.utils.reports.spike_trains.spikes_file_writers module¶
-
bmtk.utils.reports.spike_trains.spikes_file_writers.
write_csv
(path, spiketrain_reader, mode='w', sort_order=<SortOrder.none: 'none'>, include_header=True, include_population=True, units='ms', **kwargs)[source]¶
-
bmtk.utils.reports.spike_trains.spikes_file_writers.
write_csv_itr
(path, spiketrain_reader, mode='w', sort_order=<SortOrder.none: 'none'>, include_header=True, include_population=True, units='ms', **kwargs)[source]¶