Hi Michael, You may have noticed a lot of working going into the gui_testing branch which has now been merged back into the main 1.3 line. This code is now highly stable on GNU/Linux (there is still Mac OS X weirdness I am working on, and I still have to test it fully on MS Windows). If you would like to have a look at this new design and comment on it, it would be welcome. Give it a go on your test data, or the test suite data, to see how it now operates. Also have a look at the user function menu, you will see all of the relax user functions for final data visualisation are there. This allows the user to have more control. Note also how the user will have more direct access to the full power of the user functions during the auto-analyses. This removes a lot of the constraints from the previous design, and the users now have the fully flexibility that the prompt and scripting based interfaces provide them. For example with the spin viewer window, the user can simply right click on a spin to deselect it. The branch merger also introduces a new level of flexibility for the auto-analyses available in the prompt/script UIs. This is a huge benefit as RNA/DNA and organic molecule people can now use the dauvergne_protocol model-free auto-analysis - you now pass in a data pipe filled with all the required data and spins. It also introduces the pymol.macro_apply(), pymol.macro_write(), and pymol.macro_run() user functions. These replace the macros that were previously hard-coded into the GUI and add all of the flexibility that the equivalent molmol user functions give. Creating these was simple as I just needed to replace two methods (for issuing PyMOL commands) in the molmol code and it just worked! In this code merger, you will also see that I have build a very powerful and simple wizard infrastructure which can be used to string user functions together. Would you like to try, with your final OMP results, to implement the wizard for BMRB export? This would need a menu entry such as 'File->Export to BMRB', and the 'GUI wizard pages' for a few additional user functions need to be created. This is simple enough if you look at some of the code in gui/user_functions/. Debugging and finding out which user functions are needed is easy as the bmrb.write user function will complain with RelaxErrors if something is missing. So for example a few needed user functions would be: bmrb.citation bmrb.script bmrb.software bmrb.software_select bmrb.thiol_state bmrb.write relax_data.temp_calibration relax_data.temp_control This sounds like a lot, but it is relatively simple as I have abstracted most of the hard work into the wizard back-end. The way to do this would be to first implement them as stand alone user functions in the 'User functions' menu, and then only at the end to string them together into the wizard. For the second part, have a look at the peak_wizard() method in gui/analyses/auto_noe.py to see how to create a wizard. This example is more advanced as it has a non-linear operation so that if you choose replicated spectra as the error measurement source, it will go to a different page than that if baseplane RMSD is chosen. A similar idea could be used for relax_data.temp_calibration, etc. If the user has already set this, the wizard can check and skip that page. A much simpler starting wizard would be in the load_unit_vectors() method of gui/analyses/auto_model_free.py - this is a simple linear wizard. So the steps would be: 1) Implement the user functions as GUI pages accessible from the user functions menu. 2) Create a basic linear wizard such as load_unit_vectors(). 3) Use the wizard's set_seq_next_fn() method to determine if a page should be skipped or displayed. Would you like to give this a go? Cheers, Edward