Migration guides¶
Migration to v3 version¶
neurom.view.viewer
is deprecated. To get the same results as before, use the replacement:import neurom as nm # instead of: from neurom import viewer from neurom.view import matplotlib_impl, matplotlib_utils m = nm.load_morphology('some/data/path/morph_file.asc') # instead of: viewer.draw(m) matplotlib_impl.plot_morph(m) # instead of: viewer.draw(m, mode='3d') matplotlib_impl.plot_morph3d(m) # instead of: viewer.draw(m, mode='dendrogram') matplotlib_impl.plot_dendrogram(m) # If you used ``output_path`` with any of functions above then the solution is: fig, ax = matplotlib_utils.get_figure() matplotlib_impl.plot_dendrogram(m, ax) matplotlib_utils.plot_style(fig=fig, ax=ax) matplotlib_utils.save_plot(fig=fig, output_path=output_path) # for other plots like `plot_morph` it is the same, you just need to call `plot_morph` instead # of `plot_dendrogram`. # instead of `plotly.draw` from neurom import plotly_impl plotly_impl.plot_morph(m) # for 2d plotly_impl.plot_morph3d(m) # for 3d
- breaking features changes:
use max_radial_distance instead of max_radial_distances
use number_of_segments instead of n_segments
use number_of_neurites instead of n_neurites
use number_of_sections instead of n_sections
use number_of_bifurcations instead of n_bifurcation_points
use number_of_forking_points instead of n_forking_points
use number_of_leaves instead of number_of_terminations, n_leaves
use soma_radius instead of soma_radii
use soma_surface_area instead of soma_surface_areas
use soma_volume instead of soma_volumes
use total_length_per_neurite instead of neurite_lengths
use total_volume_per_neurite instead of neurite_volumes
use terminal_path_lengths instead of terminal_path_lengths_per_neurite
use bifurcation_partitions instead of partition
new neurite feature total_area that complements total_area_per_neurite
new neurite feature volume_density that complements neurite_volume_density
Migration to v2 version¶
Neuron
object now extendsmorphio.Morphology
.NeuroM does not remove unifurcations on load. Unifurcation is a section with a single child. Such sections are possible in H5 and ASC formats. Now, in order to remove them on your morphology, you would need to call
remove_unifurcations()
right after the morphology is constructed.import neurom as nm nrn = nm.load_morphology('some/data/path/morph_file.asc') nrn.remove_unifurcations()
Soma is not considered as a section anymore. Soma is skipped when iterating over morphology’s sections. It means that section indexing offset needs to be adjusted by
-(number of soma sections)
which is usually-1
.drop
benchmarks
drop
neurom.check.structural_checks
as MorphIO does not allow to load invalid morphologies, and it does not give access to raw data.drop
Tree
class. UseSection
instead as it includes its functionality but if you needTree
separately then copy-pasteTree
code from v1 version to your project.Section
andNeurite
class can’t be copied anymore because their underlying MorphIO objects can’t be copied (pickled). Only copying ofNeuron
is preserved.drop
FstNeuron
. It functionality is included inNeuron
class. UseNeuron
instead ofFstNeuron
.- Validation of morphologies changed.
The following is not an invalid morphology anymore:
2 point soma
non-sequential ids
- script
morph_check
andmorph_stats
changed toneurom check
andneurom stats
correspondingly.
- script