Releases: jonescompneurolab/hnn-core
v0.4.1
v0.4.1
Version 0.4.1 is a bug-fixing patch release for version 0.4. This includes changes to importing of BatchSimulate
due to previously-undetected install/import issues (#1034), configuration of packaging metadata format (same PR), and elimination of a discrepancy in our method of cleaning local compiled files that led to architecture-specific files being included in the Pypi 0.4 release, which caused simulations on some platforms to fail (#1035 ). The public Pypi version has already been updated to 0.4.1.
For release notes about what is new for this version and 0.4, see https://github.com/jonescompneurolab/hnn-core/releases/tag/v0.4 .
v0.4
v0.4
v0.4 represents a major milestone in development of hnn_core
and the HNN ecosystem as a whole. v0.4 includes over two years of active development work by many people (>800 commits!), and brings with it many new and exciting features, including significant improvements to robustness, testing, and bug-fixing.
New Features
-
hnn_core
now includes a fully-tested and robust GUI of its own. Thehnn_core
GUI was present as a prototype in v0.3, but it is now ready for production. New features and visual improvements will still be coming to it in the future, such as the ability to use optimization. See our new Install page for ways to install it, and we have already begun incorporating it into a new, fresh series of tutorials for our upcoming revamp of the HNN website. If you have installed it, you can start the GUI usinghnn-gui
in your terminal/command prompt window. -
The
BatchSimulate
class: Thanks to [Abdul Samad Siddiqui][] and Google Summer of Code 2024, there is now the capability to run "batches" of simulations across multiple parameter sets, enabling easy analysis and simulation of behavior across parameter sweeps. See our example for more details. Note that currently, only itsloky
backend is supported, and the"hnn-core[parallel]"
dependencies must be installed for it to be used. -
Significant improvements to the API, documentation, and pedagogical examples especially for Optimization, among others.
-
Calcium concentration can now be recorded: recorded calcium concentration from either the soma,
or all sections, are enabled by settingrecord_ca
tosoma
orall
in
hnn_core.simulate_dipole
. Recordings are accessed through
hnn_core.CellResponse.ca
. -
There is now a new class
hnn_core.viz.NetworkPlotter
which can be used to visualize an entire network in 3D, including firing animations; see our example of how to use it here. -
There is now a new function
hnn_core.viz.plot_drive_strength
for illustrating the absolute or relative amount of strength that a particular drive provides to different cell types. -
A very large amount of polishing, bug fixes, general improvements, etc.
Deprecations
- The new Python 3.13 is not supported by
hnn_core
at this time, due to NEURON's current lack of support for it. This will change in the near future. We still support 3.8 through 3.12 (inclusively).
Upcoming Deprecations
- Both
hnn_core.viz.plot_laminar_lfp
andhnn_core.viz.plot_dipole
will have theirtmin
andtmax
arguments removed in the future. Please set the x-axis limits using methods called directly on the existingmatplotlib
objects, or usingmatplotlib.pyplot.xlim
. hnn_core.Network
's argument oflegacy_mode
for importing old param files will be removed in the future.hnn_core.Network.add_tonic_bias
's argument ofcell_type
, along with setting the argumentamplitude
to a single float, will be removed in the future. Instead, set theamplitude
argument to a dictionary as described in the docstring.hnn_core.simulate_dipole
's argument ofpostproc
for post-processing will be removed in the future. Instead, use explicit smoothing and scaling viahnn_core.Dipole
methods.
API Changes
- New argument to
hnn_core.Network
initialization: you can now setmesh_shape
to easily make a grid of different sizes ofNetwork
s. hnn_core.Cell
initialization argumenttopology
has had both its name changed tocell_tree
and its data type significantly changed; see the API docs ofCell
for details.hnn_core.jones_2009_model
and other built-in Network Models includinghnn_core.law_2021_model
andhnn_core.calcium_model
all accept the aforementionedmesh_shape
argument likehnn_core.Network
.- The API for optimization has changed significantly. Instead of running the function
optimize_evoked
obtained usingfrom hnn_core.optimization import optimize_evoked
, you should use the newhnn_core.optimization.Optimizer
class and its methods; see our example of evoked-response optimization here. hnn_core.viz.plot_spikes_hist
now accepts more arguments, includinginvert_spike_types
,color
, and any**kwargs_hist
which can be applied tomatplotlib.axes.Axes.hist
. See the docstring for details.hnn_core.viz.plot_spikes_raster
now accepts many more arguments, includingcell_types
,colors
,show_legend
,marker_size
,dpl
, andoverlay_dipoles
. See the docstring for details.hnn_core.viz.plot_cell_morphology
now accepts more arguments, includingcolor
and several arguments related to its position and viewing window, includingpos
,xlim
,ylim
, andzlim
. See the docstring for details.hnn_core.viz.plot_laminar_csd
now accepts more arguments, includingvmin
,vmax
,sink
, andinterpolation
. See the docstring for details.hnn_core.parallel_backends.MPIBackend
now accepts many more arguments, includinguse_hwthreading_if_found
,sensible_default_cores
,override_hwthreading_option
, andoverride_oversubscribe_option
. See the docstring for details; the ability to customize it has been greatly increased.hnn_core.read_params
now accepts a new argumentfile_contents
which lets you pass in network configuration contents using a string.
People who contributed to this release (in alphabetical order of family name):
- Huzi Cheng
- [Tianqi Cheng][]
- [George Dang][]
- Dylan Daniels
- [Camilo Diaz][]
- [Katharina Duecker][]
- [Yaroslav Halchenko][]
- Mainak Jas
- [Dikshant Jha][]
- [Stephanie R. Jones][]
- [Shehroz Kashif][]
- Rajat Partani
- [Carolina Fernandez Pujol][]
- [Dan Toms][]
- [Abdul Samad Siddiqui][]
- [Austin E. Soplata][]
- [Ryan Thorpe][]
- Nick Tolley
[Ryan Tho...