- 344 3.3.8 Release preparation
- 343 Update dependencies to latest version and fixes legacy HDF5 compartment reader
- 339 Set numpy minimun version to 1.19.5 and release preparation
- 332 Improves submodule handling. Fix morphio target aliasing
- 325 3.3.3 Release preparation
- 324 Sort returned SONATA report values by node ID
- 323 Adds warning message about using Brion to read SONATA format
- 322 Update copyright and funding notice
- 321 3.3.2 Release preparation
- 320 Allow tabs '\t' as key - value separator in BlueConfig
- 319 Fix wrong frame index calculation from report timestamp, drop support for python < 3.6
- 318 General submodule update
- 317 Custom BlueConfig file support for multipopulation
- 316 Fix BlueConfig class to follow documentation about morphology type
- 314 3.3.1 Release preparation
- 313 Improve error message for GIDs out of range in report
- 312 Handling MorphologyType from BlueConfig
- 311 Handle 0 based GIDs on sonata files
- 310 Miscelaneous fixes and updates
- 309 Use env vars for setting PYTHON3_ROOT_DIR (wheel distribution)
- 307 Fixes version number typo
- 306 Fix for wrongly load check in synapse positions
- 305 Preparation for 3.3.0 release.
- 304 Rename brain python package to brion.
- 303 Improve SONATA syanapse support.
- 302 Fix glm targets not installed properly.
- 300 Initial commit for python wheel distribution package support.
- 299 Removing unused functions from old SONATA circuit implementation.
- 298 Support for relative paths in BlueConfig/CircuitConfig.
- 297 SONATA circuit support.
- 295 Misc. fixes and updates.
- 293 Fix mvdtool bug when mecombo file is empty.
- 290 Replacing morphology readers and tests with MorphIO.
- 289 Update README.md.
- 288 Update MVDTool submodule.
- 287 Fix wrong file access mode when opening spike report for reading.
- 286 Fix cmake build with newer boost, python and cmake version. Fix tests.
- 285 Attempt to fix intel compile errors.
- 284 Fix installation structure from CMake.
- 283 Preparation for 3.2.0 release.
- 282 Few fixes related to glm.
- 281 Strips Pydoxygen, Servus and CMake/common.
- 280 Bumps libsonata submodule.
- 279: Removed lunchbox library from Brion.
- 276: Removed vmmlib library from Brion. Replaced with GLM.
- 275: Removed Keyv library from Brion. This change also means the end of support for BlueBrain's key value map based reports.
- 273: Fixes to improve compilation against libsonata.
- 269: Introduce SONATA support
- 263: Detect start.target in CircuitPath
- 255: Adding Python 3.7 and removing 3.4 from wheels
- 250: Added new overloads of brain::Simulation::getGIDs to get random GID sets.
- 249:
- brion::CompartmentReport::loadFrame changed to return brion::Frame
- Implemented missing brain::CompartmentReportView::getReport
- 239:
- Added two query options to configure chunking and chunk cache size when opening/creating SONATA compartment reports.
- Added a new overload of brion::CompartmentReport::write to allow optimizations for full frame writes.
- 229:
- Added a method to brain::Circuit to retrive custom node attributes. This is only supported in C++ for SONATA circuits.
- Implemented morphology recentering for SONATA circuits.
- 227: Read/write support for SONATA compartment reports. This file format replaces the old file format when writing reports.
- 225:
Addition of some new methods and classes:
- Added the class Simulation for accesing the contents of simulation configurations
- Circuit::getSource
- Circuit::getMorphologyNames
- Made CompartmentReport and SpikeReporReader movable
- Soma::getMaxRadius
- neuron::Section::getNumSamples
- neuron::Section::operator[]
- Support morphologies with single point somas
- Added default Synapses::iterator constructor
- Changed Synapses and Synapse memory magement implementation to allow use in Python wrappings of client code.
- 222:
Implemented basic support for reading circuit in SONATA file format
- The implementation is limited to node, no edges are read
- Only one population and one node group are read, the rest are ignored.
- 204: Fixed brain::Circuit methods to not crash with empty gids lists.
- 191:
- Optimizations in brain::CompartmentReport opening, only the metadata is read.
- Removed compartmentCount and cellCount from brain::CompartmentReportMetadata because they can't be figured out efficiently in all report types.
- New function getFrameSize added to CompartmentReportMapping to replace compartmentCount.
- New function getCellCount added to CompartmentReport to replace cellCount.
- 180:
Bugfixes in compartment reports:
- The report converter was messing up the order of the data when writing to .h5 from an out-of-order binary.
- Timestamps reported were wrong for reports not starting at 0.
- Read time and data unit attributes from H5 reports is they exist.
- Do not assume the first section is always present post-processing the mapping in H5 reports.
- Avoid crashing when calling getNumCompartments from Python with and out of bounds index.
- Corrections in compartmentReport comparison code.
- 176: Removed the dependency on HDF5++ and use HighFive instead.
- 172:
- zeroeq::Server/Client based morphology loader.
- New brion::Morphology read API and removed write API (see doc/feature/morphologyRead.md)
- Removed apical point API
- morphologyConverter can only write H5 V1.1 morphologies
- 171: Ban obsolete morphology repair stage from API: The stage parameter from certain Morphology methods has been removed. In the case of h5v2 morphologies, the implementation will pick the most complete repair stage.
- 159: Changed mapping index according to Pandas requirements for indexing.
- 157:
- Add Synapse.gid() python wrapping
- Improve synapse attribute reading performance
- 154:
- Improved help and command line inverface for spikeConverter and compartmentConverter.
- Timestamps in brion::CompartmentReport changed from float to double.
- New implementation of binary compartment report reader using POSIX AIO.
- 153: Updated Python wrapping of SpikeReportWriter to handle nympy arrays of spikes
- 152: Added the function brain.neuron.compute_morphological_samples to help getting sample positions from morphologies
- 151: brain::Circuit accepts full paths to mvd files in CircuitPath
- 150:
- Added a new method in brain::Circuit to obtain synapses for afferent projections from outside the circuit (e.g. thalamocortical projections).
- Support for Projections sections in brion::BlueConfig
- 141: Fixed documentation to specify that morphology section samples report diameters and not radii.
- 130,138: Added brain::CompartmentReportReader and its Python wrapping brain::CompartmentReport : python API v2
- 136: Implement readable null:// compartment report for benchmarking
- 120, 131:
- New SpikeReport API.
- Reimplementation of the high level SpikeReportReader. The new implementation uses numpy arrays to provide the requested spikes.
- 126: Add erase for map compartment reports
- 122: Support loading of individual neurons for binary and map compartment reports
- 121: Performance optimizations for map and binary compartment reports, fix sub target loading of map compartment reports
- 119: Optimized brain::Circuit::loadMorphologies for slow stat'ing filesystems (GPFS)
- 117:
Changes and fixes in Brain Python module:
- Functions that take gids now preserve the iteration order of the input in the output arrays/lists
- Replaced Python sets with numpy arrays in functions returning GID sets
- Circuit::getXYZNames functions renamed to Circuit::getXYZTypeNames
- 113: Support for old circuits containing only synapse center positions
- 110: Break PersistentMap out into keyv::Map
- 107: Added Sphinx generated documentation of the brain python module
- 102: Use PersistentMap for caching synapse positions loaded from brain::Circuit
- 94: Fixed SWC morphology parser for morphologies with soma contour. The parser was creating invalid soma sections when the first order sections where connected to arbitrary soma sample points.
- 89: Python wrapping of brain classes
- 88:
- Brain namespace enums made strongly typed
- Fix for brain::Section::getSamples for sections where the first point appears repeated
- 85: Implement brain synapses specification
- 84: Brain synapses specification
- 83: Add brain::Circuit::getRandomGIDs()
- 82: Improve performance when reading synapse attributes from non-merged files
- 81: Fix GID out-of-bounds handling for MVD3 in brain::Circuit
- 79: Use PersistentMap for cache in brain::Circuit::loadMorphologies(); add thread safety w/ synapses cache
- 77: Add brain::Circuit::getMorphologyTypes() and brain::Circuit::getElectrophysiologyTypes()
- 75: Implement morphology version 1.1 specification
- 74:
Remove deprecated enums and functions:
CompartmentReport( const std::string&, const GIDSet& )
andCompartmentReport( const std::string&, const brion::CompartmentReportFormat, const bool )
constructors; use brion::CompartmentReport::CompartmentReport( const brion::URI&, int, const brion::GIDSet& ) insteadenum CompartmentReportFormat
; use brion::BlueConfig::getReportSource() instead
- 71: Transparent caching of Synapse loading. See Lunchbox#263 for configuration.
- 69: Speedup brain::Circuit::getGIDs(), add brion::BlueConfig::getTargetSources()
- 63: Moved old BBPSDK/Monsteer spike report to Brain (pending refactoring)
- 56: Improved target parser
- 55: Add basic provenance metadata for written HDF5 compartment reports
- 49: Added the method brain::Circuit::getRotations
- 46: Fixed a bug in enum to string conversions affecting morphologyConverter.
- 45:
Made targets optional.
- brain::Circuit::getGIDs() returns all GIDs handled by the circuit.
- brain::Circuit::getGIDs( target ) returns GIDS for a specified target.
- brain::Circuit::getNumNeurons() returns the total number of neurons in the circuit.
- 43: Add MVD3 support to brain::circuit
- 39: Add compartment report converter tool
- 30,
35:
Added a new library, Brain, to provide higher level functions and classes.
The library provides:
- A Circuit class to get basic information from cells and targets and load morphologies at circuit level.
- A brain::cell namspace with a Morphology class plus other related classes to access morphological data about neurons.
- 38:
Fix crash while reading more than
ulimit -Sn
(1024 default) morphologies - 37: Added support for synapse nrn_extra.h5 files.
- 31:
Fix crash while reading more than
ulimit -Sn
(1024 default) NEST gdf files - 29: New member functions in brion::BlueConfig to provide a semantic API.
- 28: SpikeReport continues parsing files that have broken lines
- 24: Add getURI() method in SpikeReport.
- 22: spikeConverter can process spikes to and from stream-type SpikeReport plugins.
- 22: SpikeReport DSO plugins in the LD_LIBRARY_PATH are loaded automatically.
- 12: Extended brion::Synapse to also support non-merged synapse files
- 12: Add brion::Target::parse() to resolve a given target name
- 9: Extend SWC parser to support fork and end points and undefined section points. The Brion::SectionType enum has not been extended to include end and fork points, these types are translated into the most reasonable one based on the point ancestors.
- Add RESTING_VOLTAGE constant.
- Add support for binary spike reports.
- Add support for spike writer plugin.
- Add async IO support in brion::CompartmentReportMap.
- brion::CompartmentReportBinary::updateMapping() more robust.
- brion::SpikeReport API extended to support stream-based reports. A reference implementation of a stream-based spike report plugin is also provided.
- Ensure thread-safety with non-threadsafe HDF5 library.
- Morphology class implementation changed to support the Lunchbox plugin mechanism.
- New morphology plugin to read SWC morphologies.
- #3: New morphology converter tool.
- New null compartment report for benchmarks.
- New spike converter tool.
- Optimized function Circuit::get for large circuits (cut down the loading time of the 3.1 M neuron circuit by 6.5 seconds in a Core i7-4930K @ 3.40GHz).
- Replace use of iostreams by lunchbox::MemoryMap.
- Several bugfixes and cleanups.
- Old report readers have been adapted to be static plugins using lunchbox::IOPluginFactory.
- New spike report reader plugin for NEST spike reports. The plugin can parse multiple report file using shell wildcards (*, ?) in the filepath provided.
- New constructor for brion::CompartmentReport accepting an URI and the desired access mode deprecates the old read and write constructors.
- New compartment report based on key-value stores supported by Lunchbox::PersistentMap.
- Spike loading has been optimized (in a 12-core GPU the expected speed-up is above 4x for large files).