Hi Michael, I've finished playing around prettifying the GUI. Most of this was done in my spare time - now I will concentrate on fixing the last bits of Gary's multi-processor code and the BMRB integration and the merging of these 2 branches (these features can then be integrated into the GUI). The GUI is now more polished like other high quality software programs - with splash screen, set up, execution, about screens, iconified menu entries with separators, shortcut keys, open-save-save as, STDOUT printouts, etc. The core of your code has been segregated into modules, except for the NOE which I'm leaving to you as a coding exercise. Once the NOE code has been spun out, making radical changes to the GUI will be trivial! I have removed the duplicated code from the sample scripts. The status as shown by the relax controller needs discussed as to exactly how it will be shown. For the core part of this, I am leaning towards something called a singleton - a single data container that everything can access from anywhere (i.e. GUI, web UI, etc.). The user functions then place their name in the container as they are called, and then the controller reads this and displays it as a status. The MC code places the MC sim number in there, and the calculation/grid search/minimisation code places the spin number in there, and again the controller reads this and displays it. As for the current status, we have the following show-stoppers to resolve before a release: * A major GUI problem with inputting sequence data into the R1, R2, and NOE analyses. This is currently taken from the PDB file, but this is not sufficient. The current set up excludes the RNA/DNA people, and the organic chemists! We need to have the full functionality of the following 2 user functions: structure.load_spins() sequence.read() How do I do a protein analysis using backbone NH, side chain NH, backbone Ca, and Me group data simultaneously? Or a model-free analysis on the natural abundance 13C relaxation of Taxol? * The unresolved spins has this problem as well, and this must be resolved. How do I specify that the Trp indole NH is unresolved in a protein? Or that carbon number 28 (C28) of a small molecule is overlapped with C11 and both should be skipped? * The relax controller is not 100% functional, and must have the log window contents limited to 10,000 or 100,000 lines. * The model-free model selection method selection GUI element in the automatic model-free window must go. * It would be very useful to have in the repository all the files required to recreate the artwork in the GUI. For example to easily update the copyright notice on the splash screen and 'about gui' dialog. Or to touch up or add to the R1 and R2 pictures. * The NOE picture is difficult! It doesn't really demonstrate the concept. Maybe a picture of a structural ensemble with mobile ends, and underneath the 2D NOE plot could be used? * Not all menu entries are functional! I would suggest shifting the extras menu entries into help, and use wx HTML dialogs to display this information. 'File -> New' should reset the relax data store and synchronise the GUI - i.e. it should just blank everything. 'File -> New analysis' could be added later (NOE must be spun out first) and the analysis selection window integrated as a type of Wizard (see the wx demo in wxPython/demo/Wizard.py). All the settings menus are broken. These are badly designed anyway and I don't think they should exist. * Can gui_bieri/res/easygui.py be deleted? * There are other issues that can be resolved later, after the first stable release. For example if I have relaxation data at 500, 600 and 800 MHz, but the 500 MHz NOE was not measured? Now I'll pass the development on to you. I may still do a few things here and there, but it's up to you to fix the last GUI issues. I will help of course, especially with the discussion of design and implementation, but patches need to be sent. Once you have patches and commit messages that I can apply and cut and paste - importantly with zero modifications - you will be granted commit access to the repository (after a private vote among the current developers). relaxGUI v1.00 is coming close to being one permanent and very powerful faces of relax! Cheers, Edward P. S. An idea for the next version would be to have each analysis create a data pipe just for setting up. The sequence data (mol, res, and spin) can be loaded from a PDB file or a text file and shown using a tree view (see the demos Treebook.py, TreeCtrl.py, TreeListCtrl.py). Clicking on each element then displays the data in the main frame. Buttons could be used instead of all the current data input methods. Then user functions are called by the user to update the data therein - i.e. setting parameter values, deselecting spins by file or by hand, loading data, etc. 'Execute relax' will then tell the user what they have forgotten to do. Once all data is set up, the pipe is passed into the automatic analysis code and that code then worries about the rest. We could also have windows for each analysis, windows for displaying the structure and the results superimposed onto the structure, windows for the 3D canvas of the custom analysis, etc. It will be a long road to having the full functionality as the prompt/script UIs, but in the end it should be amazing!