What’s new?¶
0.2¶
Notable Changes¶
Local field potentials can now be recorded during simulations [Example]
Ability to optimize parameters to reproduce event related potentials from real data [Example]
Published models using HNN were added and can be loaded via dedicated functions
Several improvements enabling easy modification of connectivity and cell properties [Example]
Improved visualization including spectral analysis, connectivity, and cell morphology
Changelog¶
Store all connectivity information under
connectivity
before building the network, by Nick Tolley in #276Add new function
plot_cell_morphology()
to visualize cell morphology, by Mainak Jas in #319Compute dipole component in z-direction automatically from cell morphology instead of hard coding, by Mainak Jas in #327
Store
Cell
instances inNetwork
’scells
attribute by Ryan Thorpe in #321Add probability argument to
add_connection()
. Connectivity patterns can also be visualized withplot_connectivity_matrix()
, by Nick Tolley in #318Add function to visualize connections originating from individual cells
plot_cell_connectivity()
, by Nick Tolley in #339Add method for calculating extracellular potentials using electrode arrays
add_electrode_array()
that are stored undernet.rec_array
as a dictionary ofExtracellularArray
containers, by Mainak Jas, Nick Tolley and Christopher Bailey in #329Add function to visualize extracellular potentials from laminar array simulations, by Christopher Bailey in #329
Previously published models can now be loaded via
law_2021_model()
andjones_2009_model()
, by Nick Tolley in #348Add ability to interactivity explore connections in
plot_cell_connectivity()
by Mainak Jas in #376Add
calcium_model()
with a distance dependent calcium channel conductivity, by Nick Tolley and Sarah Pugliese in #348Each drive spike train sampled through an independent process corresponds to a single artificial drive cell, the number of which users can set when adding drives with
n_drive_cells
andcell_specific
, by Ryan Thorpe in #383Add
pick_connection()
to query the indices of specific connections inconnectivity
, by Nick Tolley in #367Drives in
external_drives
no longer contain a ‘conn’ key and theconnectivity
list contains more items when adding drives from a param file or when in legacy mode, by Ryan Thorpe, Mainak Jas, and Nick Tolley in #369Add
optimize_evoked()
to optimize the timing and weights of driving inputs for simulating evoked responses, by Blake Caldwell and Mainak Jas in #77Add method for setting in-plane cell distances and layer separation in the network
set_cell_positions()
, by Christopher Bailey in #370External drives API now accepts probability argument for targetting subsets of cells, by Nick Tolley in #416
Bug¶
Remove rounding error caused by repositioning of NEURON cell sections, by Mainak Jas and Ryan Thorpe in #314
Fix issue where common drives use the same parameters for all cell types, by Nick Tolley in #350
Fix bug where depth of L5 and L2 cells were swapped, by Christopher Bailey in #352
Fix bug where
average_dipoles()
failed when there were less than two dipoles in the input dipole list, by Kenneth Loi in #368Fix bug where
read_spikes()
wasn’t returning aCellResponse
instance with updated spike types, by Ryan Thorpe in #382Dipole.times
andCell_response.times
now reflect the actual integration points instead of the intended times, by Mainak Jas in #397Fix overlapping non-cell-specific drive gid assignment over different ranks in
MPIBackend
, by Ryan Thorpe and Mainak Jas in #399Allow
read_dipoles()
to read dipole from a file with only two columns (times
anddata
), by Mainak Jas in #421
API¶
New API for defining cell-cell connections. Custom connections can be added with
add_connection()
, by Nick Tolley in #276Remove
L2Pyr
,L5Pyr
,L2Basket
, andL5Basket
classes in favor of instantation through functions and a more consistentCell
class by Mainak Jas in #322Remove parameter
distribution
inadd_bursty_drive()
. The distribution is now Gaussian by default, by Mainak Jas in #330New API for accessing and modifying
Cell
attributes (e.g., synapse and biophysics parameters) as cells are now instantiated from template cells specified in aNetwork
instance’scell_types
attribute by Ryan Thorpe in #321New API for network creation. The default network is now created with
net = jones_2009_model(params)
, by Nick Tolley in #318Replace parameter
T
withtstop
inadd_tonic_bias()
andcreate_tonic_bias()
to be more consistent with other functions and improve readability, by Kenneth Loi in #354Deprecated
postproc
argument insimulate_dipole()
, whereby user should explicitly smooth and scale resulting dipoles, by Christopher Bailey in #372Number of drive cells and their connectivity can now be specified through the
n_drive_cells
andcell_specific
arguments inNetwork.add_xxx_drive()
methods, replacing use ofrepeats
andsync_within_trial
, by Ryan Thorpe in #383Simulation end time and integration time have to be specified now with
tstop
anddt
insimulate_dipole()
, by Mainak Jas in #397CellResponse.reset()
method is not supported any more, by Mainak Jas in #397Target cell types and their connections are created for each drive according to the synaptic weight and delay dictionaries assigned in
Network.add_xxx_drive()
, by Ryan Thorpe in #369Cell objects can no longer be accessed from
Network
as thecells
attribute has been removed, by Ryan Thorpe in #436
People who contributed to this release (in alphabetical order):¶
0.1¶
Changelog¶
Add ability to simulate multiple trials in parallel using joblibs, by Mainak Jas in #44
Rhythmic inputs can now be turned off by setting their conductance weights to 0 instead of setting their start times to exceed the simulation stop time, by Ryan Thorpe in #105
Reader for parameter files, by Blake Caldwell in #80
Add plotting of voltage at soma to inspect firing pattern of cells, by Mainak Jas in #86
Add ability to simulate a single trial in parallel across cores using MPI, by Blake Caldwell in #79
Modify
plot_dipole()
to accept both lists and individual instances of Dipole object, by Nick Tolley in #145Update
plot_hist_input
toplot_spikes_hist()
which can plot histogram of spikes for any cell type, by Nick Tolley in #157Add function to compute mean spike rates with user specified calculation type, by Nick Tolley and Mainak Jas in #155
Add ability to record somatic voltages from all cells, by Nick Tolley in #190
Add ability to instantiate external feed event times of a network prior to building it, by Christopher Bailey in #191
Add ability to record somatic currents from all cells, by Nick Tolley in #199
Add option to turn off dipole postprocessing, by Carmen Kohl in #188
Add ability to add tonic inputs to cell types with
add_tonic_bias()
, by Mainak Jas in #209Modify
plot_spikes_raster()
to display individual cells, by Nick Tolley in #231Add
copy()
method for cloning aNetwork
instance, by Christopher Bailey in #221Add methods for creating input drives and biases to network:
add_evoked_drive()
,add_poisson_drive()
,add_bursty_drive()
andadd_tonic_bias()
, by Christopher Bailey in #221Add functions for plotting power spectral density (
plot_psd()
) and Morlet time-frequency representations (plot_tfr_morlet()
), by Christopher Bailey in #264Add y-label units (nAm) to all visualisation functions involving dipole moments, by Christopher Bailey in #264
Add Savitzky-Golay filtering method
savgol_filter()
toDipole
; copied frommne-python
savgol_filter()
, by Christopher Bailey in #264
Bug¶
Fix missing autapses in network construction, by Mainak Jas in #50
Fix rhythmic input feed, by Ryan Thorpe in #98
Fix bug introduced into rhythmic input feed and add test, by Christopher Bailey in #102
Fix bug in amplitude of delay (for connection between L2 Basket and Gaussian feed) being passed incorrectly, by Mainak Jas in #146
Connections now cannot be removed by setting the weights to 0., by Mainak Jas and Ryan Thorpe in #162
MPI and Joblib backends now apply jitter across multiple trials identically, by Ryan Thorpe in #171
Fix bug in Poisson input where the first spike was being missed after the start time, by Mainak Jas in #204
Fix bug in network to add empty spike when empty file is read in, by Samika Kanekar and Ryan Thorpe in #207
API¶
Make a context manager for Network class, by Mainak Jas and Blake Caldwell in #86
Create Spikes class, add write methods and read functions for Spikes and Dipole classes, by Ryan Thorpe in #96
Only specify n_jobs when instantiating the JoblibBackend, by Blake Caldwell in #79
Make a context manager for parallel backends (JoblibBackend, MPIBackend), by Blake Caldwell in #79
Add
average_dipoles()
function, by Blake Caldwell in #156New API for defining external drives and biases to network. By default, a
Network
is created without drives, which are added using class methods. The argumentadd_drives_from_params
controls this behaviour, by Christopher Bailey in #221Examples apply random state seeds that reproduce the output of HNN GUI documentation, by Christopher Bailey in #221
Force conversion to nAm (from fAm) for output of
simulate_dipole()
regardless ofpostproc
-argument, which now only controls parameter file-based smoothing and scaling, by Christopher Bailey in #264