Releases: CamaraLab/CAJAL
v1.5
Version 1.5 of CAJAL incorporates two significant new pieces of functionality for the analysis of neuron morphology, unbalanced Gromov-Wasserstein (a matching tool which allows for partial or incomplete matches) and fused Gromov-Wasserstein (a tool which allows the incorporation of additional feature data about neuron nodes, e.g., soma or dendrite.)
These are discussed in detail in the documentation in a worked example tutorial and, at a more theoretical level, here.
- Cleaned up function signatures - making function signatures more uniform between Euclidean and geodesic functions, removing unused parameters
- Removed source of nondeterminism/non-reproducibility in Louvain clustering algorithm
- Added optional dependencies for usage in the Docker image
- Restored parallelism to SWC sampling
- Fixed bug in implementation of Weighted Nearest Neighbors algorithm
v1.0.3
Bugfix
v1.0.2
Version v1.0.2
Test CI
Test release for automatic wheel deployment
v1.0.0
Version 1.0.0 of CAJAL incorporates
- the weighted nearest neighbors algorithm for the integration of Gromov-Wasserstein distance matrices with other modalities
- a ternary plotting functionality that allows the user to visualize the relative variability of data from each modality, and identify variance in one modality that is not well explained by variance in the other two
- integration with the Navis software package for visualizing neurons, allowing users to see a heat map of deformation costs illustrating the parts of the neuron which contribute the most to the overall Gromov-Wasserstein distance
CAJAL v0.3.0
This release is primarily concerned with extending the functionality of CAJAL with an eye towards analysis of larger datasets and larger objects.
- Rewrote the gradient descent algorithm for computing Gromov-Wasserstein in Cython and made small changes to the algorithm to improve performance, perhaps a 20% speed improvement.
- Implemented a lower bound for Gromov-Wasserstein from Memoli's original paper, called SLB. We can use this to filter out cell pairs which are sufficiently far apart that they cannot be within each other's nearest neighbor list. This technique is general and does not require a notion of major/minor axis, it is compatible with geodesic distance. It is multiple orders of magnitude faster than GW. This reduces the number of cell pairs to compute by about 70%, if the GW distance only needs to be known precisely for the nearest neighbors.
- Implemented an approximation to GW, called quantized GW, which involves replacing the cell by a subset of its points and using this as an approximation to the original space. The approximation is acceptable and offers a substantial reduction in computation time; approximating a 100pt space by a 30pt space gives an 87% reduction in computation time.
- Implemented a combined analysis tool which uses SLB to filter the cell pairs down to a short list of potential nearest neighbors and then applies quantized GW to the remaining pairs. This combined tool should make it practical to scale to very large datasets such as the MICrONs dataset.
- CAJAL is now compatible with Python 3.9, 3.10, 3.11.
- Improved error handling
- Fixed a performance issue in underlying linear algebra library where overzealous multithreading slowed performance.
For illustrations and usage tutorials, please see our documentation at cajal.readthedocs.io.
CAJAL
This release implements all the core functionalities of the package.
The main contributors to this release were @patrick-nicodemus and @pcamara.