Releases: flatironinstitute/CaImAn
Releases · flatironinstitute/CaImAn
v1.12.2
This release has several changes:
- Many docs improvements, to catch fn/method params unmentioned in docs, wrong names
- Removed more dead code
- Also some improved diagnostic messages when things go wrong
- Bugfix for spatial component calculation (thanks to @zyyk78)
- Fixes for several deprecations from the logging module, as well as a bugfix (thanks to @emmanuel-ferdman)
- Several more methods no longer return self (none were used in our demos, but this may be a breaking change)
- Fixes for several deprecations from numpy/scipy, in prep for eventually switching to numpy 2.x (currently blocked by our tensorflow version)
- Switch all usage of np.matrix to np.ndarray
- Switch all usage of np.shape(obj) to obj.shape
- Switch from deprecated pkg_resources API to importlib, other related deprecation warning fixes
- Hide warnings we don't care about from caimanmanager tests
- Unpack some densely-written code in online_cnmf:update_num_components() that was hard to read
- caiman_gui (which we still don't recommend people use): Qt6 updates, other modernisation
- Improve guidance on values of init_batch in cnmfparams docs
- Add str, repr, and getitem to OnACID class
v1.12.1
v1.12.0
(Please do not use this release; use 1.12.1, releaed right after, which has an important bugfix)
This release has several changes:
- Several improvements to handling of SBX datafiles (thanks @ethanbb )
- Some PyQT6 fixes for volpy, other issues
- The volpy demo no longer puts its datafiles in a different place from the other demos
- Some numpy modernisation (more in the future as we prepare to switch versions)
- Removed a lot of dead code across the codebase
- BREAKING CHANGE: CNMF.fit() no longer returns a reference to its object (it no longer returns anything). Existing custom code will need to be changed; demos have already been updated. This should be a simple change, removing an unnecessary assignment back to the object doing the call.
- Better detection of empty spatial components during a run, which will be aborted with a decent error message telling people to change their params
- Added
__str__(),__repr__(), and__getitem__()to some classes to make them more useful in interactive python sessions - Add mechanism (and new params) to let user have more control over call to sklearn's NMF() if they pick the greedyROI init method. We can expand on this mechanism in the future if users request it
- Throw an exception for users if their motion.splits_rig and online.init_batch params don't fit together well; this is most likely to turn up with very long movies
- Restore a long-lost datafile referenced in the demo_seeded notebook (thanks @Hendriela for finding the file)
- Small documentation improvements for the install process
v1.11.4
This release has three major install changes:
- Because of license changes with the main/defaults channel on conda, we now suggest users use the miniforge conda distro, which defaults to conda-forge rather than defaults/main
- On Windows, because tensorflow is not nicely packaged for that platform on conda-forge, we document an alternative install path
- We are ready to begin supporting pip installs of caiman again after a many-years hiatus; pip-based installs are still more difficult than the prebuilt packages, being easiest on Linux, slightly more difficult on OSX, and fairly difficult on Windows. It may take us some time to get fully up to speed on pip again, and we still (for now) recommend users use conda if possible
Other changes:
- Caiman Central is deprecated (too much effort to maintain it) and is no longer mentioned in the readme
- Fixed some bad formatting in the contributors document and ensured intended people got credit
- We now recommend "jupyter lab" rather than "jupyter notebook" for our notebooks; this provides a slightly newer interface
- Fixes to online CNMF (some codepaths had unbound variable errors, correlation images also no longer fail validation if they contain NaNs), thanks to @ethanbb
- Better handling of sparce matrices, thanks to @ethanbb
- Better memory handling in motion correction, thanks to @deMalmazet
- Better handling of sparce matrices and related code with certain option flag permutations, thanks to @proektlab
- Some docs fixes
- Moved pip-based dependencies into pyproject.toml to better support alternative packaging tools
- Removed skcuda and some dead code from the motion correction pipeline
- load_memmap and related functions now support .npy files as well, thanks to @fdeguire03
- Numerous fixes to tile_and_correct and shifts code, thanks to @ethanbb
- Threaded an ability to adjust the l1_ratio used by sparse nmf (previously hardcoded but something we adjusted in a past release) in CNMF params
- Changed default loglevel for most notebooks to be at least logging.WARNING rather than logging.info, and also downgraded some particularly noisy and low-value messages from logging.INFO to logging.DEBUG; together these changes should make the notebooks less likely to fill with non-useful messages
v1.11.3
v1.11.2
- Several fixes for 3d data handling (and ordering) from @ethanbb
- Added bokeh implementation of view_quilt (by @salehtahini)
- Logging refactoring - we now use a named logger so users can integrate caiman with their code but have seperate loglevels/configurations for their code and caiman’s. Also fixed incorrect docs on configuring logging while updating them with this change
- Bugfix for custom CAIMAN_DATA paths
- Fix incomplete earlier bugfix for #1326 (reported by @EmeEmu and @marberi)
- Small improvement to error handling in the (included but dated) caiman_gui.py script
- Adjust pins of peakutils to deal with upstream package coordination issues that broke caiman installs
- Several small cleanups/fixes while adjusting the above
v1.11.1
This is a small release:
- Pin tensorflow to less than 2.16 for now, because 2.16 changes their implementation of the keras API to 3.0 and redoes those namespaces
- Fix a bug that @rob-the-bot found
- Fixed a case where the wrong unpacking was called on a distributed compute object (thanks @ethanbb )
- Fix some cases where serialised NoneType values in a hdf5 file were being improperly unpacked (thanks @ethanbb )
- Editable source-based installs (which very few people are using) are better handled by caimanmanager, making this option have fewer steps for users
v.1.11.0
This release makes two disruptive changes, among others.
- If you use CLI demos, you'll find them to be totally reworked in this release to be more applike and driven by jsonfiles. This is intended to make them potentially usable without being edited.
- If you build other software that imports caiman, this release has more functions in the code that generate output files do so in the temp/ directory rather than leave them in a variety of random places. Not everything was changed; future releases will likely continue to increase tidiness on this front, so if you import caiman and need to know where files land, please reach out to [email protected] if you want a heads-up or to make requests/suggestions. Eventually the codebase will likely have per-run directories and have standard file outputs that most functions produce, hopefully making it much easier to wrap caiman (either as a library or as an external call)
The codebase is moving towards the standard that if the user requests something be put in a file with a particular name:
- If that name contains a path, it will be put exactly in that path, meeting the request
- If that name does not contain a path, the codebase will find a suitable place to put it and return or store a value somewhere indicating where it was put. Right now this is always caiman_data/temp/ but in the future after we have per-run directories, there may be further distinction between logs, temporary files, and output files (we have not committed to specifics yet, but intend to move in this direction)
The full changelist:
- Significant SBX format reworking, tiff format fixes from ethanbb
- Bugfix in detecting N5 and ZARR files from marberi
- Removed support for the oldest (pre-hdf5) format of MAT files, better messages for that code in general
- Full refactoring of most CLI demos to be applications, driven by JSON, to be usable without code modification. Added a README
- CLI demos have some long-overdue fixes to display their results correctly. Note that demo_behaviour requires particular builds of OpenCV (that are built against Qt6 rather than standalone).
- Changes across the codebase to have it less often produce files all over the place during a run
- Removed some dead code and entries in data structures throughout the codebase (including some that used the now nonsupported spams library as a dynamic import). caiman.behavior.extract_components() no longer supports the method_factorization value of dict_learn
- Movie.save() now always returns the filename regardless of filetype; this is now preferred because if one doesn’t include a path it will save in temp/ and the caller can use the return value to know how to reopen it later
- environment.yml better handles alternate distributions of conda (like miniforge, which we still don’t recommended but it now more likely to work)
- Ensure that caimanmanager will not copy pycache directories into caiman_data
- Miscellaneous small bugfixes