W. Trevor King [Sun, 9 May 2010 13:29:39 +0000 (09:29 -0400)]
Moved hooke.playlist -> hooke.plugin.playlist and added hooke.plugin.Builtin.
Highlights:
* Cleaner Playlist, with more consistent file format.
* New "Builtin" class for required (core) commands.
* Moved NotRecognized from hooke.driver -> hooke.curve to avoid
import-order issues. Now hooke.curve can be fully loaded before
hooke.driver.
* Moved hooke.curve.Data.notes -> hooke.curve.Data.info['note']
for better consistency with Curve and Playlist.
* Started cleaning up plugin loading into flexible functions.
W. Trevor King [Sat, 8 May 2010 22:54:58 +0000 (18:54 -0400)]
Add Hooke.commands, a list of available commands
W. Trevor King [Sat, 8 May 2010 22:46:11 +0000 (18:46 -0400)]
Ironed out kinks in plugin/driver loading and configuring.
Highlights:
* Plugin/Driver.setting_section attribute so subclasses don't need
to construct it on their own (duplicate effort, and so, error
prone).
* Fixed self.wrap = True -> self.wrap = wrap bug in
hooke.config.Setting
* No longer alter hooke.config.DEFAULT_SETTINGS in
hooke.hooke.Hooke.__init__()
* Filled in Hooke.load_plugins()/.load_drivers() stubs.
* Removed deprecated Hooke.driver_default_settings().
* Commented out a lot of the old HookeFrame code. I'll delete
it as I go through and implement its functionality.
W. Trevor King [Sat, 8 May 2010 21:04:08 +0000 (17:04 -0400)]
Rework hooke.driver and hooke.driver.tutorial along the lines of hooke.plugin.
Many more drivers to refactor, but this is good enough to get me going
again with the core code.
W. Trevor King [Sat, 8 May 2010 12:48:02 +0000 (08:48 -0400)]
Assorted changes so import hooke.plugin works ;).
Uncommenting the cut entry in PLUGIN_MODULES exposed a number of bugs
which I fixed:
* def Plugin (object): -> class Plugin (object):
* plugin initialization must occur *after* Command/Argument definition.
That way the neccessary classes are defined when we go to load the
plugin modules.
* Broken default_settings() fixed.
Also did some docstring cleanup.
W. Trevor King [Sat, 8 May 2010 11:20:02 +0000 (07:20 -0400)]
Moved hooke.libhookecurve -> hooke.curve and rewrote HookeCurve -> Curve class.
New class Data subclasses numpy.ndarray for faster data handling.
Changes:
* hooke.libhookecurve.PlotObject -> hooke.ui.gui.plot.PlotObject
* hooke.libhookecurve.Driver -> hooke.driver.Driver
* Raise new exception hooke.driver.NotRecognized if no driver
matches (vs. old print message and return false).
* Curve stores data in a list (vs. old dict). Often data order
is important. The names that used to key the data dict can
now go into Data.info['name'].
* HookeCurve.fits -> Curve.info['fits']
* HookeCurve.plots is GUI data, but if the UI needs it, it should be
stored in Curve.info['plots']
* Since Curve.data is an array,
HookeCurve.add_data() -> Curve.data.append(),
HookeCurve.delete_data() -> Curve.data.remove(), and
HookeCurve.set_data() -> Curve.data[i] = data
W. Trevor King [Sat, 8 May 2010 10:39:24 +0000 (06:39 -0400)]
Converted hooke.plugin.cut to new Plugin architecture.
W. Trevor King [Sat, 8 May 2010 10:37:08 +0000 (06:37 -0400)]
Use .type.upper() (vs. old .name.upper()) for Argument.metavar.
This conveys more information to the user
output FILE
compared to the same word twice:
output OUTPUT
Also rearranged some options.
W. Trevor King [Sat, 8 May 2010 04:07:11 +0000 (00:07 -0400)]
Moved Argument and other class definitions after Command
W. Trevor King [Sat, 8 May 2010 04:03:39 +0000 (00:03 -0400)]
Added Command and related classes to hooke.plugin
Based on my libbe.commands.base work for Bugs Everywhere.
W. Trevor King [Sat, 8 May 2010 02:26:56 +0000 (22:26 -0400)]
Added hooke.plugin.Plugin.name attribute.
Also:
* Reordered Plugin methods from first called -> last called.
* Removed old Commands class.
W. Trevor King [Fri, 7 May 2010 16:13:39 +0000 (12:13 -0400)]
Added tip-to-root/root-to-tip flexibility to hooke.util.graph
The old implementation only did tip-to-root. The new default is
root-to-tip.
W. Trevor King [Thu, 6 May 2010 12:37:52 +0000 (08:37 -0400)]
Added inclusion logic to hooke.plugin
W. Trevor King [Thu, 6 May 2010 12:37:17 +0000 (08:37 -0400)]
Added the graph module I'd developed for Bugs-Everywhere
W. Trevor King [Thu, 6 May 2010 11:27:59 +0000 (07:27 -0400)]
Beginning to rewrite Hooke to decouple from GUI.
This commit:
* Started documenting with reStructuredText (for later use by Sphinx)
* Added hooke.config module to handle configure files (via ConfigParser)
* Added hooke.compat module to hold compatibility code
(e.g. workarounds to allow Hooke to work on older Python versions).
* Added config input/output to hooke.hooke.Hooke.
* Stubbed out driver/plugin initialization in Hooke
W. Trevor King [Thu, 6 May 2010 11:25:12 +0000 (07:25 -0400)]
Added Sphinx documentation framework
W. Trevor King [Wed, 5 May 2010 15:33:22 +0000 (11:33 -0400)]
Convert from DOS to UNIX line endings.
This keeps the project consistent, since all my new files will have
UNIX line endings. If people use tools that can't handle UNIX line
endings, we can always convert back later:
for f in $(find . | grep -v '\.git'); do unix2dos "$f"; done
W. Trevor King [Tue, 4 May 2010 15:47:17 +0000 (11:47 -0400)]
Really hideous merge of Rolf Schmidt's code.
It's hard to merge code when you're not sure which version is more
recent, what the rationale behind the changes are, or very much about
how the code is supposed to work at all ;). I think I caught most of
the important ideas from both sides, and now I'm going to go back
through and clean things up.
W. Trevor King [Tue, 4 May 2010 07:23:44 +0000 (03:23 -0400)]
Oops, fix libinput import in hooke.plugin.review. Missed it in the merge
W. Trevor King [Tue, 4 May 2010 07:16:05 +0000 (03:16 -0400)]
Removed busy loop from hooke/plugin/flatfilts.py.
Perhaps it was an attempt to pause briefly? If so, time.sleep() would
be better. It wasn't much of a pause though:
$ time python -c ''
real 0m0.111s
user 0m0.089s
sys 0m0.020s
$ time python -c 'for i in range(1000): k=0'
real 0m0.115s
user 0m0.090s
sys 0m0.024s
W. Trevor King [Tue, 4 May 2010 07:09:59 +0000 (03:09 -0400)]
Merged with trunk
fabrizio.benedetti.82 [Tue, 11 May 2010 09:23:48 +0000 (09:23 +0000)]
WLC and FJC output are now with 2 decimal precision. Added a comment on autopeak on how to use the 'manual' option
fabrizio.benedetti.82 [Mon, 10 May 2010 11:09:31 +0000 (11:09 +0000)]
Added the possibility to manually choose the peaks in 'autopeak' with the option 'manual'.
fabrizio.benedetti.82 [Fri, 7 May 2010 09:07:54 +0000 (09:07 +0000)]
Correct number of digits of many output, improvement in the utility 'cut' and 'txt'.
albertogomcas [Thu, 6 May 2010 09:07:37 +0000 (09:07 +0000)]
Fixes bad call to wlc/fjc fit
W. Trevor King [Tue, 4 May 2010 06:41:19 +0000 (02:41 -0400)]
Added modular directory structure.
Also some import and other cleanups to convince myself that the
reorganization was mostly working.
albertogomcas [Wed, 24 Mar 2010 15:41:09 +0000 (15:41 +0000)]
fit.py : extended FJC fit (models water bridges of PEG in water solutions)
fit quality parameter, ratio distance(fit-data)/std(flat_area)
multifit.py : WLC and eFJC as default fits
saves quality of fits
albertogomcas [Wed, 17 Mar 2010 08:58:25 +0000 (08:58 +0000)]
multifit.py : slope can be measured from data or form manual points
tried to scale better the YNarrow
albertogomcas [Wed, 17 Mar 2010 05:09:10 +0000 (05:09 +0000)]
multifit.py : slope can be measured manually
generalvclamp.py : change color of slope line to black
albertogomcas [Tue, 16 Mar 2010 08:39:37 +0000 (08:39 +0000)]
mfp3d.py : the retraction speed is extracted from Velocity, not RetractVelocity
albertogomcas [Mon, 15 Mar 2010 05:56:37 +0000 (05:56 +0000)]
multifit.py : some graphical niceties
albertogomcas [Fri, 12 Mar 2010 06:23:26 +0000 (06:23 +0000)]
multifit.py : proper formatting of help section
albertogomcas [Fri, 12 Mar 2010 03:08:59 +0000 (03:08 +0000)]
multifit.py : Fixed a wrong named var
libhook.py : Deleted deprecated message (irritates me :D)
albertogomcas [Thu, 11 Mar 2010 12:02:18 +0000 (12:02 +0000)]
multifit.py : new plugin, mouse input based
generalvclamp.py : separated code from do_slope into _slope allowing use in other funtions
hooke.conf: activate multifit plugin by default
albertogomcas [Wed, 10 Mar 2010 09:03:04 +0000 (09:03 +0000)]
review.py: fixed crash when a file is not valid
albertogomcas [Wed, 10 Mar 2010 05:58:50 +0000 (05:58 +0000)]
review.py: avoided crash when displaying final stats
hooke.conf: deactivate hdf5 by default, activate native mfp3d
mfp3d.py: adapted driver from Hooke GUI to work in this version
procplots.py: centerzero only uses last chunk of retract
FMjoin.py: utility script to put together all files from IgorPro force maps
fabrizio.benedetti.82 [Tue, 9 Mar 2010 16:44:29 +0000 (16:44 +0000)]
Corrected a bug for the command txt when it is invoked with an unvalid plot to export.
fabrizio.benedetti.82 [Fri, 5 Mar 2010 11:44:09 +0000 (11:44 +0000)]
A correction on autopeak.py due to the add of curvetools.py (a self. was missing)
fabrizio.benedetti.82 [Mon, 1 Mar 2010 13:50:51 +0000 (13:50 +0000)]
Corrected some bugs in the scale of graphs.
albertogomcas [Thu, 18 Feb 2010 05:38:56 +0000 (05:38 +0000)]
Fixed some bugs
fabrizio.benedetti.82 [Thu, 11 Feb 2010 13:20:54 +0000 (13:20 +0000)]
Scale of axis are now in engineering format.
devicerandom [Wed, 10 Feb 2010 21:04:56 +0000 (21:04 +0000)]
(generalvclamp.py) Error checking in flatten plot manipulator - fixes issue 31
albertogomcas [Fri, 5 Feb 2010 05:56:15 +0000 (05:56 +0000)]
review.py plugin allows to review curves in groups of ten (à la Igor Pro), select some of them and save to a separate directory
fabrizio.benedetti.82 [Wed, 27 Jan 2010 08:02:51 +0000 (08:02 +0000)]
Added two plugin: jumpstat.py and multidistance.py. Change to the function has_peaks. Moved some basics routines in the new file curvetools.py.
albertogomcas [Wed, 27 Jan 2010 03:52:42 +0000 (03:52 +0000)]
Command 'note' saves notes into 'hookedir/output' directory (a bit cleaner) and if the note file exists adds instead of overwriting the file.
albertogomcas [Wed, 27 Jan 2010 03:01:14 +0000 (03:01 +0000)]
New plotmanip 'centerzero' shifts the curves to 0 force
albertogomcas [Fri, 22 Jan 2010 07:14:22 +0000 (07:14 +0000)]
Support for HDF5 files created with Igor Pro (see wiki for how to create the HDF5 file)
albertogomcas [Fri, 22 Jan 2010 07:10:10 +0000 (07:10 +0000)]
Fix: genlist can now import files without extension
W. Trevor King [Thu, 17 Dec 2009 21:09:51 +0000 (16:09 -0500)]
Added Alberto's mailing list comments about lib*.py to their docstrings.
From the thread:
http://groups.google.com/group/hookesoftware/browse_thread/thread/
7b893284cc317ea6#
W. Trevor King [Thu, 17 Dec 2009 20:35:25 +0000 (15:35 -0500)]
Added config_dir to libhooke.HookeConfig to match new dir structure
W. Trevor King [Thu, 17 Dec 2009 20:02:55 +0000 (15:02 -0500)]
Added USAGE file based on code.google.com/p/hooke/wiki/BasicAnalysis
W. Trevor King [Thu, 17 Dec 2009 19:43:34 +0000 (14:43 -0500)]
All classes should at least subclass 'object' to avoid being old-style classes.
See, for example
http://www.python.org/doc/newstyle/
http://www.python.org/doc/2.5.2/ref/node33.html
W. Trevor King [Thu, 17 Dec 2009 19:32:21 +0000 (14:32 -0500)]
Removed sha-bang from non-executable python files + whitespace cleanups.
Whitespace cleanups mostly involved removing trailing whitespace.
W. Trevor King [Thu, 17 Dec 2009 19:19:40 +0000 (14:19 -0500)]
Added README and reorganized directory structure (breaks code)
devicerandom [Thu, 19 Nov 2009 19:10:11 +0000 (19:10 +0000)]
(fit.py) Quick kludgy patch for crash of issue 0028
devicerandom [Thu, 19 Nov 2009 19:01:28 +0000 (19:01 +0000)]
(fit.py) Fixed -maybe- FJC plotting
fabrizio.benedetti.82 [Thu, 19 Nov 2009 11:46:40 +0000 (11:46 +0000)]
(autopeak.py) Corrected a bug introduced in r208
fabrizio.benedetti.82 [Wed, 11 Nov 2009 15:08:17 +0000 (15:08 +0000)]
(autopeak.py) Repeatedly asks for correct input.
fabrizio.benedetti.82 [Tue, 3 Nov 2009 15:44:12 +0000 (15:44 +0000)]
Added multidistance plugin.
devicerandom [Sun, 1 Nov 2009 17:39:28 +0000 (17:39 +0000)]
(autopeak.py) fixed autopeak documentation
devicerandom [Sun, 1 Nov 2009 17:20:21 +0000 (17:20 +0000)]
(autopeak.py) autopeak can now use FJC or WLC
devicerandom [Sun, 1 Nov 2009 16:51:27 +0000 (16:51 +0000)]
(fit.py) wording output is consistent with fit function used
devicerandom [Sun, 1 Nov 2009 16:42:42 +0000 (16:42 +0000)]
(fit.py) WLC and FJC now aliases of fit command
devicerandom [Sat, 31 Oct 2009 22:23:58 +0000 (22:23 +0000)]
Got FJC drawing right.
devicerandom [Sat, 31 Oct 2009 22:09:24 +0000 (22:09 +0000)]
Better plotting of FJC but not there yet
devicerandom [Sat, 31 Oct 2009 21:38:54 +0000 (21:38 +0000)]
First steps towards FJC support. New variable fit_function for flexible switching, still errors in drawing, inconsistencies etc. but the numbers in output seem sensible
devicerandom [Thu, 29 Oct 2009 14:57:30 +0000 (14:57 +0000)]
Hopefully reverted to r193 after mbrucale's incident
marcobrucale [Thu, 29 Oct 2009 14:43:09 +0000 (14:43 +0000)]
marcobrucale [Thu, 29 Oct 2009 14:41:17 +0000 (14:41 +0000)]
devicerandom [Thu, 8 Oct 2009 18:57:56 +0000 (18:57 +0000)]
using numpy.mean to avoid warnings; still not perfect though
devicerandom [Thu, 8 Oct 2009 18:45:14 +0000 (18:45 +0000)]
correct parsing of args of peaks command; Fixes issue 0017
devicerandom [Fri, 28 Aug 2009 12:12:09 +0000 (12:12 +0000)]
added cut.py plugin (by Fabrizio Benedetti, EPFL, Lausanne)
devicerandom [Mon, 10 Aug 2009 22:18:17 +0000 (22:18 +0000)]
deleted spurious empty dir from tree
illysam [Fri, 7 Aug 2009 13:21:48 +0000 (13:21 +0000)]
fixed: plot does not display on Windows at program launch (troubleshooting issue 1)
fixed: driver tries to open a directory (issue 15)
illysam [Fri, 31 Jul 2009 19:39:18 +0000 (19:39 +0000)]
fixed counter issue
illysam [Wed, 29 Jul 2009 17:19:47 +0000 (17:19 +0000)]
Fixed MFP1D export from Igor 4 (wavenote was not complete)
illysam [Wed, 29 Jul 2009 13:34:33 +0000 (13:34 +0000)]
pancaldi.paolo [Fri, 24 Jul 2009 18:24:38 +0000 (18:24 +0000)]
adding a folder creation with the good plot files inside
devicerandom [Fri, 24 Jul 2009 14:58:44 +0000 (14:58 +0000)]
(hooke_cli.py) text export, now with measure units. Fixes issue 0014
devicerandom [Fri, 24 Jul 2009 14:35:36 +0000 (14:35 +0000)]
(mfp1dexport.py) Fixed k determination, at least until we find news on the mysteries of mfp export
devicerandom [Fri, 24 Jul 2009 14:12:19 +0000 (14:12 +0000)]
(mfp1dexport.py) Fixed trivial bug in K determination ; fixed optimistic __init__ leading to random crashes
devicerandom [Fri, 3 Jul 2009 17:55:00 +0000 (17:55 +0000)]
(hooke_cli.py) fixed export - bug 0011
pancaldi.paolo [Wed, 1 Jul 2009 23:10:06 +0000 (23:10 +0000)]
pCluster ver.1 ... working! oneClick style. Updated with automatic filter calculation.
pancaldi.paolo [Wed, 1 Jul 2009 23:04:44 +0000 (23:04 +0000)]
Updated with "debug" option and some explanation.
Maybe the last update!
devicerandom [Mon, 29 Jun 2009 20:21:41 +0000 (20:21 +0000)]
(mfp_igor_scripts) Scripts committed
devicerandom [Mon, 29 Jun 2009 20:16:20 +0000 (20:16 +0000)]
(mfp1dexport.py , mfp_igor_scripts) Initial indirect support for the MFP1D Asylum microscope files, via exporting scripts
pancaldi.paolo [Fri, 26 Jun 2009 14:45:09 +0000 (14:45 +0000)]
pcluster improved with density estimation and second PCA. next step will be to clean everything in order to use pCluster in oneClick style!
pancaldi.paolo [Fri, 26 Jun 2009 14:21:04 +0000 (14:21 +0000)]
updated with density limit
marcobrucale [Mon, 22 Jun 2009 10:52:13 +0000 (10:52 +0000)]
Just added a new config variable, "force_multiplier", which unsurprisingly muliplies each Y on an SMFS curve. Default value is 1. This is sometimes useful for calibration.
devicerandom [Tue, 26 May 2009 16:32:47 +0000 (16:32 +0000)]
(autopeak.py, etc.) added noflatten option to autopeak, plus small stuff here and there
devicerandom [Wed, 20 May 2009 11:35:11 +0000 (11:35 +0000)]
(mcs.py) lower- and upper- case both working
devicerandom [Thu, 7 May 2009 11:25:23 +0000 (11:25 +0000)]
(mcs.py , generaltccd.py) added first version of TCCD driver and utilities
marcobrucale [Thu, 30 Apr 2009 10:21:49 +0000 (10:21 +0000)]
Added a small feature in the 'autopeak' command. If the variable 'baseline_clicks' is set to -1, no baseline is calculated. Rather, the ordinate of the contact point (either hand-picked or automatically found depending on other autopeak arguments) is taken as the zero force point.
pancaldi.paolo [Fri, 24 Apr 2009 14:00:42 +0000 (14:00 +0000)]
add doublepca and triplepca functions
devicerandom [Fri, 20 Mar 2009 16:26:38 +0000 (16:26 +0000)]
(autopeak.py, flatfilts.py, hooke_cli.py) various error checkings
pancaldi.paolo [Fri, 13 Mar 2009 01:29:23 +0000 (01:29 +0000)]
PCA improved: it takes columns and multiplier factor from pca_config.txt or from second argument, and save a png file.
new MULTIPCA function: multiply selected column for values 1-100 and save all plots.
devicerandom [Wed, 11 Mar 2009 16:04:39 +0000 (16:04 +0000)]
(tutorial.py) updated plugin tutorial
pancaldi.paolo [Wed, 11 Mar 2009 14:31:34 +0000 (14:31 +0000)]
nothing of important (new function for building a file's coordinate)
devicerandom [Mon, 9 Mar 2009 19:37:43 +0000 (19:37 +0000)]
(pcluster.py) again, dirty stuff for testing
pancaldi.paolo [Mon, 9 Mar 2009 15:33:21 +0000 (15:33 +0000)]
add file configuration in order to choice the pca's columns