morphio 2.5.1__tar.gz → 2.5.3__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.
- {MorphIO-2.5.1 → MorphIO-2.5.3}/CMakeLists.txt +1 -1
- {MorphIO-2.5.1 → MorphIO-2.5.3}/MorphIO.egg-info/PKG-INFO +126 -4
- {MorphIO-2.5.1 → MorphIO-2.5.3}/MorphIO.egg-info/SOURCES.txt +4 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/PKG-INFO +126 -4
- {MorphIO-2.5.1 → MorphIO-2.5.3}/README.md +125 -3
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_immutable.cpp +3 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_misc.cpp +15 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_mutable.cpp +3 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/morphology.h +5 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/morphology.h +19 -6
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/properties.h +7 -3
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/morphology.cpp +5 -1
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/morphology.cpp +2 -6
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/lex.cpp +22 -2
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/morphologyASC.cpp +98 -34
- MorphIO-2.5.3/tests/data/pia.asc +38 -0
- MorphIO-2.5.3/tests/data/sections-block.asc +38 -0
- MorphIO-2.5.3/tests/data/simple-with-font.asc +36 -0
- MorphIO-2.5.3/tests/data/simple-with-image-coord.asc +34 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_2_neurolucida.py +108 -5
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_5_mut.py +6 -4
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_6_writers.py +1 -1
- {MorphIO-2.5.1 → MorphIO-2.5.3}/.clang-format +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/.github/workflows/clang_format_check.yaml +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/.github/workflows/publish-sdist-wheels.yml +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/.github/workflows/run-tests.yml +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/.gitignore +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/.gitmodules +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/.travis.yml +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/3rdparty/CMakeLists.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/CHANGLOG.md +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/CMake/CompilerFlags.cmake +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/CMake/MorphIOConfig.cmake +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/CONTRIBUTING.md +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/COPYING +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/COPYING.LESSER +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/MANIFEST.in +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/MorphIO.egg-info/dependency_links.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/MorphIO.egg-info/not-zip-safe +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/MorphIO.egg-info/requires.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/MorphIO.egg-info/top_level.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/CMakeLists.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_enums.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_immutable.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_misc.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_mutable.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_vasculature.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bind_vasculature.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bindings_utils.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/bindings_utils.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/binds/python/morphio.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/ci/check_clang_format.sh +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/ci/cpp_test.sh +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/ci/python_test.sh +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/doc/BBPLOGO350.jpg +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/doc/specification.md +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/doc/specification_neurolucida.md +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/examples/getting_started.ipynb +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/examples/getting_started_mutable.ipynb +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/endoplasmic_reticulum.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/enums.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/errorMessages.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/exceptions.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/glial_cell.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mito_section.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mitochondria.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/endoplasmic_reticulum.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/glial_cell.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/mito_section.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/mitochondria.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/modifiers.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/section.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/soma.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/mut/writers.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/section.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/section_base.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/section_base.tpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/section_iterators.hpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/shared_utils.tpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/soma.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/tools.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/types.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/vasc/iterators.hpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/vasc/properties.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/vasc/section.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/vasc/vasculature.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/vector_types.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/include/morphio/version.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/morphio/__init__.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/morphio/mut/__init__.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/morphio/vasculature/__init__.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/scripts/check-clang-format-all +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/setup.cfg +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/setup.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/CMakeLists.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/endoplasmic_reticulum.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/enums.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/errorMessages.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/glial_cell.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mito_section.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mitochondria.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/endoplasmic_reticulum.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/glial_cell.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/mito_section.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/mitochondria.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/modifiers.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/section.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/soma.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/mut/writers.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/properties.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/morphologyASC.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/morphologyHDF5.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/morphologyHDF5.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/morphologySWC.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/morphologySWC.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/utilsHDF5.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/vasculatureHDF5.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/readers/vasculatureHDF5.h +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/section.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/soma.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/vasc/properties.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/vasc/section.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/vasc/vasculature.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/vector_utils.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/src/version.cpp.in +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/CMakeLists.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/__init__.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/contrib/catch.hpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/astrocyte.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/circle_contour.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/complexe.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/disconnected_neurite.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/merged.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/Neuron.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/endoplasmic-reticulum.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/mitochondria.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/monodim.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/simple-broken-section-type.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/simple-negative-section-type.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/simple.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/soma_no_neurites.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v1/two_child_unmerged.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v2/Neuron.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/v2/no-metadata.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/vasculature-broken-section-type.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/vasculature1.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/h5/vasculature2.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/iterators.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/mono-type.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/multiple_point_section.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/multiple_soma.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/nested_single_children.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/neurite_wrong_root_point.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/nrn-order-already-sorted.h5 +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/nrn_ordering.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/reversed_NRN_neurite_order.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/simple.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/simple.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/simple2.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/soma_cylinders.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/soma_multiple_frustums.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/soma_single_frustum.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/soma_three_points_cylinder.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/spine.asc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/data/three_point_soma.swc +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/main.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/requirement_tests.txt +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_0_API.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_10_vasculature.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_1_swc.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_3_h5.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_4_immut.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_7_modifiers.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_8_all_morphologies.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_9_surfaces.py +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/test_morphology.cpp +0 -0
- {MorphIO-2.5.1 → MorphIO-2.5.3}/tests/utils.py +0 -0
|
@@ -6,7 +6,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
6
6
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
7
7
|
|
|
8
8
|
option(BUILD_BINDINGS "Build the python bindings" ON)
|
|
9
|
-
option(
|
|
9
|
+
option(MorphIO_CXX_WARNINGS "Compile C++ with warnings" ON)
|
|
10
10
|
option(EXTERNAL_HIGHFIVE "Use HighFive from external source" OFF)
|
|
11
11
|
option(MORPHIO_USE_DOUBLE "Use doubles instead of floats" OFF)
|
|
12
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: MorphIO
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.3
|
|
4
4
|
Summary: A neuron morphology IO library
|
|
5
5
|
Home-page: https://github.com/BlueBrain/MorphIO/
|
|
6
6
|
Author: Blue Brain Project, EPFL
|
|
@@ -31,6 +31,7 @@ Description: # MorphIO [
|
|
32
32
|
* [Mitochondria](#mitochondria)
|
|
33
33
|
* [Endoplasmic reticulum](#endoplasmic-reticulum)
|
|
34
|
+
* [NeuroLucida markers](#neurolucida-markers)
|
|
34
35
|
* [Tips](#tips)
|
|
35
36
|
* [Maximum number of warnings](#maximum-number-of-warnings)
|
|
36
37
|
* [Specification](#specification)
|
|
@@ -129,6 +130,7 @@ Description: # MorphIO [
|
|
299
303
|
morpho.soma.points = [[0, 0, 0], [1, 1, 1]]
|
|
@@ -344,10 +348,15 @@ Description: # MorphIO [
|
|
348
353
|
```
|
|
349
354
|
|
|
350
355
|
### Glia
|
|
356
|
+
|
|
357
|
+
<details>
|
|
358
|
+
<summary>Click to expand!</summary>
|
|
359
|
+
|
|
351
360
|
MorphIO also support reading and writing glia (such as astrocytes) from/to disk according to the H5 specification
|
|
352
361
|
https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html
|
|
353
362
|
|
|
@@ -362,10 +371,13 @@ Description: # MorphIO [
|
|
363
372
|
mutable_glia = morphio.mut.GlialCell("astrocyte.h5")
|
|
364
373
|
```
|
|
365
|
-
|
|
374
|
+
</details>
|
|
366
375
|
|
|
367
376
|
### Mitochondria
|
|
368
377
|
|
|
378
|
+
<details>
|
|
379
|
+
<summary>Click to expand!</summary>
|
|
380
|
+
|
|
369
381
|
It is also possible to read and write mitochondria from/to the h5 files (*SWC and ASC are not supported*).
|
|
370
382
|
As mitochondria can be represented as trees, one can define the concept of *mitochondrial section*
|
|
371
383
|
similar to neuronal section and end up with a similar API. The morphology object has a
|
|
@@ -380,8 +392,8 @@ Description: # MorphIO [
|
|
387
399
|
|
|
@@ -429,8 +441,14 @@ Description: # MorphIO [))
|
|
431
443
|
```
|
|
444
|
+
|
|
445
|
+
</details>
|
|
446
|
+
|
|
432
447
|
### Endoplasmic reticulum
|
|
433
448
|
|
|
449
|
+
<details>
|
|
450
|
+
<summary>Click to expand!</summary>
|
|
451
|
+
|
|
434
452
|
Endoplasmic reticulum can also be stored and written to H5 file.
|
|
435
453
|
The specification is part of the [BBP morphology documentation](https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html)
|
|
436
454
|
There is one endoplasmic reticulum object per morphology. It contains 4 attributes. Each attribute is an array and each line
|
|
@@ -477,6 +495,91 @@ Description: # MorphIO [ # Has to be written to h5
|
|
478
496
|
```
|
|
479
497
|
|
|
498
|
+
</details>
|
|
499
|
+
|
|
500
|
+
### NeuroLucida markers
|
|
501
|
+
|
|
502
|
+
<details>
|
|
503
|
+
<summary>Click to expand!</summary>
|
|
504
|
+
|
|
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
|
+
|
|
507
|
+
```lisp
|
|
508
|
+
("pia"
|
|
509
|
+
(Closed)
|
|
510
|
+
(MBFObjectType 5)
|
|
511
|
+
(0 1 2 3)
|
|
512
|
+
(3 4 5 4)
|
|
513
|
+
(6 7 8 5)
|
|
514
|
+
(9 10 11 6)
|
|
515
|
+
)
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
This PR adds a `Morphology.markers` attribute that stores the markers found in the file.
|
|
519
|
+
A Marker object has 3 attributes:
|
|
520
|
+
- label
|
|
521
|
+
- points
|
|
522
|
+
- diameters.
|
|
523
|
+
|
|
524
|
+
##### Specification
|
|
525
|
+
|
|
526
|
+
The following s-expressions are parsed:
|
|
527
|
+
- Any s-exp with a top level string. Like:
|
|
528
|
+
```lisp
|
|
529
|
+
("pia"
|
|
530
|
+
(Closed)
|
|
531
|
+
(MBFObjectType 5)
|
|
532
|
+
(0 1 2 3)
|
|
533
|
+
(3 4 5 4)
|
|
534
|
+
(6 7 8 5)
|
|
535
|
+
(9 10 11 6)
|
|
536
|
+
)
|
|
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
|
|
549
|
+
|
|
550
|
+
Example:
|
|
551
|
+
```lisp
|
|
552
|
+
(FilledCircle
|
|
553
|
+
(Color RGB (64, 0, 128))
|
|
554
|
+
(Name "Marker 11")
|
|
555
|
+
(Set "axons")
|
|
556
|
+
( -189.59 55.67 28.68 0.12) ; 1
|
|
557
|
+
) ; End of markers
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
##### Usage
|
|
561
|
+
|
|
562
|
+
```python
|
|
563
|
+
cell = Morphology(os.path.join(_path, 'pia.asc'))
|
|
564
|
+
all_markers = cell.markers
|
|
565
|
+
pia = m.markers[0]
|
|
566
|
+
|
|
567
|
+
# fetch the label marker with the `label` attribute
|
|
568
|
+
assert_equal(pia.label, 'pia')
|
|
569
|
+
|
|
570
|
+
# fetch the points with the `points` attribute
|
|
571
|
+
assert_array_equal(pia.points,
|
|
572
|
+
[[0, 1, 2],
|
|
573
|
+
[3, 4, 5],
|
|
574
|
+
[6, 7, 8],
|
|
575
|
+
[9, 10, 11]])
|
|
576
|
+
|
|
577
|
+
# fetch the diameters with the `diameters` attribute
|
|
578
|
+
assert_array_equal(pia.diameters, [3, 4, 5, 6])
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
</details>
|
|
582
|
+
|
|
480
583
|
### Tips
|
|
481
584
|
#### Maximum number of warnings
|
|
482
585
|
On can control the maximum number of warnings using the command:
|
|
@@ -495,6 +598,25 @@ Description: # MorphIO [ for more information.
|
|
@@ -144,7 +144,11 @@ tests/data/nested_single_children.asc
|
|
|
144
144
|
tests/data/neurite_wrong_root_point.swc
|
|
145
145
|
tests/data/nrn-order-already-sorted.h5
|
|
146
146
|
tests/data/nrn_ordering.swc
|
|
147
|
+
tests/data/pia.asc
|
|
147
148
|
tests/data/reversed_NRN_neurite_order.swc
|
|
149
|
+
tests/data/sections-block.asc
|
|
150
|
+
tests/data/simple-with-font.asc
|
|
151
|
+
tests/data/simple-with-image-coord.asc
|
|
148
152
|
tests/data/simple.asc
|
|
149
153
|
tests/data/simple.swc
|
|
150
154
|
tests/data/simple2.asc
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: MorphIO
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.3
|
|
4
4
|
Summary: A neuron morphology IO library
|
|
5
5
|
Home-page: https://github.com/BlueBrain/MorphIO/
|
|
6
6
|
Author: Blue Brain Project, EPFL
|
|
@@ -31,6 +31,7 @@ Description: # MorphIO [
|
|
32
32
|
* [Mitochondria](#mitochondria)
|
|
33
33
|
* [Endoplasmic reticulum](#endoplasmic-reticulum)
|
|
34
|
+
* [NeuroLucida markers](#neurolucida-markers)
|
|
34
35
|
* [Tips](#tips)
|
|
35
36
|
* [Maximum number of warnings](#maximum-number-of-warnings)
|
|
36
37
|
* [Specification](#specification)
|
|
@@ -129,6 +130,7 @@ Description: # MorphIO [
|
|
299
303
|
morpho.soma.points = [[0, 0, 0], [1, 1, 1]]
|
|
@@ -344,10 +348,15 @@ Description: # MorphIO [
|
|
348
353
|
```
|
|
349
354
|
|
|
350
355
|
### Glia
|
|
356
|
+
|
|
357
|
+
<details>
|
|
358
|
+
<summary>Click to expand!</summary>
|
|
359
|
+
|
|
351
360
|
MorphIO also support reading and writing glia (such as astrocytes) from/to disk according to the H5 specification
|
|
352
361
|
https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html
|
|
353
362
|
|
|
@@ -362,10 +371,13 @@ Description: # MorphIO [
|
|
363
372
|
mutable_glia = morphio.mut.GlialCell("astrocyte.h5")
|
|
364
373
|
```
|
|
365
|
-
|
|
374
|
+
</details>
|
|
366
375
|
|
|
367
376
|
### Mitochondria
|
|
368
377
|
|
|
378
|
+
<details>
|
|
379
|
+
<summary>Click to expand!</summary>
|
|
380
|
+
|
|
369
381
|
It is also possible to read and write mitochondria from/to the h5 files (*SWC and ASC are not supported*).
|
|
370
382
|
As mitochondria can be represented as trees, one can define the concept of *mitochondrial section*
|
|
371
383
|
similar to neuronal section and end up with a similar API. The morphology object has a
|
|
@@ -380,8 +392,8 @@ Description: # MorphIO [
|
|
387
399
|
|
|
@@ -429,8 +441,14 @@ Description: # MorphIO [))
|
|
431
443
|
```
|
|
444
|
+
|
|
445
|
+
</details>
|
|
446
|
+
|
|
432
447
|
### Endoplasmic reticulum
|
|
433
448
|
|
|
449
|
+
<details>
|
|
450
|
+
<summary>Click to expand!</summary>
|
|
451
|
+
|
|
434
452
|
Endoplasmic reticulum can also be stored and written to H5 file.
|
|
435
453
|
The specification is part of the [BBP morphology documentation](https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html)
|
|
436
454
|
There is one endoplasmic reticulum object per morphology. It contains 4 attributes. Each attribute is an array and each line
|
|
@@ -477,6 +495,91 @@ Description: # MorphIO [ # Has to be written to h5
|
|
478
496
|
```
|
|
479
497
|
|
|
498
|
+
</details>
|
|
499
|
+
|
|
500
|
+
### NeuroLucida markers
|
|
501
|
+
|
|
502
|
+
<details>
|
|
503
|
+
<summary>Click to expand!</summary>
|
|
504
|
+
|
|
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
|
+
|
|
507
|
+
```lisp
|
|
508
|
+
("pia"
|
|
509
|
+
(Closed)
|
|
510
|
+
(MBFObjectType 5)
|
|
511
|
+
(0 1 2 3)
|
|
512
|
+
(3 4 5 4)
|
|
513
|
+
(6 7 8 5)
|
|
514
|
+
(9 10 11 6)
|
|
515
|
+
)
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
This PR adds a `Morphology.markers` attribute that stores the markers found in the file.
|
|
519
|
+
A Marker object has 3 attributes:
|
|
520
|
+
- label
|
|
521
|
+
- points
|
|
522
|
+
- diameters.
|
|
523
|
+
|
|
524
|
+
##### Specification
|
|
525
|
+
|
|
526
|
+
The following s-expressions are parsed:
|
|
527
|
+
- Any s-exp with a top level string. Like:
|
|
528
|
+
```lisp
|
|
529
|
+
("pia"
|
|
530
|
+
(Closed)
|
|
531
|
+
(MBFObjectType 5)
|
|
532
|
+
(0 1 2 3)
|
|
533
|
+
(3 4 5 4)
|
|
534
|
+
(6 7 8 5)
|
|
535
|
+
(9 10 11 6)
|
|
536
|
+
)
|
|
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
|
|
549
|
+
|
|
550
|
+
Example:
|
|
551
|
+
```lisp
|
|
552
|
+
(FilledCircle
|
|
553
|
+
(Color RGB (64, 0, 128))
|
|
554
|
+
(Name "Marker 11")
|
|
555
|
+
(Set "axons")
|
|
556
|
+
( -189.59 55.67 28.68 0.12) ; 1
|
|
557
|
+
) ; End of markers
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
##### Usage
|
|
561
|
+
|
|
562
|
+
```python
|
|
563
|
+
cell = Morphology(os.path.join(_path, 'pia.asc'))
|
|
564
|
+
all_markers = cell.markers
|
|
565
|
+
pia = m.markers[0]
|
|
566
|
+
|
|
567
|
+
# fetch the label marker with the `label` attribute
|
|
568
|
+
assert_equal(pia.label, 'pia')
|
|
569
|
+
|
|
570
|
+
# fetch the points with the `points` attribute
|
|
571
|
+
assert_array_equal(pia.points,
|
|
572
|
+
[[0, 1, 2],
|
|
573
|
+
[3, 4, 5],
|
|
574
|
+
[6, 7, 8],
|
|
575
|
+
[9, 10, 11]])
|
|
576
|
+
|
|
577
|
+
# fetch the diameters with the `diameters` attribute
|
|
578
|
+
assert_array_equal(pia.diameters, [3, 4, 5, 6])
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
</details>
|
|
582
|
+
|
|
480
583
|
### Tips
|
|
481
584
|
#### Maximum number of warnings
|
|
482
585
|
On can control the maximum number of warnings using the command:
|
|
@@ -495,6 +598,25 @@ Description: # MorphIO [ for more information.
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
* [Glia](#glia)
|
|
25
25
|
* [Mitochondria](#mitochondria)
|
|
26
26
|
* [Endoplasmic reticulum](#endoplasmic-reticulum)
|
|
27
|
+
* [NeuroLucida markers](#neurolucida-markers)
|
|
27
28
|
* [Tips](#tips)
|
|
28
29
|
* [Maximum number of warnings](#maximum-number-of-warnings)
|
|
29
30
|
* [Specification](#specification)
|
|
@@ -122,6 +123,7 @@ One important concept is that MorphIO is split into a *read-only* part and a *re
|
|
|
122
123
|
- Python mutable
|
|
123
124
|
```python
|
|
124
125
|
from morphio import Morphology, Section, Soma
|
|
126
|
+
|
|
125
127
|
```
|
|
126
128
|
|
|
127
129
|
- C++ immutable
|
|
@@ -134,6 +136,7 @@ from morphio import Morphology, Section, Soma
|
|
|
134
136
|
- Python immutable
|
|
135
137
|
```python
|
|
136
138
|
from morphio.mut import Morphology, Section, Soma
|
|
139
|
+
|
|
137
140
|
```
|
|
138
141
|
|
|
139
142
|
### Read-only API
|
|
@@ -163,6 +166,7 @@ In Python the API is available under the `morphio.mut` module:
|
|
|
163
166
|
|
|
164
167
|
```Python
|
|
165
168
|
from morphio.mut import Morphology, Section, Soma
|
|
169
|
+
|
|
166
170
|
```
|
|
167
171
|
|
|
168
172
|
### Mutable Read/Write API
|
|
@@ -285,8 +289,8 @@ for section in m.iter(first_root):
|
|
|
285
289
|
Here is a simple example to create a morphology from scratch and writing it to disk
|
|
286
290
|
|
|
287
291
|
```python
|
|
292
|
+
from morphio import PointLevel, SectionType
|
|
288
293
|
from morphio.mut import Morphology
|
|
289
|
-
from morphio import SectionType, PointLevel
|
|
290
294
|
|
|
291
295
|
morpho = Morphology()
|
|
292
296
|
morpho.soma.points = [[0, 0, 0], [1, 1, 1]]
|
|
@@ -337,10 +341,15 @@ Morphology("myfile.asc", options=morphio::NO_DUPLICATES|morphio::NRN_ORDER)
|
|
|
337
341
|
Python:
|
|
338
342
|
```python
|
|
339
343
|
from morphio import Morphology, Option
|
|
344
|
+
|
|
340
345
|
Morphology("myfile.asc", options=Option.no_duplicates|Option.nrn_order)
|
|
341
346
|
```
|
|
342
347
|
|
|
343
348
|
### Glia
|
|
349
|
+
|
|
350
|
+
<details>
|
|
351
|
+
<summary>Click to expand!</summary>
|
|
352
|
+
|
|
344
353
|
MorphIO also support reading and writing glia (such as astrocytes) from/to disk according to the H5 specification
|
|
345
354
|
https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html
|
|
346
355
|
|
|
@@ -355,10 +364,13 @@ immutable_glia = morphio.GlialCell("astrocyte.h5")
|
|
|
355
364
|
empty_glia = morphio.mut.GlialCell()
|
|
356
365
|
mutable_glia = morphio.mut.GlialCell("astrocyte.h5")
|
|
357
366
|
```
|
|
358
|
-
|
|
367
|
+
</details>
|
|
359
368
|
|
|
360
369
|
### Mitochondria
|
|
361
370
|
|
|
371
|
+
<details>
|
|
372
|
+
<summary>Click to expand!</summary>
|
|
373
|
+
|
|
362
374
|
It is also possible to read and write mitochondria from/to the h5 files (*SWC and ASC are not supported*).
|
|
363
375
|
As mitochondria can be represented as trees, one can define the concept of *mitochondrial section*
|
|
364
376
|
similar to neuronal section and end up with a similar API. The morphology object has a
|
|
@@ -373,8 +385,8 @@ _ `breadth_begin`: a breadth first iterator
|
|
|
373
385
|
_ `upstream_begin`: an upstream iterator
|
|
374
386
|
|
|
375
387
|
```python
|
|
376
|
-
from morphio.mut import Morphology
|
|
377
388
|
from morphio import MitochondriaPointLevel, PointLevel, SectionType
|
|
389
|
+
from morphio.mut import Morphology
|
|
378
390
|
|
|
379
391
|
morpho = Morphology()
|
|
380
392
|
|
|
@@ -422,8 +434,14 @@ for mitochondrial_section in morpho.mitochondria.root_sections:
|
|
|
422
434
|
|
|
423
435
|
print("Number of children: {}".format(len(mitochondrial_section.children)))
|
|
424
436
|
```
|
|
437
|
+
|
|
438
|
+
</details>
|
|
439
|
+
|
|
425
440
|
### Endoplasmic reticulum
|
|
426
441
|
|
|
442
|
+
<details>
|
|
443
|
+
<summary>Click to expand!</summary>
|
|
444
|
+
|
|
427
445
|
Endoplasmic reticulum can also be stored and written to H5 file.
|
|
428
446
|
The specification is part of the [BBP morphology documentation](https://bbpteam.epfl.ch/documentation/projects/Morphology%20Documentation/latest/h5v1.html)
|
|
429
447
|
There is one endoplasmic reticulum object per morphology. It contains 4 attributes. Each attribute is an array and each line
|
|
@@ -470,6 +488,91 @@ reticulum.filament_counts = [4, 4]
|
|
|
470
488
|
neuron.write('/my/out/file.h5') # Has to be written to h5
|
|
471
489
|
```
|
|
472
490
|
|
|
491
|
+
</details>
|
|
492
|
+
|
|
493
|
+
### NeuroLucida markers
|
|
494
|
+
|
|
495
|
+
<details>
|
|
496
|
+
<summary>Click to expand!</summary>
|
|
497
|
+
|
|
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
|
+
|
|
500
|
+
```lisp
|
|
501
|
+
("pia"
|
|
502
|
+
(Closed)
|
|
503
|
+
(MBFObjectType 5)
|
|
504
|
+
(0 1 2 3)
|
|
505
|
+
(3 4 5 4)
|
|
506
|
+
(6 7 8 5)
|
|
507
|
+
(9 10 11 6)
|
|
508
|
+
)
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
This PR adds a `Morphology.markers` attribute that stores the markers found in the file.
|
|
512
|
+
A Marker object has 3 attributes:
|
|
513
|
+
- label
|
|
514
|
+
- points
|
|
515
|
+
- diameters.
|
|
516
|
+
|
|
517
|
+
##### Specification
|
|
518
|
+
|
|
519
|
+
The following s-expressions are parsed:
|
|
520
|
+
- Any s-exp with a top level string. Like:
|
|
521
|
+
```lisp
|
|
522
|
+
("pia"
|
|
523
|
+
(Closed)
|
|
524
|
+
(MBFObjectType 5)
|
|
525
|
+
(0 1 2 3)
|
|
526
|
+
(3 4 5 4)
|
|
527
|
+
(6 7 8 5)
|
|
528
|
+
(9 10 11 6)
|
|
529
|
+
)
|
|
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
|
|
542
|
+
|
|
543
|
+
Example:
|
|
544
|
+
```lisp
|
|
545
|
+
(FilledCircle
|
|
546
|
+
(Color RGB (64, 0, 128))
|
|
547
|
+
(Name "Marker 11")
|
|
548
|
+
(Set "axons")
|
|
549
|
+
( -189.59 55.67 28.68 0.12) ; 1
|
|
550
|
+
) ; End of markers
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
##### Usage
|
|
554
|
+
|
|
555
|
+
```python
|
|
556
|
+
cell = Morphology(os.path.join(_path, 'pia.asc'))
|
|
557
|
+
all_markers = cell.markers
|
|
558
|
+
pia = m.markers[0]
|
|
559
|
+
|
|
560
|
+
# fetch the label marker with the `label` attribute
|
|
561
|
+
assert_equal(pia.label, 'pia')
|
|
562
|
+
|
|
563
|
+
# fetch the points with the `points` attribute
|
|
564
|
+
assert_array_equal(pia.points,
|
|
565
|
+
[[0, 1, 2],
|
|
566
|
+
[3, 4, 5],
|
|
567
|
+
[6, 7, 8],
|
|
568
|
+
[9, 10, 11]])
|
|
569
|
+
|
|
570
|
+
# fetch the diameters with the `diameters` attribute
|
|
571
|
+
assert_array_equal(pia.diameters, [3, 4, 5, 6])
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
</details>
|
|
575
|
+
|
|
473
576
|
### Tips
|
|
474
577
|
#### Maximum number of warnings
|
|
475
578
|
On can control the maximum number of warnings using the command:
|
|
@@ -488,6 +591,25 @@ morphio.set_maximum_warnings(0)
|
|
|
488
591
|
# Specification
|
|
489
592
|
See https://github.com/BlueBrain/MorphIO/blob/master/doc/specification.md
|
|
490
593
|
|
|
594
|
+
|
|
595
|
+
# H5v2
|
|
596
|
+
|
|
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:
|
|
599
|
+
|
|
600
|
+
```bash
|
|
601
|
+
pip install morphio==2.5.1 morph-tool==2.3.0
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
and then:
|
|
605
|
+
```python
|
|
606
|
+
# single file, OUTPUT must end with `.h5`
|
|
607
|
+
morph-tool convert file INPUTFILE OUTPUT
|
|
608
|
+
|
|
609
|
+
# bulk conversion
|
|
610
|
+
morph-tool convert folder -ext h5 INPUTDIR OUTPUTDIR
|
|
611
|
+
```
|
|
612
|
+
|
|
491
613
|
# Contributing
|
|
492
614
|
If you want to improve the project or you see any issue, every contribution is welcome.
|
|
493
615
|
Please check the [contribution guidelines](CONTRIBUTING.md) for more information.
|
|
@@ -46,6 +46,9 @@ void bind_immutable_module(py::module& m) {
|
|
|
46
46
|
.def_property_readonly("annotations",
|
|
47
47
|
&morphio::Morphology::annotations,
|
|
48
48
|
"Returns a list of annotations")
|
|
49
|
+
.def_property_readonly("markers",
|
|
50
|
+
&morphio::Morphology::markers,
|
|
51
|
+
"Returns the list of NeuroLucida markers")
|
|
49
52
|
.def_property_readonly("endoplasmic_reticulum",
|
|
50
53
|
&morphio::Morphology::endoplasmicReticulum,
|
|
51
54
|
"Returns the endoplasmic reticulum object")
|