Releases: bbfrederick/rapidtide
Releases · bbfrederick/rapidtide
Version 3.1.10 - 4/13/26 Critical noise removal bug fix
- (rapidtide) Fixed a critical bug in filtered data output - the XXX_desc-lfofilterCleaned_bold.nii.gz map (and a few others) were incorrect. Thank you to Jakub Szewczyk (https://github.com/themeo) for finding this! Closes #263.
- (rapidtide) Added summary statistics to some json sidecar files.
- (rapidtide) Corrected an assumption about dataset lengths that caused crashes with very short datasets.
- (rapidtide) Fixed a few rare crashes.
- (filtnifti) Cleaned up the calling interface and added some new capabilities.
- (VoxelData) When reading input files, fix NaNs by default.
- (package) Accepted several dependabot PRs.
Version 3.1.9 - 3/19/26 checkpoint
- (rapidtide) There's a new optional despeckling procedure, which you can turn on with
--robustdelayfit. It uses a region growing method to try to ensure consistency in delay maps while allowing for discontinuities between vascular territories. - (rapidtide) Added some infrastructure for territory processing.
- (rapidtide, retroregress) Fixed calculation of the refined R value.
- (rapidtide, retroregress) Expanded and improved regional time course output.
- (atlasaverage) Pulled get4Dtimecourses into a separate routine so it can be reused in rapidtide territory processing.
- (tidepool) Fixed a crash when data is in MNI152 space and FSL is not present.
- (happy) Now outputs variance metrics so you can see how effective noise regression is.
- (ccorrica) Updated to use SimilarityFunctionFitter, output csv files.
- (SimilarityFunctionFitter) Fixed a strange bug where very small delay values were not fit properly. Affects all programs using correlation fits (most of them).
- (package) Made pyfftw a required dependency.
- (package) Resolved future deprecations from scipy.fftpack and np.matrix.
- (bonus) The date matches the version number (US only :-) )!
Version 3.1.8 - 3/2/26 Despeckling fix, general cleanup
- (rapidtide) Fixed a bug in how the despeckle search region is set.
- (rapidtide) Added a number of refinements to despeckling. This improves behavior in voxels that get selected, but patches of voxels may still not get processed.
- (rapidtide) Added option to print timing information at the end of a run (
--showtimings). - (happy) Fixed several edge case bugs in phase projection.
- (filter) Removed a LOT of old, redundant routines.
- (fit) Fixed baseline calculation for mutual information.
- (Docker) Started building the ability for containers to self test.
Version 3.1.7 - 2/23/26 Happy and tidepool enhancements
- (happy) Added an experimental feature that does cheesy sLFO removal prior to cardiac waveform extraction. It seems to improve the extracted cardiac signal some, and makes the phase projected data a bit cleaner. Needs further testing.
- (happy) Codex found several bugs, which are now fixed.
- (tidepool) Fixed the bug where initial map display limits were sometimes set to full rather than smart.
- (tidepool) Fixed the bug where the movie toggle button behavior was flaky and inconsistent.
- (rapidtide) Added some scaffolding to support a GPU version of correlationpass. Currently locked out.
- (package) Added a new routine for spectral visualization.
- (package) Further increases in test coverage.
- (package) Restructured testing to make it faster and less fragile.
- (docs) Docs now build properly after fixing requirements (this broke around v3.1.4).
- (docs) Added a section clarifying masking behavior to "Theory of Operation".
- (docs) Added a section about using the superior sagittal sinus as a source of the initial regressor to the rapidtide usage section.
Version 3.1.6 - 2/16/26 Test coverage extravaganza!
- (package) Using alternating Codex and Claude, got test coverage to 90.99%. Closes #13.
- (package) Cleaned up .circleci/config.yml.
Version 3.1.5 - 2/13/26 Testing and bug fix release
- (package) Used Claude to write a lot of tests. Test coverage is currently at 84.39%. This also uncovered a lot of bugs (worst ones listed below).
- (package) Updated all copyright notices to 2026.
- (atlastool) Fixed an off by one bug in calculating region volumes.
- (histnifti) Fixed a percentile calculation when timepoints is small.
- (spatialmi) Command line arguments always overrode arguments passed to main routine.
- (showstxcorr) Now properly handles nondefault starttime or very short duration.
- (showstxcorr) matrixoutput now settable from the command line.
- (ppgproc) Fixed a crashing bug in HeartRateExtractor.
- (ppgproc) Fixed deprecated call in PPGFeatureExtractor.
- (showxcorrx) Fixed command line processing logic.
- (niftistats) Fixed some bugs in processing ICC values.
- (niftidecomp) Fixed processing methods other than FastICA to match.
- (linfitfilt.py) Fixed a bug when numskip != 0.
- (correlate.py) Return pearsonr values correctly.
- (correlate.py) matchsamplerates now guarantees that vectors are matched in size.
- (dlfilter.py) Fixed a bug in specifying model name in DeepLearningFilter.
- (dlfiltertorch.py) Fixed a shape bug in ConvAutoencoderModel.
- (fit.py, calcandfitcorrpairs.py, simFuncClasses.py, localflow.py) Made handling of high correlation values more robust.
- (fit.py) Fixed a bug in oscreetest.
- (fit.py) Fixed a bug in return values of territorydecomp.
- (fingerprint.py) Fixed processing of return values of territorydecomp.
- (RapidtideDataset.py) Updated some deprecated calls.
- (rapidtide_parser.py) Fixed a number of the issues listed here: #239 (thanks to tsalo).
- (resample.py) Fixed a bug in FastResampler when using methods other than univariate.
- (refineregressor) Fixed a bug in findecho.
- (roisummarize.py) Fixed a nasty bug that only chose one value from every region (!)
- (helper_classes.py) Fixed initialization bugs in the ProbeRegressor class.
- (io.py) Fixed an encoding bug in writevec.
- (io.py) Made a new routine to make empty MNI152 NIFTI files.
- (docker) Temporarily removed push to Amazon ECR, since I currently don't have an account.
Version 3.1.4 - 2/4/26 Documentation and happy upgrade
- (happy) Fixed a nasty bug that made temporal regression essentially useless. Now that is works properly, it seems to be the preferred noise removal method.
- (happy) Fixed an option logic error (you could select both spatial and temporal regression).
- (docs) Added a new section to the rapidtide usage section to address #235. Thanks to https://github.com/themeo for the suggestion.
- (docs) Expanded happy usage documentation, including a detailed discussion of noise removal.
- (docker) Now that FSL works on linux/aarch64, I've gone back to using basecontainer_plus as a starting point for the container. So FSL tools are available again.
- (docker) Cleaned up caches to save a little space.
- (docker) Made some security updates to the environment.
- (package) Updated some github actions.
- (package) Accepted several dependabot PRs.
Version 3.1.3 - 1/21/26 happy improvements
- (happy) Made the new pulsatility based vessel finding method the default.
- (happy) Made the new PPGAttention deep learning filter the default (see dlfiltertorch change).
- (happy) Dynamically adjust the threshold for the pulsatility mask with some limits on how small the mask is.
- (happy) Add some new metrics to the runoptions file and the timecourse sidecar files.
- (happy) Added some sanity checks to make sure cardiac waveform extraction is less likely to fail.
- (happy) Adjusted the names of some timecourses and output files for consistency.
- (applydlfilter) Major internal overhaul, making the program more robust.
- (dlfiltertorch) Added a new model and filter after a chat with Gemini, PPGAttention. There is now a hybrid CNN/LSTM cardiac timecourse filter with attention, and a longer (~5 second) processing window. It seems to be give more stable cardiac waveforms. It's now the default deep learning filter in happy.
- (dlfiltertorch) Made major changes to how model training works - loss calculation uses batches, there are more filters to exclude bad training data, models can easily incorporate bad points and FFT information.
- (reference) Added an atlas with the Van Dijk seeds.
- (package) Fixed a deprecated call to np.sum in fit.py (you can no longer use a generator as an argument).
- (package) Added a security policy.
- (package) Accepted some dependabot PRs.
Version 3.1.2 - 12/4/25 --delaymapping bug fix
- (rapidtide) Partial fix for #229. You should at least be able to specify filtering properly when the
--delaymappingmacro is used. Another shoutout to https://github.com/beccaclements99 for finding this! - (happy) Refactored cardiacfromimage (well, Claude did, but I helped).
- (happy) Made several tweaks and improvements the pytorch implementation of CNNModel to try to improve performance around bad or missing data.
- (happy) Improved the training workflow for the pytorch implementation of CNNModel.
- (applydlfilter) Improved the interface to make this more useful as an evaluation tool.
- (package) Fixed a lot of array allocations and copies to hopefully get a little speed boost.
- (package) Made several more type hint refinements.
- (package) Save pyfftw wisdom for faster startup after first run.
- (package) Optimize the length of a lot of FFTs for faster processing.
- (package) Accepted some dependabot PRs.
Version 3.1.1 - 11/17/25 CVR output bug fix
- (rapidtide, retroregress) Correctly output relevant maps when doing CVR processing. Closes #226. Thank you to https://github.com/beccaclements99 for finding this!
- (rapiditde) Fixed a crashing bug when using PCA to estimate the initial sLFO regressor.
- (happy) Made tensorflow an optional install because of more tf weirdness. If tensorflow is not present, default to using the pytorch deep learning filter. If tensorflow is present, enable the
--usetensorflowoption. - (package) Added support for python 3.14 (if you use 3.14, you cannot currently install tensorflow, so happy will use the pytorch deep learning filter).
- (package) Lots of type hint refinements.
- (package) Fixed lots of typos and minor bugs.