Automatic phase correction of NMR spectra

This notebook demonstrates automatic phase correction algorithms implemented for nmrglue. Two standard algorithms are implemented:

  • ACME algorithm by Chen Li et al. Journal of Magnetic Resonance 158 (2002) 164-168

  • Naive peak minima minimisation

The outputs for the two algorithms are shown below. Automatic phase correction can be used through the addition of an autops function to the proc_base set alongside the algorithm name to employ for scoring of phase. Custom algorithms can be provided via the same parameter.

In [1]:
import nmrglue as ng

dic, data = ng.bruker.read("/Users/mxf793/Data/THPNH/Extract/1d/103/")
data = ng.bruker.remove_digital_filter(dic, data)
In [2]:
%matplotlib inline
In [3]:
import matplotlib.pyplot as plt
plt.figure(figsize=(10,4))
plt.plot(data)
/usr/local/lib/python2.7/site-packages/numpy/core/numeric.py:462: ComplexWarning: Casting complex values to real discards the imaginary part
  return array(a, dtype, copy=False, order=order)
Out[3]:
[]
In [4]:
data_fft = ng.proc_base.fft(data)
plt.figure(figsize=(10,4))
plt.plot(data_fft)
Out[4]:
[]
In [5]:
data_pc_pm = ng.proc_base.autops(data_fft,'peak_minima')
Optimization terminated successfully.
         Current function value: 0.000037
         Iterations: 90
         Function evaluations: 165
In [6]:
plt.figure(figsize=(10,4))
plt.plot(data_pc_pm)
Out[6]:
[]
In [7]:
data_pc_acme = ng.proc_base.autops(data_fft,'acme')
Warning: Maximum number of function evaluations has been exceeded.
In [8]:
plt.figure(figsize=(10,4))
plt.plot(data_pc_acme)
Out[8]:
[]

Continue reading

Building a MicroPython heart rate monitor  biology

Pulse sensors have become popular due to their use in health-monitors like the Fitbit. The sensors used are cheap, simple and pretty reliable at getting a reasonable indication of heart rate in daily use. They work by sensing the change in light absorption or reflection by blood as it pulses through your arteries — a technique jauntily named photoplethysmography (PPG). The rising and falling light signal can be used to identify the pulse, and subsequently calculate heart rate. More

Discussion