GitXplorerGitXplorer
m

icoshift

public
17 stars
10 forks
3 issues

Commits

List of commits on branch master.
Unverified
6f59accffaa216b13152f154a3f3e3a12aa525bf

More fixes = broken.

committed 10 years ago
Unverified
027b0f4c128f2b6139255739d2fd91d49bae4822

Fix average2 logic

committed 10 years ago
Unverified
5ca03b548ec6f79ca6e1e91cbeefde42adb3b20d

Fix average2 logic

committed 10 years ago
Unverified
a50237322ea4c8ee46962073dd21e0bb844346dd

Fixes; average2 almost working

committed 10 years ago
Unverified
b94057f6fbfba8f5a75e2986f657cda537c8f6d8

Fixes; average2 almost working

committed 10 years ago
Unverified
a81ba05b3be7835dcdeb8c903ef57ed9c95e75d9

More code cleanup: remove redundant MATLAB ui code and fix function calling

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.