gif2011workshop.rst 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. ************************************
  2. Gif 2011 workshop decisions
  3. ************************************
  4. This have been writtent before neo 2 implementation just after the wokshop. Not every hting is up to date.
  5. After a workshop in GIF we are happy to present the following improvements:
  6. ===========================================================================
  7. 1. We made a few renames of objects
  8. - "Neuron" into "Unit"
  9. - "RecordingPoint" into "RecordingChannel"
  10. to remove electrophysiological (or other) dependencies and keep generality.
  11. 2. For every object we specified mandatory attributes and recommended attributes. For every attribute we define a python-based data type. The changes are reflected in the diagram #FIXME with red (mandatory) and blue (recommended) attributes indicated.
  12. 3. New objects are required for operational performance (memory allocation) and logical consistency (neo eeg, etc):
  13. - AnalogSignalArray
  14. - IrregularlySampledAnalogSignal
  15. - EventArray
  16. - EpochArray
  17. - RecordingChannelGroup
  18. Attributes and parent objects are available on the diagram #FIXME
  19. 4. Due to some logical considerations we remove the link between "RecordingChannel" and "Spiketrain". "SpikeTrain" now depends on "Unit", which in its turn connects to "RecordingChannel". For inconsistency reasons we removed link between "SpikeTrain" and a "Spike" ("SpikeTrain" is an object containing numpy array of spikes, but not a container of "Spike" objects - which is performance-unefficient). The same idea is applied to AnalogSignal / AnalogSignalArray, Event / EventArray etc. All changes are relected in # FIXME
  20. 5. In order to implement flexibility and embed user-defined metadata into the NEO objects we decided to assign "annotations" dictionnary to very NEO object. This attribute is optional; user may add key-value pairs to it according to its scientific needs.
  21. 6. The decision is made to use "quantities" package for objects, representing data arrays with units. "Quantities" is a stable (at least for python2.6) package, presented in pypi, easy-embeddable into NEO object model. Points of implementation are presented in the diagram # FIXME
  22. 7. We postpone the solution of object ID management inside NEO.
  23. 8. In AnalogSignal - t_stop become a property (for consistency reasons).
  24. 9. In order to provie a support for "advanced" object load we decided to include parameters
  25. - lazy (True/False)
  26. - cascade (True/False)
  27. in the BaseIO class. These parameters are valid for every method, provided by the IO (.read_segment() etc.). If "lazy" is True, the IO does not load data array, and makes array load otherwise. "Cascade" parameter regulates load of object relations.
  28. 10. We postpone the question of data analysis storage till the next NEO congress. Analysis objects are free for the moment.
  29. 11. We stay with Python 2.6 / 2.7 support. Python 3 to be considered in a later discussions.
  30. New object diagram discussed
  31. ===============================================
  32. .. image:: images/neo_UML_French_workshop.png
  33. :height: 500 px
  34. :align: center
  35. Actions to be performed:
  36. ===============================================================
  37. promotion:
  38. at g-node: philipp, andrey
  39. in neuralesemble: andrew
  40. within incf network: andrew thomas
  41. at posters: all
  42. logo: samuel
  43. paper: next year
  44. in the web: pypi
  45. object struture:
  46. common: samuel
  47. draft: yann andrey
  48. tree diagram: philipp florant
  49. io:
  50. ExampleIO : samuel
  51. HDF5 IO: andrey
  52. doc:
  53. first page: andrew thomas
  54. object disription: samuel draft+ andrew
  55. io user/ io dev: samuel
  56. example/cookbook: andrey script, samuel NeuroConvert, doctest
  57. unitest:
  58. andrew
  59. packaging:
  60. samuel
  61. account for more
  62. licence:
  63. BSD-3-Clause
  64. copyright:
  65. CNRS, GNode, University of Provence
  66. hosting test data:
  67. Philipp
  68. Other questions discussed:
  69. ===========================
  70. - consistency in names of object attributes and get/set functions