From ce10f89813e727096f58a5b354afd69110dbda2a Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sat, 7 Aug 2010 12:27:44 -0400 Subject: [PATCH] Removed cruft from procplots & vclamp plugins whose functionality has been replaced. --- hooke/plugin/procplots.py | 218 -------------------------------------- hooke/plugin/vclamp.py | 19 ---- 2 files changed, 237 deletions(-) diff --git a/hooke/plugin/procplots.py b/hooke/plugin/procplots.py index f56010a..a2947dd 100644 --- a/hooke/plugin/procplots.py +++ b/hooke/plugin/procplots.py @@ -24,129 +24,6 @@ import lib.prettyformat class procplotsCommands: - def _plug_init(self): - pass - - def do_convplot(self): - ''' - CONVPLOT - (procplots.py) - Plots the convolution data of the currently displayed force curve retraction. - ------------ - Syntax: - convplot - ''' - - #need to convert the string that contains the list into a list - column = self.GetIntFromConfig('procplots', 'convplot', 'column') - convolution = eval(self.GetStringFromConfig('procplots', 'convplot', 'convolution')) - row = self.GetIntFromConfig('procplots', 'convplot', 'row') - whatset_str = self.GetStringFromConfig('procplots', 'convplot', 'whatset') - whatset = [] - if whatset_str == 'extension': - whatset = [lh.EXTENSION] - if whatset_str == 'retraction': - whatset = [lh.RETRACTION] - if whatset_str == 'both': - whatset = [lh.EXTENSION, lh.RETRACTION] - - #TODO: add option to keep previous derivplot - plot = self.GetDisplayedPlotCorrected() - - for index in whatset: - conv_curve = copy.deepcopy(plot.curves[index]) - #Calculate convolution - conv_curve.y = conv_dx(plot.curves[index].y, convolution) - - conv_curve.destination.column = column - conv_curve.destination.row = row - conv_curve.title = 'Convolution' - plot.curves.append(conv_curve) - - #warn if no flattening has been done. - if not self.AppliesPlotmanipulator('flatten'): - self.AppendToOutput('Flatten manipulator was not applied. Processing was done without flattening.') - self.AppendToOutput('Enable the flatten plotmanipulator for better results.') - - self.UpdatePlot(plot) - - def do_derivplot(self): - ''' - Plots the discrete differentiation of the currently displayed force curve. - ''' - column = self.GetIntFromConfig('procplots', 'derivplot', 'column') - row = self.GetIntFromConfig('procplots', 'derivplot', 'row') - #TODO: what os select good for? - select = self.GetBoolFromConfig('procplots', 'derivplot', 'select') - whatset_str = self.GetStringFromConfig('procplots', 'derivplot', 'whatset') - whatset = [] - if whatset_str == 'extension': - whatset = [lh.EXTENSION] - if whatset_str == 'retraction': - whatset = [lh.RETRACTION] - if whatset_str == 'both': - whatset = [lh.EXTENSION, lh.RETRACTION] - - #TODO: add option to keep previous derivplot - plot = self.GetDisplayedPlotCorrected() - - for index in whatset: - deriv_curve = copy.deepcopy(plot.curves[index]) - deriv_curve.x = deriv_curve.x[:-1] - deriv_curve.y = diff(deriv_curve.y).tolist() - - deriv_curve.destination.column = column - deriv_curve.destination.row = row - deriv_curve.title = 'Discrete differentiation' - deriv_curve.units.y += ' ' + deriv_curve.units.x + '-1' - plot.curves.append(deriv_curve) - - self.UpdatePlot(plot) - - def do_replot(self): - ''' - Replots the current force curve from scratch eliminating any secondary plots. - ''' - self.UpdatePlot() - - def do_subtplot(self): - ''' - SUBTPLOT - (procplots.py plugin) - Plots the difference between retraction and extension of the currently displayed curve - ------- - Syntax: subtplot - ''' - - #TODO: add option to keep previous subtplot - plot = self.GetDisplayedPlotCorrected() - - extension = plot.curves[lh.EXTENSION] - retraction = plot.curves[lh.RETRACTION] - - extension, retraction = self.subtract_curves(extension, retraction) - - self.UpdatePlot(plot) - - def subtract_curves(self, minuend, subtrahend): - ''' - calculates: difference = minuend - subtrahend - (usually: extension - retraction - ''' - - #we want the same number of points for minuend and subtrahend - #TODO: is this not already done when normalizing in the driver? - maxpoints_tot = min(len(minuend.x), len(subtrahend.x)) - minuend.x = minuend.x[0:maxpoints_tot] - minuend.y = minuend.y[0:maxpoints_tot] - subtrahend.x = subtrahend.x[0:maxpoints_tot] - subtrahend.y = subtrahend.y[0:maxpoints_tot] - - subtrahend.y = [y_subtrahend - y_minuend for y_subtrahend, y_minuend in zip(subtrahend.y, minuend.y)] - minuend.y = [0] * len(minuend.x) - - return minuend, subtrahend - #-----PLOT MANIPULATORS def plotmanip_median(self, plot, current, customvalue=False): ''' @@ -191,98 +68,3 @@ class procplotsCommands: plot.curves[lh.RETRACTION].x = [(zpoint - deflpoint) for zpoint,deflpoint in zip(plot.curves[lh.RETRACTION].x, defl_ret)] return plot - - def plotmanip_centerzero(self, plot, current, customvalue=False): - ''' - Centers the force curve so the median (the free level) corresponds to 0 N - ''' - #use only for force spectroscopy experiments! - if current.driver.experiment != 'smfs': - return plot - - if not customvalue: - customvalue = self.GetBoolFromConfig('procplots', 'centerzero') - if not customvalue: - return plot - - levelapp = float(median(plot.curves[lh.EXTENSION].y)) - levelret = float(median(plot.curves[lh.RETRACTION].y)) - - level = (levelapp + levelret)/2 - - plot.curves[lh.EXTENSION].y = [i-level for i in plot.curves[lh.EXTENSION].y] - plot.curves[lh.RETRACTION].y = [i-level for i in plot.curves[lh.RETRACTION].y] - - return plot - -#FFT--------------------------- - def fft_plot(self, curve, boundaries=[0, -1]): - ''' - calculates the fast Fourier transform for the selected vector in the plot - ''' - - fftlen = len(curve.y[boundaries[0]:boundaries[1]]) / 2 #need just 1/2 of length - curve.x = arange(1, fftlen).tolist() - - try: - curve.y = abs(fft(curve.y[boundaries[0]:boundaries[1]])[1:fftlen]).tolist() - except TypeError: #we take care of newer NumPy (1.0.x) - curve.y = abs(fft.fft(curve.y[boundaries[0]:boundaries[1]])[1:fftlen]).tolist() - - return curve - - def do_fft(self): - ''' - FFT - (procplots.py plugin) - Plots the fast Fourier transform of the selected plot - --- - Syntax: fft [top,bottom] [select] [0,1...] - - By default, fft performs the Fourier transform on all the 0-th data set on the - top plot. - - [top, bottom]: which plot is the data set to fft (default: top) - [select]: you pick up two points on the plot and fft only the segment between - [0,1,...]: which data set on the selected plot you want to fft (default: 0) - ''' - - column = self.GetIntFromConfig('procplots', 'fft', 'column') - row = self.GetIntFromConfig('procplots', 'fft', 'row') - select = self.GetBoolFromConfig('procplots', 'fft', 'select') - whatset_str = self.GetStringFromConfig('procplots', 'fft', 'whatset') - whatset = [] - if whatset_str == 'extension': - whatset = [lh.EXTENSION] - if whatset_str == 'retraction': - whatset = [lh.RETRACTION] - if whatset_str == 'both': - whatset = [lh.EXTENSION, lh.RETRACTION] - - if select: - points = self._measure_N_points(N=2, message='Please select a region by clicking on the start and the end point.', whatset=lh.RETRACTION) - boundaries = [points[0].index, points[1].index] - boundaries.sort() - else: - boundaries = [0, -1] - - #TODO: add option to keep previous FFT - plot = self.GetDisplayedPlotCorrected() - - for index in whatset: - fft_curve = self.fft_plot(copy.deepcopy(plot.curves[index]), boundaries) - - fft_curve.decimals.x = 3 - fft_curve.decimals.y = 0 - fft_curve.destination.column = column - fft_curve.destination.row = row - fft_curve.label = plot.curves[index].label - fft_curve.legend = True - fft_curve.prefix.x = lib.prettyformat.get_prefix(max(fft_curve.x)) - fft_curve.prefix.y = lib.prettyformat.get_prefix(max(fft_curve.y)) - fft_curve.title = 'FFT' - fft_curve.units.x = 'Hz' - fft_curve.units.y = 'power' - plot.curves.append(fft_curve) - - self.UpdatePlot(plot) diff --git a/hooke/plugin/vclamp.py b/hooke/plugin/vclamp.py index 1201159..21f078a 100644 --- a/hooke/plugin/vclamp.py +++ b/hooke/plugin/vclamp.py @@ -505,25 +505,6 @@ an approach/retract force curve, `0` selects the approaching curve and class generalvclampCommands(object): - def do_subtplot(self, args): - ''' - SUBTPLOT - (procplots.py plugin) - Plots the difference between ret and ext current curve - ------- - Syntax: subtplot - ''' - #FIXME: sub_filter and sub_order must be args - - if len(self.plots[0].vectors) != 2: - print 'This command only works on a curve with two different plots.' - pass - - outplot=self.subtract_curves(sub_order=1) - - plot_graph=self.list_of_events['plot_graph'] - wx.PostEvent(self.frame,plot_graph(plots=[outplot])) - def _plug_init(self): self.basecurrent=None self.basepoints=None -- 2.26.2