Source code for spike.plugins.urQRd

#!/usr/bin/env python 
# encoding: utf-8

"plugin for the urQRd denoising method"

from __future__ import print_function
import unittest

from spike.NPKData import NPKData_plugin,  as_cpx, as_float, _base_fft,\
            _base_ifft, _base_rfft, _base_irfft
from spike.Algo.urQRd import urQRd
from spike.util.signal_tools import filtering

import sys #
if sys.version_info[0] < 3:
    pass
else:
    xrange = range

[docs]def urqrd(npkd, k, orda = None, iterations = 1, axis=0): """ Apply urQRd denoising to data k is about 2 x number_of_expected_lines Manages real and complex cases. Handles the case of hypercomplex for denoising of 2D FTICR for example. """ if npkd.dim == 1: if npkd.axis1.itype == 0: # real buff = as_cpx(_base_ifft(_base_rfft(npkd.buffer))) # real case, go to analytical signal else: #complex buff = npkd.get_buffer() # complex case, makes complex urqrd_result = urQRd( buff, k, orda = orda, iterations = iterations) # performs denoising if npkd.axis1.itype == 0: # real buff = _base_irfft(_base_fft(as_float(urqrd_result))) # real case, comes back to real npkd.set_buffer(buff) else: npkd.buffer = as_float(urqrd_result) # complex case, makes real elif npkd.dim == 2: todo = npkd.test_axis(axis) if todo == 2: for i in xrange(npkd.size1): r = npkd.row(i).urqrd(k=k, orda=orda, iterations=iterations) npkd.set_row(i,r) elif todo == 1: for i in xrange(npkd.size2): r = npkd.col(i).urqrd(k=k, orda=orda, iterations=iterations) npkd.set_col(i,r) elif npkd.dim == 3: raise Exception("not implemented yet") return npkd
[docs]class urQRdTests(unittest.TestCase): pass
NPKData_plugin("urqrd", urqrd)