bmtk.simulator.bionet.modules package

Submodules

bmtk.simulator.bionet.modules.comsol module

class bmtk.simulator.bionet.modules.comsol.ComsolMod(comsol_file, waveform=None, cells=None, set_nrn_mechanisms=True, node_set=None, amplitude=1, ip_method='NN')[source]

Bases: SimulatorMod

__init__: COMSOL output .txt file is loaded as pandas dataframe and then used to set up nearest neighbour (NN) interpolation object to create interpolation map :param comsol_file: path of .txt file. Coordinates in [um], potentials in [mV], timepoints in [s]. :param waveform: path of .csv file as created with examples/bio_components/waveform.py

If specified, comsol_file should contain output from stationary study and waveform is defined through this parameter. If not specified, comsol_file should contain output from time-dependent study.

initialise: An interpolation map is defined of every segment and stored in dictionary self._NN, done iteratively for every cell/gid. The interpolation map points (the center of) every segment to its NN. It is calculated once here and then used in every step. Next, the COMSOL output is also interpolated in time to match the timesteps in BMTK.

step: The interpolation map is used to point each segment to its NN and find the corresponding voltage value in the comsol df.

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

step(sim, tstep)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

bmtk.simulator.bionet.modules.ecephys_module module

class bmtk.simulator.bionet.modules.ecephys_module.BioECEphysUnitsModule(name, **kwargs)[source]

Bases: ECEphysUnitsModule

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

bmtk.simulator.bionet.modules.ecp module

class bmtk.simulator.bionet.modules.ecp.EcpMod(tmp_dir, file_name, electrode_positions, contributions_dir=None, cells=None, variable_name='v', electrode_channels=None, cell_bounds=None)[source]

Bases: SimulatorMod

block(sim, block_interval)[source]

This method is called once after every block of time, as specified by the configuration.

Unlike the step method which is called during every time-step, the block method will typically be called only a few times over the entire simulation. The block method is preferable for accessing and saving to the disk, summing up existing data, or similar functionality

Parameters:
  • sim – Simulation object

  • block_interval – The time interval (tstep_start, tstep_end) for which the block is being called on.

finalize(sim)[source]

Call once at the very end of the simulation.

Parameters:

sim – Simulation object

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

step(sim, tstep)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

class bmtk.simulator.bionet.modules.ecp.RecXElectrode(positions)[source]

Bases: object

Extracellular electrode

calc_transfer_resistance(gid, seg_coords)[source]

Precompute mapping from segment to electrode locations

drift()[source]
get_transfer_resistance(gid)[source]

bmtk.simulator.bionet.modules.iclamp module

class bmtk.simulator.bionet.modules.iclamp.AmpsReaderNRN(**args)[source]

Bases: AmpsReader

create_clamps(hobj)[source]
class bmtk.simulator.bionet.modules.iclamp.CSVAmpReaderNRN(**args)[source]

Bases: CSVAmpReader

create_clamps(hobj)[source]
class bmtk.simulator.bionet.modules.iclamp.IClampMod(input_type, **mod_args)[source]

Bases: IClampMod

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

property input2reader_map
class bmtk.simulator.bionet.modules.iclamp.NWBReaderNRN(**args)[source]

Bases: NWBReader

create_clamps(hobj)[source]

bmtk.simulator.bionet.modules.record_cellvars module

class bmtk.simulator.bionet.modules.record_cellvars.MembraneReport(tmp_dir, file_name, variable_name, cells=None, gids=None, sections='all', buffer_data=True, transform={}, **kwargs)[source]

Bases: SimulatorMod

block(sim, block_interval)[source]

This method is called once after every block of time, as specified by the configuration.

Unlike the step method which is called during every time-step, the block method will typically be called only a few times over the entire simulation. The block method is preferable for accessing and saving to the disk, summing up existing data, or similar functionality

Parameters:
  • sim – Simulation object

  • block_interval – The time interval (tstep_start, tstep_end) for which the block is being called on.

finalize(sim)[source]

Call once at the very end of the simulation.

Parameters:

sim – Simulation object

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

step(sim, tstep)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

class bmtk.simulator.bionet.modules.record_cellvars.SomaReport(tmp_dir, file_name, variable_name, cells, sections='soma', buffer_data=True, transform={}, **kwargs)[source]

Bases: MembraneReport

Special case for when only needing to save the soma variable

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

step(sim, tstep, rel_time=0.0)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

bmtk.simulator.bionet.modules.record_cellvars.first_element(lst)[source]

bmtk.simulator.bionet.modules.record_clamp module

class bmtk.simulator.bionet.modules.record_clamp.ClampReport(tmp_dir, file_name, variable_name, buffer_data=True, **kwargs)[source]

Bases: SimulatorMod

block(sim, block_interval)[source]

This method is called once after every block of time, as specified by the configuration.

Unlike the step method which is called during every time-step, the block method will typically be called only a few times over the entire simulation. The block method is preferable for accessing and saving to the disk, summing up existing data, or similar functionality

Parameters:
  • sim – Simulation object

  • block_interval – The time interval (tstep_start, tstep_end) for which the block is being called on.

finalize(sim)[source]

Call once at the very end of the simulation.

Parameters:

sim – Simulation object

initialize(sim, clamps)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

merge()[source]
step(sim, tstep)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

property variable

bmtk.simulator.bionet.modules.record_netcons module

class bmtk.simulator.bionet.modules.record_netcons.NetconReport(tmp_dir, file_name, variable_name, cells, sections='all', syn_type='Exp2Syn', buffer_data=True, transform={}, **kwargs)[source]

Bases: SimulatorMod

block(sim, block_interval)[source]

This method is called once after every block of time, as specified by the configuration.

Unlike the step method which is called during every time-step, the block method will typically be called only a few times over the entire simulation. The block method is preferable for accessing and saving to the disk, summing up existing data, or similar functionality

Parameters:
  • sim – Simulation object

  • block_interval – The time interval (tstep_start, tstep_end) for which the block is being called on.

finalize(sim)[source]

Call once at the very end of the simulation.

Parameters:

sim – Simulation object

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

step(sim, tstep)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

bmtk.simulator.bionet.modules.record_spikes module

class bmtk.simulator.bionet.modules.record_spikes.SpikesMod(tmp_dir, spikes_file_csv=None, spikes_file=None, spikes_file_nwb=None, cache_to_disk=True, spikes_sort_order=None, mode='a', compression='gzip')[source]

Bases: SimulatorMod

Module use for saving spikes

block(sim, block_interval)[source]

This method is called once after every block of time, as specified by the configuration.

Unlike the step method which is called during every time-step, the block method will typically be called only a few times over the entire simulation. The block method is preferable for accessing and saving to the disk, summing up existing data, or similar functionality

Parameters:
  • sim – Simulation object

  • block_interval – The time interval (tstep_start, tstep_end) for which the block is being called on.

finalize(sim)[source]

Call once at the very end of the simulation.

Parameters:

sim – Simulation object

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

bmtk.simulator.bionet.modules.save_synapses module

class bmtk.simulator.bionet.modules.save_synapses.ConnectionWriter(network_dir)[source]

Bases: object

class H5Index(file_path, src_pop, trg_pop)[source]

Bases: object

add_bio_conn(edge_type_id, src_id, trg_id, syn_weight, sec_id, sec_x)[source]
add_point_conn(edge_type_id, src_id, trg_id, syn_weight)[source]
clean_ends()[source]
close_h5()[source]
add_bio_conn(edge_type_id, src_id, src_pop, trg_id, trg_pop, syn_weight, sec_id, sec_x)[source]
add_point_conn(edge_type_id, src_id, src_pop, trg_id, trg_pop, syn_weight)[source]
close()[source]
class bmtk.simulator.bionet.modules.save_synapses.H5Merger(network_dir, grp_keys)[source]

Bases: object

class bmtk.simulator.bionet.modules.save_synapses.SaveSynapses(network_dir, single_file=False, **params)[source]

Bases: SimulatorMod

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

bmtk.simulator.bionet.modules.sim_module module

class bmtk.simulator.bionet.modules.sim_module.SimulatorMod[source]

Bases: object

Class for writing custom bionet functions that will be called during the simulation. To use overwrite one or more of the following methods in a subclass, and bionet will call the function at the appropiate time.

To call during a simulation:

… sim = Simulation(…) mymod = MyModule(…) sim.add_mod(mymod) sim.run()

block(sim, block_interval)[source]

This method is called once after every block of time, as specified by the configuration.

Unlike the step method which is called during every time-step, the block method will typically be called only a few times over the entire simulation. The block method is preferable for accessing and saving to the disk, summing up existing data, or similar functionality

Parameters:
  • sim – Simulation object

  • block_interval – The time interval (tstep_start, tstep_end) for which the block is being called on.

finalize(sim)[source]

Call once at the very end of the simulation.

Parameters:

sim – Simulation object

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

step(sim, tstep)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

bmtk.simulator.bionet.modules.xstim module

class bmtk.simulator.bionet.modules.xstim.StimXElectrode(positions_file, waveform, mesh_files_dir, dt)[source]

Bases: object

Extracellular Stimulating electrode

calculate_waveforms(tstep)[source]
get_vext(gid)[source]
place_the_electrodes()[source]
read_electrode_mesh()[source]
rotate_the_electrodes()[source]
set_transfer_resistance(gid, seg_coords, rho=300.0)[source]
class bmtk.simulator.bionet.modules.xstim.XStimMod(positions_file, waveform, mesh_files_dir=None, cells=None, set_nrn_mechanisms=True, resistance=300.0, node_set=None)[source]

Bases: SimulatorMod

initialize(sim)[source]

Will be called once at the beginning of the simulation run, after the network and simulation parameters have all been finalized.

Parameters:

sim – Simulation object

step(sim, tstep)[source]

Called on every single time step (dt).

The step method is used for anything that should be recorded or changed continously. dt is determined during the setup, and the sim parameter can be used to access simulation, network and individual cell properties

Parameters:
  • sim – Simulation object.

  • tstep – The decrete time-step

bmtk.simulator.bionet.modules.xstim_waveforms module

class bmtk.simulator.bionet.modules.xstim_waveforms.BaseWaveform[source]

Bases: object

Abstraction of waveform class to ensure calculate method is implemented

calculate(simulation_time)[source]
class bmtk.simulator.bionet.modules.xstim_waveforms.BaseWaveformType(waveform_config)[source]

Bases: object

Specific waveform type

is_active(simulation_time)[source]
class bmtk.simulator.bionet.modules.xstim_waveforms.ComplexWaveform(el_collection)[source]

Bases: BaseWaveform

Superposition of simple waveforms

calculate(t)[source]
class bmtk.simulator.bionet.modules.xstim_waveforms.WaveformCustom(waveform_file)[source]

Bases: BaseWaveform

Custom waveform defined by csv file

calculate(t)[source]
class bmtk.simulator.bionet.modules.xstim_waveforms.WaveformTypeDC(waveform_config)[source]

Bases: BaseWaveformType, BaseWaveform

DC (step) waveform

calculate(t)[source]
class bmtk.simulator.bionet.modules.xstim_waveforms.WaveformTypeSin(waveform_config)[source]

Bases: BaseWaveformType, BaseWaveform

Sinusoidal waveform

calculate(t)[source]
bmtk.simulator.bionet.modules.xstim_waveforms.iclamp_waveform_factory(conf)[source]

Factory to create correct waveform class based on conf. Supports json config in conf as well as string pointer to a file. :rtype: BaseWaveformType

bmtk.simulator.bionet.modules.xstim_waveforms.stimx_waveform_factory(waveform)[source]

Factory to create correct waveform class based on conf. Supports json config in conf as well as string pointer to a file. :rtype: BaseWaveformType

Module contents