GitXplorerGitXplorer
m

icoshift

public
17 stars
10 forks
3 issues

Commits

List of commits on branch master.
Unverified
1b820a0f6124d9637695ce234f56e1a54f05a379

Update to README.md

committed 10 years ago
Unverified
f3e9df26a07cd724fe6765613b63fb3891570bc0

v1.0 feature-parity with MATLAB implementation

committed 10 years ago
Unverified
3037a862ef53f67653a755f376a3364e77495d85

Fixes for scale; best (b) fast(f) and numberic maximum shift

committed 10 years ago
Unverified
cbcb8beecfe6b3bb3c60f5f708318e219ac0b7cd

Fix fill with np.nan

committed 10 years ago
Unverified
5098341dc6a45b43355fcc111b333f6f2efe0ed7

Fix slice error on certain intervals

committed 10 years ago
Unverified
eddadd444064417e898e0219eab3125887998d33

Fix to the sparse matrix multiplication to match MATLAB implementation

committed 10 years ago

README

The README file for this repository.

icoshift

A versatile tool for the rapid alignment of 1D NMR spectra

This package is a Python implementation of the icoshift algorithm as described by Francesco Savorani and Giorgio Tomasi. It uses correlation shifting of spectral intervals and employs an FFT engine that aligns all spectra simultaneously.

The Matlab algorithm is demonstrated to be faster than similar methods found in the literature making full-resolution alignment of large datasets feasible and thus avoiding down-sampling steps such as binning. The algorithm uses missing values as a filling alternative in order to avoid spectral artifacts at the segment boundaries.

It has been converted to Python using SMOP followed by hand re-coding using test datasets to check output at various steps. Better (and more complicated) test cases to come.

The interface remains identical to the Matlab version at present.

Here Be Dragons

Conversion from one programming language to another is not straightforward. Particularly problematic from MATLAB to Python is the change from zero-based to one-based indexing. The implementation has been fixed to work and produce comparable output for all inputs, however issues with some datasets or settings may remain. Full tests to confirm equivalence to the MATLAB algorithm to follow.

But it works.

Thanks

Thanks to Francesco Savorani and Giorgio Tomasi for the original neat and well documented algorithm.