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