Skip to content

Releases: OHBA-analysis/osl-dynamics

v1.3.2

23 May 08:12
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.3.2/

This is the last release using TensorFlow 2.9.1 and tensorflow-probability 0.17 (next release will use newer versions).

Changes:

  • Models:
    • Refactored M-DyNeMo.
    • Enhanced HIVE/DIVE and fixed bugs.
    • Added Simplified-DyNeMo.
    • Improved robustness of random_state_time_course_initialization.
  • Option to select session and/or channels in the Data object.
  • Other features/enhancements
    • Cleaned up messages printed to screen (suppressing external loggers).
    • Option to combine power map/connectivity network plots.
    • Added standalone HMM dual estimation function.
    • New function to plot HMM summary stats.

v1.3.1

29 Mar 14:00
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.3.1/

Changes:

  • Models:
    • The efficiency of the model initialisation methods (random_subset_initialization, random_state_time_course_initialization) was improved (minimised the number of shuffles).
    • Methods was updated to ensure a TensorFlow (TFRecord) Dataset can be passed.
    • Improvements to H/DIVE:
      • Modification to the calculation the KL term in the loss.
      • Ability to pass multiple embeddings.
  • Data object:
    • Option to pass arbitrary auxiliary inputs to models when creating datasets with the Data object.
    • Option to save/load TFRecord datasets (useful for training on very large datasets).
  • Simulation classes:
    • random_seed argument was removed - this may cause old scripts to error due to the unexpected argument (can just be deleted in the script). The user can use osl_dynamics.utils.misc.set_random_seed to ensure scripts are deterministic now.
  • Plotting:
    • Improved spatial map plotting to work with fMRI data (can now handle cifti files).

v1.3.0

14 Feb 13:04
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.3.0/

Changes:

  • Models:
    • Subject embedding models finalised: HIVE and DIVE.
    • New HMM with a Poisson observation model.
  • Data class:
    • New method to select channels.
    • No longer uses memory maps by default.
  • Added decoding examples.

v1.2.11

06 Dec 16:52
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.2.11/

Changes:

  • Multiple GPU training added.
  • Fixed repeated calls to the same method in data preparation.
  • Option to remove edge effects when getting HMM state probabilities.

v1.2.10

13 Nov 17:17
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.2.10/

Changes:

  • Major update to examples:
    • Update MEG examples.
    • New fMRI examples.
  • Switched to an analytical calculation for dual estimation with the HMM.
  • Improvements to SE-HMM.

v1.2.9

13 Oct 13:45
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.2.9/

Changes:

  • Fixed a bug calculating power when subject-specific PSDs were passed to power.variance_from_spectra.
  • Default to using a progress bar when getting inferred parameters.

v1.2.8

11 Oct 07:51
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.2.8/

Changes:

  • Major improvements to spectral estimation:
    • General refactor of code and improved documentation.
    • Added new function to calculate (HMM state/static) spectra with Welch's method.
    • Benchmarked welch/multitaper against scipy/MNE. Note, PSDs are now a factor of 2 larger than in previous versions.
    • Renamed static.power_spectra to static.welch_spectra for consistency with the analysis.spectral module.
  • Removed the glassbrain argument from connectivity.save and added a new function for saving interactive connectivity plots (connectivity.save_interactive).
  • Removed the asymmetric_data argument from power.save, the user should now pass vmin/vmax via plot_kwargs to the underlying nilearn plotting function.
  • Added argument to allow the user to specify the method for calculating power from spectra: power.variance_from_spectra(..., method="mean"), where method can be "mean" or "sum".

v1.2.7

29 Sep 15:21
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.2.7/

Changes:

  • TensorFlow implementation of the Baum-Welch algorithm (using log probabilities rather than the probabilities directly).
  • Config API:
    • Added a get_inf_params wrapper.
    • Added a train_sehmm wrapper.
  • Improved the asymmetric_data argument in analysis.power.save. Can now specify the limits of the colorbar.

v1.2.6

18 Aug 10:24
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.2.6/

This version of osl-dynamics was used to produce the results in: https://www.biorxiv.org/content/10.1101/2023.08.07.549346v1.

Changes:

  • Option to use TFRecords:
    • This is the preferred approach for training on large datasets with TensorFlow.
    • This feature was tested with TensorFlow 2.9.1. Newer versions of TensorFlow sometimes raise an error when using the TFRecords dataset. This will be fixed in a future release.
  • Improved shuffling of TensorFlow datasets.
  • Improved documentation.
  • Refactored implementation of scaling 'static' quantities in the loss function.
  • Tweaked the normalisation of power maps when using power.variance_from_spectra.

v1.2.5

07 Jul 13:10
Compare
Choose a tag to compare

PyPi release: https://pypi.org/project/osl-dynamics/1.2.5/

Changes:

  • API changes to the Data class. See: #161.
  • Added methods for dual estimation and subject fine tuning.
  • Option to do stats testing on time-frequency evoked response.
  • Updated tutorials.