forked from dbbs-lab/bsb-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
385 lines (273 loc) · 11.8 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
# 4.0.0 - Too much to list
## 40.0.0a32
### Breaking changes
* Bumped to `bsb-hdf5~=0.3.1`, to fix #579.
* Renamed `MPI.*` functions to lowercase.
## 40.0.0a30
* BSB now requires bsb-hdf5 v 0.2.5
## 4.0.0a19
* Removed the `voxels` property of the `Voxels` partition, instead the children ``nrrd``
and ``allen`` are now available directly as partitions.
* Renamed the `AllenStructureLoader` to `AllenStructure`
## 4.0.0a18
### Breaking changes
* Renamed `cls` of placement and connectivity strategies to `strategy`.
* Renamed `cls` of region to `type`.
### Features
* Added layouts (#492).
## 4.0.0a9 - 4.0.0a17
* 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.
## 4.0.0a8
* 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).
## 4.0.0a7
### Breaking changes
* `morphological` changed to `morphologies`.
* `geometrical` changed to `geometry`.
# 3.10 - Arbor
* Added a very basic Arbor adapter
# 3.9
## 3.9.0 - Partial (re)connecting, network merging and repeated NEST simulations
* 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 the
`connect` function as `self.label_pre` and `self.label_post` (#310).
* Added `network.merge` function (#278).
* Added `get_rank` and `broadcast` to adapter interface so that `mpi4py` 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).
# 3.8
## 3.8.0 - Added a bit of love for the NEURON adapter
* BREAKING: NEURON devices will by default target all sections instead of 1
soma section.
* BREAKING: `section_type` changed to `section_types` list for devices.
* BREAKING: All `NeuronDevice` child implementations need to override
`validate_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 the `simulation` 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 all `PlacementSet`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 the `build` directory are gitignored.
* Added `range` kwarg to `plot_traces`.
* `plot_traces` will pass all extra kwargs to the `make_subplots` call.
* Added `gaps` kwarg to `hdf5_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.
# 3.7
## 3.7.7
* Fixed broken on release `by_label` targetting
* `mouse_cerebellum_cortex.json` is now scalable and ID-free.
## 3.7.6
* Added `by_label` targetting mechanism
* Changed `mouse_cerebellum_cortex.json` to avoid the use of concrete IDs
## 3.7.5
* 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`
## 3.7.4
* Added raw config string to result files for reference.
## 3.7.3
* Bumped minimum nrn-patch to 3.0.0b3 to fix transfer variable stalling.
## 3.7.2
* Advertise compatible Python versions in `setup.py`
* Bumped minimum numpy to 1.19.0
* Bumped minimum nrn-patch to 3.0.0b1
## 3.7.1
* Fixed a bug with nest and MPI. (see #230)
## 3.7.0
* The NEURON adapter now supports source variables.
* Gap junctions were added to the model of the cerebellum.
# 3.6
## 3.6.7
* Altered NMDA channels.
## 3.6.6
* The return values of simulations are now the path to their result file.
## 3.6.5
* Fixed a bug with the NEURON adapter transmitter map causing loss of spike transmission.
## 3.6.4
* Slightly changed the `neuron` install workflow. NEURON is now pip installed
## 3.6.3
* Updated "Getting Started" guide.
* Changed default config to `network_configuration.json`
## 3.6.2
* New ionic recorder device for NEURON adapter.
## 3.6.0b1
* Added GC-GC, SC-SC & BC-BC GABA connections
## 3.6.0b0
* Morphology rework: they are now branch centric structures of arrays.
* Backward compatible `compartments` system still available.
# 3.5.0
* Blender support
# 3.3.0
* FiberIntersection added.
# 3.2
## 3.2.13
* First version with a functional multicompartmental network.
## 3.2.1
* 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)
## 3.2.0
* Added parallel neuron simulations
# 3.0
## 3.0.4
* Cilindrical targetting mechanism for devices.
* Fixed `scaffold simulate`
## 3.0.3
* Added changes for the hackathon.
* Fixed bugs that would have been encountered during the workshop.
## 3.0.2
* Added obfuscation scripts to create distributions that are obfuscated and
expire after a certain date.
## 3.0.1
* 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` and `run` 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.
## 3.0.0
* Multi-instancing
## Alpha version 6
* Particle placement for IO
* EvalConfigurations
## Alpha version 5
* Merged in the plasticity branch
* IO placement & connectivity
* DCN interneurons
## Alpha version 4
## Minor changes
* Fixed to a runnable state.
## Alpha version 3
### Major changes
* 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
## Alpha version 2
### Major changes
* 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`
* Removed dependency on archaic `matplotlib` and added `plotly`. Plotting
dependencies are optionally installed using `pip 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` and `to_cell_types` can help clarify
which cell_types are actually contained within the dataset when the
ConnectionStrategy has multiple types.
* Added a overloadable `boot` method to ConfigurableClass that is executed after
`__init__` and before `validate`
### Minor changes
* 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` to `add_cell_type` in `configuration.py`.
* Added a `report` function to `scaffold.py` for verbosity compliant prints.
* IllegalConnection errors by NEST are now caught to display the device that
causes them.
### Tests
* Added single and double cell type creation tests for NEST adapter.
# 2.3
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` and
`devices`.
* Implemented a NestAdapter with NestCells, NestConnections and NestDevices.
# 2.2
## 2.2.2
* Changed dependency list for installs outside of Anaconda.
## 2.2.1
* Removed obsolete files transferred by bad merge.
## 2.2.0
* Released 2.1.3 as 2.2.0
# 2.1
## 2.1.3
* Removed dependency on pandas
* Added a list of dependencies to setup.py
## 2.1.2
* Reworked/fixed connectivity algorithm between Golgi and granule cells.
## 2.1.1
* CHANGELOG restructured to show newest first.
* Removed dependency on pint and quantulum3.
## 2.1.0
* README updated.
* Verbosity added.
* Command line interface added. (Linux version not tested)
# 2.0
## 2.0.1
* README updated.
## 2.0.0
* Complete rework of the codebase to ensure flexibility, scalability and
adoption by the community.
* First steps of distribution as a Python package.