morphio 2.5.3__tar.gz → 2.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. {MorphIO-2.5.3 → MorphIO-2.6.1}/.github/workflows/publish-sdist-wheels.yml +1 -1
  2. {MorphIO-2.5.3 → MorphIO-2.6.1}/MorphIO.egg-info/PKG-INFO +60 -17
  3. {MorphIO-2.5.3 → MorphIO-2.6.1}/MorphIO.egg-info/SOURCES.txt +1 -2
  4. {MorphIO-2.5.3 → MorphIO-2.6.1}/PKG-INFO +60 -17
  5. {MorphIO-2.5.3 → MorphIO-2.6.1}/README.md +59 -16
  6. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_misc.cpp +2 -0
  7. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/enums.h +1 -0
  8. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/properties.h +3 -1
  9. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/enums.cpp +2 -0
  10. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/lex.cpp +34 -11
  11. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/morphologyASC.cpp +1 -1
  12. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/morphologyHDF5.cpp +64 -192
  13. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/morphologyHDF5.h +1 -6
  14. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/requirement_tests.txt +1 -0
  15. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_2_neurolucida.py +37 -4
  16. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_3_h5.py +13 -19
  17. MorphIO-2.5.3/tests/data/h5/v2/no-metadata.h5 +0 -0
  18. {MorphIO-2.5.3 → MorphIO-2.6.1}/.clang-format +0 -0
  19. {MorphIO-2.5.3 → MorphIO-2.6.1}/.github/workflows/clang_format_check.yaml +0 -0
  20. {MorphIO-2.5.3 → MorphIO-2.6.1}/.github/workflows/run-tests.yml +0 -0
  21. {MorphIO-2.5.3 → MorphIO-2.6.1}/.gitignore +0 -0
  22. {MorphIO-2.5.3 → MorphIO-2.6.1}/.gitmodules +0 -0
  23. {MorphIO-2.5.3 → MorphIO-2.6.1}/.travis.yml +0 -0
  24. {MorphIO-2.5.3 → MorphIO-2.6.1}/3rdparty/CMakeLists.txt +0 -0
  25. {MorphIO-2.5.3 → MorphIO-2.6.1}/CHANGLOG.md +0 -0
  26. {MorphIO-2.5.3 → MorphIO-2.6.1}/CMake/CompilerFlags.cmake +0 -0
  27. {MorphIO-2.5.3 → MorphIO-2.6.1}/CMake/MorphIOConfig.cmake +0 -0
  28. {MorphIO-2.5.3 → MorphIO-2.6.1}/CMakeLists.txt +0 -0
  29. {MorphIO-2.5.3 → MorphIO-2.6.1}/CONTRIBUTING.md +0 -0
  30. {MorphIO-2.5.3 → MorphIO-2.6.1}/COPYING +0 -0
  31. {MorphIO-2.5.3 → MorphIO-2.6.1}/COPYING.LESSER +0 -0
  32. {MorphIO-2.5.3 → MorphIO-2.6.1}/MANIFEST.in +0 -0
  33. {MorphIO-2.5.3 → MorphIO-2.6.1}/MorphIO.egg-info/dependency_links.txt +0 -0
  34. {MorphIO-2.5.3 → MorphIO-2.6.1}/MorphIO.egg-info/not-zip-safe +0 -0
  35. {MorphIO-2.5.3 → MorphIO-2.6.1}/MorphIO.egg-info/requires.txt +0 -0
  36. {MorphIO-2.5.3 → MorphIO-2.6.1}/MorphIO.egg-info/top_level.txt +0 -0
  37. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/CMakeLists.txt +0 -0
  38. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_enums.h +0 -0
  39. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_immutable.cpp +0 -0
  40. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_immutable.h +0 -0
  41. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_misc.h +0 -0
  42. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_mutable.cpp +0 -0
  43. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_mutable.h +0 -0
  44. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_vasculature.cpp +0 -0
  45. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bind_vasculature.h +0 -0
  46. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bindings_utils.cpp +0 -0
  47. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/bindings_utils.h +0 -0
  48. {MorphIO-2.5.3 → MorphIO-2.6.1}/binds/python/morphio.cpp +0 -0
  49. {MorphIO-2.5.3 → MorphIO-2.6.1}/ci/check_clang_format.sh +0 -0
  50. {MorphIO-2.5.3 → MorphIO-2.6.1}/ci/cpp_test.sh +0 -0
  51. {MorphIO-2.5.3 → MorphIO-2.6.1}/ci/python_test.sh +0 -0
  52. {MorphIO-2.5.3 → MorphIO-2.6.1}/doc/BBPLOGO350.jpg +0 -0
  53. {MorphIO-2.5.3 → MorphIO-2.6.1}/doc/specification.md +0 -0
  54. {MorphIO-2.5.3 → MorphIO-2.6.1}/doc/specification_neurolucida.md +0 -0
  55. {MorphIO-2.5.3 → MorphIO-2.6.1}/examples/getting_started.ipynb +0 -0
  56. {MorphIO-2.5.3 → MorphIO-2.6.1}/examples/getting_started_mutable.ipynb +0 -0
  57. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/endoplasmic_reticulum.h +0 -0
  58. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/errorMessages.h +0 -0
  59. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/exceptions.h +0 -0
  60. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/glial_cell.h +0 -0
  61. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mito_section.h +0 -0
  62. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mitochondria.h +0 -0
  63. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/morphology.h +0 -0
  64. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/endoplasmic_reticulum.h +0 -0
  65. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/glial_cell.h +0 -0
  66. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/mito_section.h +0 -0
  67. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/mitochondria.h +0 -0
  68. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/modifiers.h +0 -0
  69. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/morphology.h +0 -0
  70. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/section.h +0 -0
  71. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/soma.h +0 -0
  72. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/mut/writers.h +0 -0
  73. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/section.h +0 -0
  74. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/section_base.h +0 -0
  75. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/section_base.tpp +0 -0
  76. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/section_iterators.hpp +0 -0
  77. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/shared_utils.tpp +0 -0
  78. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/soma.h +0 -0
  79. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/tools.h +0 -0
  80. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/types.h +0 -0
  81. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/vasc/iterators.hpp +0 -0
  82. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/vasc/properties.h +0 -0
  83. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/vasc/section.h +0 -0
  84. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/vasc/vasculature.h +0 -0
  85. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/vector_types.h +0 -0
  86. {MorphIO-2.5.3 → MorphIO-2.6.1}/include/morphio/version.h +0 -0
  87. {MorphIO-2.5.3 → MorphIO-2.6.1}/morphio/__init__.py +0 -0
  88. {MorphIO-2.5.3 → MorphIO-2.6.1}/morphio/mut/__init__.py +0 -0
  89. {MorphIO-2.5.3 → MorphIO-2.6.1}/morphio/vasculature/__init__.py +0 -0
  90. {MorphIO-2.5.3 → MorphIO-2.6.1}/scripts/check-clang-format-all +0 -0
  91. {MorphIO-2.5.3 → MorphIO-2.6.1}/setup.cfg +0 -0
  92. {MorphIO-2.5.3 → MorphIO-2.6.1}/setup.py +0 -0
  93. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/CMakeLists.txt +0 -0
  94. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/endoplasmic_reticulum.cpp +0 -0
  95. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/errorMessages.cpp +0 -0
  96. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/glial_cell.cpp +0 -0
  97. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mito_section.cpp +0 -0
  98. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mitochondria.cpp +0 -0
  99. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/morphology.cpp +0 -0
  100. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/endoplasmic_reticulum.cpp +0 -0
  101. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/glial_cell.cpp +0 -0
  102. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/mito_section.cpp +0 -0
  103. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/mitochondria.cpp +0 -0
  104. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/modifiers.cpp +0 -0
  105. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/morphology.cpp +0 -0
  106. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/section.cpp +0 -0
  107. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/soma.cpp +0 -0
  108. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/mut/writers.cpp +0 -0
  109. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/properties.cpp +0 -0
  110. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/morphologyASC.h +0 -0
  111. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/morphologySWC.cpp +0 -0
  112. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/morphologySWC.h +0 -0
  113. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/utilsHDF5.h +0 -0
  114. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/vasculatureHDF5.cpp +0 -0
  115. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/readers/vasculatureHDF5.h +0 -0
  116. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/section.cpp +0 -0
  117. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/soma.cpp +0 -0
  118. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/vasc/properties.cpp +0 -0
  119. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/vasc/section.cpp +0 -0
  120. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/vasc/vasculature.cpp +0 -0
  121. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/vector_utils.cpp +0 -0
  122. {MorphIO-2.5.3 → MorphIO-2.6.1}/src/version.cpp.in +0 -0
  123. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/CMakeLists.txt +0 -0
  124. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/__init__.py +0 -0
  125. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/contrib/catch.hpp +0 -0
  126. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/astrocyte.h5 +0 -0
  127. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/circle_contour.asc +0 -0
  128. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/complexe.swc +0 -0
  129. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/disconnected_neurite.swc +0 -0
  130. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/merged.h5 +0 -0
  131. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/Neuron.h5 +0 -0
  132. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/endoplasmic-reticulum.h5 +0 -0
  133. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/mitochondria.h5 +0 -0
  134. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/monodim.h5 +0 -0
  135. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/simple-broken-section-type.h5 +0 -0
  136. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/simple-negative-section-type.h5 +0 -0
  137. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/simple.h5 +0 -0
  138. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/soma_no_neurites.h5 +0 -0
  139. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v1/two_child_unmerged.h5 +0 -0
  140. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/v2/Neuron.h5 +0 -0
  141. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/vasculature-broken-section-type.h5 +0 -0
  142. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/vasculature1.h5 +0 -0
  143. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/h5/vasculature2.h5 +0 -0
  144. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/iterators.asc +0 -0
  145. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/mono-type.asc +0 -0
  146. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/multiple_point_section.asc +0 -0
  147. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/multiple_soma.swc +0 -0
  148. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/nested_single_children.asc +0 -0
  149. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/neurite_wrong_root_point.swc +0 -0
  150. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/nrn-order-already-sorted.h5 +0 -0
  151. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/nrn_ordering.swc +0 -0
  152. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/pia.asc +0 -0
  153. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/reversed_NRN_neurite_order.swc +0 -0
  154. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/sections-block.asc +0 -0
  155. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/simple-with-font.asc +0 -0
  156. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/simple-with-image-coord.asc +0 -0
  157. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/simple.asc +0 -0
  158. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/simple.swc +0 -0
  159. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/simple2.asc +0 -0
  160. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/soma_cylinders.swc +0 -0
  161. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/soma_multiple_frustums.swc +0 -0
  162. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/soma_single_frustum.swc +0 -0
  163. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/soma_three_points_cylinder.swc +0 -0
  164. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/spine.asc +0 -0
  165. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/data/three_point_soma.swc +0 -0
  166. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/main.cpp +0 -0
  167. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_0_API.py +0 -0
  168. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_10_vasculature.py +0 -0
  169. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_1_swc.py +0 -0
  170. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_4_immut.py +0 -0
  171. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_5_mut.py +0 -0
  172. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_6_writers.py +0 -0
  173. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_7_modifiers.py +0 -0
  174. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_8_all_morphologies.py +0 -0
  175. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_9_surfaces.py +0 -0
  176. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/test_morphology.cpp +0 -0
  177. {MorphIO-2.5.3 → MorphIO-2.6.1}/tests/utils.py +0 -0
@@ -12,7 +12,7 @@ env:
12
12
  # Only build on Python 3.x
13
13
  CIBW_BUILD: 'cp3?-*'
14
14
  CIBW_SKIP: 'cp35-* cp39-* *-manylinux_i686'
15
- CIBW_BEFORE_TEST: pip install nose mock h5py numpy
15
+ CIBW_BEFORE_TEST: pip install -r {project}/tests/requirement_tests.txt
16
16
  CIBW_TEST_COMMAND: nosetests -s -v -P {project}/tests
17
17
 
18
18
  jobs:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MorphIO
3
- Version: 2.5.3
3
+ Version: 2.6.1
4
4
  Summary: A neuron morphology IO library
5
5
  Home-page: https://github.com/BlueBrain/MorphIO/
6
6
  Author: Blue Brain Project, EPFL
@@ -356,7 +356,7 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
356
356
 
357
357
  <details>
358
358
  <summary>Click to expand!</summary>
359
-
359
+
360
360
  MorphIO also support reading and writing glia (such as astrocytes) from/to disk according to the H5 specification
361
361
  https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html
362
362
 
@@ -501,7 +501,7 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
501
501
 
502
502
  <details>
503
503
  <summary>Click to expand!</summary>
504
-
504
+
505
505
  A marker is an [s-expression](https://fr.wikipedia.org/wiki/S-expression) at the top level of the Neurolucida file that contains additional information about the morphology. For example:
506
506
 
507
507
  ```lisp
@@ -535,17 +535,40 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
535
535
  (9 10 11 6)
536
536
  )
537
537
  ```
538
- - An sexp with one of the following top level s-exp:
539
- * Dot
540
- * FilledCircle
541
- * SnowFlake
542
- * Asterisk
543
- * OpenCircle
544
- * OpenStar
545
- * Flower
546
- * OpenSquare
547
- * FilledStar
548
- * DoubleCircle
538
+ - An sexp with one of the following top level regular expression:
539
+
540
+ - Dot[0-9]*
541
+ - Plus[0-9]*
542
+ - Cross[0-9]*
543
+ - Splat[0-9]*
544
+ - Flower[0-9]*
545
+ - Circle[0-9]*
546
+ - Flower[0-9]*
547
+ - TriStar[0-9]*
548
+ - OpenStar[0-9]*
549
+ - Asterisk[0-9]*
550
+ - SnowFlake[0-9]*
551
+ - OpenCircle[0-9]*
552
+ - ShadedStar[0-9]*
553
+ - FilledStar[0-9]*
554
+ - TexacoStar[0-9]*
555
+ - MoneyGreen[0-9]*
556
+ - DarkYellow[0-9]*
557
+ - OpenSquare[0-9]*
558
+ - OpenDiamond[0-9]*
559
+ - CircleArrow[0-9]*
560
+ - CircleCross[0-9]*
561
+ - OpenQuadStar[0-9]*
562
+ - DoubleCircle[0-9]*
563
+ - FilledSquare[0-9]*
564
+ - MalteseCross[0-9]*
565
+ - FilledCircle[0-9]*
566
+ - FilledDiamond[0-9]*
567
+ - FilledQuadStar[0-9]*
568
+ - OpenUpTriangle[0-9]*
569
+ - FilledUpTriangle[0-9]*
570
+ - OpenDownTriangle[0-9]*
571
+ - FilledDownTriangle[0-9]*
549
572
 
550
573
  Example:
551
574
  ```lisp
@@ -578,6 +601,26 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
578
601
  assert_array_equal(pia.diameters, [3, 4, 5, 6])
579
602
  ```
580
603
 
604
+ ⚠️ Only top level markers are currently supported. This means the following nested marker won't be available the the MorphIO API.
605
+
606
+ ```python
607
+ ( (Color White) ; [10,1]
608
+ (Dendrite)
609
+ ( -290.87 -113.09 -16.32 2.06) ; Root
610
+ ( -290.87 -113.09 -16.32 2.06) ; R, 1
611
+ (
612
+ ( -277.14 -119.13 -18.02 0.69) ; R-1, 1
613
+ ( -275.54 -119.99 -16.67 0.69) ; R-1, 2
614
+ (Cross ; [3,3]
615
+ (Color Orange)
616
+ (Name "Marker 3")
617
+ ( -271.87 -121.14 -16.27 0.69) ; 1
618
+ ( -269.34 -122.29 -15.48 0.69) ; 2
619
+ ) ; End of markers
620
+ )
621
+ )
622
+ ```
623
+
581
624
  </details>
582
625
 
583
626
  ### Tips
@@ -601,11 +644,11 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
601
644
 
602
645
  # H5v2
603
646
 
604
- Starting at version 2.5.2, the file format `h5v2` is no longer supported.
605
- If you have morphologies in this format, you can convert them with:
647
+ Starting at version 2.6.0, the file format `h5v2` is no longer supported.
648
+ If you have morphologies in this format, you can convert them to h5v1 with:
606
649
 
607
650
  ```bash
608
- pip install morphio==2.5.1 morph-tool==2.3.0
651
+ pip install "morphio<2.6" "morph-tool==2.3.0"
609
652
  ```
610
653
 
611
654
  and then:
@@ -171,5 +171,4 @@ tests/data/h5/v1/simple-negative-section-type.h5
171
171
  tests/data/h5/v1/simple.h5
172
172
  tests/data/h5/v1/soma_no_neurites.h5
173
173
  tests/data/h5/v1/two_child_unmerged.h5
174
- tests/data/h5/v2/Neuron.h5
175
- tests/data/h5/v2/no-metadata.h5
174
+ tests/data/h5/v2/Neuron.h5
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MorphIO
3
- Version: 2.5.3
3
+ Version: 2.6.1
4
4
  Summary: A neuron morphology IO library
5
5
  Home-page: https://github.com/BlueBrain/MorphIO/
6
6
  Author: Blue Brain Project, EPFL
@@ -356,7 +356,7 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
356
356
 
357
357
  <details>
358
358
  <summary>Click to expand!</summary>
359
-
359
+
360
360
  MorphIO also support reading and writing glia (such as astrocytes) from/to disk according to the H5 specification
361
361
  https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html
362
362
 
@@ -501,7 +501,7 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
501
501
 
502
502
  <details>
503
503
  <summary>Click to expand!</summary>
504
-
504
+
505
505
  A marker is an [s-expression](https://fr.wikipedia.org/wiki/S-expression) at the top level of the Neurolucida file that contains additional information about the morphology. For example:
506
506
 
507
507
  ```lisp
@@ -535,17 +535,40 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
535
535
  (9 10 11 6)
536
536
  )
537
537
  ```
538
- - An sexp with one of the following top level s-exp:
539
- * Dot
540
- * FilledCircle
541
- * SnowFlake
542
- * Asterisk
543
- * OpenCircle
544
- * OpenStar
545
- * Flower
546
- * OpenSquare
547
- * FilledStar
548
- * DoubleCircle
538
+ - An sexp with one of the following top level regular expression:
539
+
540
+ - Dot[0-9]*
541
+ - Plus[0-9]*
542
+ - Cross[0-9]*
543
+ - Splat[0-9]*
544
+ - Flower[0-9]*
545
+ - Circle[0-9]*
546
+ - Flower[0-9]*
547
+ - TriStar[0-9]*
548
+ - OpenStar[0-9]*
549
+ - Asterisk[0-9]*
550
+ - SnowFlake[0-9]*
551
+ - OpenCircle[0-9]*
552
+ - ShadedStar[0-9]*
553
+ - FilledStar[0-9]*
554
+ - TexacoStar[0-9]*
555
+ - MoneyGreen[0-9]*
556
+ - DarkYellow[0-9]*
557
+ - OpenSquare[0-9]*
558
+ - OpenDiamond[0-9]*
559
+ - CircleArrow[0-9]*
560
+ - CircleCross[0-9]*
561
+ - OpenQuadStar[0-9]*
562
+ - DoubleCircle[0-9]*
563
+ - FilledSquare[0-9]*
564
+ - MalteseCross[0-9]*
565
+ - FilledCircle[0-9]*
566
+ - FilledDiamond[0-9]*
567
+ - FilledQuadStar[0-9]*
568
+ - OpenUpTriangle[0-9]*
569
+ - FilledUpTriangle[0-9]*
570
+ - OpenDownTriangle[0-9]*
571
+ - FilledDownTriangle[0-9]*
549
572
 
550
573
  Example:
551
574
  ```lisp
@@ -578,6 +601,26 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
578
601
  assert_array_equal(pia.diameters, [3, 4, 5, 6])
579
602
  ```
580
603
 
604
+ ⚠️ Only top level markers are currently supported. This means the following nested marker won't be available the the MorphIO API.
605
+
606
+ ```python
607
+ ( (Color White) ; [10,1]
608
+ (Dendrite)
609
+ ( -290.87 -113.09 -16.32 2.06) ; Root
610
+ ( -290.87 -113.09 -16.32 2.06) ; R, 1
611
+ (
612
+ ( -277.14 -119.13 -18.02 0.69) ; R-1, 1
613
+ ( -275.54 -119.99 -16.67 0.69) ; R-1, 2
614
+ (Cross ; [3,3]
615
+ (Color Orange)
616
+ (Name "Marker 3")
617
+ ( -271.87 -121.14 -16.27 0.69) ; 1
618
+ ( -269.34 -122.29 -15.48 0.69) ; 2
619
+ ) ; End of markers
620
+ )
621
+ )
622
+ ```
623
+
581
624
  </details>
582
625
 
583
626
  ### Tips
@@ -601,11 +644,11 @@ Description: # MorphIO [![Build Status](https://travis-ci.com/BlueBrain/MorphIO.
601
644
 
602
645
  # H5v2
603
646
 
604
- Starting at version 2.5.2, the file format `h5v2` is no longer supported.
605
- If you have morphologies in this format, you can convert them with:
647
+ Starting at version 2.6.0, the file format `h5v2` is no longer supported.
648
+ If you have morphologies in this format, you can convert them to h5v1 with:
606
649
 
607
650
  ```bash
608
- pip install morphio==2.5.1 morph-tool==2.3.0
651
+ pip install "morphio<2.6" "morph-tool==2.3.0"
609
652
  ```
610
653
 
611
654
  and then:
@@ -349,7 +349,7 @@ Morphology("myfile.asc", options=Option.no_duplicates|Option.nrn_order)
349
349
 
350
350
  <details>
351
351
  <summary>Click to expand!</summary>
352
-
352
+
353
353
  MorphIO also support reading and writing glia (such as astrocytes) from/to disk according to the H5 specification
354
354
  https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html
355
355
 
@@ -494,7 +494,7 @@ neuron.write('/my/out/file.h5') # Has to be written to h5
494
494
 
495
495
  <details>
496
496
  <summary>Click to expand!</summary>
497
-
497
+
498
498
  A marker is an [s-expression](https://fr.wikipedia.org/wiki/S-expression) at the top level of the Neurolucida file that contains additional information about the morphology. For example:
499
499
 
500
500
  ```lisp
@@ -528,17 +528,40 @@ The following s-expressions are parsed:
528
528
  (9 10 11 6)
529
529
  )
530
530
  ```
531
- - An sexp with one of the following top level s-exp:
532
- * Dot
533
- * FilledCircle
534
- * SnowFlake
535
- * Asterisk
536
- * OpenCircle
537
- * OpenStar
538
- * Flower
539
- * OpenSquare
540
- * FilledStar
541
- * DoubleCircle
531
+ - An sexp with one of the following top level regular expression:
532
+
533
+ - Dot[0-9]*
534
+ - Plus[0-9]*
535
+ - Cross[0-9]*
536
+ - Splat[0-9]*
537
+ - Flower[0-9]*
538
+ - Circle[0-9]*
539
+ - Flower[0-9]*
540
+ - TriStar[0-9]*
541
+ - OpenStar[0-9]*
542
+ - Asterisk[0-9]*
543
+ - SnowFlake[0-9]*
544
+ - OpenCircle[0-9]*
545
+ - ShadedStar[0-9]*
546
+ - FilledStar[0-9]*
547
+ - TexacoStar[0-9]*
548
+ - MoneyGreen[0-9]*
549
+ - DarkYellow[0-9]*
550
+ - OpenSquare[0-9]*
551
+ - OpenDiamond[0-9]*
552
+ - CircleArrow[0-9]*
553
+ - CircleCross[0-9]*
554
+ - OpenQuadStar[0-9]*
555
+ - DoubleCircle[0-9]*
556
+ - FilledSquare[0-9]*
557
+ - MalteseCross[0-9]*
558
+ - FilledCircle[0-9]*
559
+ - FilledDiamond[0-9]*
560
+ - FilledQuadStar[0-9]*
561
+ - OpenUpTriangle[0-9]*
562
+ - FilledUpTriangle[0-9]*
563
+ - OpenDownTriangle[0-9]*
564
+ - FilledDownTriangle[0-9]*
542
565
 
543
566
  Example:
544
567
  ```lisp
@@ -571,6 +594,26 @@ assert_array_equal(pia.points,
571
594
  assert_array_equal(pia.diameters, [3, 4, 5, 6])
572
595
  ```
573
596
 
597
+ ⚠️ Only top level markers are currently supported. This means the following nested marker won't be available the the MorphIO API.
598
+
599
+ ```python
600
+ ( (Color White) ; [10,1]
601
+ (Dendrite)
602
+ ( -290.87 -113.09 -16.32 2.06) ; Root
603
+ ( -290.87 -113.09 -16.32 2.06) ; R, 1
604
+ (
605
+ ( -277.14 -119.13 -18.02 0.69) ; R-1, 1
606
+ ( -275.54 -119.99 -16.67 0.69) ; R-1, 2
607
+ (Cross ; [3,3]
608
+ (Color Orange)
609
+ (Name "Marker 3")
610
+ ( -271.87 -121.14 -16.27 0.69) ; 1
611
+ ( -269.34 -122.29 -15.48 0.69) ; 2
612
+ ) ; End of markers
613
+ )
614
+ )
615
+ ```
616
+
574
617
  </details>
575
618
 
576
619
  ### Tips
@@ -594,11 +637,11 @@ See https://github.com/BlueBrain/MorphIO/blob/master/doc/specification.md
594
637
 
595
638
  # H5v2
596
639
 
597
- Starting at version 2.5.2, the file format `h5v2` is no longer supported.
598
- If you have morphologies in this format, you can convert them with:
640
+ Starting at version 2.6.0, the file format `h5v2` is no longer supported.
641
+ If you have morphologies in this format, you can convert them to h5v1 with:
599
642
 
600
643
  ```bash
601
- pip install morphio==2.5.1 morph-tool==2.3.0
644
+ pip install "morphio<2.6" "morph-tool==2.3.0"
602
645
  ```
603
646
 
604
647
  and then:
@@ -87,6 +87,8 @@ void bind_misc(py::module& m) {
87
87
  morphio::enums::MorphologyVersion::MORPHOLOGY_VERSION_H5_2)
88
88
  .value("MORPHOLOGY_VERSION_H5_1_1",
89
89
  morphio::enums::MorphologyVersion::MORPHOLOGY_VERSION_H5_1_1)
90
+ .value("MORPHOLOGY_VERSION_H5_1_2",
91
+ morphio::enums::MorphologyVersion::MORPHOLOGY_VERSION_H5_1_2)
90
92
  .value("MORPHOLOGY_VERSION_SWC_1",
91
93
  morphio::enums::MorphologyVersion::MORPHOLOGY_VERSION_SWC_1)
92
94
  .value("MORPHOLOGY_VERSION_UNDEFINED",
@@ -42,6 +42,7 @@ enum MorphologyVersion {
42
42
  MORPHOLOGY_VERSION_H5_1_1 = 3,
43
43
  MORPHOLOGY_VERSION_ASC_1 = 4,
44
44
  MORPHOLOGY_VERSION_SWC_1 = 101,
45
+ MORPHOLOGY_VERSION_H5_1_2 = 5,
45
46
  MORPHOLOGY_VERSION_UNDEFINED
46
47
  };
47
48
  std::ostream& operator<<(std::ostream& os, MorphologyVersion v);
@@ -151,9 +151,11 @@ struct Marker {
151
151
  };
152
152
 
153
153
  struct CellLevel {
154
+ CellLevel()
155
+ : _version(MORPHOLOGY_VERSION_UNDEFINED) {}
156
+ MorphologyVersion _version;
154
157
  morphio::CellFamily _cellFamily;
155
158
  SomaType _somaType;
156
- MorphologyVersion _version;
157
159
  std::vector<Annotation> _annotations;
158
160
  std::vector<Marker> _markers;
159
161
 
@@ -11,6 +11,8 @@ std::ostream& operator<<(std::ostream& os, const MorphologyVersion v) {
11
11
  return os << "h5v1";
12
12
  case MORPHOLOGY_VERSION_H5_1_1:
13
13
  return os << "h5v1.1";
14
+ case MORPHOLOGY_VERSION_H5_1_2:
15
+ return os << "h5v1.2";
14
16
  case MORPHOLOGY_VERSION_H5_2:
15
17
  return os << "h5v2";
16
18
  case MORPHOLOGY_VERSION_SWC_1:
@@ -162,17 +162,40 @@ class NeurolucidaLexer
162
162
  rules_.push("Dendrite", +Token::DENDRITE);
163
163
  rules_.push("CellBody", +Token::CELLBODY);
164
164
 
165
- rules_.push("Dot", +Token::MARKER);
166
- rules_.push("FilledCircle", +Token::MARKER);
167
- rules_.push("SnowFlake", +Token::MARKER);
168
- rules_.push("Asterisk", +Token::MARKER);
169
- rules_.push("OpenCircle", +Token::MARKER);
170
- rules_.push("OpenStar", +Token::MARKER);
171
- rules_.push("Flower", +Token::MARKER);
172
- rules_.push("OpenSquare", +Token::MARKER);
173
- rules_.push("FilledStar", +Token::MARKER);
174
- rules_.push("DoubleCircle", +Token::MARKER);
175
- rules_.push("Circle[0-9]+", +Token::MARKER);
165
+ // The code snippet used to infer the marker list is available at:
166
+ // https://github.com/BlueBrain/MorphIO/pull/229
167
+ rules_.push("Dot[0-9]*", +Token::MARKER);
168
+ rules_.push("Plus[0-9]*", +Token::MARKER);
169
+ rules_.push("Cross[0-9]*", +Token::MARKER);
170
+ rules_.push("Splat[0-9]*", +Token::MARKER);
171
+ rules_.push("Flower[0-9]*", +Token::MARKER);
172
+ rules_.push("Circle[0-9]*", +Token::MARKER);
173
+ rules_.push("Flower[0-9]*", +Token::MARKER);
174
+ rules_.push("TriStar[0-9]*", +Token::MARKER);
175
+ rules_.push("OpenStar[0-9]*", +Token::MARKER);
176
+ rules_.push("Asterisk[0-9]*", +Token::MARKER);
177
+ rules_.push("SnowFlake[0-9]*", +Token::MARKER);
178
+ rules_.push("OpenCircle[0-9]*", +Token::MARKER);
179
+ rules_.push("ShadedStar[0-9]*", +Token::MARKER);
180
+ rules_.push("FilledStar[0-9]*", +Token::MARKER);
181
+ rules_.push("TexacoStar[0-9]*", +Token::MARKER);
182
+ rules_.push("MoneyGreen[0-9]*", +Token::MARKER);
183
+ rules_.push("DarkYellow[0-9]*", +Token::MARKER);
184
+ rules_.push("OpenSquare[0-9]*", +Token::MARKER);
185
+ rules_.push("OpenDiamond[0-9]*", +Token::MARKER);
186
+ rules_.push("CircleArrow[0-9]*", +Token::MARKER);
187
+ rules_.push("CircleCross[0-9]*", +Token::MARKER);
188
+ rules_.push("OpenQuadStar[0-9]*", +Token::MARKER);
189
+ rules_.push("DoubleCircle[0-9]*", +Token::MARKER);
190
+ rules_.push("FilledSquare[0-9]*", +Token::MARKER);
191
+ rules_.push("MalteseCross[0-9]*", +Token::MARKER);
192
+ rules_.push("FilledCircle[0-9]*", +Token::MARKER);
193
+ rules_.push("FilledDiamond[0-9]*", +Token::MARKER);
194
+ rules_.push("FilledQuadStar[0-9]*", +Token::MARKER);
195
+ rules_.push("OpenUpTriangle[0-9]*", +Token::MARKER);
196
+ rules_.push("FilledUpTriangle[0-9]*", +Token::MARKER);
197
+ rules_.push("OpenDownTriangle[0-9]*", +Token::MARKER);
198
+ rules_.push("FilledDownTriangle[0-9]*", +Token::MARKER);
176
199
 
177
200
  rules_.push("Generated", +Token::GENERATED);
178
201
  rules_.push("High", +Token::HIGH);
@@ -47,7 +47,7 @@ bool is_end_of_section(Token id) {
47
47
  bool skip_sexp(size_t id) {
48
48
  return (id == +Token::WORD || id == +Token::COLOR || id == +Token::GENERATED ||
49
49
  id == +Token::HIGH || id == +Token::INCOMPLETE || id == +Token::LOW ||
50
- id == +Token::NORMAL || id == +Token::FONT);
50
+ id == +Token::NORMAL || id == +Token::FONT || id == +Token::MARKER);
51
51
  }
52
52
  } // namespace
53
53