mailThe automatic model-free protocol is functional again in the GUI!


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on January 28, 2010 - 16:38:
Hi Michael,

After all the huge infrastructural changes in tightly integrating the
GUI into relax (most of which are not visible), I finally have the
automatic model-free protocol running!  As this been a massive set of
changes, I'll recap these as a summary:

* Splitting of 'relax_gui' into many modules.
* A clean system for image and icon usage in the program with the
'path' module (and the addition of the oxygen icons).
* Shifted the building of the main GUI elements (main window, menu
bar, automatic model-free analysis frame) into self.build_*
* Spun out all of the automatic model-free code into its own module.
* GUI package file layout improvements.
* Alphabetical ordering of all functions, methods, and classes.
* Whitespace rule violations have been fixed.
* Class and function naming rule violations have been fixed.
* Shifted to using a single code base across relax (GUI and
full_analysis.py) for the automatic model-free protocol by using the
new automatic_analysis.dauvergne_protocol module.
* Conversion of module, class, function, and method comments into docstrings.
* Isolated many GUI elements into their own methods (aggregating
creation, property setting, layout, and event binding all in one
place).  This allows for most variables to be local and hidden from
the rest of the GUI, and for easy large scale GUI rearrangements.
* Elimination of most global variables.  All have to go!
* Creation of the ds.relax_gui object for storing all GUI information
within the relax data store.
* Creation of the ds.relax_gui.analyses list object for storing all
automatic analysis specific data.
* The relaxGUI save file has been replaced by the relax save state -
all data is now in the relax data store.
* A set of sync_ds() methods have been added to the main class and the
analysis classes to synchronise the data between the GUI and relax
data store.
* Added epydoc documentation to the docstrings.
* The file dialogs change the current working directory (cwd) using
chdir, so that the next dialog will open in the same place (not
complete).
* Object (variable, function, class, etc.) renaming to better reflect
what they do.
* self is never passed into functions.
* The self.analysis_frames list has been added to the main class to
allow dynamic creation and deletion of these GUI elements (as well as
easy access to the data and methods of the class).
* Variable name simplification and shifting into the local method name
space of that GUI element.
* Made the controller window fully independent (can be opened and
closed at any time, and the GUI does not freeze during execution).


I hope you were able to keep up ;)  The rest of the code base must
follow these concepts.  The following still needs to be done:

* Repair all code where FIXME is written.
* Spin out the R1, R2, and NOE code (I will work on this to give you
the infrastructure to advance the code).
* Eliminate the choice between AIC and BIC in the automatic model-free
protocol - BIC can never be used for this specific protocol.
* Variable name simplifications.
* Further isolation of each GUI element into methods or classes (and
the elimination of all __set_properties() and __do_layout() methods).
* Controller window improvements (too much memory used by the STDOUT
messages, thread issues, IO redirection issues, etc.).


I'll try to spin out the R1, R2, and NOE code from relax_gui.  I'll
leave all other code unmodified so that you can start to dig into it.

Regards,

Edward



Related Messages


Powered by MHonArc, Updated Fri Jan 29 15:21:02 2010