516dc63
- Update configuration to store whenever an attribute is set (PR #900 by @filimarc)5799cf8
- postprocessing (PR #901 by @drodarie)
9f4046a
- Stack regions and Layer partitions (PR #868 by @drodarie)↘️ addresses issue #867 opened by @marialauradeg98
903434b
- group chunks for placement from different partitions to avoid duplicates (PR #880 by @drodarie)↘️ fixes issue #879 opened by @francesshei
e4c194c
- make gha checks (docs, build, etc) triggered by main workflows (PR #874 by @drodarie)09ab71f
- change bump refs to tag-release (PR #875 by @drodarie)
f234265
- add conventional commits and auto release (PR #864 by @drodarie)↘️ addresses issue #860 opened by @Helveg
32799b4
- use github app to bypass the main branch protections. (PR #872 by @drodarie)↘️ fixes issue #870 opened by @drodarie
- Introduction of a pool caching system
- Fix run iteration values in core
- Add FixedOutdegree
- Created geometric shape connection strategies
- Added support for multiple shapes for each cell type
- Written docs for geometric shapes
- fix typing and casting of post connectivity hooks
- fix readthedocs conflicts with furo package
- Add test to check if Allen API is down and skip related tests
- Fix reference of file_ref during configuration parsing when importing nodes.
- Use a more strict rule for Jobs enqueuing.
- Use certifi to fix ssl certificate issues.
- Added
ParsesReferences
mixin from bsb-json to allow reference and import in configuration files. This includes also a recursive parsing of the configuration files. - Added
swap_axes
function in morphologies - Added API test in pre-commit config and fix duplicate entries.
- Fix
PackageRequirement
,ConfigurationListAttribute
, andConfigurationDictAttribute
inverse functions - Refactor
CodeDependencyNode
module attribute to be either a module like string or a path string - Fix of assert_same_len
- Fix of test_particle_vd
- Bumped to
bsb-hdf5~=0.3.1
, to fix #579. - Renamed
MPI.*
functions to lowercase.
- BSB now requires bsb-hdf5 v 0.2.5
- Removed the
voxels
property of theVoxels
partition, instead the childrennrrd
andallen
are now available directly as partitions. - Renamed the
AllenStructureLoader
toAllenStructure
- Renamed
cls
of placement and connectivity strategies tostrategy
. - Renamed
cls
of region totype
.
- Added layouts (#492).
- Added
RandomPlacement
strategy. - Added autolink for config, use it by default.
- Fixed BSB under Jupyter notebook conditions.
AllenStructureLoader
has a defined public API now, of classmethods, to lookup structs.
- Improved storage interface documentation.
- Fixed local modules not being found by config (#386).
- Fixed inheritance and signatures of
TouchDetector
. - Documented cell types (#424).
- Fixed dynamic node initialization (#425).
- Fixed config dictionary copying (#432).
- Added
MorphologySet.empty
(#426). - Fixed morphology property loading from MR (#434).
- Fixed dissapearance of warnings when config loading errors out (#440).
- Allow wildcards in
by_name
morphology selector. - Added copy button to documentation code blocks (#446).
- Warn and skip connections when no cells are placed (#442).
- Fixed 2d indexing of VoxelData class (#437).
- Load meta dictionary of morphologies (#435).
- Fixed error with queued jobs when dependency isn't queued (#445).
morphological
changed tomorphologies
.geometrical
changed togeometry
.
- Added a very basic Arbor adapter
- WARNING: Removed the cell cache API, the cell cache is still there internally but spoofed and not to be used relied on in any user code anymore!
- Running repeated NEST simulations no longer causes strange IO issues, growing device labels, or module loading warnings and has an example (#280, #292, #295).
- Added support for partial (re)connection of networks (#303).
- The PlacementSet API can now be used during labelled connectivity by passing the
labels
kwarg. The labels of the current connection can be accessed inside theconnect
function asself.label_pre
andself.label_post
(#310). - Added
network.merge
function (#278). - Added
get_rank
andbroadcast
to adapter interface so thatmpi4py
can remain an optional dependency (#283). - More progress reporting during reconstruction (#305).
- Fixed NEST spike recorders (#284).
- Added NEST fork installation instructions.
- Added support for external sources of placement and connectivity (#273).
- BREAKING: NEURON devices will by default target all sections instead of 1 soma section.
- BREAKING:
section_type
changed tosection_types
list for devices. - BREAKING: All
NeuronDevice
child implementations need to overridevalidate_specifics
where each can validate their config. - BREAKING: Fixed the long standing bug that spikes in NEURON where recorded as (2xN) instead of (Nx2) datasets.
- BREAKING:
adapter.collect_output
must be passed thesimulation
object. - Fixed a bug where
spike_devices
with fixed spike times didn't record data. - NEURON adapter now uses
nrn-patch
v3.0.0 - Added a
voltage_clamp
NEURON device. - Added support for weight recorders in the NEST adapter (#248).
- NEST adapter's
spike_recorder
stores all cell types that occur in a dataset, is used later on to infer display information when plotting. - NEURON adapter's
LocationRecorder
now stores section id. - Network-cache phased out of targetting mechanisms.
- Added
__main__.py
for situations where shell command is unavailable. - Added
network.get_gid_types
to retrieve the cell types of a vector of GIDs. - Added
network.assert_continuity
to check allPlacementSet
s form a single continuous chain of GIDs starting from 0. - Fixed a bug where relays without targets would cause errors.
- Fixed NEURON adapter's
time
vector in result files. - Fixed NEURON adapter's
index_relays
for targetless relays. - Added stricter validation of config for the
SpikeGenerator
device. - [cerebellum] Optimized Golgi to granule cell connectivity algorithm.
- [cerebellum] Optimized mossy to glomerulus connectivity algorithm.
- Added
branch.children
. - Added
cell_type.get_placement_set
. - Added
get_result_config
. - Added a
--version
command to the CLI. - The
time
recorder for NEURON simulations is fixed. *.h5
files and thebuild
directory are gitignored.- Added
range
kwarg toplot_traces
. plot_traces
will pass all extra kwargs to themake_subplots
call.- Added
gaps
kwarg tohdf5_plot_psth
to control gaps in Bar graph. - Plot axis labels now display units in square brackets.
- Added an example that shows how to color the branches of a morphology by type.
- Fixed broken on release
by_label
targetting mouse_cerebellum_cortex.json
is now scalable and ID-free.
- Added
by_label
targetting mechanism - Changed
mouse_cerebellum_cortex.json
to avoid the use of concrete IDs
- Cell IDs persistently increment across Python sessions.
- Added CONTRIBUTING & CODE_OF_CONDUCT
- NEST devices can be configured without targets, for manual targetting.
- NEST master seed is determined by clocktime but can be fixed.
- Added
bsb.core.Scaffold.get_connectivity_sets
- Added raw config string to result files for reference.
- Bumped minimum nrn-patch to 3.0.0b3 to fix transfer variable stalling.
- Advertise compatible Python versions in
setup.py
- Bumped minimum numpy to 1.19.0
- Bumped minimum nrn-patch to 3.0.0b1
- Fixed a bug with nest and MPI. (see #230)
- The NEURON adapter now supports source variables.
- Gap junctions were added to the model of the cerebellum.
- Altered NMDA channels.
- The return values of simulations are now the path to their result file.
- Fixed a bug with the NEURON adapter transmitter map causing loss of spike transmission.
- Slightly changed the
neuron
install workflow. NEURON is now pip installed
- Updated "Getting Started" guide.
- Changed default config to
network_configuration.json
- New ionic recorder device for NEURON adapter.
- Added GC-GC, SC-SC & BC-BC GABA connections
- Morphology rework: they are now branch centric structures of arrays.
- Backward compatible
compartments
system still available.
- Backward compatible
- Blender support
- FiberIntersection added.
- First version with a functional multicompartmental network.
- PlacementSets have been introduced (#303)
- Obfuscated setup uses scaffold version plus "rc0". (#301, #308)
placement.py
is now its own module. (#302)- ConfigurableClasses can specify classes in the global namespace instead of only inside of modules. (#299)
- Added parallel neuron simulations
- Cilindrical targetting mechanism for devices.
- Fixed
scaffold simulate
- Added changes for the hackathon.
- Fixed bugs that would have been encountered during the workshop.
- Added obfuscation scripts to create distributions that are obfuscated and expire after a certain date.
- Fixed particle placement for layers that don't originate in the coordinate system origin. (PR #150)
- Better NEST warnings/errors for module errors.
- CLI commands
compile
andrun
can resize the configuration with -x and -z. - Switched to Travis CI
- Optimized AllToAll connectivity strategy.
- Sattelite placement strategy now respects simulation volume bounds.
- Addition of mossy fiber to glomerulus connectivity. (PR #167)
- Fixed some of the issues with ParticlePlacement.
- Multi-instancing
- Particle placement for IO
- EvalConfigurations
- Merged in the plasticity branch
- IO placement & connectivity
- DCN interneurons
- Fixed to a runnable state.
- Merged touch detection branch
- 3D touch detection, can be reduced to 2 or 1 dimension cell intersection.
- Select from & to cell type & compartment type.
- Ability to auto-discover cell search radius or to specify it yourself. Compartment needs to be specified (default 5µm)
- Configure amount of synapses with a constant or distribution
- Cross-platform pip entry-points (console scripts such as
scaffold compile
) - Merged in the plasticity branch
- Setting
"plastic": true
in a NestConnection configuration will set it up as a plastic connection with volume transmitters attached - Specifying to which receptor type a plastic connection is connected can be
done by providing a dictionary mapping the partner cell type to a receptor
type id in the configuration of cell types under
receptors
- Setting
- Removed dependency on archaic
matplotlib
and addedplotly
. Plotting dependencies are optionally installed usingpip install dbbs-scaffold[with-plotting]
- NEST modules to load can be specified in the configuration.
- scipy.stats.distributions classes can be configured using
DistributionConfiguration
s. - Datasets in the
/cells/connections
group of an output HDF5 file can store metadata on them- The metadata keys
from_cell_types
andto_cell_types
can help clarify which cell_types are actually contained within the dataset when the ConnectionStrategy has multiple types.
- The metadata keys
- Added a overloadable
boot
method to ConfigurableClass that is executed after__init__
and beforevalidate
- NEST simulator resolution can be set
- Cells can be placed by an absolute amount instead of just densities.
- For very low amounts of cells to be placed there is a minimum of 1 per sublayer.
- Renamed
addCellType
toadd_cell_type
inconfiguration.py
. - Added a
report
function toscaffold.py
for verbosity compliant prints. - IllegalConnection errors by NEST are now caught to display the device that causes them.
- Added single and double cell type creation tests for NEST adapter.
This release is a prerelease of version 3.0 with finished simulator handling for the NEST simulator and preliminary support for TreeCollections, tree pickling, MorphologyRepositories, morphologies, voxelization and touch detection.
- Added MorphologyRepositories to preprocess and store morphologies before they are used in the placement/connectivity.
- Added TreeCollections to load, cache and store trees. OutputFormatters should know how to handle trees.
- HDF5Formatter can pickle trees.
- Simulations can be configured through SimulatorAdapters, should provide
ConfigurableClasses to configure
cell_models
,connection_models
anddevices
. - Implemented a NestAdapter with NestCells, NestConnections and NestDevices.
- Changed dependency list for installs outside of Anaconda.
- Removed obsolete files transferred by bad merge.
- Released 2.1.3 as 2.2.0
- Removed dependency on pandas
- Added a list of dependencies to setup.py
- Reworked/fixed connectivity algorithm between Golgi and granule cells.
- CHANGELOG restructured to show newest first.
- Removed dependency on pint and quantulum3.
- README updated.
- Verbosity added.
- Command line interface added. (Linux version not tested)
- README updated.
- Complete rework of the codebase to ensure flexibility, scalability and adoption by the community.
- First steps of distribution as a Python package. [v4.4.1]: https://github.com/dbbs-lab/bsb-core/compare/v4.4.0...v4.4.1 [v4.4.2]: https://github.com/dbbs-lab/bsb-core/compare/v4.4.1...v4.4.2 [v4.4.3]: https://github.com/dbbs-lab/bsb-core/compare/v4.4.2...v4.4.3 [v4.4.4]: https://github.com/dbbs-lab/bsb-core/compare/v4.4.3...v4.4.4 [v4.5.0]: https://github.com/dbbs-lab/bsb-core/compare/v4.4.4...v4.5.0 [v4.5.1]: https://github.com/dbbs-lab/bsb-core/compare/v4.5.0...v4.5.1 [v4.5.2]: https://github.com/dbbs-lab/bsb-core/compare/v4.5.1...v4.5.2 [v4.5.3]: https://github.com/dbbs-lab/bsb-core/compare/v4.5.2...v4.5.3 [v4.5.4]: https://github.com/dbbs-lab/bsb-core/compare/v4.5.3...v4.5.4 [v4.5.5]: https://github.com/dbbs-lab/bsb-core/compare/v4.5.4...v4.5.5 [v5.0.0]: https://github.com/dbbs-lab/bsb-core/compare/v4.5.5...v5.0.0 [v5.0.1]: https://github.com/dbbs-lab/bsb-core/compare/v5.0.0...v5.0.1 [v5.0.2]: https://github.com/dbbs-lab/bsb-core/compare/v5.0.1...v5.0.2