Skip to content
This repository has been archived by the owner on Jun 26, 2024. It is now read-only.

Commit

Permalink
Release v1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
smeerten committed Sep 25, 2022
2 parents d14d054 + 9a80882 commit be85a75
Show file tree
Hide file tree
Showing 28 changed files with 700 additions and 297 deletions.
27 changes: 26 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,32 @@ Changelog

All notable changes to this project will be documented in this file.

## [1.3] -

## [1.4] - 2022-09-25
### Added
- Export to CSV file option.
- Fitting: color boxes added to interface, indicating color per site
- Bruker fid load now works for up to 8 dimensions
- Custom x-axis can be restored after an operation cleared this
- Bruker type data from WSolids can now be loaded
- Fitting: improved parameter save.
- Dipolar tool: Now also calculates second moments (credits: Henrik Bradtmüller)
- Fitting: Include separate Lorentz value for satellite transitions (credits: Julien Trébosc)
- Fitting: Adds average Pq and peak Cq values to the Czjzek Distribution Plot (credits: Henrik Bradtmüller)
### Removed
- Python2 support.
- Qt4 support.
### Changed
- Bruker spectra load: better intensity scaling using NC_proc setting
- MQMAS fitting: Now has chemical shift distribution settings instead of Gauss
- Colour plot shading set to 'hanning'
- Diffusion fit: 2 * pi factor added
- NMR table: update quadrupolar moments to latest values.
### Fixed
- Diagonal projection in 2D plot with a small SW in the indirect dim
- A bug occurring when switching between 1/2D plots for high dimensional data

## [1.3] - 2020-10-15
### Added
- Added warning that PyQt4 and python2 support will be dropped soon
- Extract part function now has step size
Expand Down
76 changes: 50 additions & 26 deletions DocSrc/ReferenceManual.tex
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -885,15 +885,6 @@ \subsection{Correct digital filter}
Bruker and JEOL data, the required phase shift is extracted from the parameters files. Failing to
use this function for these data leads to a spectrum with a strong first order phasing error.


\subsection{Scale SW}
A function to scale the spectra width (i.e. the sweepwidth) of the current dimension. Essentially,
this can also be done in the main windows, by filling in $a * b$, with $a$ the current SW and $b$
the multiplication factor. This tool is included for MQMAS data processing, were a scaling of SW of the
indirect dimension can be used to get a true isotropic dimension (i.e. 1 ppm chemical shift
corresponds to a 1 ppm peak shift). This scaling factor for this is $Q$ and $I$ dependent, and can be selected in
this tool via an easy dropdown menu.

% \subsubsection*{Background}
% In theory, the recording of an NMR signal starts directly after the excitation point. The signal can then be easily described by a decaying exponential (or another function) and the Fourier transform does not show surprises. NMR data measured on a Bruker device, however, has the peculiar attribute that it starts \textit{before} the physical start of the signal. The origin of this lies in the way Bruker spectrometers use their digital filter, of which the details will not be described here. Direct Fourier transformation of this signal will lead to massive oscillations in the baseline of the resulting spectrum.

Expand All @@ -904,6 +895,14 @@ \subsection{Scale SW}

Using this tool opens a windows, in which you have to open (again) the current Bruker file. ssNake then finds the desired phase correction and applies it to all traces.

\subsection{Scale SW}
A function to scale the spectra width (i.e. the sweepwidth) of the current dimension. Essentially,
this can also be done in the main windows, by filling in $a * b$, with $a$ the current SW and $b$
the multiplication factor. This tool is included for MQMAS data processing, were a scaling of SW of the
indirect dimension can be used to get a true isotropic dimension (i.e. 1 ppm chemical shift
corresponds to a 1 ppm peak shift). This scaling factor for this is $Q$ and $I$ dependent, and can be selected in
this tool via an easy dropdown menu.

\subsection{Reference}
This is a collection of tools to set the current reference (0 frequency) of the current spectrum.

Expand Down Expand Up @@ -1558,7 +1557,8 @@ \subsection{CSA}
\item The MAS method: static, finite or infinite
\item The spinning speed in kHz (when MAS is on `finite').
\item The number of sidebands (when MAS is on `finite'). This value must always be larger then the
expected number of spinning sidebands. When too few sidebands are simulated, the sideband intensities will be off. Larger values take more time to simulate. For efficiency powers of two should be used.
expected number of spinning sidebands. When too few sidebands are simulated, the sideband intensities will be off.
Larger values take more time to simulate. For efficiency powers of two should be used.
\item The rotor angle in radian (when MAS is not static). Default is the magic angle:
$\text{arctan}(\sqrt{2})$
\end{itemize}
Expand All @@ -1567,7 +1567,8 @@ \subsection{CSA}
\item The three chemical shift values (depend on the definition) in units of the current axis.
\item Integral: total integral of the lineshape
\item Lorentz: amount of Lorentzian linebroading in Hz
\item Gauss: amount of Gaussian linebroading in Hz.
\item Gauss: amount of Gaussian linebroading in units of the current axis. Note that Gauss in ppm should be used to
describe chemical shift distribution.
\end{itemize}
A maximum of 10 sites can be fitted simultaneously.

Expand Down Expand Up @@ -1626,18 +1627,22 @@ \subsection{Quadrupole}
\item The rotor angle in radian (when MAS is not `static'). Default is the magic angle:
$\text{arctan}(\sqrt{2})$
\item The number of sidebands (when MAS is on `finite'). This value must always be larger then the
expected number of spinning sidebands. When too few sidebands are simulated, the sideband intensities will be off. Larger values take more time to simulate. For efficiency powers of two should be used.
expected number of spinning sidebands. When too few sidebands are simulated, the sideband intensities
will be off. Larger values take more time to simulate. For efficiency powers of two should be used.
\item The spinning speed in kHz (when MAS is on `finite').
\item The background (constant value added to all data points)
\end{itemize}
And for each site:
\begin{itemize}
\item Position: centre of the lineshape. This value is added to all $x$-values from the simulation. Scale is in Hz.
\item Position: centre of the lineshape in units of the current axis. This value is added to all
$x$-values from the simulation.
\item $C_\text{Q}$: quadrupolar coupling constant in MHz.
\item $\eta$: the asymmetry parameter
\item Integral: total integral of the lineshape
\item Lorentz: amount of Lorentzian linebroading in Hz
\item Gauss: amount of Gaussian linebroading in Hz.
\item Lorentz: amount of Lorentzian linebroading of the central transition in Hz
\item LorentzST: amount of Lorentzian linebroading of satellite transitions in Hz
\item Gauss: amount of Gaussian linebroading in units of the current axis. In ppm unit Gauss can
describe chemical shift distribution
\end{itemize}
A maximum of 10 sites can be fitted simultaneously.

Expand Down Expand Up @@ -1734,12 +1739,16 @@ \subsubsection*{Equations}


\subsection{Quadrupole+CSA}
Quadrupole + CSA fitting combines first and second order quadrupolar effects and chemical shift anisotropy. Both spinning and static spectra can be simulated. For the effects of the individual quadrupole or CSA settings, see above at their respective sections.
Quadrupole + CSA fitting combines first and second order quadrupolar effects and chemical shift anisotropy.
Both spinning and static spectra can be simulated. For the effects of the individual quadrupole or CSA
settings, see above at their respective sections.

Three additional parameters that need to be given are the three angles defining the rotation of the CSA tensor with respect to the EFG tensor ($\alpha$, $\beta$, $\gamma$).
Three additional parameters that need to be given are the three angles defining the rotation of the CSA
tensor with respect to the EFG tensor ($\alpha$, $\beta$, $\gamma$).
We order the EFG tensor values in the following way: $|V_{zz}|>|V_{xx}|>|V_{yy}|$.
We define the CSA and quadrupole angles in the same way as SIMPSON does, but we rotate via
an Z-X-Z euler rotation, while SIMPSON uses Z-Y-Z. This leads to the following conversion table, showing the ssNake angles when using $\alpha$, $\beta$, $\gamma$ in another software package:
an Z-X-Z euler rotation, while SIMPSON uses Z-Y-Z. This leads to the following conversion table, showing
the ssNake angles when using $\alpha$, $\beta$, $\gamma$ in another software package:

\begin{center}
\begin{tabular}{cc}
Expand Down Expand Up @@ -1812,7 +1821,8 @@ \subsubsection*{Equations}
\int \int \int \sin(\beta) \text{d}\alpha \text{d}\beta \text{d}\gamma \nonumber \\
& \exp \left\{ -\frac{1}{2\sigma^2} \left[ C_\text{Q,0}^2 \left(1 + \frac{\eta_0^2}{3}\right) +
C_\text{Q}^2 \left(1+ \frac{\eta^2}{3}\right) \right.\right. \\
& \left.\vphantom{\frac{a^1}{1}} \left.\vphantom{\frac{a^1}{1}} - \frac{2}{\sqrt{3}} C_\text{Q} C_\text{Q,0} \left( \sqrt{3} a_{11} + \eta_0 a_{15} + \eta \left(
& \left.\vphantom{\frac{a^1}{1}} \left.\vphantom{\frac{a^1}{1}} - \frac{2}{\sqrt{3}} C_\text{Q} C_\text{Q,0}
\left( \sqrt{3} a_{11} + \eta_0 a_{15} + \eta \left(
a_{51} + \frac{\eta_0 a_{55}}{\sqrt{3}} \right) \right) \right] \right\} \nonumber
\end{align}
with
Expand Down Expand Up @@ -1841,19 +1851,33 @@ \subsubsection*{Equations}
tests for the \texttt{numba} package itself, so regular installation of this package should be sufficient.

\subsection{MQMAS}
This fitting routine can be used to fit an MQMAS spectrum. It is a 2D fitting routine, showing a contour plot of the data. The fit result is plot on top of this using a different contour colour. As there are now two plotting dimensions, there are two Lorentz and Gauss broadening settings.
This fitting routine can be used to fit an MQMAS spectrum. It is a 2D fitting routine, showing a contour plot
of the data. The fit result is plot on top of this using a different contour colour. Related to the additional dimension
a Lorentz1 parameter is added to describe relaxation in D1. Regardin Gaussian broadening, Gauss parameter is used in
both dimensions to describe chemical shift distribution.

For simulation of MQMAS data, we need to define the quadrupolar parameters as before (see the section on fitting of quadrupole lines). In this case, no satellite signals are included. Only infinite MAS spinning speeds are supported (no spinning sidebands are calculated). Moreover, it is an ideal simulation, so no excitation profiles are taken into account.
For simulation of MQMAS data, we need to define the quadrupolar parameters as before (see the section on fitting
of quadrupole lines). In this case, no satellite signals are included. Only infinite MAS spinning speeds are
supported (no spinning sidebands are calculated). Moreover, it is an ideal simulation, so no excitation profiles
are taken into account.

Apart from the spin quantum number I, MQMAS simulation also requires selected the multiple quantum transition to be supplied. This is labelled `MQ' in the interface.
Apart from the spin quantum number I, MQMAS simulation also requires selected the multiple quantum transition
evolving in D1 to be supplied. This is labelled `MQ' in the interface.

Two additional parameters that need to be supplied are the shearing and spectral width scale factors. These are required for the processing of MQMAS data, as is also described in our advanced tutorial on MQMAS processing. By default, the shearing is set at 0, and the sw scaling at 1. This results in unsheared data, and can be used to fit experimental data that has also not been sheared.
Two additional parameters that need to be supplied are the shearing and spectral width scale factors. These allow
to model 2D MQMAS spectra processed using diferent shearing schemes. Check our advanced tutorial on MQMAS processing.
By default, the shearing is set at 0, and the sw scaling at 1. This results in unsheared data with D1 corresponding
to 3Q coherence evolution, and can be used to fit experimental data that has not been sheared.

The required sharing and sw scaling factors depend on both I and MQ. Using the 'Auto' push button in the interface, the correct values are filled in in the boxes, depending on the current I and MQ setting.
The required sharing and sw scaling factors depend on both I and MQ. Using the 'Auto' push button in the interface,
the correct values are filled in in the boxes, depending on the current I and MQ setting.


\subsection{Czjzek MQMAS}
This routine can be used to fit an MQMAS spectrum of a species that is influenced by a Czjzek distribution. The required inputs are describe in the section on 1D Czjzek fitting, and regular MQMAS fitting respectively. Note that this again means that firstly a library needs to be generated of a $C_\text{Q}$ and $\eta$ grid. The spectrum sharing and sw scaling are as described in the MQMAS section.
This routine can be used to fit an MQMAS spectrum of a species that is influenced by a Czjzek distribution. The
required inputs are describe in the section on 1D Czjzek fitting, and regular MQMAS fitting respectively. Note
that this again means that firstly a library needs to be generated of a $C_\text{Q}$ and $\eta$ grid. The spectrum
sharing and sw scaling are as described in the MQMAS section.


\subsection{External}
Expand Down Expand Up @@ -2119,7 +2143,7 @@ \subsection{Multi plot}
to add additional data (from other, or the same workspace). Things that can be changed are:
\begin{itemize}
\item Scale: linear multiplier of the signal ($y$ value)
\item Offset: gives an offset to the current data. The step size depends on the data, and is shown between
\item Offset: gives a vertical offset to the current data. The step size depends on the data, and is shown between
brackets.
\item Shift: horizontal shift in units of the current axis.
\item Dimension selector: selects the dimension and trace to be shown (as with a regular 1D plot).
Expand Down
2 changes: 1 addition & 1 deletion DocSrc/Title.tex
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
\large Wouter Franssen \& Bas van Meerten

\vspace{1cm}
\large Version 1.4b
\large Version 1.4
\vfill
\includegraphics[width=0.5\textwidth]{Images/logo.pdf}\

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ Contact

For question and suggestions mail to: [email protected]

Or use the GitHib [discussion forum](https://github.com/smeerten/ssnake/discussions)

License
-------

Expand Down
Binary file modified ReferenceManual.pdf
Binary file not shown.
Binary file modified Tutorial/Tutorial.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion Tutorial/src/Title.tex
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
\large Wouter Franssen \& Bas van Meerten

\vspace{1cm}
\large Version 1.4b
\large Version 1.4
\vfill
\includegraphics[width=0.7\textwidth]{Images/logo.pdf}\

Expand Down
2 changes: 1 addition & 1 deletion src/Czjzek.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Copyright 2016 - 2021 Bas van Meerten and Wouter Franssen
# Copyright 2016 - 2022 Bas van Meerten and Wouter Franssen

# This file is part of ssNake.
#
Expand Down
Binary file added src/Icons/CSV.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
138 changes: 138 additions & 0 deletions src/Icons/Sources/CSV.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit be85a75

Please sign in to comment.