Orignially by Rolf Schmidt <rschmidt@alcor.concordia.ca>.
Run the GUI with:
$ ./bin/hk.py --ui gui
Alternatively, select gui in your config file (see Configuring Hooke):
[user interfaces]
command line = False
gui = True
Starting Hooke’s GUI for the first time, you will see the central plot area with the current plot surrounded by the following windows (the F* key toggles the visibility of the panel):
Initially, the window will be rather small in order to work with small screen resolutions. Adjust the size and position to your liking.
Underneath the menus at thte top of the window there is a navigation toolbar to switch from one curve to another (next/previous).
The plot area displays the current curve. You can select the data column to use as the x axis using the dropdown menu in the plot navigation bar (under the plot, not to be confused with the navigation bar under the menus). You can select the columns to plot by clicking the y column(s) button and checking interesting columns. We suggest you stick to columns with a single unit, and not try and dispay, for example, both meters and newtons on the same y axis.
You can move about the plot using its navigation toolbar. See the Matplotlib manual for details.
You can measure distances and forces directly in the plot. If you want to know the coordinates of a single point, left click on it. The index and coordinates of the nearest data point will be displayed in the status bar along with the x and y coordinates of your click.
To find the distance between two points, just issue the command delta. You will be asked to click two points. When you click a point, a blue dot should appear. When you click the second point, the distances will appear in the output panel. Hooke automatically adjusts the position of the clicked point to the nearest point in the graph, so you will be always measuring distances and forces between points in the graph.
Todo
Implement blue dots and click handler.
Here you can navigate your file system and double click on a saved playlist to open it. You can change the initial folder by modifying workdir in the preferences (core plugin).
Todo
Implement folders panel.
You can manage several playlists in this window. As the GUI is rather flexible, it is possible to display the curves from different playlists side by side to compare them (relatively handy when comparing different fit parameters). You can double-click a file in the playlist to display it in the plot area. Deleting entire playlists or single files can be accomplished by right-clicking and selecting Delete.
Todo
Do we need side-by-side comparison? How did this work in the old GUI?
All available commands are listed under their corresponding plugin. In order to see a plugin and its commands, you have to edit hooke.conf and enable th plugin in the plugins section. Selecting a plugin or command will display the associated properties in the Properties window. You can edit the properties and click Execute to run the selected command. If you do not need to modify any properties, you can also double-click a command to run it.
Mousing over a plugin or command in the Commands window will display the associated help in a tooltip. The help for the plugin should give a general description of the plugin. The help for a command should describe the properties available for this command and suggest reasonable default values if possible. Feel free to point out missing help content.
The properties for the command selected in the Commands window are displayed here. Edit the properties to your satisfaction (some need to be confirmed by hitting enter, this seems to be a problem in wxPropertyGrid) and click the Execute button to run the selected command. Floating point values are limited to a certain number of decimals (limitation of wxPropertyGrid?) so be careful when using floating point values.
Todo
Document new, non-PropGrid propertyeditor.
The Output window serves as a log where pertinent information is displayed. The output is generally the same as what you would see if you were running the commands from the command line.
A note can be added to every curve: enter your note and click Update note. With the note filter playlist command (playlist plugin) you can copy all the curves with a note into a new playlist.
Read Hacking for an overview of how Hooke works internally and Configuring Hooke for more information about configuring Hooke.
Ignore the text on the Welcome tab. This tab is more like a proof of principle and will contain a short how-to in the future (once the howto is written).
Hooke’s GUI will remember the size and position of the main window (stored in the config file, see Configuring Hooke). You can arrange the panels any which way you like and save this arrangement as a perspective.
Hooke will always start with the last used perspective and you can switch from one perspective to another by selecting a perspective from the perspectives menu. After deleting a perspective, the radio indicator in the perspectives menu disappears (known bug in wxPython). This is only a visual problem and does not affect anything else.
In order to pan the plot, zoom in and out and export the plot of your force curves, use the plot toolbar under the plot. A more detailed description is available on the Matplotlib website
Todo
Implement overlay.
Todo
Implement autopeak. Bring in autopeak tutorial from the wiki?
Please follow the steps in the Tutorial. Instead of typing in the command at the command-line, select it in the Commands window, set your properties in the Properties window and click on Execute back in the Commands window.
The autopeak tutorial is also applicable. You need to setup the type of fit you want to use: in the Properties of the autopeak command (autopeak plugin) select WLC, FJC or FJC_PEG from the dropdown list for the polymer model argument of polymer fit.
Todo
Update curve review tutorial section.
When automatic routines are not good enough to filter your data, use review command to cycle through your playlist presenting ten curves in the same graph. You can then enter the numbers of the interesting curves and automatically save a copy of them into another directory.