_Date: 11/11/21_
Breaking
- `navis.MeshNeuron`: `__getattr__` does not search `trimesh` representation anymore
- NBLASTs: queries/targets now MUST be `navis.Dotprops` (no more automatic conversion, use `navis.make_dotprops`)
- Renamed functions to make it clear they work only on `TreeNeurons`:
- `smooth_neuron` :octicons-arrow-right-24: `navis.smooth_skeleton`
- `reroot_neuron` :octicons-arrow-right-24: `navis.reroot_skeleton`
- `rewire_neuron` :octicons-arrow-right-24: `navis.rewire_skeleton`
- `despike_neuron` :octicons-arrow-right-24: `navis.despike_skeleton`
- `average_neurons` :octicons-arrow-right-24: `navis.average_skeletons`
- `heal_fragmented_neuron` :octicons-arrow-right-24: `navis.heal_skeleton`
- `stitch_neurons` :octicons-arrow-right-24: `navis.stitch_skeletons`
- `cut_neuron` :octicons-arrow-right-24: `navis.cut_skeleton`
- Removals and other renamings:
- `navis.clustering` module was removed and with it `navis.cluster_xyz` and `ClustResult` class
- renamed `cluster_by_synapse_placement` :octicons-arrow-right-24: `navis.synapse_similarity`
- renamed `cluster_by_connectivity` :octicons-arrow-right-24: `navis.connectivity_similarity`
- renamed `sparseness` :octicons-arrow-right-24: `navis.connectivity_sparseness`
- renamed `navis.write_google_binary` :octicons-arrow-right-24: `navis.write_precomputed`
- `navis.geodesic_matrix` renamed parameter `tn_ids` :octicons-arrow-right-24: `from_`
Additions & Improvements
- `navis.NeuronList.apply()` now allows omitting failures
- `navis.VoxelNeuron`:
- new class representing neurons as voxels
- new (experimental) class representing neurons as voxels
- `navis.read_nrrd` now returns `VoxelNeuron` instead of `Dotprops` by default
- currently works with only a selection of functions
- `navis.TreeNeuron`:
- can now be initialized directly with `skeletor.Skeleton`
- new method: `navis.TreeNeuron.snap`
- `navis.MeshNeuron`:
- `navis.in_volume`, `navis.subset_neuron` and `navis.break_fragments` now work on `MeshNeurons`
- new properties: `.skeleton`, `.graph` and `.igraph`
- new methods: `navis.MeshNeuron.skeletonize` and `navis.MeshNeuron.snap`
- can now be initialized with `skeletor.Skeleton` and `(vertices, faces)` tuple
- plotting: `color_by` parameter now works with `MeshNeurons`
- `navis.Dotprops`:
- new property: `.sampling_resolution` (used e.g. for scaling vectors for plotting)
- new method: `navis.Dotprops.snap`
- Experimental support for non-isometric `.units` for neurons
- NBLASTs:
- new parameter `limit_dist` allows speeding up NBLASTs with minor precision loss
- new experimental parameter `batch_size` to NBLAST neurons in batches
- overall faster initialization with large lists of neurons
- SWC I/O (`navis.read_swc` & `navis.write_swc`):
- by default we will now deposit neuron meta data (name, id, units) in the SWC header (see `write_meta` parameter)
- meta data in SWC header can also be read back (see `read_meta` parameter)
- filenames can now be parsed into specific neuron properties (see `fmt` parameter)
- node IDs now start with 0 instead of 1 when writing SWC files
- I/O to/from Google neuroglancer's precomputed format:
- total rework of this module
- renamed `navis.write_google_binary` :octicons-arrow-right-24: `navis.write_precomputed`
- new function: `navis.read_precomputed`
- Plotting:
- new function `navis.plot_flat` plots neurons as dendrograms
- `navis.plot3d` with plotly backend now returns a plotly `Figure` instead of a figure dictionary
- new [k3d](https://k3d-jupyter.org) backend for plotting in Jupyter environments: try `navis.plot3d(x, backend='k3d')`
- new parameter for `navis.plot2d` and `navis.plot3d`: use `clusters=[0, 0, 0, 1, 1, ...]` to assigns clusters and have them automatically coloured accordingly
- `navis.plot2d` now allows `radius=True` parameter
- Transforms:
- support for elastix (`navis.transforms.ElastixTransform`)
- whether transforms are invertible is now determined by existence of `__neg__` method
- Most functions that work with `TreeNeurons` now also work with `MeshNeurons`
- New high-level wrappers to convert neurons: `navis.voxelize`, `navis.mesh` and `navis.skeletonize`
- `navis.make_dotprops` now accepts `parallel=True` parameter for parallel processing
- `navis.smooth_skeleton` can now be used to smooth arbitrary numeric columns in the node table
- New function `navis.drop_fluff` removes small disconnected bits and pieces from neurons
- New function `navis.patch_cloudvolume` monkey-patches `cloudvolume` (see the new tutorial)
- New function `navis.write_nrrd` writes `VoxelNeurons` to NRRD files
- New functions to read/write `MeshNeurons`: `navis.read_mesh` and `navis.write_mesh`
- New function `navis.read_nmx` reads pyKNOSSOS files
- New function `navis.smooth_mesh` smoothes meshes and `MeshNeurons`
- Improved/updated the InsectBrain DB interface (see the tutorial)
- Under-the-hood fixes and improvements to: `navis.plot2d`, `navis.split_axon_dendrite`, `navis.tortuosity`, `navis.resample_skeleton`, `navis.mirror_brain`
- First pass at a `NEURON` interface (see the new tutorial)
- First pass at interface with the Allen's MICrONS datasets (see the new tutorial)
- `NAVIS_SKIP_LOG_SETUP` environment variable prevents default log setup for library use
- Improved `navis.cable_overlap`
Fixes
- Under-the-hood fixes and improvements
**Full Changelog**: [v0.6.0...v1.0.0](https://github.com/navis-org/navis/compare/v0.6.0...v1.0.0)