Skip to content

Commit 6ec1831

Browse files
committed
First release candidate for Neo 0.9.0
1 parent c70dfec commit 6ec1831

File tree

8 files changed

+55
-17
lines changed

8 files changed

+55
-17
lines changed

LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2010-2019, Neo authors and contributors
1+
Copyright (c) 2010-2020, Neo authors and contributors
22
All rights reserved.
33

44
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

README.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ shared object model. In order to be as lightweight a dependency as possible,
1313
Neo is deliberately limited to represention of data, with no functions for data
1414
analysis or visualization.
1515

16-
Neo is used by a number of other software tools, including
16+
Neo is used by a number of other software tools, including
1717
SpykeViewer_ (data analysis and visualization), Elephant_ (data analysis),
1818
the G-node_ suite (databasing), PyNN_ (simulations), tridesclous_ (spike sorting)
1919
and ephyviewer_ (data visualization).
@@ -56,7 +56,7 @@ For installation instructions, see doc/source/install.rst
5656

5757
To cite Neo in publications, see CITATION.txt
5858

59-
:copyright: Copyright 2010-2019 by the Neo team, see doc/source/authors.rst.
59+
:copyright: Copyright 2010-2020 by the Neo team, see doc/source/authors.rst.
6060
:license: 3-Clause Revised BSD License, see LICENSE.txt for details.
6161

6262
Funding
@@ -66,7 +66,7 @@ Development of PyNN has been partially funded by the European Union Sixth Framew
6666
grant agreement FETPI-015879 (FACETS), by the European Union Seventh Framework Program (FP7/2007­-2013)
6767
under grant agreements no. 269921 (BrainScaleS) and no. 604102 (HBP),
6868
and by the European Union’s Horizon 2020 Framework Programme for
69-
Research and Innovation under the Specific Grant Agreements No. 720270 (Human Brain Project SGA1),
69+
Research and Innovation under the Specific Grant Agreements No. 720270 (Human Brain Project SGA1),
7070
No. 785907 (Human Brain Project SGA2) and No. 945539 (Human Brain Project SGA3).
7171

7272
.. _OpenElectrophy: https://github.com/OpenElectrophy/OpenElectrophy

doc/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252
# General information about the project.
5353
project = 'Neo'
54-
copyright = '2010-2019, ' + AUTHORS
54+
copyright = '2010-2020, ' + AUTHORS
5555

5656
# The version info for the project you're documenting, acts as replacement for
5757
# |version| and |release|, also used in various other places throughout the

doc/source/core.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ cut across the simple container hierarchy.
6464
are three subclasses that link :class:`ImageSequence` objects to signals (:class:`AnalogSignal` objects)
6565
extracted from them.
6666

67+
For more details, see :doc:`grouping`.
68+
6769

6870
NumPy compatibility
6971
===================

doc/source/grouping.rst

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,22 @@ Grouping and linking data
33
*************************
44

55

6-
... to do
7-
8-
6+
Migrating from ChannelIndex/Unit to ChannelView/Group
7+
=====================================================
98

9+
While the basic hierarchical :class:`Block` - :class:`Segment` structure of Neo has remained
10+
unchanged since the inception of Neo, the structures used to cross-link objects
11+
(for example to link a signal to the spike trains derived from it) have undergone changes,
12+
in an effort to find an easily understandable and usable approach.
1013

11-
Migrating from ChannelIndex/Unit to ChannelView/Group
12-
==============================================
14+
Below we give some examples of how to migrate from :class:`ChannelIndex` and :class:`Unit`,
15+
as used in Neo 0.8, to the new classes :class:`Group` and :class:`ChannelView`
16+
introduced in Neo 0.9.
17+
Note that Neo 0.9 supports the new and old API in parallel, to facilitate migration.
18+
IO classes in Neo 0.9 can read :class:`ChannelIndex` and :class:`Unit` objects,
19+
but do not write them.
1320

21+
:class:`ChannelIndex` and :class:`Unit` will be removed in Neo 0.10.0.
1422

1523
Examples
1624
--------

doc/source/releases/0.9.0.rst

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,35 @@
22
Neo 0.9.0 release notes
33
=======================
44

5-
[TODO] th October 2020
5+
10th November 2020
66

77

88
Group and ChannelView replace Unit and ChannelIndex
99
---------------------------------------------------
1010

11+
Experience with :class:`ChannelIndex` and :class:`Unit` has shown that these classes are
12+
often confusing and difficult to understand.
13+
In particular, :class:`ChannelIndex` was trying to provide three different functionalities in a
14+
single object:
1115

16+
- providing information about individual traces within :class:`AnalogSignals` like the channel id and the channel name (labelling)
17+
- grouping a subset of traces within an :class:`AnalogSignal` via the ``index`` attribute (masking)
18+
- linking between / grouping :class:`AnalogSignals` (grouping)
19+
20+
while grouping :class:`SpikeTrains` required a different class, :class:`Unit`.
21+
For more pointers to the difficulties this created, and some of the limitations of this approach,
22+
see `this Github issue`_.
23+
24+
With the aim of making the three functionalities of labelling, masking and grouping
25+
both easier to use and more flexible, we have replaced :class:`ChannelIndex` and :class:`Unit`
26+
with:
27+
28+
- array annotations (*labelling*) - already available since Neo 0.8
29+
- :class:`~neo.core.ChannelView` (*masking*) - defines subsets of channels within an `AnalogSignal` using a mask
30+
- :class:`~neo.core.Group` (*grouping*) - allows any Neo object except :class`Segment` and :class:`Block` to be grouped
31+
32+
For some guidance on migrating from :class:`ChannelIndex`/:class:`Unit`
33+
to :class:`Group` and :class:`ChannelView` see :doc:`../grouping`.
1234

1335
Python 3 only
1436
-------------
@@ -35,7 +57,10 @@ Other new or modified features
3557
* added methods :func:`rectify()`, :func:`downsample` and :func:`resample` to :class:`AnalogSignal`
3658
* :func:`SpikeTrain.merge()` can now merge multiple spiketrains
3759
* the utility function :func:`cut_block_by_epochs()` gives a new :class:`Block` now
38-
rather than modifying the block in place.
60+
rather than modifying the block in place
61+
* some missing properties such as ``t_start`` were added to :class:`ImageSequence`,
62+
and ``sampling_period`` was renamed to ``frame_duration``
63+
* :func:`AnalogSignal.time_index()` now accepts arrays of times, not just a scalar.
3964

4065
See all `pull requests`_ included in this release and the `list of closed issues`_.
4166

@@ -46,16 +71,19 @@ Bug fixes and improvements in IO modules
4671
* NeuralynxIO (fix handling of empty .nev files)
4772
* AxonIO (support EDR3 header, fix channel events bug)
4873
* Spike2IO (fix rounding problem, fix for v9 SON files)
74+
* MicromedIO (fix label encoding)
75+
4976

5077
Acknowledgements
5178
----------------
5279

5380
Thanks to Julia Sprenger, Samuel Garcia, Andrew Davison, Alexander Kleinjohann, Hugo van Kemenade,
54-
Achilleas Koutsou, Jeffrey Gill, Corentin Fragnaud, Aitor Morales-Gregorio, Rémi Proville,
55-
Robin Gutzen, Marin Manuel, Simon Danner, Michael Denker, Peter N. Steinmetz, Diziet Asahi and
56-
Lucien Krapp for their contributions to this release.
81+
Achilleas Koutsou, Jeffrey Gill, Corentin Fragnaud, Aitor Morales-Gregorio, Rémi Proville,
82+
Robin Gutzen, Marin Manuel, Simon Danner, Michael Denker, Peter N. Steinmetz, Diziet Asahi and
83+
Lucien Krapp for their contributions to this release.
5784

5885
.. _`list of closed issues`: https://github.com/NeuralEnsemble/python-neo/issues?q=is%3Aissue+milestone%3A0.9.0+is%3Aclosed
5986
.. _`pull requests`: https://github.com/NeuralEnsemble/python-neo/pulls?q=is%3Apr+is%3Aclosed+merged%3A%3E2019-09-30+milestone%3A0.9.0
6087
.. _NEP29: https://numpy.org/neps/nep-0029-deprecation_policy.html
6188
.. _`discussed here`: https://github.com/NeuralEnsemble/python-neo/issues/788
89+
.. _`this Github issue`: https://github.com/NeuralEnsemble/python-neo/issues/456

neo/core/view.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
class ChannelView(BaseNeo):
1515
"""
1616
A tool for indexing a subset of the channels within an :class:`AnalogSignal`
17-
or :class:`IrregularlySampledSignal`\\s;
17+
or :class:`IrregularlySampledSignal`;
1818
1919
*Required attributes/properties*:
2020
:obj: (AnalogSignal or IrregularlySampledSignal) The signal being indexed.

neo/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = '0.9.0.dev'
1+
version = '0.9.0.rc0'

0 commit comments

Comments
 (0)