Releases: navis-org/navis
Version 1.11.0
This version comes with ~1 year worth of improvements & fixes. Here are some of the highlights:
- all
read_xxxfunctions can now read straight from Google buckets (gs://...) - a large number of improvements for transforms, e.g. a new
GridTransformthat can be used with transforms generated by warpfield - speed-ups for various function including
navis.heal_skeletonwhich is now up to 10x faster for complicated neurons
Please see the Changelog for details.
Version 1.10.0
Version 1.9.1
This minor version bump fixes a few smaller issues:
- MICrONS & H01 interfaces:
fetch_neuronsnow accepts amaterializationparameter that determines which materialization version is used for synapse and nucleus queries; defaults to "auto" which meansnaviswill try to find a materialization version matching the queried root IDsfetch_neuronswill now also assign soma positions for H01 neurons (see the.soma_posneuron property); previously this only worked for MICrONS neuronsdatastack="cortex65"now points to the correct MICrONS datastack
CloudVolume.mesh.get_navis(seenavis.patch_cloudvolume) now accepts aprocess(default isFalse) parameter that determines whether the NeuroGlancer mesh is processed (deduplication of vertices, etc.); contribute by @fcollman- fixed a bug in
navis.subset_neuronthat caused branch points to not be re-calculated
Version 1.9.0
This version comes with:
- a new and shiny interface to pull data from the H01 human cortex dataset (by @jinhan)
TreeNeuronscan now be initialized from vertices and edges- improvements in handling and processing of image data
- general I/O improvements
See the changelog for details!
Version 1.8.0
This version contains a major internal rework of both navis.plot2d and navis.plot3d to make them more consistent and easier to use.
Breaking
- Plotting: the
synapse_layoutparameter was renamed tocn_layout(matching e.g. other parameters such ascn_colors) - Negative views in
navis.plot2d(e.g.view=("x", "-z")) will now invert axes rather than changing the underlying data - Minimum version of
matplotlibis now3.9(was3.6) - The
plotlybackend is not part of a minimal install anymore (still installed vianavis[all]) - The Vispy backend is now deprecated and will be removed in a future release
- Removed
navis.screenshot- please use the Octarine/Vispy viewer's.screenshot()method instead navis.tortuositynow calculates tortuosity as-is (i.e. without resampling) by default
Additions
- Added Octarine as the default backend for plotting from terminal
- New Function:
navis.ivscc_features()computes some basic ICSCC features - New function:
navis.graph.skeleton_adjacency_matrix()computes the node adjacency for skeletons - New function:
navis.graph.simplify_graph()simplifies skeleton graphs to only root, branch and leaf nodes while preserving branch length (i.e. weights) - New
NeuronListmethod:get_neuron_attributesis analagous todict.get NeuronListsnow implement the|(__or__) operator which can be used to get the union of two [NeuronLists]navis.NeuronList]Tree/MeshNeurons,VolumesandDotpropsnow support addition/subtraction (similar to the already existing multiplication and division) to allow offsetting neuronsnavis.Volumenow have an (optional).unitsproperty similar to neurons
Improvements
- Plotting:
navis.plot3d:legendgroupparameter (plotly backend) now also sets the legend group's title- new parameters for the plotly backend:
legend(defaultTrue): determines whether legends is shownlegend_orientation(defaultv): determines whether legend is aranged vertically (v) or horizontally (h)linestyle(default-): determines line style for skeletons
- default for
radiusis now"auto"
navis.plot2d:- the
viewparameter now also works withmethods3dand3d_complex - the
color_byandshade_byparameters now also work when plotting skeletons withradius=True - new defaults:
radius="auto",alpha=1,figsize=None(use matplotlib defaults) - new parameters for methods
3dand3d_complex:mesh_shade=Falseandnon_view_axes3d - the
scalebarandsomaparameters can now also be dictionaries to style (color, width, etc) the scalebar/soma
- the
- the
connectorsparameter can now be used to show specific connector types (e.g.connectors="pre")
- I/O:
read_*functions are now able to read from FTP servers (ftp://...)- the
limitparameter used in manyread_*functions can now also be a regex pattern or aslice
- New parameter in
navis.resample_skeleton()usemap_columnto include arbitrary columns in the resampling navis.prune_twigs()andnavis.cable_length()now accept amaskparameter- General improvements to docs and tutorials
Fixes
- Memory usage of
Neuron/Listsis now correctly re-calculated when the neuron is modified - Various fixes and improvements for the MICrONS interface (
navis.interfaces.microns) navis.graph.node_label_sorting()now correctly prioritizes total branch lengthnavis.TreeNeuron.simplenow correctly drops soma nodes if they aren't root, branch or leaf points themselves
Full Changelog: v1.7.0...v1.8.0
Version 1.7.0
With this release we integrate navis-fastcore into navis which contains a number of core functions re-implemented in Rust 🎉
For now this is a soft dependency but if you pip install navis-fastcore, navis will automatically use these improved functions under the hood, which can speed things up by up to 20x 🚀
In other news:
Breaking
- plotting functions: dropped the
clusterparameter in favour of an improvedcolor_bylogic (see below)
New
- new method
navis.NeuronList.add_metadatato quickly add metadata to neurons
Improved
navis.find_somaandnavis.graph.neuron2nx(used under the hood) are now much faster- all I/O functions, such as
navis.read_swc, now show which file caused an error (if any); original filenames are tracked as.fileproperty navis.NeuronListwill only search the first 100 neurons for autocompletion to avoid freezing with very large lists- plotting functions:
color_bynow accepts either a list of labels (one per neuron) or the name of a neuron property navis.subset_neuronis now faster and more memory efficient when subsetting meshesnavis.TreeNeuron.cable_lengthis now faster
Fixed
- all I/O functions such as
navis.read_swcnow ignore hidden files (filename starts with._) instead of breaking navis.read_swcnow actually uses the soma label (if present) to set the soma node- fixed a bug in plotting when using vertex colors
- fixed the progress bar in
navis.interfaces.neuprint.fetch_mesh_neuron - fixed a bug in
navis.synblastthat caused multiprocessing to fail (pickling issue withpykdtree) navis.interfaces.neuprint.fetch_mesh_neuronwill now ignore thelodparameter if the data source does not
support it instead of breaking- fixed a number of depcrecation warnings in the codebase
Version 1.6.0
It has been a long time (7 months, to be precise) since the last release but we've not been idle!
Version 1.6.0 is chock-full with new features, improvements and fixes. Here are some of the highlights:
Breaking
- with this release we've dropped support for Python 3.8 as per NEP 29
navis.write_swcno longer writesDotprops
New Features
navis.read_parquetandnavis.write_parquetlet you read/write large set of skeletons or dotprops; note: these are experimental and the format specs might still change but feel free to take it for a spin- new
navis.NeuronConnectorclass for creating connectivity graphs from groups of neurons with consistent connector IDs (e.g. frompymaidneurons)
Improvements
- improved logic for splitting NBLASTs across multiple cores
- i/o functions can now read directly from
.taror.tar.gzfiles (.zipwas already supported)
Fixes
- fixes to the neuPrint interface by @stuarteberg
- plotting empty TreeNeurons no longer breaks things thanks to @floesche
- reading large files (i.e. mostly meshes) directly from a URL should not break anymore
New Contributors
- @stuarteberg made their first contribution in #124
- @floesche made their first contribution in #125
Full Changelog: https://navis.readthedocs.io/en/latest/source/whats_new.html
Commit history: v1.5.0...v1.6.0
Version 1.5.0
Changes:
- BREAKING: dropped support for Python 3.7
- new function: navis.pop3d() removes the most recently added object from the vispy 3d viewer
- new experimental functions for (pairwise) alignment of neurons using the pycpd package: navis.nblast_align(),
navis.align.align_deform(),navis.align.align_rigid(),navis.align.align_pca(),navis.align.align_pairwise() - navis.xform_brain() now recognizes the target template’s units if available
- new NeuronList method:
navis.NeuronList.set_neuron_attributes() - new utility functions: navis.nbl.compress_scores(),
navis.nbl.nblast_prime() - improved persistence functions: navis.persistence_distances(),
navis.persistence_vector(),navis.persistence_diagram() - navis.longest_neurite() and navis.cell_body_fiber() now also allow removing the longest neurite and CBF, respectively
- navis.heal_skeleton() now accepts a mask parameter that allows restricting where fragments are stitched
- various other bugfixes
Version 1.4.0
This is release contains various improvements and fixes. Importantly, it fixes a couple incompatibilities with numpy 1.24.0.
Even though this is not a new major version there is one breaking change:
navis.flow_centrality was renamed to navis.synapse_flow_centrality and a new non-synaptic navis.flow_centrality function was added. This also impacts the method parameter in navis.split_axon_dendrite!
Please see the change log for other changes.
Version 1.3.1
This is a small release containing 2 fixes:
- Fixes a bug with the most recent version of
dillwhich impact parallel processing. - In Jupyter, NBLAST now uses classic progress bars. This is not ideal and all progress bars are printed on top of another but the widgets seem to be entirely broken with the most recent version of
tqdm.