Skip to content

Releases: bbfrederick/rapidtide

Version 3.1.10 - 4/13/26 Critical noise removal bug fix

13 Apr 21:46

Choose a tag to compare

  • (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

19 Mar 15:45

Choose a tag to compare

  • (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

02 Mar 14:55

Choose a tag to compare

  • (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

23 Feb 17:20

Choose a tag to compare

  • (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!

16 Feb 21:35

Choose a tag to compare

  • (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

13 Feb 18:13

Choose a tag to compare

  • (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

04 Feb 15:42

Choose a tag to compare

  • (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

21 Jan 16:54

Choose a tag to compare

  • (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

04 Dec 22:17

Choose a tag to compare

  • (rapidtide) Partial fix for #229. You should at least be able to specify filtering properly when the --delaymapping macro 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

17 Nov 16:17

Choose a tag to compare

  • (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 --usetensorflow option.
  • (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.