v0.7.0
What's new
Features
- Support for complex amplitude simulation.
- New isotropic interpolation schemes. Added
isotropic_interpolation
as asim.config
parameter. Allowed values arelinear
andGaussian
. - A new
larmor_freq(B0)
function is added to theIsotope
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
andMixingEvent
. The MixingEvent controls the transition amplitude mixing in a multi-event method. - New
TotalMixing
andNoMixing
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
andMethod2D
classes. Use the genericmrsimulator.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
, andMask
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, usejson(units=False)
instead.- The
mrsimulator.signal_processing
module is renamed tomrsimulator.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 asmrsimulator.method.lib
. - The
mrsimulator.signal_processing
module is renamed tomrsimulator.signal_processor
. - The
data
attribute ofSignalProcessor.apply_operations(data=...)
is renamed todataset
. UseSignalProcessor.apply_operations(dataset=...)
- The
transition_query
attribute of themrsimulator.method.SpectralEvent
class is renamed totransition_queries
. - The
mrsimulator.method.query.RotationalQuery
class is renamed tomrsimulator.method.query.RotationQuery
For advanced users
- Complete redesign of the
TransitionQuery
object. Please refer to the documentation for details.