Releases: flatironinstitute/CaImAn
Releases · flatironinstitute/CaImAn
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
v1.10.9
v1.10.8
v1.10.7
v1.10.6
v1.10.5
For this release:
- CNMFParams has undergone a moderate refactoring to accept json serialisation, better catch use of the API that won't do anything, and to prefer taking input in forms that match the categorisation of different fields (a deprecation warning is in place for old "flat" inputs, which will be in place for a fairly long time until everything has had time to migrate). This also sets the stage for a revamp of the CLI demos which did not make it into this release
- Some documentation fixes on CNMFParams, some formerly-undocumented parameters have some docs
- Scanbox file support has been updated to handle modern files (user contribution: Ethan Blackwood)
- Documentation improvements (memory optimisations, contributors doc)
- pylab imports removed
- Recent changes to the scipy api handled
- Numerous bugfixes (including one with hdf5 encoding of strings)