mailThe new GUI and adding a BMRB export wizard.


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

Header


Content

Posted by Edward d'Auvergne on September 02, 2011 - 14:16:
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



Related Messages


Powered by MHonArc, Updated Fri Sep 16 19:00:09 2011