Skip to content

v0.7.0

Latest
Compare
Choose a tag to compare
@deepanshs deepanshs released this 23 Jul 23:39
· 566 commits to master since this release

What's new

Features

  • Support for complex amplitude simulation.
  • New isotropic interpolation schemes. Added isotropic_interpolation as a sim.config parameter. Allowed values are linear and Gaussian.
  • A new larmor_freq(B0) function is added to the Isotope class, which returns the Larmor frequency of the isotope, given a magnetic flux density. For example, H1.larmor_freq(B0=9.40)
  • New weak J and dipolar coupling enumerations are added to freq_contrib.
  • New command-line interface (CLI) tools for mrsimulator.
  • Added 200+ NMR active isotopes to the library.
  • Support for python 3.10

Method

  • New Event classes---SpectralEvent and MixingEvent. The MixingEvent controls the transition amplitude mixing in a multi-event method.
  • New TotalMixing and NoMixing mixing query enumerations for quick scripting of common mixing events.
  • New weights attribute for the TransitionPathway object, which holds the probability of the transition pathway based on the mixing events defined within the method.
  • New plot() function in Method class, which generates a visual representation of the method's events, transition pathways, rotor angle, etc.
  • Support for concurrent mixing events.
  • Support for negative spectral width in a spectral dimension.
  • Deprecated Method1D and Method2D classes. Use the generic mrsimulator.method.Method object for custom 1D and 2D methods.

SpinSystem

  • New function simplify() to simplify a spin system object to a list of irreducible spin systems.
  • New function site_generator() added to the utility collection sub-module, which simplifies the process of creating Site objects in bulk.
  • Added gyromagnetic ratio and quadrupole moment metadata for all isotopes, including unstable isotopes.

SignalProcessor

  • New SkewGaussian, TopHat, and Mask apodization functions were added to the signal processor module.

Documentation

  • Restructured documentation layout
  • Improved troubleshooting section.
  • Added section User Guide detailing the use and attributes of most objects.
  • Added section Method demonstrating how to create custom Method objects.
  • Condensed simulation/fitting gallery by removing redundant examples.
  • New gallery demonstrating signal processing functions.

Changes

  • reduced_dict function is deprecated, use json(units=False) instead.
  • The mrsimulator.signal_processing module is renamed to mrsimulator.signal_processor
  • Drop support for Python version 3.6
  • Added Channel validation for named methods #177
  • Optimized memory usage and performance of the single_site_system_generator utility function.

Bug fixes

  • Fixed bug where spectral interpolation resulted in a segmentation fault.
  • Fixed memory leak issue in the C code.
  • Fixed bug in query combination involving multiple quadrupolar queries. #188.
  • Fixed bug related to unsigned/signed integers crashing on M1 macs.

Breaking changes

For most users
Mrsimulator is currently in development, and the new release includes breaking changes from v0.6.
Please review these changes and make changes according.

  • The mrsimulator.methods module is renamed as mrsimulator.method.lib.
  • The mrsimulator.signal_processing module is renamed to mrsimulator.signal_processor.
  • The data attribute of SignalProcessor.apply_operations(data=...) is renamed to dataset. Use SignalProcessor.apply_operations(dataset=...)
  • The transition_query attribute of the mrsimulator.method.SpectralEvent class is renamed to transition_queries.
  • The mrsimulator.method.query.RotationalQuery class is renamed to mrsimulator.method.query.RotationQuery

For advanced users

  • Complete redesign of the TransitionQuery object. Please refer to the documentation for details.