relax release descriptions
Contents
- 1 Version 1 of relax
- 1.1 relax 1.3 series
- 1.2 Description
- 1.3 Download
- 1.4 CHANGES file
- 1.5 Links
- 1.6 Announcements
- 1.7 See also
- 1.8 Description
- 1.9 Download
- 1.10 CHANGES file
- 1.11 Links
- 1.12 Announcements
- 1.13 See also
- 1.14 Description
- 1.15 Download
- 1.16 CHANGES file
- 1.17 Links
- 1.18 Announcements
- 1.19 References
- 1.20 See also
- 1.21 Description
- 1.22 Download
- 1.23 CHANGES file
- 1.24 Links
- 1.25 Announcements
- 1.26 References
- 1.27 See also
- 1.28 Description
- 1.29 Download
- 1.30 CHANGES file
- 1.31 Links
- 1.32 Announcements
- 1.33 See also
- 1.34 Description
- 1.35 Download
- 1.36 CHANGES file
- 1.37 Links
- 1.38 Announcements
- 1.39 References
- 1.40 See also
- 1.41 Description
- 1.42 Download
- 1.43 CHANGES file
- 1.44 Links
- 1.45 Announcements
- 1.46 See also
- 1.47 Description
- 1.48 Download
- 1.49 CHANGES file
- 1.50 Links
- 1.51 Announcements
- 1.52 References
- 1.53 See also
- 1.54 Description
- 1.55 Download
- 1.56 CHANGES file
- 1.57 Links
- 1.58 Announcements
- 1.59 References
- 1.60 See also
- 1.61 Description
- 1.62 Download
- 1.63 CHANGES file
- 1.64 Links
- 1.65 Announcements
- 1.66 References
- 1.67 See also
- 1.68 Description
- 1.69 Download
- 1.70 CHANGES file
- 1.71 Links
- 1.72 Announcements
- 1.73 References
- 1.74 See also
- 1.75 Description
- 1.76 Download
- 1.77 CHANGES file
- 1.78 Links
- 1.79 Announcements
- 1.80 References
- 1.81 See also
- 1.82 Description
- 1.83 Download
- 1.84 CHANGES file
- 1.85 Links
- 1.86 Announcements
- 1.87 See also
- 1.88 Description
- 1.89 Download
- 1.90 CHANGES file
- 1.91 Links
- 1.92 Announcements
- 1.93 See also
- 1.94 Description
- 1.95 Download
- 1.96 CHANGES file
- 1.97 Links
- 1.98 Announcements
- 1.99 References
- 1.100 See also
- 1.101 Description
- 1.102 Download
- 1.103 CHANGES file
- 1.104 Links
- 1.105 Announcements
- 1.106 References
- 1.107 See also
- 1.108 Description
- 1.109 Download
- 1.110 CHANGES file
- 1.111 Links
- 1.112 Announcements
- 1.113 See also
- 2 References
- 3 See also
Version 1 of relax
relax 1.3 series
relax 1.3.16
relax version 1.3.16 | |||||
| |||||
Keywords | Manual | ||||
---|---|---|---|---|---|
Release type | Documentation | ||||
Release date | 11 May 2012 | ||||
| |||||
The relax 1.3.16 user manual |
Description
This is mainly a documentation release. The relax user manual has been significantly updated - changes include the expansion and completion of the model-free analysis chapter, addition of graphical user interface (GUI) screenshots and descriptions, a description of Gary Thompson's multi-processor framework, and general updates and improvements throughout. For those who install relax using the scons 'install' target, the pyc and pyo files are now properly created for faster startup. The Bruker Protein Dynamics Centre user function class 'pdc' has been renamed to 'bruker' because of Bruker's absorption of the PDC into the Bruker Dynamics Centre. These user functions, as well as the BMRB user functions, have been added to the menu system in the GUI. Finally a test suite bug triggered in the Fink relax installation has been eliminated. If you would like improved documentation or would like to use any of the other changes, please update to this version.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.16
(11 May 2012, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.16
Features
- The scons 'install' target now creates both *.pyc and *.pyo files during installation - this should result in faster relax startup times.
- The test suite now passes on the Fink relax installation on Mac OS X as the ancient and very dead PyXML module is now being detected and worked around.
- Renamed the 'pdc' user function class to 'bruker' and removed all references to 'protein' - this is due to the Bruker absorption of the Protein Dynamics Centre into the Bruker Dynamics Centre announced at https://www.nmr-relax.com/mail.gna.org/public/relax-users/2012-04/msg00011.html (Message-id: <4F7AE13B.6010309@bruker.de>) by Dr. Klaus-Peter Neidig (peter dott neidig att bruker-biospin dott de).
- Updates and improvements throughout the relax user manual.
- Added a new section to the introduction chapter of the user manual for Gary Thompson's multi-processor framework.
- Added screenshots and descriptions of the graphical user interface (GUI) to the introduction and all of the analysis chapters of the relax user manual.
- The GUI and logging/teeing modes are now compatible with each other.
- Expansion and completion of the model-free chapter of the relax user manual.
Changes
- Improved debugging of the observers in the status singleton object.
- Changed the behaviour of the arg_check module so that the functions can return answers.
- The Bmrb.test_bmrb_rw GUI test now uses the base execute_uf() method for the pipe.create call - this is part of the simplification of the user function interfaces.
- A number of the pipe GUI user function front ends now use the wizard page element_*() methods to simplify the code base.
- The wizard page element_string_list() method can now create the special Combo_list objects.
- Created the wizard page ResetChoices() method for resetting the list of values in a ComboBox.
- Created a Clear() wizard page method for clearing a specific GUI element.
- The wizard page element_string() GUI element creator read_only flag now defaults to False.
- The read_only=True flag to wizard_elements.Base_value now sets a TextCtrl to the background colour.
- The wizard_elements.Base_value.SetValue() method now works properly with the ComboBox.
- The wizard_elements.Base_value class now can set the element to be read only.
- Created generic_fns.pipes.PIPE_DESC_LIST which is the PIPE_DESC as a list, sorted by VALID_TYPES (to be used in the GUI user functions).
- Better ComboBox support in wizard_elements.Base_value class - now strings and data are separate (if the data is supplied), and the GetValue() method now returns the client data rather than the string value.
- Modified the wizard_elements.Base_value base GUI element class to handle combo boxes.
- The Bmrb.test_bmrb_rw GUI test now uses the new execute_uf() method for the bmrb.citation user function.
- Created the GUI test base method execute_uf() for executing a user function.
- The bmrb.citation GUI user function now uses the new wizard page element_*() methods for the GUI elements.
- Created a new wizard element for inputting integers.
- Created a new wizard element for inputting strings.
- Created the Bmrb.test_bmrb_rw GUI test.
- Completed the GUI interface for the bmrb.citation user function.
- Created a new wizard GUI element for lists of lists of strings.
- Abstracted out most of the String_list wizard element into the List base class.
- The bmrb.citation GUI user function now uses the new wizard page string list GUI element.
- Completed the wizard string list GUI element.
- Added the edit-rename Oxygen icons.
- Created a new String_list wizard GUI element class and associated element_string_list() method.
- Created a new infrastructure in the wizards for handling more advanced GUI elements.
- The Mf.test_write_results system test now checks for the ancient PyXML.
- Added the xml module import tests to the dep_check module.
- The relax system information print out now includes information about the XML modules.
- Added an initial but far from complete bmrb.citation user function page and menu element.
- Added the BMRB icon in various sizes to the graphics directory and icon paths.
- Updated all the BMRB user function front ends to the modern docstring design.
- Created a special Bruker add icon for use in the relaxation data GUI element.
- Added a button to the relaxation data GUI element for calling the bruker.read user function.
- Improved the bruker.read user function docstring.
- Created the bruker.read GUI user function page and menu entry.
- Added the Bruker logo in various formats for use in the relax GUI.
- Converted the bruker.read user function prompt interface to the new design.
- Renamed the PDC to Bruker DC in the test suite.
- Updated the development chapter of the relax user manual to be more current - this includes removing the text saying that the GUI is yet to be coded!
- Added mpi4py to the list of relax dependencies in the manual.
- Added GUI sections to the end of the NOE, R1+R2 and model-free chapters of the user manual.
- The list of figures in the relax user manual is now on a new page.
- Updated the open source infrastructure chapter of the relax user manual.
- Added a screenshot of the new relax 1.3.15 version in script mode.
- Significant updates to the introduction chapter of the relax user manual: The text has been updated to match the current relax versions. All mention of the dead SRLS theory has been eliminated. Screenshots of all the GUI windows and analyses have been added to prettify the chapter, and the text for the GUI has been rewritten for the new GUI design.
- Added a number of GUI screenshots for use in the [www.nmr-relax.com/manual/index.html relax user manual] - these were taken from http://www.nmr-relax.com/screenshots.html.
- Added colons to all entries of the abbreviation chapter in the relax user manual.
- Updated and completed the installation chapter of the relax user manual - a lot of the text was 4-6 years out of date.
- Some small edits to the release checklist document.
- Removed more maths from the HTML user manual section titles.
Bugfixes
- Improved error reporting for multiple vectors in a model-free analysis (bug #18807).
- Updated the deselect.read user function call in the noe.py sample script to match relax_fit.py (bug #19717).
- The relax_fit.py sample script deselect.read user function now has all columns specified (bug #19717).
- Improved the error message system for the spin ID matching multiple spins (bug #19717).
- Fix for the test suite GUI tests - one of the state system tests was removing the frame order analysis from the generic_fns.pipes.VALID_TYPES list with a pop() call.
- Simplified the wizard_elements.Base_value ResetChoices() method - this is an attempt to fix some racing conditions under wxGTK, triggered in the test suite.
- Fix for the bmrb.citation user function documentation.
- The Mf.test_write_results system test now checks for the ancient PyXML - this ancient version from 2004 which should be eliminated, if installed, causes the toprettyxml() changes in Python 2.7.3 to be overridden.
- The alignment tensor user functions can now all handle the situation whereby no tensors exist.
- Fix for the scons 'install' target for the byte-compilation of the *.pyc files.
- Fix for the χ2 references in the maths chapter of the relax user manual.
- Fix for the ANSI escape sequences for colouring text for when an isatty() method does not exist.
- Fix for the creation of the HTML user manual http://www.nmr-relax.com/manual/index.html file.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.15
relax version 1.3.15 | |||||
| |||||
Keywords | Mac OS X, UI | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 25 April 2012 | ||||
| |||||
The relax 1.3.15 user manual |
Description
This is a major feature release focusing on more complete Mac OS X support and prettifying all of the user interfaces (UIs). The new features include full Mac OS X support via fink and the Mac application DMG file (for Leopard, Snow Leopard and Lion with PPC, i386 and x86_64 CPUs), coloured terminal output in the prompt/script UI modes, the ability to run the full relax test suite within the GUI mode, general improvements throughout the GUI, support for wxPython 2.9, faster program start up, improved formatting of the HTML version of the user manual, and expansion of the multi-processor framework. Many additional changes are listed below. If you are a Mac OS X user, you are affected by one of the bugs listed below, or you would like to use the new features, then I would recommend upgrading to this new version.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.15
(25 April 2012, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.15
Features
- Large improvements to the HTML user manual (http://www.nmr-relax.com/manual/index.html).
- The full test suite, including GUI tests, can now be run successfully from the GUI.
- The Mac OS X binary distribution file now supports Leopard, Snow Leopard and Lion as well as the PPC, i386 and x86_64 CPU architectures.
- The prompt and script output to a terminal is now coloured.
- Faster program startup by only importing the test suite and GUI packages if they are actually needed.
- Files selected via the GUI user functions can now be previewed.
- Redesign of the spin loading wizard of the spin viewer window to be more intuitive.
- Expansion of the system information print out.
- Advances in the multi-processor framework including the pre-sending of data to slaves.
- Support for wxPython 2.9.
Changes
- Changed all of the maths in the HTML user manual page titles, the latexonly and htmlonly environments are now being used to produce different section titles with and without maths respectively.
- The latex2html configuration script now allows for more maths in the HTML user manual with the HTML_VERSION math extension.
- The section numbers are now removed from the HTML user manual pages to allow for more static webpages for the user functions which do not disappear as new user functions are added.
- The title page of the HTML user manual has been renamed to "The relax user manual".
- Updated the ancient COMMITTERS file which has not been changed in over 4 years!
- The pipe editor window is no longer centred, now matching the behaviour all other windows.
- All open relax windows are now closed prior to running the test suite within the GUI.
- Exiting the GUI now only warns about data loss only if there is data to loose.
- The relax controller can now not be closed while the test suite is running.
- During the GUI tests from the GUI, the relax controller is now modal preventing users from interfering with the tests.
- The relax controller now stays on top of all windows when the GUI tests are being run improving the running of the tests on Mac OS X and MS Windows.
- The GUI tests now work in the GUI thanks to a lot of GUI black magic. The tests' tearDown() method now carefully deconstructs the GUI element prior to the next test being run. In the normal 'relax --gui-test' mode, the GUI object is destroyed and recreated for each test however, when run from the GUI, the GUI object is always there and must remain intact. The deconstruction includes deletion of each analysis tab and selective destruction of all non-main windows (excluding the controller which shows the test suite progress). The relax data store GUI object is also reconstructed in the tearDown() method, and all wx events flushed at the very end to prevent clashes with the next GUI test.
- The relax mode (i.e. prompt, script, GUI, test suite, etc.) is now stored in the status object - this is used to activate and deactivate certain parts of the GUI tests within the GUI and normal test suite modes.
- The ds.relax_gui GUI data object is now a permanent feature of the relax data store.
- The 'Tools->Test suite' menu item has been converted into a sub-menu with entries for running all tests or the individual test categories.
- Created the _det_install_path() status singleton method for better determining the install path - this is used for the Mac OS X applications whereby the current logic of using sys.path[0] fails miserably!
- Prepared the multi-processor package for the import mechanisms of Python 3 - this new mechanism is present in Python 2.7 now, and the code falls back to the old method when not present.
- Complete redesign of the py2app setup.py script for building Mac OS X applications. The script has been converted into a class called Setup which performs all the actions. All files, source or otherwise, are now stated as data files to be included in relax.app/Contents/Resources. All relax modules are specified by the py2app 'includes' option so that they are forced to all be included within the relax.app/Contents/Resources/lib/python2.X/site-packages.zip file as *.pyc files.
- The py2app part of the setup.py script now throws a RelaxError if the setuptools module is missing.
- Added the relax prompt icon to the main GUI window toolbar.
- Added the larger sized application-x-executable-script Oxygen icons.
- Created the 'ansi' module containing the terminal colouring ANSI escape sequences.
- The test suite is now only imported in the test modes of operation - this should speed up program initialisation.
- The import of the gui package now only occurs in GUI mode - this will speed up the program start up.
- The script print out in scripting mode is now in cyan if sys.stdout is a TTY.
- ANSI escape characters are now turned off forcibly when in GUI mode.
- The sys.std*.isatty() methods are being used to determine if text output should be coloured.
- All RelaxWarnings are now coloured yellow when printed to a TTY.
- All RelaxErrors are now coloured red when printed to a TTY.
- The relax prompts will be coloured blue when printed to a TTY.
- The GUI analyses delete_all() method now unregisters all observer methods prior to deletion.
- Created observer_register() for all GUI analyses for method registration and unregistration - this method allows for external calls to observer_register() to pre-remove the methods from the observer objects.
- Added debugging printouts to the delete_all() analysis method.
- More advanced debugging printouts for the delete_analysis() method.
- Added some heavy debugging code to the GUI analysis delete_analysis() method.
- Increased the size of the model-free model change warning dialog for wxPython 2.9 on GNU/Linux.
- The file selection wizard GUI element now has the preview button turned on by default.
- Double clicking on a file in the results view window now opens it.
- Added a file preview button for the spectrum.read_intensities user function GUI page.
- Added a file preview button to the file selection GUI element of the wizards.
- Increased the size of the incomplete set up dialogs for wxPython 2.9 on GNU/Linux.
- Added the document-preview.png Oxygen icons.
- Increased the loading state warning dialog size - this is to accommodate for larger text on wxPython 2.9 on GNU/Linux with GTK.
- Improved the spin data deletion messages from the spin viewer window.
- Increased the dialog heights for the deletion of spin data via the spin viewer window.
- Improved the user feedback during a state save by just sleeping a little to show the busy cursor.
- Modified the spin loading wizard so that preloaded structures are the default.
- The maths_fns.relax_fit module is now stored in the dep_check module for the info print out.
- Added the structure.read_xyz user function to the menus.
- Created the Tools->System Information menu entry, which is simply the sys_info user function front end.
- Created the GUI front end to the structure.read_xyz user function.
- The relax controller now accepts Ctrl-A to select all text.
- The relax controller now shows the relax intro text to mimic the prompt/scripting modes.
- Introduced the empty() method into the structure API to check if structural data is loaded - this will be used in the spin loading wizard of the spin viewer window.
- Converted the structure.read_xyz user function front end to the new design.
- Improved details of relax and the compiled C modules from the info print out.
- Created a dictionary object containing wxPython version info within the status singleton object - this is being used to construct the Mac dock icon, when the Carbon and Cocoa builds and not GTK are being used.
- Updated the multi-processor package __all__ list to allow the relax unit tests to pass.
- Added a document describing how to build a 3-way (i386, pcc, x86_64) Mac OS X Python framework.
- Added a script which is used to validate the binary architecture of Mac OS X Frameworks.
- Improved the relax info print out for the installed python packages - this now shows more information for the wxPython version, and formats the output based on maximum widths to handle different situations.
- Removed the ppc64 build target for the relax C modules on Mac OS X - this architecture is not supported by the recent Xcode frameworks, so it has been dropped.
- The scons binary_dist target on Mac OS X can now overwrite a pre-existing DMG file.
- Added some epydoc @attention fields to the multi-processor API.
- Created the fetch_data_store() multi-processor API function - this simply returns the data store of the same processor as the calling code.
- The 2nd test implementation's slave command now uses the fetch_data() API function - this is to obtain the invariant data pre-sent by the master to the slaves.
- Renamed the multi-processor API data_fetch() function to fetch_data(), and implemented it.
- Renamed data_upload() to send_data_to_slaves() and made it more specific.
- The multi-processor data_fetch() API function is now used to obtain the total_length variable.
- Shifted the self.threaded_result_processing flag into the base Processor class where it belongs.
- Clean up and completion of the TODO for the Processor.assert_on_master() method. The Processor.assert_on_master() method has been created and calls raise_unimplemented(). The Multi_processor.assert_on_master() method has been shifted to Mpi4py_processor.assert_on_master(), as that method's error message is MPI specific. The empty Uni_processor.assert_on_master() method has been added to allow that fabric to work.
- Spun out all of the results queue objects into their own module. This completes another set of TODOs by removing these queue objects from any fabric level. They can now be imported and used by any fabric level (Processor, Multi_processor, Mpi4py_processor, Uni_processor, etc.).
- Shifted the run_command_queue() and run_queue() methods from the Multi_processor to Processor class.
- The multi/test_implementation2.py script can now be run in uni-processor mode.
- The multi/test_implementation2.py script now properly uses pre-send data in the slave calculations.
- Partially implemented the Processor.data_update() method.
- Created the special command object Slave_storage_command for transferring data to slaves - this command currently has two special methods: add(), used by the master processor to add data to the command for transfer; and clear(), used by the slave (via run()) or the master to clear out all data.
- Split the multi.commands module into two - the slave commands and result commands.
- Removed the Mpi_processor.data_upload() method as this will be performed at the Processor level.
- Shifted all of the processor command objects into the multi.commands module. The other multi.api module objects have been shifted into the multi.misc module.
- The multi-processor package now allows sys.exit() calls within the master processor.
- Removed a number of sys.exit() calls from different relax modes. The return call is used rather than sys.exit() to exit the main run() method. These were not needed and it allows the 'version', 'info', and 'gui' modes to play better with the multi-processor package when using mpi4py.
- Shifted the mpi4py processor module functions broadcast_command() and ditch_all_results() into the class - these have been turned into private methods.
- Redesigned how the multi-processor package terminates program execution - the Processor.exit() method has been introduced to perform this action.
- Spelling fix for a number of the processor method names.
- Fully documented the Processor.run() method via comments.
- Eliminated the unused Set_processor_property_command multi-processor class.
- Eliminated the unused Get_name_command multi-processor class.
- Shifted the Multi_processor.run() method up a level to Processor.run() - this completes one of the TODOs, and will be needed to avoid code duplication for handling the new data_upload() and data_fetch() API methods.
- Eliminated the completely unused create_slaves() Processor method.
- The processor instances now have a data storage container - this will be used by the data_upload() and data_fetch() API methods.
- Implemented the mpi4py processor fabric data_upload() method.
- Updated the second multi-processor test implementation to use the new data_upload() API function.
- The multi.data_upload() API function now forwards the call to the Processor classes.
- Clean up of the Multi_processor.run_command_queue() method.
Bugfixes
- Fix for the about dialogs in the GUI when combined with a scrolling window (this is only a problem for the wxPython 2.9 series).
- Fix for the fetch_docstrings.py script used for the user manual creation - the number of \linebreak[0] commands inserted was far too great.
- In generating the HTML user manual, the ignore_commands function is now being used to force latex2html to ignore \linebreak[0] commands as these were previously putting the text '[0]' throughout all the HTML pages.
- For the HTML user manual, the document splitting has been restored to a split depth of 5 - this had been changed to make the main chapters of the text more readable, but the user function HTML page is now far, far too long and is a massive strain on browsers.
- The Mf.test_write_results system test now works with the newer Python 2.7.3 version, as from this version onwards the XML of the relax save and results files will be differently formatted.
- Big bug fix for the installation path for the relax Mac OS X application. The path to the application Resources folder, where all the relax data files are located, is now set to the install path. The relax.py module was also overwriting the value set in the status singleton and now this no longer occurs.
- Fix for the py2app setup.py script for Mac OS X application creation - the list of data files to include with the app is now properly formatted.
- The relax GUI is now robust and able to withstand a call to the reset user function - this could have occurred if the user ran a script with a reset() call, or if reset() was typed at the GUI version of the relax prompt.
- Added isatty() methods to all of the dummy file objects within relax - this fixes a number of errors caused by the recent introduction of coloured text.
- Fix for the initialisation of the Exec_info class for the prompt/script output.
- Fix for the residue.create user function GUI front end - the unnamed molecules are now properly handled, and the gui_to_*() methods are now used for data conversion.
- Fix for the gui_to_int() function for when text instead of an integer is given by the user.
- Bug fix for the spin.create user function GUI interface for when molecules or residues are not named - unnamed molecules are now properly handled in the GUI page, and the residue name of None is properly converted into a NoneType prior to executing the back end.
- Big bug fix for the deletion of analyses tabs from the GUI - this affects wxGTK users on Macs and Linux. Now the spectrum and relaxation data list GUI elements have observer_register() methods, allowing the analysis delete_all() method to unregister all analysis specific methods from the observer objects.
- Multiple unregistrations of observer methods are now possible without a RelaxError - this allows multiple code paths to unregister methods to allow for pre-removal of methods to avoid queued wx events in wxGTK from occurring on dead or missing objects.
- Bug fix for the GUI when deleting analysis tabs - the deletion of analysis tabs was previously failing in certain cases.
- Fix for a bug triggered by wxPython 2.9 when deleting the last analysis tab - the self.notebook object is now deleted when the set_init_state() method is called, allowing it to be properly accessed and recreated.
- Converted the pipe switching with GUI tab switching to synchronous to avoid rare races (triggered by wxPython 2.9).
- The analysis deletion buttons now do nothing if the notebook is not created yet - this avoids problems on the new wxPython 2.9 versions.
- Fix for the radiobutton group in the Spectral_error_type_page of the peak intensity wizard.
- Fix for the spin loading wizard of the spin window - the RadioButtons of the first page for selecting the spin loading method are now fixed.
- Fix for the about relax window size for wxPython 2.9.
- Fix for the relax controller find dialog on Mac OS X with wxPython 2.9.
- wxPython 2.9 fix for the spin viewer window (at least for Mac OS X).
- The maximize calls for the spin viewer window are now turned off for Mac OS X systems (this is a fix for the fink versions of relax).
- Bug fix for Mac OS X - the main window is no longer started maximised (a fix for the fink version of relax).
- Fix for the spin viewer window for wxPython 2.9 - this is for when you right click in the tree view panel on nothing.
- Fix for the text on the 'finish' button of the GUI wizard - this was accidentally changed to 'apply'.
- Bug fix for the spectrum.replicated user function for when it is called twice with the same IDs.
- Bug fix for the relax GUI spin viewer window. When right clicking on nothing in the tree view, an error would occur. Now, instead, a special menu pops up with a single entry for loading spins.
- Fix for the building of the relax C modules as universal binaries on Mac OS X - the linking was not functioning correctly, and the resultant module was build only for i386.
- The relax Mac OS X dock icon is now turned off when using the wxGTK build of wxPython from fink - this prevents a little grey frameless window appearing with the largest of the relax Ulysses butterfly icons in the centre.
- Bug fix for Mac OS X - attempt at killing the Carbon.Evt.TickCount problem by removing argv emulation.
- Fix for the scons binary_dist target on Mac OS X systems with multiple Python versions - now the py2app program is called with the same python version as used by scons.
- Fix for the Processor.data_upload() method. The self.run_command_queue() method is no longer being used. Instead the add_to_queue() method is being used to queue up the slave commands, and the run_queue() method is being called at the end to flush the queue.
- Fixes and clean up of the slave to master transfer mechanism for result commands.
- Fix for the relax info print out on Python 2.5 or below.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.14
relax version 1.3.14 | |||||
| |||||
Keywords | IO, memory, performance | ||||
---|---|---|---|---|---|
Release type | Major bugfix | ||||
Release date | 19 March 2012 | ||||
| |||||
The relax 1.3.14 user manual |
Description
This is a major bug fix release focusing on memory usage, performance, and IO. The parallised model-free optimisation code (for running on clusters/grids using the multi-processor package) was causing relax to crash on 32-bit systems due to the system running out of virtual memory. The new version should only require about a third of the memory of relax 1.3.13. The parts of relax dealing with atomic or spin specific data (reading of spin systems from PDB files, reading and writing of spin specific data, etc.) have been rewritten for efficiency and should now be many orders of magnitude faster for certain work loads. There have also been large improvements to the multi-processor framework, specifically the creation of a public API and a reference implementation. In addition there are improvements for IO capture on both the uni-processor and mpi4py-processor fabrics for relaying slave messages back to the master, better integration with the GUI and compatibility with the logging and teeing command line flags. Other changes include expansion of the relax information print out, support for numpy data structures in save files, and the addition of the rdc.delete and pcs.delete user functions. Feel free to upgrade if you would like the benefits of this new version.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.14
(19 March 2012, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.14
Features
- An expanded system information printout (from 'relax -i').
- Improvements to the multi-processor implementation, including creation of a public API and a reference implementation.
- Overhaul of the multi-processor stream capture design - the slave IO streams are now properly redirected to the master processor and the master no longer overrides stream capture by the relax user interfaces.
- Numpy data structures are now supported in relax save files.
- Implemented the rdc.delete and pcs.delete user functions.
- Speed ups of a number of user functions involved in looping over atomic or spin specific data - this can be significant if a lot of structural operations are performed, or a large number of structures are required.
- Redesigned how spin parameters are handled in the specific analyses (which includes parameter name changes).
Changes
- The MS Windows text wrapping width has been changed from 80 to 79 - this now fits the cmd prompt.
- The program intro print out and prompt UI help system is using the new Status.text_width variable to wrap text.
- The model-free constraint matrix A is now of numpy.int8 type - this is to decrease virtual memory usage and increase the scaling efficiency on clusters.
- Changed all relax website links to http://www.nmr-relax.com for consistency.
- The setup.py script can now be imported for the epydoc API documentation system.
- The extern and minfx.scipy_subset relax packages are excluded form the API documentation.
- Added the ability to skip scripts in the package __all__ list unit test checks.
- Added some code to detect the bit version of MS Windows in the information print out (to better distinguish 32 vs. 64-bit versions).
- Added some documentation about master processors on Linux 2.6 eating 100% of one CPU core (in the mpi4py multi-processor fabric).
- Added a reference implementation to the multi-processor package - this is to demonstrate to users of the package how an implementation is created via the public API.
- Elimination of all relax dependencies from the multi-processor package.
- Added support for the memory size on MS Windows to the relax info print out.
- Updated the value.set user function unknown parameter error message to list the known ones.
- For Unix and GNU/Linux systems, the relax info printout now shows the ram and swap size.
- Expansion and improvement of the information printed out by 'relax --info'.
- Expansion of the multi-processor API documentation.
- Expansion of the multi-processor package documentation with a step by step usage guide - this should increase the usability of the package by clarifying how one should use it.
- Expansion and improvements to the multi-processor package and module docstrings.
- The finish button in the new analysis wizard has been renamed to "Start".
- Created a special Verbosity singleton for controlling the multi-processor package print outs.
- Future proofed the relax codebase by replacing all ''' with """ in the docstrings.
- Removed the unnecessary try statement in the model-free Slave_command.run() method as exception handling is correctly performed on the slave and master.
- Shifted the Memo object into its own module (multi package).
- Simplification and abstraction of the Slave_command.run() method to shift all exception handling into the package. Therefore program code no longer needs to handle the multi-processor specific errors.
- Created a new module 'multi.misc' for holding miscellaneous functions used throughout the multi package.
- Created a public API for the multi-processor package, available via multi.__init__.
- The load_multiprocessor() function is no longer a static method of the Processor base class. This function loads the correct Processor class, so doesn't need to be a method of the base class and operates cleanly and more clearly as a stand alone function.
- Clean up of the processor IO module (multi package).
- Eliminated all usage of sys.__stdout__ and sys.__stderr__ in the multi-processor package - this returns full control of IO streams to the parent program.
- The float arg checks now checks against all the numpy float types (float16, float32, float64, float128).
- Added value.write user function calls to the J(ω) mapping system test script.
- Added some value.write user functions to the J(ω) mapping sample script.
- Modified the J(ω) mapping test data to include relaxation values of None to trigger bug #19329.
- Speed up for the generic_fns.relax_re.search() function.
- More speed ups for the Selection.__contains_mol_res_spin_containers() method.
- Reordered the checks in Selection.__contains_mol_res_spin_containers() - this cuts the number of function calls down by avoiding relax_re.search() calls if residue or spin numbers match.
- Simplified the generic_fns.relax_re.search() function - this is to minimise the number of isinstance() calls when dealing with the relax mol-res-spin sequence data.
- Updates for Python 3.0 using 2to3.
- Removal of a number of debugging print out statements.
- Significant speed ups of the return_spin() and return_residue() functions.
- Added a print out for the diffusion_tensor.init user function to inform the user of an angle unit change - this is in response to bug #19323 to make it clearer that a parameter conversion has occurred.
- Created a special specific API object called SPIN_PARAMS - this will be used to handle all operations to do with model parameters. The object Param_list has methods for parameter initialisation and handling (where all info is specified such as Grace string, units, default value, etc) and for determining if a parameter exists.
- Mass conversion to the new GLOBAL_PARAMS and SPIN_PARAMS specific API data structures. The parameters are now all lowercase, for example ['S2', 'te', 'Rex'] is now ['s2', 'te', 'rex']. The follow parameters are now converted throughout relax: 'bond_length' to 'r', 'CSA' to 'csa', 'heteronucleus' to 'heteronuc_type', 'proton' to 'proton_type'.
- Created a new algorithm for finding the pivot of motion between different structural models - this is available through the structure.find_pivot user function.
- Added the validate_models() method to the structural API - this is used to check that the models are 100% consistent.
- Added the centroid argument to the structure.superimpose user function - this allows for the superimposition of structures assuming a pivoted motion.
Bugfixes
- Fix for the title of the analysis selection wizard GUI element.
- Fix for the MemoryError during the "final" run of d'Auvergne Protocol[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] affecting 32-bit systems (bug #19528).
- Epydoc docstring fixes for the API documentation.
- Bug fix for old numpy versions missing the float16 object.
- The relax prompt mode now prints the intro message to sys.stdout - this fixes this mode with the logging option or in the mpi4py multiprocessor mode.
- Fix for the storage of numpy data structures in the relax save files - if special structures are created by the user, these were not correctly stored. The precision was often too low (printed at the numpy default of a precision of 8), and if one dimension had more than 1000 elements, ellipses would be stored instead (the ellipses would cause the save file to be unreadable by relax).
- Created the SplitIO.flush() method so that a flush() call now works with the -t and -l command line args - this simply calls the flush() methods of both streams.
- The relax data store __repr__() method now prints out all objects within the base object.
- Fix for a rare bug in the model-free analysis for when relaxation data of None is encountered.
- Fixes for the Dasha system test for the bug #19332 fix.
- Fixes for the Dasha use functions for file creation and data extraction - this should now handle relaxation data values of None, and also set the parameter values of deselected spins using the DASHA output files.
- Big bugfix for the value.read user function - the wrong spin ID string was being used to set the parameter value so that all spins have the same value set for the parameter (bug #19332).
- Bug fix for the consistency testing analysis for when relaxation data of None is encountered.
- The spin is now deselected if there is really less than three data points, excluding data points of None (bug #19329).
- Bug fix for the arg_check.is_none() function - the RelaxNoneError was not imported!
- Fix for the numbering of the TER record and subsequence HETATM records in the PDB file creation. The structure.write_pdb user function now creates the correct TER record after the ATOM records, and the HETATM records are renumbered if needed.
- Bug fix for the compilation of the user manual. The molecule user function class used the temporary variable i, which was causing the fetch_docstrings script to fail.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.13
relax version 1.3.13 | |||||
| |||||
Keywords | 2nd GUI version | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 10 November 2011 | ||||
| |||||
The relax 1.3.13 user manual |
Description
This major release introduces the second version of the relax graphical user interface (GUI). This is a major rewrite of the entire GUI code base. The GUI should now be much more flexible, being able to handle all the different ways NMR data is collected and errors are measured. It now has the much of the flexibility of the prompt / scripting interface by the implementation of GUI versions of many of the user functions, and the GUI now has support for small organic molecules, RNA, DNA, sugars, etc. This flexibility will allow all other analysis types (reduced spectral density mapping, N-state model, the frame order theory, consistency testing, etc.) to be added to the GUI in the future. The GUI is now fully tested and functional on the three major platforms of GNU/Linux, Mac OS X and MS Windows.
In addition, there have been significant bugs fixed throughout the program in both the GUI and the rest of the code base. There are a number of improvements to the frame order theory. A number of new structure user functions have been added for structure creation and structure displacement and superimposition. There have been improvements to the N-state model analysis and to the handling of RDC and PCS values. New user functions have been added for visual representation of model-free results in PyMOL. And finally, the auto-analyses have been redesigned to have all input data pre-loaded into a relax data pipe and that data pipe passed into the the analysis. This grants more flexibility, specifically for non-protein organic molecules which can now be used with the dauvergne_protocol auto-analysis[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].
Due to the incredible number of changes and fixes which are part of this release (see below), all users are recommended to upgrade to this newest version.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.13
(10 November 2011, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.13
Features
- The positive and negative cones from the frame order theory are now different PDB models.
- Monte Carlo simulations are now implemented for the frame order analysis.
- Created the structure.connect_atom user function to expose the back-end functionality.
- Created the structure.add_atom user function to expose the back-end functionality.
- Created the structure.translate user function to translate structural components.
- Created the structure.superimpose user function which uses the Kabsch algorithm to implement the direct fit-to-first algorithm and the iterative fit-to-mean algorithm.
- Created the structure.displacement user function to calculate the rotational and translational displacement between two models via the Kabsch algorithm.
- Extended the N-state model analysis to allow a separate paramagnetic centre per state.
- The structure.read_pdb user function can now handle bzip2 or gzip compressed PDB files.
- The structure.write_pdb user function can now create compressed (bzip2 or gzip) PDB files.
- Created the structure.rotate user function to allow the application of arbitrary rotations to the structures loaded into relax about a given origin.
- Added the bc flag to the RDC and PCS display and write user functions to allow the back-calculated data to be displayed or written rather than the measured values.
- Increased the efficiency of the relax data store spin system creation, this becomes noticeable when large numbers of structures are read into relax.
- The N-state model can now be optimised with a subset of the alignment tensors fixed.
- The alignment_tensor.fix user function is now tensor specific, allowing a subset of tensors to be optimised while the others are kept fixed.
- Added the ability to specify J+D verses J+2D measured RDCs.
- Addition of many new oxygen icons for the GUI.
- Implemented the sys_info user function in all UI modes (prompt/script/GUI).
- Implemented the spectrum.delete user function in all UI modes (prompt/script/GUI).
- Addition of the pymol.macro_apply, pymol.macro_create, and pymol.macro_run user functions for the visualisation of model-free parameters mapped to a structure. This matches the equivalent Molmol user functions and styles.
- A complete redesign of the GUI where any number of analyses can be created and closed as needed.
- The GUI is now fully functional on Mac OS X and MS Windows.
- The elimination of many race conditions causing the GUI to crash.
- Implementation within the GUI of many of the relax user functions available in the prompt and scripting UI modes.
- Creation of the test suite GUI test category to complement the system and unit tests.
- Added a toolbar to the main relax window with some of the most important menu entries as icons.
- Most parts of the GUI are now deactivated when execution is in progress (via the execution lock) to prevent fatal race conditions.
- Redesigned the dauvergne_protocol, NOE and Rx auto-analyses to use a pre-prepared data pipe for data input. This allows greater support for the GUI and for analyses of RNA, DNA, and small molecules.
Changes
- Changed the name of the model_num argument to model in the centre_of_mass() function.
- The generic_fns.structure.mass.centre_of_mass() function now accepts the model number argument, allowing specific models to be isolated.
- The generic_fns.structure.mass.centre_of_mass() function now accepts the atom ID argument, allowing the centre of mass of subsets of the structure to be calculated.
- Addition of a number of frame order test data and system tests for the simpler models (Frame_order.test_cam_rigid, Frame_order.test_cam_free_rotor, Frame_order.test_cam_free_rotor2, Frame_order.test_cam_rotor, Frame_order.test_cam_rotor2, Frame_order.test_cam_iso_cone_free_rotor, Frame_order.test_cam_iso_cone_free_rotor2).
- More use of the structural API in the create_diff_tensor_pdb() function.
- Created the add_model() structural API method.
- Eliminated one of the eigenframe parameters from the rotor frame order model. In the rotor frame order model, the x and y axes of the eigenframe of the motion are not defined. Therefore the 3 eigenframe Euler angles have been replaced by 2 spherical angles defining the rotation axis removing a lot of optimisation issues with this model.
- The frame order torsion angle cone_sigma_max is now forced to be positive. Optimisation sometimes comes up with the negative of the angle but, as both the negative and positive angles are the same result, the angle is always unpacked after optimisation as the absolute value.
- Added a check to prevent the frame order grid search from being too big causing out of memory errors.
- The internal structural object no longer requires the 'ATOM' PDB record for creating PDB files. This affects the structure.write_pdb user function.
- Added the translate method to the structural API.
- Created the Structure.test_superimpose_fit_to_mean system test to test the 'fit to mean' algorithm of the structure.superimpose user function.
- Shifted the structural API calc_displacement() method into the main module.
- Created the arg_check.is_int_list() function for checking for lists of integers.
- Created the Structure.test_superimpose_fit_to_first system test to test the 'fit to first' algorithm of the structure.superimpose user function.
- Added the centroid argument to the structure.displacement user function for pivoted motions. By specifying the centroid position for all structures, a pivoted motion is assumed. All displacements will be zero, and the angles will be that of the pivoting motion.
- Created the Structure.test_displacement system test for checking the structure.displacement user function.
- Added checks for the n_state_model.cone_pdb user function in the N_state_model.test_5_state_xz system test.
- Added a few new argument checks for arrays and matrices of floats including arg_check.is_float_array() and arg_check.is_float_matrix().
- Added a few new RelaxError classes (RelaxNoneListFloatError, RelaxMatrixFloatError, RelaxNoneMatrixFloatError) and the BaseArgError class was also modified to handle the length argument (now the size arg) being a tuple for matrix sizes.
- The N-state model Monte Carlo simulations can now handle fixed alignment tensors.
- Created the alignment tensor module return_tensor() function for returning tensors. This takes fixed tensors into account, skipping them if the skip_fixed flag is set.
- Created the alignment tensor module num_tensors() method for counting tensors. This excludes fixed tensors by default.
- The RDC and PCS display and write user functions now output molecule name, residue name, residue number, spin name and spin number columns instead of the spin ID column. This is better to read back into relax as info such as the spin number can be ignored, allowing different PDB files to be used.
- Created a system test for loading RDCs from a file with spin ID strings at the start.
- Created the N_state_model.test_metal_pos_opt N-state model system test.
- The RDC and PCS Q factors for each alignment is now stored as a dictionary in the relax data store.
- Updated the N-state model analysis code to handle the per-alignment tensor fixed flag.
- Updated the relax data store alignment tensor objects to allow for the per-tensor fixed flag.
- Created the generic_fns.align_tensor.all_fixed() function for determining if all tensors are fixed.
- Created the Grace.test_cam_kkalpha_plot1 system test for checking the grace plotting of mixed data.
- Created the N_state_model.test_monte_carlo_sims system test for checking MC sims with alignment data.
- Updates for Python 3.0 using the Python 2to3 script.
- Created the N_state_model.test_rdc_tensor system test for catching a strange RDC back calculation bug.
- Created the Mf.test_bug_18790 system test for catching bug #18790.
- Created the Relax_fit.test_bug_18789 system test for catching bug #18789. The Grace file is written out, re-opened, and then the numbers checked.
- The GUI test result classes are now being used by the GUI test suite code path.
- Implemented some new classes to allow better control of the test suite from the GUI. The GuiTestResult and GuiTestRunner classes have been added to the relax_test_runner module, and these are used rather than RelaxTestResult and RelaxTestRunner if the from_gui flag is sent to the main Test_suite_runner class.
- The test result handling is now performed 100% in test_suite_runner. Previously each class of test (system, unit, and GUI) were managing a separate instance of RelaxTestRunner. Now it is all controlled from one spot. This will allow better management of the tests from the GUI.
- The results of the unit tests are now going to the proper sys.stdout stream. The text was previously sent to the initial stream that sys.stderr is set to. This is overwritten by relax though to be able to send it to the relax controller. This allows the results to be captured.
- Added the 'Tools->Test suite' menu entry.
- The checks in the model-free analyses for correct relaxation data errors now prints out the spin ID string.
- The test suite runner 'tests' argument now defaults to [] which is the proper null value.
- Renamed the 'Settings' menu to 'Tools'.
- The results viewer window now only executes one user function for the diffusion tensor if PyMOL is missing, preventing 3 errors (with windows) from appearing.
- Modified the GUI interpreter apply() method to catch RelaxErrors. Now gui_raise() is used to raise the error and show a dialog, and the method returns the execution status.
- The diffusion tensor PDB in the results viewer is now launched by synchronous pymol user function calls.
- The C modules are now compiled as universal binaries on Mac OS X. This includes the targets i386, x86_64 and ppc64 by default.
- The relax information print out now includes the version and path info for the mpi4py and wx modules.
- The spectrum ID is no longer stored if spectrum.read_intensities fails to load any data. A call to the delete() function has been added to remove all data loading prior to the error.
- Redesigned the gui_raise() function so that it is more user friendly. The relax controller window with error message is shown first, followed by the modal RelaxError message dialog on top of all other windows.
- The spectrum.read_intensities user function now throws a RelaxError if no data was loaded. This is to tell the user that something went wrong, and makes more sense in the GUI mode.
- With debugging turned on, the relax test suite no longer captures the IO streams. This will allow for better debugging of racing in the GUI tests on MS Windows.
- Removed the brackets from the user function names in the RelaxError system as these make no sense in the GUI version of the user functions.
- Clicking on 'Execute relax' now raises the relax controller to the front, if already shown.
- The GUI prompt window is now also deactivated with the execution lock. This will prevent race conditions as previously the user was able to execute any user function or manipulate any of the data in the relax data store while execution was in progress.
- More of the main menu entries have been disabled with the execution lock to prevent racing.
- The spin loader toolbar button in the spin viewer window is now properly disabled with the execution lock.
- The spin loader button in the spin viewer window is now deactivated with the execution lock.
- The wizard page base method on_apply() now does nothing. This should help eliminate Mac OS X bugs.
- The scipy python package is now listed with the relax info (-i flag).
- The peak list and relaxation data GUI element pop up menus are now disabled with the execution lock. This will prevent weird bugs.
- The spin viewer window is now properly maximised on MS Windows.
- Improvements to the showing of the relax controller on errors and warnings. The Show() call is no longer made if already shown, and if not shown, the LogCtrl is scrolled to the position of the error message.
- The relax controller is now shown on all errors and warning (or raised if below other windows).
- The View menu entries now raise the window to the front if already open, this is useful when too many windows are open.
- The spin.name page is now added to the front of the Rx peak list wizard.
- The spin.name GUI page is now added to the front of the NOE peak list wizard if spins are not named.
- Expanded the spin.name user function docstring.
- Shifted the spin ID field to the end of the spin.name user function GUI page, this is to make it easier for users as it is often assumed that the first field is the important one.
- The proceed_on_error flag is now taken into account by the wizard's finish button.
- The Rx peak list wizard now no longer skips to the next page when an error occurs.
- All GUI user functions now use the base page execute() method instead of the interpreter directly.
- Created the user function base page execute() method for running the user functions. This will launch the interpreter in either asynchronous or synchronous mode dependent on the sync flag.
- The sync flag is now set for all of the pages of the NOE peak list wizard.
- The UF_page base class now accepts the 'sync' argument, this will be used to allow for asynchronous or synchronous operation.
- The NOE peak list wizard should now stop proceeding on all errors.
- Modified all of the gui_to_*() functions to catch a real None input value.
- Created the gui.misc.gui_to_str_or_list() conversion function.
- Created the gui.misc.gui_to_int_or_list() conversion function.
- The relax controller menu now has icons.
- The relaxation data list GUI element now has a pop up menu with a 'Delete' entry.
- The relax data list delete button now opens with the first selected item in the list.
- The relax_data.delete GUI user function can now have a starting ID string value.
- The peak list GUI element ListCtrl now has a pop up menu with a 'Delete' entry.
- The peak list GUI element now has a delete button which launches the spectrum.delete user function.
- The spectrum.delete user function can now be started with an initial ID string.
- Created the RelaxSpectraError and RelaxNoSpectraError error classes for spectral data.
- Improvements to the wizard _display_page() method.
- The user function class is no longer stored in self.gui.
- Elimination of the self.gui class object.
- Converted the results viewer window to handle the new user function GUI page design.
- Better support for running a script and the GUI from the command line, the script is now run at the very end, after all of the GUI is set up, and is run with a wx.CallAfter call.
- The spin loading wizard is now accessible from the tree's root menu in the spin viewer window.
- Added a toolbar button to the spin viewer window to launch a wizard for loading spins. A simple wizard has been created for the spin viewer window for loading spins which directs the user to either the sequence.read user function or the structure.read_pdb and structure.load_spins user functions. The wizard page Load_method_page has been added at the start to allow the user to choose the method, and the last page Finish_page has been added so that the wizard can have a finish button and terminal page.
- Converted all of the user function GUI pages to use the new create_wizard() base method. This significantly simplifies the code. The functions also no longer expect a wx event.
- The deselect user function GUI pages no longer expect the user function page to be returned.
- Added the return_page argument to create_wizard() so that the user function page can be selectively returned.
- Complete redesign of the user function menu system, this is now more flexible and should be more compatible with window ordering under MS Windows.
- Simplified the deselect user functions using the new GUI user function design.
- The create_wizard() method now returns the user function page, this will be needed as sometimes the fields have to be changed.
- Removed the now useless UF_base.__init__() method.
- The User_functions class no longer takes any arguments.
- The interpreter singleton is now being used by the user function GUI pages (part of the elimination of self.gui).
- The relax GUI no longer starts maximised if debugging is on.
- The script GUI user function is now operational again, the interpreter object is now imported and the synchronous apply() rather asynchonous queue() method is now used. This allows the execution lock to be released by the script at the end.
- The script user function GUI element now uses wx.GetApp() to access to the relax controller window.
- The GUI Main instance is now stored in the wx.App as self.gui, this will allow access to the GUI class via wx.GetApp() calls, avoiding the need to pass the instance around (part of the elimination of self.gui).
- The screen is no longer cleared prior to relax execution on MS Windows preventing the Windows PowerShell history from being wiped out.
- Improved the RelaxError messages in validate_sequence(), the invalid data is now printed so that the user can see why it is invalid.
- Improved the print outs of the scons 'binary_dist' target for Mac OS X.
- Modified the 'clean' scons target to remove the py2app build and dist directories (for Mac OS X).
- Created the 'scons binary_dist' target for Mac OS X. Typing 'scons binary_dist' on a Mac will now create a DMG image of a universal Mac OS X application.
- Added the Mac OS X DMG distribution file names to the scons script.
- Modified the setup.py file so that the Mac OS X .app creation code is in the mac_setup() function.
- Updated the hdiutil command options for the Mac OS X DMG file creation.
- Added instructions to the setup.py file for creating a Mac OS X DMG distribution file.
- Removed the GUI wait_for_interpreter() method as this is replaced by the interpreter flush() method.
- Text files in the results viewer window are now opened with a text editor on Mac OS X and MS Windows. On a Mac, the text file of NOE values was being opened up in 'Saturn', as the file ending '*.out' is associated with that software.
- The gui_error() window caption is now simply 'RelaxError' rather than the specific relax error name, this now matches the prompt/script print outs which only have RelaxError (unless debugging is turned on).
- The GUI tests in the test suite no longer have IO redirected to a window in Mac OS X and MS Windows.
- Deleted the old gui.filedialog.opendir function and replaced it with a specialised RelaxDirDialog class. This class is more advanced in that it changes the Python working directory so that the user does not have to always navigate back to the same place if relax is launched from a different directory.
- The RelaxFileDialog object now changes the relax working directory as the user changes directories.
- The Rx spectra list wizard now uses the on_init() wizard page method for the page updates. This prevents the values in the pages being reset when the apply button is clicked.
- Created the GUI wizard page method on_init(), this is executed each time a wizard page is newly displayed.
- Removed the check for Monte Carlo simulations from the monte_carlo.setup user function allowing MC simulations to be run more than once.
- The results viewer window no longer shows 1 warning dialog per results file. At the end of the analysis, one warning dialog per results file was being shown as the execution lock was on. Now a special method for the 'result_file' observer object has been added which skips this dialog.
- The Monte Carlo simulation state is now turned off after the MC analysis is complete. This allows the user to make slight modifications and rerun the analysis and optimisation. The monte_carlo.error_analysis user function switches the state at the very end, just as monte_carlo.setup switches the state to on.
- The relax execution lock now has debugging print outs.
- The status container instance is now private in the Relax_lock objects.
- The fake_lock variable in the status module classes is now private.
- The spin_id_to_data_list error messages are now more informative.
- The RelaxInvalidSeqError now prints out a more detailed message for the validate_sequence() function.
- The flush flag is set for the first page of the Rx peak height loading wizard.
- Added the ability to flush the GUI interpreter thread in the wizard prior to changing to the next page, this will help in solving races when a series of user functions are strung one after the other.
- The notification of observers in status.observers.gui_uf has been modified. The GUI user function pages no longer perform this as the calls to the interpreter are via the interpreter thread, hence the completion of the page does not signal the completion of the user function. Instead the interpreter thread (and the synchronous apply() call as well) perform the notification once complete.
- The GUI auto-analyses now initialise with a synchronous call to pipe.create(), this uses the GUI interpreter object apply() method to prevent race conditions. This is important as the pipe creation needs to be completed prior to the setting up of the GUI elements.
- Created the GUI interpreter object apply() for synchronous calls to the user functions.
- Redesigned the GUI interpreter object so that the thread is a separate object, this is to allow both synchronous and asynchronous calls to the interpreter.
- Added the _get_uf() method to the GUI interpreter object for abstracting the code.
- All the model-free macro methods are no longer private, the class will not be used as a base class for the model-free specific class.
- Abstracted the model-free 'classic' Molmol and PyMOL creation in to a base class. As most of the code between the specific_fns.model_free.molmol and specific_fns.model_free.pymol modules is identical, significantly simplifying the code base.
- The results viewer window can now open Molmol macro files.
- The results viewer will now open PyMOL files in PyMOL via pymol.macro_run.
- Modified the Molmol macro related user function front end to match those of PyMOL, there are: molmol.macro_exec is now molmol.macro_apply; molmol.write is now molmol.macro_write; molmol.macro.run has been added to execute macros from text files.
- The GUI interpreter thread is now flushed prior to execution of the auto-analyses.
- Created the GUI interpreter thread flush() method for blocking until the queue is empty.
- Added a join() wrapper method for the GUI interpreter thread internal queue.
- Added the empty() method to the GUI interpreter thread to determine if the internal queue is empty.
- Some cleaning up of the mpi4py processor module.
- Removed a pile of unused code from the mpi4py processor module.
- Removed the _sys_exit module variable from the mpi4py processor as it is unnecessary.
- Eliminated the restore_stdio() method from the multi package, the redirection of IO streams is totally incompatible with an IO redirection performed by the underlying Python program.
- Removed the IO redirection from the uni-processor return_object() method. The IO redirection in the 'multi' package overwrites all IO redirection any Python program is attempting to perform.
- The uni-processor call to capture_stdio() has been removed, no IO redirection will be performed in uni-processor mode.
- Deleted the STDOUT and STDERR capture in MF_minimise_command multi-processor class as it was breaking both the GUI and the test suite.
- Removed the multi_processor module as this is now called multi_processor_base. This was deleted a long time ago but somehow survived in one of the branches and was merged back in.
- Renamed the PrependOut class to IO_filter in multi/processor_io.py.
- Renamed the prependStringIO module to processor_io in preparation for a redesign.
- Clean up of the multi-processor IO module. The Multiplex_stdout class has been deleted as this is the wrong way of handling the IO streams and is unused anyway. The PrependStringIO class has had the getvalue() and truncate() methods removed as these need not be implemented as it is provided by StringIO.
- Created Redirect_text.flush() for the relax controller for compatibility with the multi-processor code.
- All calls to user functions in self.gui.interpreter now pass through the queue() method.
- The 'relax_gui_mode' module is blacklisted from the epydoc documentation generation. Without this, the relax GUI launches when executing 'scons api_manual_html'.
- The dauvergne_protocol auto-analysis now creates the PyMOL macros for the model-free data.
- The molmol.write and pymol.write now add the macro files to the result files list.
- The dauvergne_protocol auto-analysis now generates MOLMOL macros and text files with the parameters.
- The interpreter thread no longer dies when an error occurs. This has been redesigned so that the error catching occurs within the infinite loop. Without this the user functions are completely useless after an error and do nothing.
- RelaxErrors are handled as in the auto-analyses and prompt/scripting mode in the GUI user functions. The traceback is now suppressed and a dialog with the error is show.
- The print outs for catching exceptions in threads is now going to STDERR rather than STDOUT.
- sys.__stdout__ and sys.__stderr__ are no longer being written to.
- Saving the relax state from the GUI now shows the busy cursor for user feedback. After MC sims saving the state can take a few seconds with the GUI frozen, so this feedback is necessary.
- Errors are now handled properly in the interpreter thread for GUI user functions.
- The GUI analysis execution threads are now daemonic to allow relax to exit.
- Redesigned how user functions are executed in the GUI so they are queued and launched in a thread. This allows the GUI to be responsive while the user functions execute. This is only at the level of the GUI and not the relax interpreter. The execution lock is also acquired to lock up the GUI while the user function executes. A special daemon thread called self.gui.interpreter has a queue object so that a series of user functions can be queued up if needed. The program now also exists with wx.Exit() call to prevent unhandled exceptions occurring in this daemon thread.
- The pipe.create user function page is now using PIPE_DESC to present a list of pipe types for the user. This gives the descriptive name of the data pipe type rather than the keyword argument values.
- Created the PIPE_DESC dictionary to provide descriptions of the data pipes.
- The consistency testing and hybrid data pipes are now listed in the pipe.create user function docstring.
- The GUI now returns to normal when opening an invalid or incompatible save file.
- Molmol is now properly launched from relax to read commands from STDIN.
- Synchronised the code for handling Molmol and PyMOL. The Molmol code is now very similar to that of PyMOL, using subprocess.Popen rather than os.popen. There is now a Molmol execution object that is used by the molmol user functions.
- The GUI tests are now skipped when the wx module is not present (or is broken). This allows relax to operate without having wx installed.
- Modified the dauvergne_protocol auto-analysis to be able to loop over all the global models. The diff_model argument can now be a list of global model names, allowing the protocol to loop over each diffusion model.
- The results viewer window also updates via the result_file observer.
- The result_file observer object has been created and is being used throughout relax.
- PyMOL is now always launched as an external program as the pymol module loading method was causing huge problems for the GUI.
- Diffusion tensor PDB files are now opened in PyMOL from the results viewer window.
- The cdp.result_file structure has been modified to include a type, a label, and the file path.
- The results viewer window presents the results files in a wx.TextCtrl.
- The results viewer window is deactivated with the execution lock.
- Modified the results viewer to operate like the spin viewer with respect to pipe changing.
- The results viewing code (the viewer window) has now been separated from the analysis GUI code.
- A diffusion tensor representation of the final results is created for dauvergne_protocol.
- Grace plots of the final model-free results are now produced by the dauvergne_protocol auto-analysis.
- Deleted the status_reset() method from the dauvergne_protocol auto-analysis as it served no purpose.
- All the data pipes are cleared out in the final stage of the dauvergne_protocol. This is to remove many of the temporary data pipes from view of the user in the GUI.
- Removal of the unused gui.execution.calc_modelfree module. This was a direct copy of the auto_analyses.dauvergne_protocol module, but is unmaintainable and of no use in the GUI anymore.
- Modified the pipe editor window design to be closer to that of the spin viewer. The observer methods are now unregistered on closing the window, which should speed up relax.
- The data pipe and spin viewer window Show() methods are now only called if IsShown() is False.
- Warning dialogs are shown if the pipe editor or spin viewer windows are opened during the execution lock.
- Improvements to the user warning dialog about closing windows, the dialog is now only shown once at the start and it blocks the auto-analysis.
- Added a message dialog to warn the user to close the spin viewer and pipe editor windows to speed up calculations.
- Deleted the unused dir_message(), exec_relax() and relax_run_ok() message functions.
- The pipe_lock and spin_lock (via Relax_lock) locks are now reentrant locks. This allows nested locking via one thread, which is necessary as the functions of generic_fns.pipes and generic_fns.mol_res_spin often call functions of the same module in a nested way.
- Created an object called Relax_lock to help debug locking issues in relax. The status.spin_lock lock is now using Relax_lock.
- All of the generic_fns.mol_res_spin fns which modify the data structure are now using the new lock.
- Created the status.reset() method to resetting the status object.
- Created a lock object for the molecule, residue and spin data structures. This will be used to prevent races when spin data is being accessed and changed at the same time. This affects the spin viewer window which is very sensitive to races.
- The relax controller window is calling Layout() after updating to show all panels properly. This is needed when showing the model-free or Rx panels.
- Clean up of the showing and hiding of spin viewer window, all observers and registered now in the Show() method and unregistered in handler_close().
- The R1 and R2 curve-fitting tabs are completely deactivated by the execution lock.
- The NOE auto-analysis tab is completely deactivated with the execution lock.
- The execute relax button is now turned off by the execution lock in the model-free auto-analysis tab.
- The GUI analysis base class add_execute_relax() method now returns the button.
- The add_spin_systems() base class method now returns the Text_ctrl instance it creates.
- Converted the analysis base class add_text_sel_element() method to the object Text_ctrl. This has the Enable(), SetValue(), and GetValue() methods implemented as a wx object.
- Renamed the 'spin_ctrl' module to 'elements' to store all of the special GUI analysis elements.
- More enabling/disabling of the model-free auto-analysis GUI element.
- The spectrum list GUI element can also now be enabled/disabled via Enable().
- The relaxation data list GUI element can now be enabled/disabled via Enable().
- All the model-free auto-analysis activation and deactivation calls now pass through wx.CallAfter.
- The model-free model fields are now activated/deactivated with the execution lock.
- Created the Spin_control object for the analysis GUI elements from the base add_spin_element() method. This class implements the Enable(), GetValue(), and SetValue() methods to mimic a wx control.
- Tooltips are now given for the relax controller gauges and text fields.
- The spin viewer tree pop up menus are now disabled when the execution lock is on.
- All the spin viewer tree pop up menus now have IDs as class variables via wx.NewId().
- The spin viewer menus and pipe switching elements are now disabled when the execution lock is on.
- Many of the 'File' menu entries are now disabled when the execution lock is on.
- The main menu IDs are now all class variables called self.MENU_* and are given by wx.NewId().
- The pipe editor window is starting inactive if the execution lock is on.
- Most of the data pipe functions are now using the data pipe locking object status.pipe_lock. The functions which acquire the lock object and which modify the pipe state include: copy(), create(), delete(), switch(). The functions which acquire the lock object to prevent changes while they execute include: display(), pipe_loop().
- Created a lock object for the relax data pipes. This will be used to prevent races in the GUI when data pipe info is accessed, but when a thread is changing the data pipes at the same time.
- The pipe editor window methods are now deactivated when the execution lock is on.
- The original zoom level is available in the relax controller log control pop up menu.
- Zooming can now be changed with Ctrl-+, Ctrl-- and Ctrl-0 in the relax controller, enabling zoom in, zoom out, and the original zoom to be accessed by the keyboard.
- Created a replacement pop up menu for the relax controller log control. This has functions for finding text, copying text, selecting all, and zooming in or out.
- The relax controller log control can no longer have text inserted. This was happening with the middle mouse button click on GNU/Linux.
- A find dialog is now available for the relax controller log control to find text in the messages, this is available with Ctrl-F.
- Deleted the now unused gui.execution.calc_rx module.
- The GUI dauvergne_protocol test now uses the same optimisation settings as the system test.
- The diff_tensor_grid_inc dauvergne_protocol argument is now available in the auto-analysis GUI tab. This is not exposed to the user though.
- The dauvergne_protocol GUI test is now checking the same data as the equivalent system test.
- The solution for the dauvergne_protocol system test is reached after 1 iteration, so the test is shortened.
- Better testing of the new diff_tensor_grid_inc argument to the dauvergne_protocol auto-analysis.
- The dauvergne_protocol system test script can now run stand-alone.
- Re-activated and redesigned the system test of the dauvergne_protocol.
- The unit vector loading wizard is now stored in the base model-free auto-analysis class. This is for access to the GUI element from the test-suite.
- Fix for the unit vector check in the model-free auto-analysis GUI tab.
- Added a button and created a wizard for loading unit vectors from PDB files. This has been added to the model-free GUI auto-analysis tab.
- Unit vectors are now only checked for in the model-free GUI auto-analysis when needed.
- Full errors are raised in the protected_exec() function if in debugging mode.
- Improvements to the structure.vectors user function docstring.
- Created the wizard page spin_control() method for adding a spin control.
- The results file viewer is now executing the grace.view user function to display Grace files.
- Fix for the protected_exec() method - the error is no longer raised so it can return False.
- Implemented the NOE data_names() and return_data_desc() specific API methods.
- The gui_raise() method now turns off the busy cursor if needed.
- Added the 'Help->Licence' menu entry (this is a simple copy of 'User functions->gpl').
- The results viewer window now uses cdp.result_files. This decouples the files and their creation from the GUI.
- The grid search increments default to 21 now in the Rx fitting auto-analysis GUI tab, the MC simulation tooltip now also recommends a min of 500 sims.
- In debugging and test mode, the relax controller now writes back to the original IO streams instead of sys.__stdout__ and sys.__stderr__.
- The relax controller log control styles are now set to the 'modern_small' fonts.
- Expanded and renamed the 'modern' fonts.
- RelaxWarnings are now coloured 'orange red' in the log control of the relax controller.
- The Monte Carlo simulation number is now stored in the auto-analysis part of the status object. This is only when an auto-analysis is running.
- The relax prompt is now coloured blue in the relax controller log element.
- The STDOUT and STDERR streams are segregated in the relax controller LogCtrl and STDERR messages coloured red.
- The relax controller log window can now distinguish between STDOUT and STDERR messages. STDOUT and STDERR are now being sent to separate instances of Redirect_text, and added to the log queue with a flag specifying which is which.
- The relax controller and auto-analysis threads are now active in debugging mode.
- The relax controller Redirect_text object is now placing all messages onto a log queue and the LogCtrl is reading from this queue. The log_queue Queue object is now used to store messages so that not every write() event to STDOUT and STDERR results in the relax controller log window updating. This allows the controller and the GUI to remain responsive as masses of messages are produced.
- The new relax controller now appears to be thread safe.
- The relax controller window now can move behind the other windows.
- Key events are now controlled in the relax controller log element, this prevents text insertion and deletion.
- Scrolling now follows the end, if at the end, in the relax controller log window.
- Implemented limited scroll back on the LogCtrl relax controller log element. This will prevent the computer from running out of memory. The maximum number of lines is now stored in the status singleton.
- Created a custom control for the relax controller log element. This is derived from wx.stc.StyledTextCtrl and will allow much greater control.
- Renamed the relax controller IO redirection append_text() method to add_text().
- The gui_raise() function now only shows the dialog if the status.show_gui flag is set.
- Shifted the exception_queue object into the base of the status object.
- The spectrum.error_analysis can now be repetitively performed, this allows changes such as addition of new spectra to occur.
- A timer is now being used to update the gauges of the relax controller, the gauges were previously not pulsing correctly.
- The Question message dialog answer is now set to 'No' if the window close icon is clicked.
- The Missing_data and Question message dialogs are now always on top, this prevents them from being hidden by other windows.
- The gui_to_float() and gui_to_int() functions can now handle float or int inputs.
- All of the gui_to_*() functions now check for empty unicode strings u as well.
- Modified the gui_to_float() and gui_to_int() functions to handle expressions, this means that the float '1.23 * 1e-6' or '1.234 * 4 - 0.06' can input by the user.
- The font is now set on the text of the Question message box.
- Added checks for sequence and spectral data for the Rx curve-fitting and NOE auto-analysis GUI tabs.
- All buttons in the GUI now have their fonts set. This is for GUI consistency between GNU/Linux, Mac OS X and MS Windows.
- The about relax dialog is now resized dependent on the extent of the text, fixing the dialog on MS Windows.
- The wx.lib.wordwrap module is now used for wrapping the text in the about GUI dialogs.
- Shifted the font initialisation to the very start of the GUI launching.
- The results files lists are only updated if the files are not already there.
- Complete redesign of the relax controller. The new features include: A dynamically updated analysis specific status update; Analysis specific GUI elements, dynamically hidden or shown; A display of the current analysis and current data pipe; Correct updating of the gauges in all analyses; Separation of the text redirection and the progress updating; Text scroll back limited by default to 100000 lines; Text scroll back cleared as a user would expect with removal of lines from the start; Cleaner layout of all elements.
- The dauvergne_protocol auto-analysis now stores the maximum number of iterations value.
- Created the GUI analysis current_data() method for returning the data store container.
- The auto-analysis status objects are now set up for all auto-analyses.
- The auto-analyses status objects now have a completion flag 'fin' to indicate if the analysis is complete.
- Added a new analysis method current_analysis_type() for determining the current analysis type.
- The opening of the results viewer window after an analysis is now thread safe.
- There is now an observer object for the execution lock.
- The text redirection to the relax controller is set up in the controller removing repetition. The redirection was happening in the controller first and then again in each analysis.
- Modified how the auto_analysis status object behaves so setting values causes an observer to be notified.
- The fonts are now set for all parts of the wizard pages for OS consistency.
- The results display window is now shown at the end of the auto-analysis execution.
- A busy cursor is now shown while waiting for the new analysis wizard.
- The save_state flag has been added to the NOE auto-analysis so that the save state can be turned off.
- Removed the no longer used GUI NOE calculation module (gui.execution.calc_noe).
- The status bar is properly updated to show nothing if all data pipes have been deleted.
- The setting up of a new analysis tab now uses freezing and thawing and the busy cursor.
- The new_analysis method now checks that the C modules are compiled, and returns cleanly if not and an R1 or R2 analysis is selected.
- The save state dialog now only shows *.bz2 files to save as.
- The spin viewer now starts maximised on GNU/Linux and MS Windows, and at a smaller size on Mac OS X.
- Polishing of the Question message dialog. The buttons are now of fixed width and aligned to the right, and the relax-blue version of the dialog-warning oxygen icon is being used.
- Created a relax blue version of the dialog-warning oxygen icon.
- Layout improvements in a number of user function and other wizard pages, the description heights are now used (the variable had been renamed), and the free file format GUI element containing user function pages now use the space better and have been shortened.
- The free file format resetting now properly updates the GUI element.
- Polishing of the free file format GUI element. The internal buttons are now placed to the right hand side rather than below to save large amounts of space. A lot of unnecessary outside padding has also been removed, and the divider position is now properly calculated.
- Updates to the GUI fonts, and the addition of normal_italic.
- Improvements to the wildcards for the relax save state file dialogs. There is now a separation between the compressed *.bz2 *.gz files and the 'All files' entry for selecting an uncompressed version.
- The protected_exec() function now uses gui_raise() to handle errors.
- The gui_raise() function now prints the error message to STDERR if the raise flag is not set.
- Redesign of all the file dialogs in the GUI. All file dialogs are now instances of gui.filedialog.RelaxFileDialog. This fixes many inconsistencies throughout the GUI, includes presenting an wx.FD_OPEN style file dialog when a wx.FD_SAVE style should have been shown.
- The PDB file selector of the structure.read_pdb GUI user function now only shows *.pdb files.
- Removed combine_models from the structure.load_spins GUI user function page as that argument no longer exists.
- Improvements to the free file format GUI elements (window and element). This includes specifying fonts, button sizes, and a fix for the button sizer in the GUI element.
- The GUI is now frozen while opening a relax state and then finally thawed, removing visual artifacts on Mac OS X.
- Removed the 'Settings->Reset all settings' menu and added a reset button to the free file format settings.
- The Question class can now have the parent specified to allow for sub-windows to have the dialog focus.
- The missing data and question dialogs are now centred.
- Converted the question() dialog launching function into a class derived from wx.Dialog. This implements a custom yes/no dialog that is consistent between different operating systems.
- Layout improvements for the wizard pages on Mac OS X.
- Fix for the split/double help menu entry on Mac OS X, the SetMenuBar() call happens after all the menus are created.
- Created a script for forcing relax's GUI mode (relax_gui_mode.py).
- Added a script for building application packages of relax. This currently supports the building of a stand alone Mac OS X app (i.e. no python needed).
- The exit relax dialog now has a title.
- The Mac OS X build and dist app directories have been added to the scons clean_all target.
- Created a Mac OS X .icns version of the relax icon.
- Created a task bar icon for Mac OS X.
- The about windows now have titles (this makes the windows identifiable).
- The relax icons are now used for all of relax's windows.
- Better icon support in the GUI. The ulysses.ico file is now being used as it is an bundle of images, and the icon bundle is now set for the main window.
- Created transparent background images of the diffusion tensors for the model-free auto-analysis tab.
- Added a series of 4 buttons for calling value.set in the model-free auto-analysis tab. This is to make it obvious that the CSA, bond length, heteronucleus type, and proton type need to be set.
- A number of improvements to the value.set GUI user function. The on_display() method has been renamed to update_parameters() so the parameter list can be updated only when needed. The set_param() method has been added to set a starting parameter and its default value.
- The GUI user functions now show a busy cursor when loading so that the user isn't confused, wondering why relax is not responding.
- The value.set GUI user function now sets the value to the default when parameters are selected.
- Expressions can now be used in the value.set GUI user function for the number types.
- Modified the gui_raise() function to have the raise_flag argument allowing the raising of the error to be skipped.
- Created the analysis tab base class variable width_main_separator, this increases the space between the left hand side graphic and the right hand side elements.
- relax is now started maximised in GUI mode.
- The value.set user function GUI page now properly converts the value to the correct type.
- The relax controller is now colouring the status module lock and observer print outs.
- Improvements and fixes for the debugging print outs from the status module, and the text now goes to sys.stdout.
- The observer objects are now printing out execution information when in debugging mode.
- All acquire() and release() calls for the spin_lock and pipe_lock objects now are named, the name argument is now supplied to these methods.
- The Relax_lock object now has much better debugging facilities, and responds to the debug flag.
- Renamed the Relax_lock debug argument to fake_lock, again this is used to fake the locking mechanism, whereas debugging could be more fine grained.
- The Relax_lock object now has a 'name' argument which will be used in debugging.
- The pipe_lock locking object is now the special Relax_lock, this will allow for fine grained debugging.
- All pages of the Rx peak list wizard now cannot proceed on an error, this will trigger the user function flushing.
- A copy of the GUI interpreter singleton is now initialised in the wizard, this is used for the flushing of user functions prior to proceeding.
- The GUI interpreter object has been converted into a singleton.
- Changed the missing spin parameter messages to indicated that the value.set user function is needed.
- Converted the missing data dialog into its own wx.Dialog derived class. The dialog is now completely constructed by relax and will be constant across different operating systems.
- Added data checks for the dauvergne_protocol GUI auto-analysis tab. This allows for a dialog telling the user what is missing.
- Redesigned the dauvergne_protocol mode selection in the GUI. A special GUI element has been added to the analysis tab with a button that launches a new window for mode selection. Therefore clicking on 'Execute relax' instantly starts the analysis.
- Redesigned how the auto-analyses are handled by the status singleton. The init_auto_analysis() has been created, and each analysis has its own status container within the status.auto_analysis dictionary.
- Modified the dauvergne_protocol.py sample script to use the new design of accepting a filled data pipe.
- Removed the 'exclude' file name from the model-free data assembly in the GUI.
- Changing the model-free model selection in the dauvergne_protocol of the GUI now sets a red flag on the button.
- The add_button_open() analysis base class method now returns the button.
- Converted the relaxation data list GUI element to a wx.ListCtrl to match the spectra list element.
- Converted the spectra list GUI element from a wx.Grid element to a wx.ListCtrl element. This is visually more appealing, and is easier to control.
- The question() dialog now only appears when the status.show_gui flag is set.
- The SetValue() call for the model-free model list GUI element now updates the element with the new values.
- A strong warning is now given to the user if they try to modify the model-free model list.
- Implemented the model-free model selector window.
- Created the gui.misc.list_to_gui() function for converting Python lists to GUI strings.
- Removed the GUI README file as it is very much out of date.
- Shifted all of the font definitions into the new fonts module.
- Shifted the model-free model selection GUI element into the new Model_list class.
- Expanded the docs for the relax_data.read user function to include the Varian and Bruker frequency parameters.
- The spectrum and relaxation data lists now post EVT_SIZE events when modified. This forces the parent scrolled panel to properly layout out its contents and refresh.
- Removed visual artifacts in the wx.grid.Grid elements used in the spectrum and relax data lists. All cells are now set to the background panel colour, and then individual cells are set back to white. This removes the visual artifact of white outside of the wx grids.
- Spacing improvements in all the auto-analysis GUI elements.
- The virtual width of the analysis GUI elements now matches the real width. The horizontal scrollbar has also been disabled.
- Converted all of the GUI analysis objects into instances of wx.lib.scrolledpanel.ScrolledPanel.
- The ds.relax_gui data structure is initialised if absent when associating a pipe with a new tab.
- The popup menu is not shown if the status.show_gui flag is not set.
- The auto-analysis initialisation can now associate with a pre-existing data pipe.
- The data pipe editor now has a new 'Associate with a new auto-analysis' menu entry.
- Added a hybridise button to the data pipe editor.
- The data pipe editor is now registered with the gui_analysis observer.
- The observer status.observers.gui_analysis is now notified of all changes to the analysis tabs.
- Created an observer object (status.observers.gui_analysis) for changes to the GUI analysis tabs.
- The execution of the callback functions in the observer objects is now ordered based on the registration order.
- The data pipe editor can now be opened with Ctrl+D.
- Changed the pipe_switch observer object to pipe_alteration and all pipe changes are now signalled.
- Implemented the data pipe editor window, this will be used to manipulate data pipes including how they interact with the GUI.
- Converted the menu build_menu_item() method into a function of gui.components.menu to allow it to be used more easily by other parts of the GUI.
Bugfixes
- Fix for the pymol.cone_pdb user function for frame order models with no alpha average position angle. This is specifically for the isotropic cone and free rotor model, although other models might also be affected by this fix.
- Fixes for the add_molecule() structural API method.
- Fix for the internal structural object add_molecule() method for when no models exist, now a model is created if none currently exist.
- A lot of fixes for the internal structural object for handling multiple models.
- The internal structural reader can now create PDB files if atom numbers are missing, fixing the structure.write_pdb user function in certain edge cases.
- Bug fix for the pymol.cone_pdb user function for when there is no average domain position. This is necessary for the old 2-domain N-state model analysis type.
- Bug fixes for the n_state_model.cone_pdb user function, the code was old and not functional any more.
- Fix for the frame_order.cone_pdb user function, the create_cone_pdb() function was referencing a non-existent variable.
- Fix for the set up of Monte Carlo data for fixed alignment tensors in the N-state model. The _minimise_setup_fixed_tensors() method has been fixed to return the actual tensor rather than simulation for the fixed tensors, as there is no simulation tensor in that case.
- Bug fix for the relax_io.read_spin_data() function for spin IDs - spin IDs can now be handled if they are the first column in the data file.
- Bug fix allowing relax to be run in profiling mode. This has been broken since the merger of the multi-processor branch.
- Fix for the paramag.centre user function when a numpy array is used.
- Fixes for the N-state model optimisation setup if PCS or RDC data is not loaded.
- Bug fix for the setup of the N-state model target function, triggered by missing data.
- Fix for a divide by zero error in the PCS Q factor function.
- The RDC and PCS Q factor functions are now more robust when data is missing.
- Bug fix for the grace.write user function for when the spin ID is specified, the spin ID was previously unused.
- Bug fix for the Monte Carlo simulation data generation for the N-state model. The create_mc_data() method was always skipping RDC and PCS data due to an incorrect check for the presence of that data.
- Bug fix for the logging and teeing command line options.
- Bug fix for missing RDC back-calculated data (rdc_bc). If a sequence is read from a PDB file, but the N-H bond vector cannot be extracted due to a missing proton, the alignment tensor fit to RDC data (specifically the Monte Carlo simulations) would fail.
- Bug fix for a newly introduced dependency on the wxPython module. This wx module is now optional, and only required for the GUI mode. This allows relax to run without this module installed.
- Bug fix for IO capture in the test suite with Python 2.6 or below. The RelaxTestRunner._makeResult() replacement method has been reinstated. Replacing the class variable resultclass does not work with earlier versions of the unittest site-package.
- Fix for bug #18790 - the negative relaxation data errors.
- Fix for bug #18789 - the zero errors in Grace files. The problem was that the errors were being taken as the X-axis error values, which in the case of spin specific data is zero. Now the Y-axis errors are taken rather than the unused X-axis errors.
- The status.test_mode and status.show_gui flags are now initialised only once in the singleton to prevent them from being overwritten when a reset() call is made.
- Mac OS X bug fix for changing pipes in the spin viewer window. The pipe selector element event GetString() method was returning None as this is a read only ComboBox (in wxPython 2.9).
- Fixes for Mac OS X with wxPython 2.9 for the spin viewer window activation/deactivation, this is now via wx.CallAfter() calls to prevent memory leaks.
- Bug fix for Mac OS X when using wxPython 2.9.2.4 whereby wx.SafeYield() is causing 'Bus errors'. The wx.SafeYield(None, True) calls have been replaced by wx.GetApp().Yield(True) calls, which should do the same thing but do not cause bus errors on this developmental version of wxPython. This fix is important as the future Mac OS X relax app will use this version of wxPython for 64-bit and Cocoa support.
- Bug fix for the reporting of non-matching lines in the spectrum.read_intensities user function. The file data printed did not match the actual intensity data currently being processed, hence the wrong data was being printed as non-matching.
- Fix for running the test suite in debugging mode. The self.capt StringIO structure is always necessary for the final print out.
- Fix for the results viewer window on MS Windows - it is no longer hidden after switching pipes. For some reason MS Windows always brings the main GUI window to the front when pipe switches occur (probably the notebook switching).
- Bug fixes for racing in the results viewer window on MS Windows, wx.CallAfter() calls are required for this to work.
- MS Windows bug fix for pipe switching in the data pipe editor window, the pipe window would be hidden after the switch.
- MS Windows bug fix for the pipe editor window, the wx.Yield() call has been removed from the update_grid() method as it causes a wx._core.PyAssertionError on Windows.
- Bug fix for racing in the GUI on MS Windows when the relax prompt window is open. This was caught in the test suite, and only affects MS Windows. Now a wx.CallAfter() call is used to enable the GUI element.
- Bug fix for the GUI interpreter thread flushing on MS Windows. The Python Queue.empty() method is documented as being unreliable - and that is indeed the case on MS Windows (not on GNU/Linux or Mac OS X though). It sometimes returns false, continually, when the queue is completely empty.
- A lot of bug fixes for MS Windows with the handling of the busy cursor. All calls to wx.EndBusyCursor() are preceded by a check via wx.IsBusy(). For some reason, in contrast to other operating systems, MS Windows will sometimes turn off the busy cursor by itself. A subsequence call to wx.EndBusyCursor() results in an error.
- Bug fix for the main window status bar on MS Windows, the text is now being set with wx.CallAfter calls.
- Fixed a bug on MS Windows for the 'Close all analyses' menu entry and toolbar button. The sequence of internal events is very different on Windows compared to Mac OS X and GNU/Linux, and not everything had been processed before everything was deleted resulting in updates to dead GUI elements.
- Bug fix for the new analysis wizard cancelling on Mac OS X.
- Bug fix for the closure of the new analysis wizard window.
- Bug fix for MS Windows - the spin viewer window was being hidden by the main window when switching pipes.
- Bug fix for racing in the spin viewer window when switching pipes.
- Fixes for the peak list wizards for the NOE and Rx auto-analyses for Mac OS X.
- Bug fix for many unit tests on MS Windows. The os.tmpfile() call has been replaced by tempfile.mkstemp() in the data types passed into the unit tests of the prompt interface. The os.tmpfile() call on Windows results in a "OSError: [Errno 13] Permission denied" error.
- Bug fix for the scons clean target on MS Windows. The build and dist directories from the Mac OS X py2app program are now only deleted by the clean_all target which checks for the paths.
- Bug fix for a race condition on MS Windows blocking the test suite. The analyses update_spin_count() call sets the value of the spin systems GUI element. This is now via a wx.CallAfter() call to prevent the race in the GUI.
- Bug fix for MS Windows - the user function menus are now fully deactivated during execution lock. The submenus were strangely not all being deactivated, so now all submenu items are also deactivated.
- Bug fix for the switching between analysis tabs on MS Windows. The tab had not been changed when on_page_change() was being called (in contrast to GNU/Linux and Mac OS X). Now wx.EVT_NOTEBOOK_PAGE_CHANGED is being used to bind the page change event rather than wx.EVT_NOTEBOOK_PAGE_CHANGING.
- Bug fix for the structure.vectors user function back end, the check for already existing vector info now should work.
- Fix for the results viewer window on MS Windows, the user functions now have the results viewer window set as the parent so that the window is not hidden by the main GUI window coming to the front.
- Fix for the pipe editor window on MS Windows, the user functions now have the pipe editor window set as the parent so that the window is not hidden by the main GUI window coming to the front.
- Fixes for the residue.create and spin.create user function GUI pages on MS Windows. The default values are now correctly set. This affects the pop up menu in the tree part of the spin viewer window.
- Fixes for the user functions launched from the tree part of the spin viewer window on MS Windows. The spin viewer window is now set as the parent, so that the main GUI window does not come to the front.
- The user functions in the spin viewer window now have the parent window correctly set. This is to help with an MS Windows window ordering bug.
- Analysis tabs are now removed if the associated data pipe is deleted, avoiding nasty GUI crashing.
- Fixes and improvements for the peak list wizards in the NOE and Rx auto-analyses. The integration points page is now correctly set up. And the spectrum ID is now only set if the field is blank, preventing a reversion of the user selected value.
- The parent of the Question dialog in the pipe editor window is set so the window doesn't disappear. Without this, the main GUI window comes to the front after the dialog is shown.
- Fixes for the main GUI window moving in front of the spin viewer window. The spin viewer window is now set as the parent for the Question dialogs, so that this window remains at the front.
- Fixes for the residue user function GUI pages for when default values are sent to the page. This fixes the user functions in the spin viewer window.
- Fix for the new gui_to_str_or_list() function.
- Bug fix for the structure.read_pdb GUI user function, the values from the GUI are now converted to the correct form.
- Fix for the Help->Licence menu entry for the new GUI user function design, this additionally opens the relax controller window so the user will see the text.
- Fixes for the pipe editor window to handle the new GUI user function design.
- Fixes for the relaxation data reading GUI element for the new GUI user function design.
- Fixes for some of the GUI user function calls from the tree part of the spin viewer window.
- Fixes for the GUI user function launching in the model-free auto-analysis tab.
- The spin viewer window now uses the full user function menu of the Uf_menus class, this should now remove the MS Windows bug whereby the spin viewer window would disappear to the back after closing of the user function wizard dialogs.
- Fixes for the auto-analysis wizards for the new user function GUI page design.
- Fixes for the GUI tests for the new design of the user function GUI pages.
- Fix for the script user function GUI element for opening the file dialog.
- Fixes for the relax controller, pipe editor and results viewer windows under MS Windows. These windows were all dark grey, the default frame colour under MS Windows. Now all elements are packed into a wx.Panel which sits inside the wx.Frame.
- Added checks for a current data pipe to a number of GUI user function pages, this prevents relax errors when trying to launch the user functions but when no data pipes exist.
- Fix for the MS Windows BAT file so that relax can be launched from the Windows PowerShell.
- Fix for the dauvergne_protocol model-free auto-analysis with the deletion of data pipes. Now only the data pipes created by dauvergne_protocol are deleted. This fixes the problem whereby data pipes from other analyses are deleted by dauvergne_protocol, breaking the GUI.
- Fix for the spin viewer window for MS Windows, the get_info() method now catches if no item is selected in the tree before trying to get the Python data from it. Asking for Python data from a missing TreeCtrl item ID works on GNU/Linux and Mac OS X, but not on MS Windows.
- Bug fix for MS Windows - the main relax window is now maximized upon start up.
- Mac OS X fix for the relaxation data list element - the height algorithm is now more robust. The ListCtrl.GetSize() method appears not to work on Mac OS X. Therefore a different algorithm has been designed to get around this Mac specific problem.
- Fix for the relax_fit.relax_time GUI user function. The combobox GetValue() call has been replaced by GetStringSelection() for the spectrum ID.
- Removed the wx.Yield() call from the spin viewer window refresh() method, this is to prevent recursive wx.Yield calls on Mac OS X from killing relax.
- Fix for the Rx peak list wizard for Mac OS X, the combobox SetValue() call has been replaced with SetStringSelection().
- Fix for the NOE spectrum loading wizard - the comboboxes need SetStringSelection rather than SetValue calls. SetValue and GetValue on the read only combo boxes seems to fail on Mac OS X.
- Mac OS X bug fix - the busy cursor is only turned off in the gui_raise window code if the busy cursor is on.
- Mac OS X bug fix for racing in the GUI interpreter thread. The flush() method was not working properly on Mac OS X, so hopefully now it is thread-safe.
- Bug fix for Mac OS X for the spectrum.replicated GUI user function. A GetValue() call fails on Mac OS X for a read only wx.ComboBox if no value is set.
- Fix for the Rx auto-analysis GUI test for the changes to the spectrum.replicated user function GUI page.
- Another Mac OS X test suite fix - the spin viewer window menu bar is now no longer set in the gui tests.
- Bug fix for the test suite under Mac OS X - the GUI's SetMenuBar method is only called if status.show_gui is set. This prevents the menu bar from starting when running the GUI tests.
- Bug fix for Mac OS X - the timer in the relax controller is started with a wx.CallAfter() call. This is to ensure that it will start from the main thread, which is essential.
- All wx calls to Show(), ShowModal() and PopupMenu() are now suppressed if the status.show_gui flag is not set. This is to eliminate problems of GUI elements starting up in the test-suite under Mac OS X.
- Fixes for many user function GUI pages for when the apply button is clicked. The combo box GUI elements were having data appended each time on_display() is called (this happens with a click on the apply button), but the previous values were not cleared out. This results in very long repetitive lists.
- Removed a recursive call to wx.Yield in the spin viewer window as this is fatal on Mac OS X.
- Fixes for the spectrum.replicated user function GUI page for when the apply button is hit. The spectrum IDs were continually appended to the ID boxes, so the lists could get quite long.
- Fix for the model-free model changing question dialog in the dauvergne_protocol analysis. The dialog is now larger to see all text, and the answer is no longer back to front.
- Bug fixes for all of the specific analyses for running Monte Carlo simulations multiple times. Many of the specific analyses were raising RelaxErrors if simulations had previously been run. Now this no longer occurs, so that the analysis can be re-run which is important in GUI mode.
- All of the major GUI and X freeze fixes have been ported to the relax data list. The fixes for the spectrum list GUI element are now present in the relaxation data list GUI element as well, as the same problems occur in both code paths.
- Fix for the size_cols() method of the spectrum list GUI element. With the asynchronous updating of the element, sometimes the columns are not setup prior to a size_cols() call.
- Bug fix for the freezing of X windows! The spectrum list GUI element is now updated with a CallAfter() call so that the element is updated in a thread safe way. Without this, the entire X windows system would sometimes freeze!
- Bug fix for the freezing of the GUI. The spectrum list GUI element was trying to update itself during execution lock, causing races if the spectrum data structures in the relax data store are being modified as the GUI element update is occurring. This would result in a hard lock of the GUI.
- Fix for the validate_sequence() function - the eval() calls raise all sorts of errors.
- Fix for the reading of the sequence from generic formatted files with None in some of the columns. This second problem is for the non-integer columns as the text 'None' was being interpreted as the name.
- Fix for the reading of the sequence from generic formatted files with None in some of the columns. The generic_fns.mol_res_spin.generate_spin_id_data_array() function now checks for when the data list contains 'None'.
- Fix for the Rx peak height wizard, the user function flush flag was incorrectly named.
- Fix for the wizard page _ok() method for the uf_flush flag.
- Fix for the results viewer window file opening.
- Fix for the results viewer window in testing mode - it is now not shown.
- Fix for the pipe editor window - it is now updated when initially created to show all loaded pipes.
- Fixes for all the calls to the GUI interpreter instance in the spin viewer window. This is now a special thread object, and user function calls are now queued.
- The auto-analysis GUI pages are now waiting for the data pipe to be created, fixing race conditions.
- Some more fixes for the relax 'mode' class variable, these problems were due to the multi-processor code merger.
- Fix for the GUI test mode - the mode variable should be a class variable.
- Fix for the multi-processor code as the PrependOut class has been renamed to IO_filter.
- Fixes for some of the file dialog wildcards.
- Fix for the opening of Grace files via the results viewer. It was being launched in both Grace and a text editor!
- The spin viewer tree update() method now acquires both the pipe and spin locks, preventing a major source of race conditions.
- The File menu entires for new or closing analyses or opening a state are blocked with the execution lock. This is needed because the accelerator keys are still active, even if the menu entry is disabled (possibly a GTK bug).
- The pipe editor window is now acquiring the pipe lock prior to updating its contents. This removes a lot of race conditions, as the pipes can often change which the update occurs.
- The execution lock is properly locked or released before notifying the observers. This will remove some race conditions where the locked() method is called before the acquire() or release() methods terminate.
- All wx object Append() calls now have their data passed through str_to_gui() first as well, this prevents GUI failures due to the wrong data type being encountered.
- All data passed into wxPython SetValue() calls now go through gui.misc.*_to_gui() functions, this ensures that the correct data type is sent into the GUI elements.
- Fix for the stereochemistry auto-analysis - the pipe_name argument does not exist in this auto-analysis.
- Fix for the dauvergne_protocol - the maximum number of optimisation iterations is now an int.
- The observers of pipe alterations should now all be thread safe, pipe changes in relax were causing segfaults in the GUI.
- Fix for the dauvergne_protocol auto-analysis 'final' model. The final stage of the dauvergne_protocol was broken. The data pipes here need to be created rather than copied from the initial data pipe as results are being read into these pipes.
- Fix for the dauvergne_protocol sample script - the mc_num argument is now called mc_sim_num.
- Fix for the assemble_data() method of the NOE auto-analysis - the number of spectra can be less than 3.
- Fix for the gui_to_float() for when an integer is given, it is now converted to a float.
- Fix for the spectral list GUI element on Mac OS X, the ListCtrl.DeleteColumn() method is faulty on Mac OS X. So instead all columns are deleted in one go, and then the entire thing is created on update.
- Fixes for the results viewer window updating on Mac OS X. The EVT_SHOW event was not being triggered by the frame's Show() method.
- Bug fix for the dauvergne_protocol - the pipe.copy() calls are now followed by pipe.switch(). This is needed as previously the pipe.create user function call automatically switched pipes, but pipe.copy does not.
- The results viewer window no longer fails if relax is still in the initial state.
- Bug fix for the value.set user function page - the parameter rather than description is now used. The description rather than parameter was being sent to the back-end.
- Fix for the spin data check in the dauvergne_protocol auto-analysis - deselected spins are skipped.
- Fix for the relaxation data check in the dauvergne_protocol auto-analysis.
- Fix for Mac OS X - the wizard buttons are now all of the same size. SetMinSize() rather than SetSize() needs to be used with wx.ADJUST_MINSIZE.
- The dialog Close() rather than Destroy() method is being used to terminate the wizard, this is necessary for Mac OS X.
- Mac OS X bug fit - removed the Destroy() call after ShowModal() in the wizard. The Destroy() method was actually being called twice, the first time either by the _ok() or the _cancel() methods, and the second time directly after the ShowModal(). This is fatal on a Mac.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.12
relax version 1.3.12 | |||||
| |||||
Keywords | Multi-processor, OpenMPI | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 22 August 2011 | ||||
| |||||
The relax 1.3.12 user manual |
Description
This is a major feature release which adds the ability to run relax on clusters or grids of computers via the MPI protocol. This merges in Gary Thompson's multi-processor branch which was started all the way back in 2007. The 'multi' package introduces two processor fabrics, the standard uni-processor mode and the mpi4py mode for using the MPI protocol with Python. The model-free analysis code has been parallelised to take advantage of the multi-processor modes, significantly speeding up calculations on clusters with near perfect scaling efficiency. The flexible 'multi' package can easily be extended for other multi-processor modes such as additional MPI implementations using different Python libraries (pypar, etc.), the use of SSH tunnels for parallel programming, use of the twisted framework for communication, or the parallel virtual machine (PVM) via pypvm. For more information on how to use this, see https://www.nmr-relax.com/mail.gna.org/public/relax-devel/2007-05/msg00000.html.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.12
(22 August 2011, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.12
Features
- The multi-processor capabilities of Gary Thompson's multi package including both uniprocessor and mpi4py modes.
Changes
Too many to list.
Bugfixes
N/A
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.11
relax version 1.3.11 | |||||
| |||||
Release type | Major feature | ||||
---|---|---|---|---|---|
Release date | 12 August 2011 | ||||
| |||||
The relax 1.3.11 user manual |
Description
This is a major feature release - all users are recommend to upgrade to this version. The major features include the integration of relax and the BMRB via the reading and writing of the BMRB NMR-STAR format files for model-free analyses, support for reading the XYZ 3D structure files used in organic chemistry, significant GUI improvements, and better support for the Bruker Protein Dynamics Centre (PDC) files. In addition a large number of bugs have been resolved. All together, this is a large release consisting of just under 2000 individual changes.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.11
(12 August 2011, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.11
Features
- Integration of relax and the BioMagResBank (BMRB, http://www.bmrb.wisc.edu).
- Support for the creation of NMR-STAR version 3.1 files for BMRB deposition of model-free analysis results.
- Support for the reading of all versions of NMR-STAR files containing model-free or relaxation data from the BMRB.
- Use of the new bmrblib library for BMRB integration support.
- Activated the PDC peak intensity type reading.
- Added the Bruker PDC to the exp_info.software_select user function back end.
- Implemented the value.set user function in the GUI.
- Redesign of how relaxation data is handled within relax so that the data is identified via ID strings rather than relaxation type and frequency strings.
- Added two sample scripts for determining the populations of an ensemble of small molecules. This uses RDCs and PCSs with the N-state model to study the dynamics of small organic molecules (http://dx.doi.org/10.1002/chem.201100854).
- The GUI can now be resized.
- Big clean up and simplification of the GUI code resulting in a more regularised GUI on all operating systems.
- Added initial support for determining protein connectivities in the internal structural reader. This is currently only for intra-residue connectivities in the protein backbone.
- Support for the reading of the organic chemistry XYZ 3D structure file format.
Changes
- Removed the Numeric module from the --info print out as it is completely unused now.
- Added the Bruker PDC software info to the exp_info module.
- The pdc.read user function back end is now reading the PDC version information.
- Added a catch for the "worst case per peak scenario" option in the PDC. This will now throw a RelaxError, telling the user to go back to the PDC and use the other option.
- Converted the pdc.read user function back-end to use the \t delimitation of the PDC file for parsing.
- The R1 value and error are now being read directly from the PDC file.
- Added wrapper methods to the relaxation curve-fitting specific code for the new C modules. These allow the parameter numpy array from minfx to be converted into a Python list prior to sending it into the C module.
- Added a check for the runpy Python module.
- Scripts can now be run again under Python versions 2.4 or lower (by avoiding the runpy module).
- The auto_analyses package modules are now imported by __init__ to force their existence.
- The relax_data.back_calc user function arguments no longer need to be supplied.
- Shifted all of the model-free sample scripts into the new subdirectory sample_scripts/model_free.
- Added copyright headers to all of the sample scripts, and updated the introduction text. This allows users to determine the age of the scripts.
- Updated the OpenDX mapping sample scripts from the relax 1.2 to the 1.3 design.
- Added a sample script for creating plots of experimental verses back calculated relaxation data.
- Deleted the incomplete and useless N_state_model.py sample script.
- Created a sample script subdirectory called n_state_model.
- Added a sample script for the unsuccessful two domain N-state model optimisation.
- Deleted the ancient TODO file, as it is no longer relevant.
- Deleted the SRLS analysis type - there is no incentive to develop this part of relax.
- Removed 'relax_disp' from the VALID_TYPES data pipe type array. This is supported in the relaxation dispersion 'relax_disp' branch and not in the main line.
- The RDC and PCS Q factor user functions now do nothing when data is missing rather than failing. A warning is given and the function now simply returns rather than raising an error.
- The grace file created by the pcs.corr_plot user function now separates each element into its own graph.
- Converted the summary from the final_data_extraction.py sample script into comma separated file (.csv).
- Added the PDB reading parts of Scientific python to relax so that Scientific python is no longer a relax dependency.
- The Scientific python PDB reading tests are no longer skipped if the module is not installed.
- Removed Scientific python and Numeric from the blacklisted modules. This is for the docstring fetching script to generate the user function section of the user manual.
- relax icon is not shown in window title if running on a Mac.
- Included the relax development team to copyright statement in the main window of the GUI.
- Peak lists and relaxation times are collected in data grids within the GUI.
- Updated the Bieri et al., 2011 reference as the relax GUI paper is now published (http://dx.doi.org/10.1007/s10858-011-9509-1).
- Changed the "Help->Contact relaxGUI" to "Help->Mailing list contact".
- Renamed the "Relaxation time [s]" column to "Relaxation delay [s]" in the GUI as this is a more correct description.
- Deleted [Unknown developer Sw! Edward's] ancient Melbourne Uni email address from the MEDLINE info.
- Normalisation of the text in the auto model-free analysis GUI tab. The font sizes are now all the same, the text is not right aligned (not seen under Linux but very ugly in Windows), and semicolon usage and capitalisation is normalised.
- Regularisation of the font formatting in the steady-state NOE GUI tab.
- Shifted the title and subtitle creation for the NOE frame into a base class for all frames to use.
- Regularisation of the fonts, titles, and subtitles in the Rx auto-analysis frames.
- Created the add_subsubtitle() base class method for creating a sub-sub-title in the GUI.
- Regularised the text in the results tab.
- Regularised the "Single delay cycle time [s]" text in the model-free frame.
- Attempt to regularise the text in the text controls.
- Regularised all the stead-state NOE frame text controls.
- Created the add_static_text() base class method for all the GUI frames to use.
- Added the add_button_open() base class method for regularising the buttons across GUI frames.
- Regularised all of the auto NOE analysis frame buttons.
- Added the add_text_sel_element() base class method for creating one of the basic frame elements.
- Better layout for the base class static text, text control and button addition (for the GUI).
- Added a stretchable spacer to the NOE window so the execute relax button is always at the bottom right.
- Completely refactored the model-free model buttons code.
- Shifted the model-free add_execute_relax() method into the base class for all analysis tabs to use.
- The peak intensity GUI element is now enclosed within a StaticBox.
- Shifted the main GUI window layout to the start of the __init__() method.
- Created the function gui.misc.add_border() for adding borders to generic GUI elements.
- Added an internal border to the relaxation peak list selection GUI element.
- Created the analysis tab base class methods add_spin_control() and add_spin_element(). These are similar to the text control and text selection elements respectively, but use a SpinCtrl instead.
- The model-free analysis tab now uses the base class add_spin_element() method for the max iterations.
- Shifted the model-free list box in the results tab into the new add_list_box() method.
- Shifted the 'Execute relax' text to be inside the button.
- Added an icon to the 'Change' buttons throughout the GUI.
- Added the oxygen icons for opening folders.
- The open folder icons are now used for the 'Results directory' change buttons.
- The settings windows are now derived from wx.Dialog rather than wx.Frame. This is for better operation under MS Windows.
- Added the document-close Oxygen icons.
- Added support for old save files in the Peak_intensity.sync_ds() method (for the GUI).
- Argument change_all for deselecting residues in the d'Auvergne protocol[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] has to be boolean.
- The relax_fit overfit_deselect() method now skips deselected spins. This prevents unnecessary warnings about missing data for deselected spins.
- All of the overfit_deselect() methods now skip deselected spins, avoiding confusing warnings.
- Created a script for byte compiling the Python source files.
- Added the data_type() method to the specific functions API. This will be used to determine the type that a given parameter from data_names() should be.
- Implemented the model-free version of the data_type() API method.
- The heteronucleus and proton type parameters can now be specified by their parameter names as well.
- The create_molecule, create_residue, and create_spin functions now return the created container.
- Modified the create_spin() function to overwrite the first spin if empty.
- Redesign of the structure.load_spins user function back end for XYZ file reading support.
- Redesign of the main relax module. The module has been renamed to 'relax.py', and the original file 'relax' is now a very basic python script which simply loads the module and runs the new start() function for launching relax.
- The relax mode normally specified by the command line can now be overridden.
- Removed the executable svn property on the info module.
- Shifted the pedantic flag into the status object.
- RelaxWarnings now only show a traceback when the pedantic flag is True.
- The relax state is now saved on a RelaxError when the pedantic rather than debugging flag is turned on. As both flags can be given, this allows for this state saving to be activated or deactivated.
- The relax_io.read_spin_data() function no longer skips short lines so that a warning is given for it.
- generic_fns.sequence.validate_sequence() now also checks for the spin ID, data and error columns. This is now used by relax_io.read_spin_data().
- Files created by the grace.write user function are now put into a new list cdp.results_files.
- The value.write user function now also adds to the cdp.result_files structure.
- Modified the execution lock to have a mode. This allows for greater control and avoid string comparison of names to determine if a script or auto-analysis acquired the lock.
- The dauvergne_protocol is now more robust if the program is interrupted and restarted later[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b]. The opt/results.bz2 file is now searched for, and if not the round is assumed incomplete.
- The pymol.tensor_pdb user function now shows the diffusion tensor using PyMOL sticks.
- Creation of the new structure.read_xyz user function.
- Addition of two new system tests Structure.test_read_xyz_internal() and Structure.test_read_xyz_internal2().
- Changing the description in the user functions structure.load_spins and structure.read_xyz.
- Code for extracting a vector between specified spins in a XYZ file has been included in the generic_fns.structure.internal.
- Debugging in the function generic_fns.structure.main.load_spin() in order to load a spin for XYZ file properly.
- For printing out of modified spins, a test to check whether the spin_name exists or not has been added.
- Added the pymol_macro() method to the analysis specific API.
- Clean up of parameters in the _create_mc_relax_data() specific API common method.
- A number of epydoc docstring fixes.
- The sconstruct script is only executed when it is the main loaded module or if launched by scons.
- Improved the list of modules and packages used in the epydoc documentation. The files and directories which are not python modules or packages are now properly skipped.
Bugfixes
- The setting of the integration method in the pdc.read user function now works.
- Fixes for the pdc.read user function back-end for the NOE PDC file.
- Fix for the pdc.read user function back-end for reading NOE data out of the new PDC files.
- Fix for the relaxation curve-fitting back_calc_I C function so that it works under Python 2.5.
- Fix for the initialisation of the Bruker_import class. This allows this module to be loaded in Python 2.4.
- The reference counting appears to not be needed in the C modules. This allows the modules to be compiled under Python 2.4 or lower.
- Loosened all of the model-free tests so that the minimisation statistics are no longer checked. This will stop users from thinking they have a problem with their version of relax, after running the test suite.
- Removed numpy from the relaxation curve-fitting C module code. This should help with incompatibilities (and segfault failures) between different Python versions, as this seems to be due to the numpy C interface.
- Improved the RelaxWarning for the reading of NMRView peaks with missing assignments (bug #17876).
- Fix for the N-state model for when only the paramagnetic centre position is optimised.
- Fix for the grid search limits as they were being scaled iteratively for each successive spin system (bug #18030). This only affects certain type of custom grid searches.
- A ":" symbol in the description of a function variable was preventing the compilation of the user manual using scons (bug #18037).
- Opened files are closed properly after writing in the final_data_extraction.py sample script.
- If no diffusion tensor is present, creation of diffusion pdb will be skipped (final_data_extraction.py sample script).
- Updates for the DASHA sample script for the current version of relax.
- Updates for the diffusion tensor optimization sample script for the current version of relax.
- Some fixes for the subprocess.Popen() calls on MS Windows.
- Removed event.skip due to conflict with Windows (auto-analysis Rx fix in the GUI).
- Fixes for the spin.copy GUI user function element. This still had remnants of the residue.copy window.
- The relax icon is not shown in "Global relax settings" window if running on a Mac. This fixes a bug whereby closing the window causes the GUI to crash.
- Complete redesign of the relax global settings window to fix the Mac OS X crashing (bug #18197).
- Fix for the global settings window - it needs to inherit from UF_window!
- Fix for the NOE auto-analysis - the column numbers for the deselected spins file are now assumed. The residue number is assumed to be in the first column. This is a hack until the spin selection part is better designed.
- Fix for the bug reported as sr #2764. The problem was that the sequence file is now in the variable sequence_file.
- Fix for the sequence.read user function - the force flag is now being passed on.
- Fix for the sequence.write user function - the force flag is now passed to open_write_file().
- Fix for the sequence.write user function when the column separator is not whitespace. The column widths are no longer fixed if the separator is not whitespace.
- Many bug fixes for the functions of the generic_fns.mol_res_spin module. These fixes are for when a data pipe other than the current data pipe is used.
- Fix for the relax save states - the current data pipe is now saved and restored. The info about which pipe was the current one was being blacklisted, so was not stored in the relax save file.
- Fix for the atomic position check in the spin.create_pseudo user function.
- Fix for pseudo-atom support when only a single structure is loaded. Pseudo-atom support was only working correctly for when multiple models were loaded and atomic positions were not averaged.
- Fix for the spectrum.read_intensities user function int_method argument for volumes. Volume integration should be called 'point sum', but the back end code was checking against the string 'volume'.
- Fix in one of the relaxation curve-fitting system tests - 'volume' should have been 'point sum'.
- Fix for the PCS back-calculation function - divide by zero is now avoided. The function was calculating the normalised bond vector between the lanthanide atom and itself. The normalisation in this case is now avoided.
- Fix for the spectrum user functions for when the ID order does not match those loaded. If the order of IDs sent to spectrum.replicated did not match the order they were loaded by spectrum.read_intensities, then the spectrum.error_analysis user function would fail. The order is no longer important.
- Fix - the pipe switching flag is now propagated all the way to the data store add() method. The flag was previously not sent to the method so that the creation of a new data pipe always resulted in a switch to that pipe. This bug is normally harmless.
- Fix for the model-free _determine_model_type() method when the spin container has no 'local_tm'. This code was failing in certain rare circumstances (when the setting up of the diffusion tensor was forgotten).
- Fix for structure.read_pdb for when the file contains no PDB data. This is now caught, and a warning is given and the function exists cleanly.
- Fix for the RelaxWarning system on Mac OS X, the base class __str__ method now returns a simple string. On a Mac, the warning message text was in unicode whereas the __str__() method must return a standard string. So now __str__() is using the str() method to convert.
- Fix for the structure.vectors user function. It no longer complains about a PDB already loaded when no PDB has been loaded.
- Fix for the resetting of the global optimisation round in the dauvergne_protocol auto-analysis[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b]. The value was being reset to None at every round.
- Fix for the round determination in the dauvergne_protocol auto-analysis[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b]. The 'opt' directory was missing in the path.
- Fix for the saving/loading of a results file in GUI mode. The save files were containing the ds.relax_gui object and restoring it on loading. This caused the data storage of the GUI to change underneath the GUI resulting in a crash or race conditions.
- Fix for the resetting of the relax data store - the cdp structure is now set to None. Previously the data store would be cleared, but the __builtin__.cdp structure would point to the old current data pipe, keeping it in existence and causing problems in the GUI.
- Fix for the xydxdy type Grace graphs - the dx data was not being placed in the file.
- Fix for the structure.create_diff_tensor_pdb user function for when no element info is available. These atoms where the element is not in the PDB file or cannot be determined should have been skipped.
- Fix for the molmol macro user functions - one of the args 'param' should have been 'data_type'.
- Fix for the spin_loop() calls when generating Molmol macros. The full_info argument should have been set to True.
- Fix for the molmol.write macro creation user function - the file arg can be None!
- Fix for the molmol.write user function for model-free parameters. Some of the parameters were using the ancient self.relax code path which was eliminated with the redesign of relax 1.2 to 1.3.
- Fixes for the old scripts/optimisation_testing.py script. This was also using the ancient self.relax code path.
- Fix for the molmol macro of the τs parameter, the spin container variable was spelt incorrectly.
- Fix for the data.align_tensor.calc_eta() function - divide by zeros are now avoided. When Azz is zero, η is now set to NaN.
- Typo fix in the unused and incomplete dfunc function to remove compilation warnings on MS Windows.
- Fix for the data.align_tensor.calc_R() function - divide by zeros are now avoided. When Aa is zero, Ar is now set to NaN.
- Fix for the test_opt_constr_bfgs_mt_S2_0_970_te_2048_Rex_0_149 model-free system test on MS Windows. The τe parameter check was too strict.
- Another divide by zero problem is being caught in the RDC Q-factor code.
- The dipolar_constant() and pcs_constant() functions now catch division by zero problems.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.10
relax version 1.3.10 | |||||
| |||||
Keywords | Bruker Protein Dynamics Centre (PDC) files | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 18 February 2011 | ||||
| |||||
The relax 1.3.10 user manual |
Description
This is a major feature release which introduces support for reading Bruker Protein Dynamics Centre (PDC) files. It also fixes a bug in the N-state model Q factor values when run in combination with Monte Carlo simulations for error analysis.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.10
(18 February 2011, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.10
Features
Changes
- Updates for 2 model-free system tests for a new system which again shows optimisation differences.
Bugfixes
- Fix for a bug in the N-state model - the Q-factors and back calculated RDCs and PCSs were set to that of the last Monte Carlo simulation.
- Fix for the N-state model error returning method for when errors are not present.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.9
relax version 1.3.9 | |||||
| |||||
Keywords | New GUI | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 26 January 2011 | ||||
| |||||
The relax 1.3.9 user manual |
Description
This is a major feature release which introduces the new graphical user interface written by Michael Bieri [Bieri et al, 2011]. This GUI provides easy access to a sub-set of relax's features - the R1 and R2 relaxation rate curve-fitting, NOE calculations, and the fully automatic model-free analysis of the dauvergne_protocol module [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.9
(26 January 2011, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.9
Features
- The addition of Michael Bieri's graphical user interface - relaxGUI [Bieri et al, 2011].
Changes
- Improvements to the HTML version of the user manual.
Bugfixes
N/A
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*Bieri et al, 2011] Bieri, M., d'Auvergne, E., and Gooley, P. (2011). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and μs motion of proteins. J. Biomol. NMR, 50, 147-155. (DOI: 10.1007/s10858-011-9509-1)
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.8
relax version 1.3.8 | |||||
| |||||
Release type | Minor bugfix | ||||
---|---|---|---|---|---|
Release date | 20 January 2011 | ||||
| |||||
The relax 1.3.8 user manual |
Description
This is a minor bugfix release in preparation for the impending merger of relaxGUI [Bieri et al, 2011]. New features include a sample script for creating CSV files from model-free results for import into spreadsheet programs, extensive system testing of all model-free models, fixes for a system test on 32-bit GNU/Linux, and a fix for running scripts with certain versions of Python.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.8
(20 January 2011, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.8
Features
- Created a sample script to create a CSV file of model-free results for reading into spreadsheets, based on the LaTeX table generation script.
- Extensive system tests for all the model-free models have been introduced.
Changes
- Loosened the te check in value_check() so that the test_opt_constr_bfgs_back_S2_0_970_te_2048_Rex_0_149() model-free system test would pass on 32-bit Linux.
- Renamed the model-free results LaTeX table generation script.
- Created a test-suite module to aid in the back-calculation of relaxation data from model-free parameters independent of relax.
- Updates for Python 3.0 using 2to3.
Bugfixes
- Fix for running scripts in certain versions of python - if a file with the same name as the script lies in one of the paths in sys.path, then that file will be executed rather than the script.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*Bieri et al, 2011] Bieri, M., d'Auvergne, E., and Gooley, P. (2011). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and μs motion of proteins. J. Biomol. NMR, 50, 147-155. (DOI: 10.1007/s10858-011-9509-1)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.7
relax version 1.3.7 | |||||
| |||||
Keywords | Diffusion tensor, model-free analysis | ||||
---|---|---|---|---|---|
Release type | Major bugfix | ||||
Release date | 10 January 2011 | ||||
| |||||
The relax 1.3.7 user manual |
Description
This is a major bug fix release - all model-free users of relax version 1.3.6 must upgrade to this version. The fatal bug is that the prolate diffusion tensor when initialised with Da set to zero will be converted to an oblate tensor. Other bugs fixed include support for volume integration together with replicated spectra, the scipy dependency now bing optional, 32-bit GNU/Linux test suite fixes, and better support for the reading of old version 1.2.x results files. An additional feature is that the relax packages/modules can now be imported and used outside of relax.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.7
(10 January 2011, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.7
Features
- Shifted the relax installation path variable from __main__ into the status singleton object, allowing relax modules to be imported outside of relax.
- Shifted the global relax debug flag from __main__.debug to the relax status singleton, allowing the flag to be defined even when imported from outside of relax.
Changes
- Speed up of the relaxation curve-fitting system tests.
- The sample_scripts/full_analysis.py script has been renamed to sample_scripts/dauvergne_protocol.py[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].
- Improvements to the test suite final print out with a table of skipped tests.
- The data pipe system test is avoiding the frame order data pipe, allowing the test to pass without scipy installed.
- The alignment tensor system test now uses the N-state model rather than frame order so it is always tested.
- The frame order system and unit tests are skipped if scipy is not installed.
- The frame order analysis is disabled if scipy is not installed.
- The data pipe generic code now uses dep_check to see if the relaxation curve-fitting is available.
- The system tests now use the RelaxTestLoader to allow tests to be skipped.
- The unit vector system tests using scientific python are now being skipped if the package is not installed.
- The structure system tests involving scientific python are now skipped if the package is not installed.
- The RelaxTestLoader has been added as a replacement for unittest.TestLoader to handle the skipping of tests when optional Python packages are not installed.
- Shifted the status singleton instantiation to the import level in all modules, saving execution time.
- Big code cleanups in unit_test_runner.py.
Bugfixes
- Peak intensity errors can now be calculated when using volume integration and replicated spectra (bug #17457).
- Failure of the prolate diffusion tensor in model-free analysis - if the tensor is initialised with Da = 0, the tensor is converted to being oblate. This was introduced in relax version 1.3.6.
- relax can now operate without scipy being installed.
- Updated four model-free optimisation system tests to pass under 32-bit Linux.
- Made the N_state_model.test_pcs_fit_zero_pos system test less stringent so it passes on 32-bit Linux.
- The model_free _model_setup() method should handle no model-free model being set when reading relax 1.2 results files (bug #17417).
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.6
relax version 1.3.6 | |||||
| |||||
Release type | Major feature | ||||
---|---|---|---|---|---|
Release date | 31 December 2010 | ||||
| |||||
The relax 1.3.6 user manual |
Description
This is a major feature release which includes many bug fixes and a security fix. Major additions include the addition of 9 new frame order models, execution locking, support for CCPN Analysis 2.1 peak lists, Monte Carlo simulations for the N-state model, optimisation of the Ln3+ position in the N-state model, weighting of RDCs and PCSs during optimisation, and no longer using execfile() closing a security hole.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.6
(31 December 2010, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.6
Features
- Addition of Michael Bieri's model-free data extraction script.
- Added support for CCPN Analysis 2.1 peak lists (exported in Sparky format).
- Execution locking has been implemented to prevent threaded execution from killing relax. This will be useful for the relax GUI.
- Scripts are now run as modules rather than using execfile(), closing a security hole.
- Created the frame_order.domain_to_pdb user function to associate PDB files with domains in the current data pipe.
- Rewrote frame_order.cone_pdb to handle all of the frame order models.
- The sign of the RDC can be inverted to correct for the negative 15N gyromagnetic ratio.
- Better identification of the molecule end in the internal PDB reader.
- Implemented Monte Carlo simulations for the N-state model.
- The grid_search user function argument incs can now be a list with None elements to fix parameters.
- Expanded the number of frame order models to include the 'free rotor', 'rigid', 'rotor', 'iso cone, free rotor', 'iso cone, torsionless', 'iso cone', 'pseudo-ellipse, free rotor', 'pseudo-ellipse, torsionless', and 'pseudo-ellipse'.
- Pre-defined probabilities can now be used in the 'fixed' N-state model optimisation.
- The Ln3+ position can be directly optimised in the N-state models.
- The pcs.back_calc user function now does something.
- Created the n_state_model.elim_no_prob to remove structures with zero probability.
- Created the align_tensor.fix user function for fixing the alignment tensor during optimisation.
- The alignment tensor optimisation is now optional within the population N-state model target fn.
- The RDCs and PCSs can now be given optimisation weights.
- Per point comments are now included in the Grace files.
- The RDC and PCS correlation plots now also show the experimental errors.
- The RDC and PCS back-calculation user functions now add the alignment ID to the RDC and PCS if absent to allow both data types to be back-calculated in the absence of measured data.
- The N-state model calculate() method now stores the back-calculated RDCs and PCSs and Q factors.
- The PyMOL module pymol.cmd is now available within the pymol user function class, accessible as pymol.cmd from the prompt/script interface.
Changes
- API documentation improvements with epydoc docstring fixes.
- Numerous new system tests to catch bugs and prevent bugs appearing in the future.
- Peak intensity data is now internally handled differently to improve its flexibility. This will be beneficial for handling Bruker PDC (Protein Dynamic Center) files, relaxation dispersion data, and adding new types of relaxation data.
- The 'scons clean' target now removes temporary relax save files.
- The molecule type can now be specified.
- Improved the diffusion tensor print out.
- pipe.delete without args will now delete all data pipes.
- Added some checks to the dauvergne_protocol model-free analysis[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] for the required previously optimised results.
- Shifted the steady-state NOE specific analysis code into its own package.
- Shifted the debug and pedantic flags into the __main__ namespace for better access from other modules.
- Modified the specific code API to remove a number of references to spin_id, as not all analyses use spins.
- Renamed the results_folder arg to results_dir in the NOE auto-analysis, and rearranged the args.
- Citations now include the status if not 'published'.
- Created a new directory 'graphics' for all relax artwork.
- The structure.load_spins user function now gives a RelaxWarning if no data could be found.
- The negative cones and z-axes are now not created for the pseudo-ellipses in frame_order.cone_pdb.
- Added some transparency to the cone in pymol.cone_pdb.
- Modified the pymol.cone_pdb user function to handle x, y, and z-axes.
- Modified create_cone_pdb() to accept a pre-made structural object and to create a file only when asked.
- Switched the names of the Pseudo_elliptic and Pseudo_elliptic2 classes.
- Created a API common specific code set_selected_sim() method for a single global model.
- Created a API common specific code model_loop() method for a single global model.
- All objects placed into the relax data store structure are now stored in the XML save file.
- Parameters can be fixed to the original values during the frame order grid search.
- The user function argument checker arg_check.is_int_or_int_list() can now allow for None list elements.
- The frame order model can be overwritten by frame_order.select_model.
- Shifted to using numpy.sinc() for the frame order equations.
- Switched the theta and phi angles in cartesian_to_spherical() to match the rest of relax.
- Created a new module for performing coordinate transformations (maths_fns.coord_transform).
- The pipe.display user function now places quotation marks around the pipe names and shows which is the current data pipe.
- The align_tensor.display user function now prints out the generalized degree of order (GDO) value.
- The back-calculated alignments tensors are now being stored in the current data pipe.
- Removed the docstring length check from the code validator script.
- The loading of RDCs and PCSs for non-existent spins now only throws a RelaxWarning.
- The select.read and deselect.read user functions can now accept file handles or dummy file objects.
- Limit arrays are now sent into the minfx generic interface for limiting simulated annealing.
- The align_tensor.delete user function can now be used to remove all tensors simultaneously.
- Made a RelaxError less stringent so that the paramagnetic centre can be unfixed.
- Initialising an alignment tensor now adds the ID to the alignment ID list.
- Changes to the NOE auto-analysis for the GUI: The output filename can be specified; The folder, where results files will be placed, can be specified; The label of heteronucleus and proton of peak lists and PDB file can be selected; The sequence is read either by sequence file or PDB file; Removed white spaces and progress output.
- Changed the alignment tensor parameter scaling back to 1 as this was slowing down the optimisation.
- The rdc.back_calc user function without an ID arg will back-calculate RDCs for all alignments.
- Renamed the pcs.centre user function to paramag.centre to abstract for the PRE.
- Better support for RDC and PCS correlation plots with and without errors.
- Inverted the x and y axes in the RDC and PCS correlation plots.
- Better support for tensor-less N-state model optimisation.
- The align_tensor.copy tensor_to arg can now be None, this is useful for copying between data pipes.
- Added a function for the pseudo-elliptical cosine function, this is a numerical approximation generated by series expansion.
- Added a method for translating pymol.cmd.do() commands into specific pymol.cmd functions. This prevents problems with commands being executed asynchronously. For example images were being saved before ray-tracing was complete.
- The RDC and PCS correlation plots now only show selected spins.
Bugfixes
- The loading of Monte Carlo simulation data from relax 1.2 version results files has been fixed (bug #17361).
- Bug fix for the relaxation data add_data_to_spin() function - missing data for individual spins was not properly eliminated.
- For the 1.2 results files, the data is being extracted even if the spin is not selected.
- Sparky peak lists from CCPN Analysis 2.1 can now be read (bug #17341).
- Fix for the broken grace.view user function (bug #17344).
- Added 'CH' and 'OT' as carbon and oxygen atoms to the internal PDB reader (bug #17343).
- The script path is now being removed from sys.path as this was causing incorrect scripts to be loaded if multiple scripts are executed sequentially or nested.
- Fix for the 'list index is out of range' error when differently sorted peak lists, or lists with missing data are loaded (bug #17276).
- Fix for the input of (Dxx, Dyy, Dzz, Dxy, Dxz, Dyz) ellipsoidal diffusion parameters.
- Fixes for some currently unused, but useful, diffusion tensor internal API functions.
- Fix for the NOE auto-analysis - the spins are now named to the value of the 'heteronuc' arg.
- Fix for the frame_order.cone_pdb user function - the cone is already in the PDB frame, no rotation required.
- Fix for the average domain rotation in pymol.cone_pdb.
- Bug fix for the frame_order.pivot user function - it is now functional.
- The base contents of the relax data store are no longer saved with a call to results.write.
- Fix for the pcs.back_calc user function for when multiple structures are loaded.
- Fix for rdc.read when neg_g_corr is set to True and the RDC list contains entries with None.
- Fix for the failure of model elimination in the full analysis script (bug #13259).
- Added a catch in iso_cone_S_to_theta() for bad order parameters > 1.
- The attached proton PDB name is no longer hardcoded to 'H' in the dauvergne_protocol auto analysis[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].
- When loading save states, data pipe names are always converted to a string to avoid unicode problems.
- Hardcoded the factorial() function to return support for Python 2.4 and 2.5.
- Small fixes and improvements to the rdc.back_calc user function - align IDs are being used instead of RDC IDs so RDCs can be back-calculated even if measured RDCs are not present. And spin info is also being checked for better error reporting to the user.
- Fix for the alignment tensor rotation matrix - it is now always in the right handed universe.
- Bug fix for the RDC back_calc() function - the align_id arg was being ignored.
- Fix for the RDC back_calc() function for when N=1 in the N-state model, the bond vector structure was not correct.
- Fixes for the N-state model target function setup for when no parameters are optimised.
- Fix for the Grace write_xy_data() function for when data values of None are passed in.
- Bug fix for the RDC back-calculation function.
- Bug fix for the control of PyMOL (as a module).
- Small fix for the grace.write_xy_header() function, the symbol numbers now range only between the legal values of 1 to 10.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.5
relax version 1.3.5 | |||||
| |||||
Keywords | frame order theory, N-state model, plotting, rotations, stereochemistry | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 21 May 2010 | ||||
| |||||
The relax 1.3.5 user manual |
Description
This is a major feature release consisting of over a year's worth of improvements and bug fixes, with close to 2000 code changes. All users are recommended to upgrade to this newest version. New features include the ability to determine the stereochemistry of flexible organic molecules, expansion of the frame order theory, better support for RDCs and PCSs, 2D Grace plot improvements, and many new rotation_matrix module conversion functions.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.5
(21 May 2010, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.5
Features
- Addition of the frame_order.ref_domain user function to specify the alignment of different domains.
- Converted the reduced J(ω) mapping sample script to the relax 1.3 design to make it functional.
- Created the 'rigid' frame order model.
- Made the profile module optional, removing the dependency on the Python development packages.
- Created the maths_fns.rotation_matrix.axis_angle_to_quaternion() function.
- Created the maths_fns.rotation_matrix.quaternion_to_axis_angle() function.
- Created the maths_fns.rotation_matrix.R_to_quaternion() function.
- relax save files are now by default XML formatted rather than the pickle format (for better compatibility with future relax versions and between different systems).
- Added a force flag to the state.load user function.
- Redesign and improvement of the frame order grid search.
- Added a script for creating Molmol macros to represent the model-free motions.
- Created the structure.delete user function for deleting all structural information.
- Spun out the automatic model-free protocol code from the full_analysis.py script. The simplified script now simply sends in user supplied data to an automatic analysis API.
- Expansion of the rotation_matrix module with the addition of many new conversion functions.
- Added support for using methyl pseudo-atom RDCs.
- Created the structure.get_pos user function for extracting atomic positions.
- The atomic position can now be directly supplied to pcs.centre.
- Addition of a sample script for the determination the relative stereochemistry of organic molecules.
- Large improvements for the creation of 2D Grace plots.
- Anisotropic cone PDB representations can now be created.
- The diffusion tensor within the PDB frame can now be specified, avoiding the 2304 different Euler angle conventions for a rank-2 symmetric tensor.
- PyMOL is now being executed as a python module, if available, instead of being launched on the command line and remotely controlled.
- Addition of the rdc.display and rdc.write user functions.
- Addition of the pcs.display and pcs.write user functions.
- Implemented dfunc_tensor_opt() and d2func_tensor_opt() allowing all optimisation algorithms to be used for the N-state model.
- Creation of the rdc.corr_plot and pcs.corr_plot user functions for creating correlation plots of measured vs. back-calculated RDCs and PCSs.
- Added the -i or --info option to relax.
Changes
- Test suite fixes for Python 2.5.
- Epydoc docstring improvements/fixes for the API documentation.
- Many updates using 2to3 preparing for a transition to Python 3.x.
- Renamed the pipe.list user function to pipe.display.
- Created a base class for the user function classes. More user function back end simplifications.
- Addition of many new RelaxError classes for the user function interface.
- Removal of many unused Python module imports.
- Redesign of the RelaxError classes.
- Simplified all the argument RelaxError classes using BaseArgError.
- Added a check for the unimplemented constraints in the frame order code.
- Rearrangement of the handling of frame order models. The tensor rotation Euler angles are now model independent, the 'rigid' model is better supported, and a clear isolation of the isotropic cone model has been made.
- Shifted the current data pipe to __builtin__.cdp so that it is accessible as 'cdp' in all of relax - including user scripts (and removal of 484 calls to generic_fns.pipes.get_pipe()).
- Specific architecture and optimisation details are now printed if the frame order system tests fail.
- Added a function for converting the frame order matrix to the rotational superoperator.
- Improved and expanded the output of the print_frame_order_2nd_degree() function.
- Function renaming and argument order changes in the maths_fns.rotation_matrix module.
- Huge simplifications to the unit tests for the maths_fns.rotation_matrix package.
- Added a very basic, and completely empty module and class for SRLS analysis.
- Redesign of the relax state loading for adding support for a XML formatted state file.
- Shifted the results.write force arg to the end.
- Created the relax data store is_empty() method.
- Renamed the state.load and state.save directory argument from dir_name to dir for consistency with the rest of relax.
- Redesigned the relaxation curve fitting grid search for the new design of the minfx grid search.
- Redesigned the N-state model grid search setup around the new minfx interface.
- Redesigned the model-free grid search setup around the new minfx interface.
- Renamed the 'grace.py' sample script to 'mf_grace_S2_vs_te.py'.
- Added the spin_id_col arg to the rdc.read user function.
- Changes to the pcs.read and rdc.read user function interfaces.
- Column numbering now starts at 1 rather than 0 within the user functions.
- The relax_io.read_spin_data_file() function has been created to handle all columnar text files where each row corresponds to a spin.
- Rewrote the tokenise() function to allow for the '&' boolean operator for residues and spins, allowing ':1&:GLY' or '@453&@N' to be parsed.
- Renamed all the alignment ID args and variables 'id' to 'align_id' in the RDC and PCS user functions.
- Added the relax_io.write_spin_data_file() function for writing spin specific data to a file (can be STDOUT).
- Significant improvements to the __find_bonded_atoms() method of the internal PDB reader.
- Improved the error handling for AICc model selection.
- Added user variable checking to the full_analysis.py script.
- Added functions for determining the element name and isotope number from an isotope name.
- Added frame order methods necessary for the dx.map user function.
- Huge clean up / redesign of the specific analysis internal API.
- Better layout of the user functions in the relax manual significantly dropping the page count.
- Formatting improvements in the relax manual.
- Removed the checking of sequence data from generic_fns.value.set().
- Modified the alignment tensor print out to be more compact.
- The PCS centre can now be forcefully overwritten.
- Added the back end to the rdc.back_calc user function (making it functional).
- Modified all the specific analysis overfit_deselect() methods to warn when spins are deselected.
- align_tensor.display now prints the magnetic susceptibility tensor.
- The rotation matrix to Euler angle algorithms have been converted to the general one of Ken Shoemake.
- Simplifications and clean up of the prompt and script UI code.
- Detachment of the prompt/script interface from relax allowing it to be imported by any python code.
- Switched from using a cone angle to using an order parameter in the isotropic cone frame order model.
- Redesigned the program introduction as an abstraction for different UIs, shifting it into the intro module.
- Changed the program description to "Molecular dynamics by NMR data analysis".
- Created a module for the automatic relaxation curve fitting protocol.
- Shifted the RDC and PCS Q-factor calculation code so that it is no longer N-state model specific.
- The RDC and PCS Q-factor calculation functions can now accept a spin_id arg.
- Individual system tests can now be executed through the relax test suite.
- Addition of the relax status singleton object for communicating status info between the core and the UIs.
- Partially removed the need for downstream Fink specific modifications.
- Creation of the NOE auto-analysis module.
- Fixes for the structure.load_spins user function docstring for RNA/DNA work.
- The n_state_model.select_model user function can now change the model.
- Added a maximum global iteration arg and check into the dauvergne_protocol.py module[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].
Bugfixes
- Fix for the quaternion_to_R() function (due to incorrect information in Wikipedia).
- Character encoding fix - cannot use umlauts.
- Fix for the kron_prod() function.
- Compilation on Mac OS X with Python 2.6 now works.
- Added a module containing functions for checking user function args, removing many hidden argument checking bugs.
- Fix for the calls to transpose_14().
- Bug fix for the relaxation curve-fitting difference plot script.
- Fix for the spin.number user function, the number can be None to reset the values.
- Fix for the script user function, the function intro flag at the end of executing an external script was not being restored.
- Improvements to the optimisation tests (bug #14173, bug #14174, bug #14175, bug #14176, bug #14177, bug #14182).
- Fix for the R_euler_zyz() rotation matrix function.
- Fix for the R_to_axis_angle() rotation matrix function.
- Prevented __find_bonded_atoms() from connecting protons in the internal PDB reader.
- Fixes for print_frame_order_2nd_degree() for when NaN is encountered.
- Fix for the compile_2nd_matrix_iso_cone() frame order function.
- The func_iso_cone_elements() method was been replaced with func_iso_cone() in the frame order analysis.
- Fix for the delete function which was failing if the file was missing.
- Fix for the test suite, the temporary files were not always deleted if a .bz2 extension was added.
- Fix for the reading of Xplor NOE data when a line starts with '#'.
- Fix for the Dasha and Modelfree interfaces for when spins have too little data (bug #14428).
- Fixes for the RDC and PCS read() functions, the alignment tensor ID had the same variable name as the spin ID.
- Fixed the PDF manual compilation (bug #14464).
- Fix for the retrieval of bond vectors for the N-state model.
- Fixes for the dx.map user function interface.
- Epydoc docstring fixes.
- Fix for when the selection string (i.e. spin_id) is unicode (bug #14872).
- Fix for the PCS back calculation for when no weights are given.
- The last weight in the'fixed' and 'population' N-state models, if supplied, was being converted to zero (1 - sum(weights)) hence the last state/structure was not being included.
- Added the missing user functions in the mf_multimodel.py sample script (bug #14885).
- Fix for the Monte Carlo simulations in the full_analysis.py script (bug #14941).
- Fix for optimisation of models tm4 to tm8 in the mf_multimodel sample script when over-fitting occurs (bug #15050).
- Removed the beta angle folding from the frame order module as it was failing.
- Fix and updates to the generic_fns.angles.wrap_angles() function.
- Fix for the internal structural object PDB writing - the TER records are between the ATOM and HETATM records.
- Fixed a final model-free analysis failure in the d'Auvergne protocol, the auto-analysis behind the full_analysis.py script[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] (bug #15874).
- Fixes for the N-state model when RDC or PCS data is missing.
- Fixed the Q-factor calculating functions to handle missing RDC or PCS lists.
- Fix for the 'population' N-state model - the probabilities of each state was being set to that of the last state.
- Constraints must be used at all times in the 'population' N-state model optimisation.
- For the N-state model 'fixed' and 'population' models, if too many tensors are initialised in comparison to PCS and RDC alignments, then the parameter vector or parameter number was not being correctly assembled.
- Fix for when structural models are loaded out of order.
- Fix for the 'population' N-state model whereby the last probability can have a negative value.
- The infinite looping around the universal solution in the dauvergne_protocol module[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] is now being caught (for the full_analysis.py script).
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.4
relax version 1.3.4 | |||||
| |||||
Keywords | Bruker ncproc parameter, hybridisation, N-state model, MOLMOL, NOE distance restraints, pseudo-atoms, structure | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 12 August 2009 | ||||
| |||||
The relax 1.3.4 user manual |
Description
This is a major feature release featuring innumerous changes and bugfixes. New features include support for spin containers for psuedo atoms, NOE distance restraints, improved structure handling with multiple molecules and multiple models, the N-state model with equal and fixed probabilities, handling of the Bruker ncproc parameter, return of hybridisation, return of MOLMOL macros for illustrating model-free parameters, and initial support for the new Frame Order theories.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.4
(12 August 2009, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.4
Features
- The file format of peak intensity lists is now automatically detected (supporting Sparky, XEasy and NMRView).
- Initial support for a generically formatted peak intensity file (note, this is not yet usable).
- Error analysis for peak intensities is significantly improved with support for baseplane RMSD, a subset of spectra replicated, and all spectra replicated for both peak heights and peak volumes.
- NOESY distance restraints (in Xplor or generic format) can now be used in the N-state model via the noe.read_restraints user function.
- Psuedo atoms/spin containers are now supported via the spin.create_pseudo user function (used for the NOE distance restraints).
- Support for multiple molecules and/or multiple models within relax.
- Multiple molecules (as one or more PDB files) can now be read in as individual molecules of different models.
- Multiple models (as one or more PDB files) can now be read in as multiple molecules of the same model.
- The internal PDB writer can now generate a file with multiple molecules and multiple models.
- The N-state model with fixed and equal probabilities is now supported.
- The bond length values for RDCs are now hard-coded (from Ottiger, M. and Bax A., J. Am. Chem. Soc. (1998), 120, 12334-12341).
- Added the Bruker ncproc parameter to handle Topspin's integer scaling of FID intensities (to the spectrum.read_intensities user function).
- Hybridisation support, present in relax 1.2, has returned allowing data pipes to be merged (i.e. to hybridise two model-free data pipes with a different diffusion tensor for sets of spins).
- The initial code for relaxation dispersion analyses has been added (note, this is not yet usable).
- Initial support for the new Frame Order theories, using the isotropic cone model for RDC data of domain dynamics.
- MOLMOL macro support for plotting model-free parameter values onto the structure has returned.
Changes
- The XH bond vector distribution PDB and Pymol representation is now restored.
- The new user function class 'spectrum' contains all functions associated with spectral data.
- Spectral data is now identified by unique spectrum ID strings.
- The noe.read and relax_fit.read user functions have been merged into spectrum.read_intensities.
- The relax_fit.mean_and_error user function is now called spectrum.error_analysis.
- The noe.error user function is now called spectrum.baseplane_rmsd.
- The new spectrum.integration_points user function is used to specify the number of points used in a volume integration.
- The R1 and R2 relaxation time period is now specified using relax_fit.relax_time.
- grace.write will now show a warning when an empty file is being created.
- Replicated spectra are now specified explicitly via spectrum.replicated.
- Extensive code base clean up - including formatting, unused imports, comments, typos, etc.
- Complete redesign of the structural information storage.
- Massive speed up of the structure.vectors user function.
- More element types of standard protein PDB atom names are identified (to support PDB files with a blank element column).
- Information is now printed out when reading RDCs and PCSs to aid the user identify usage faults.
- The RDC and PCS data is now checked before being loaded into relax.
- The N-state model grid search now handles alignment tensor parameters.
- For better optimisation, the grid search lower bound for alignment tensor elements has changed from 0 to -1e-3.
- Improvement to the algorithm for determining attached atoms in the internal PDB reader - a 2 rather than 1 Angstrom radius sphere is now being searched.
- The molecule.name user function can now name unnamed molecules.
- The diagonalised alignment tensor is now created.
- Spin numbers can now be set to None, adding support for polymers where the atom name rather than number is used.
- The Q factor is now calculated as Clore's R-factor divided by N, matching the Pales default mode (both Q factors are now calculated and stored).
- The force flag has been introduced to the mol/res/spin naming and numbering user functions, where the default is now not to overwrite.
- Redesign of the spin.create and residue.create user functions - respectively residue and molecule names and numbers are used instead of the res_id and mol_id arguments, allowing residues and molecules to be created as needed.
- Modified the full_analysis.py script to perform 500 Monte Carlo simulations and turned on automatic looping.
- Support for non-identical sequences in different PDB files within the same data pipe (only as different molecules, not different models).
- Modified the structure.vectors user function to fail if no vectors are found, saving the user a lot of sanity when fixing a non-functional script.
- A quadratic, flat-bottomed well potential has been added for the NOE distance restraints.
- For the N-state model, a default of inverse sixth power averaging of NOE distance restraints is being performed.
- The pcs.centre user function can now accept pseudo-atoms.
- The pcs.centre user function can now handle multiple paramagnetic centres.
- The new maths_fns.rotation_matrix.R_axis_angle() function generates a rotation matrix from the axis-angle notation.
- The new maths_fns.rotation_matrix.random_rot_axis() and maths_fns.rotation_matrix.R_random_axis() functions are used to generate random rotation matrices.
- The new maths_fns.rotation_matrix.R_random_hypersphere() function generates a pure random rotation matrix.
- The new maths_fns.rotation_matrix.quaternion_to_R() function generates a rotation matrix from a quaternion.
- The new maths_fns.kronecker_product.kron_prod() function is used to calculate the Kronecker product.
- Converted the user function n_state_model.set_type to align_tensor.reduction.
- Renamed n_state_model.set_domain to align_tensor.set_domain.
- The statistics ordering has been improved when profiling.
- align_tensor.init can now accept any type of float or int (python or numpy).
- Removed the checks to see if the RDC or PCS data is already loaded, allowing sequential loading by a few calls to rdc.read and pcs.read.
- Large improvements to the information printed by the align_tensor.display user function.
- Removed a check for the presence of the alignment tensor so that align_tensor.init can be used to reset the tensor values.
- Created the six transpose functions for rank-4, 3D tensors in maths_fns.kronecker_product.transpose_ij().
Bugfixes
- A bug in the Monte Carlo simulations for relaxation curve-fitting has been fixed (bug #12670).
- Fixes for the Pymol PDB file opening and pymol.cartoon user function.
- The molecular centre of mass is now correctly calculated.
- Grace plots (http://plasma-gate.weizmann.ac.il/Grace/) were sometimes corrupted due to data being stored in numpy arrays and not Python lists (bug #12679).
- Fix for the value.read user function, the directory and 'sep' arguments were being ignored.
- Multiple failures of structure.load_spins for different PDB file layouts have been fixed (bug #12735).
- Model-free optimisation failures on Mac OS X for PowerPC (bug #12573).
- Many PDB file reading fixes for different multi-molecule/multi-model formats.
- The '-' character is now allowed in molecule, residue, and spin names (was a bug if the file name contains a '-' character).
- Bug fixes for handling molecules other than proteins and RNA via the Scientific python PDB reader.
- The internal PDB reader no longer considers the END record to be a molecule.
- Fix for a rare circular import failure of the RelaxError and RelaxWarning systems when running with the --debug command line flag.
- Significant simplifications of the RelaxError system, fixing a state saving bug with --debug.
- Fix for the retarded Scientific python PDB reader splitting a perfectly good molecule into 2 when it can't recognise a residue type.
- Linear constraints and now supported for the N-state models without probabilities.
- Modified the full_analysis.py script to name spins if the sequence data contains no spin name info.
- All column arguments now default to None for the RDC and PCS reading so if residue numbers are non-existent, then they will not be read from the default column.
- Bug fixes for the N-state model with N = 1 (allowing relax to mimic Pales http://www.mpibpc.mpg.de/groups/griesinger/zweckstetter/_links/software_pales.htm).
- Bug fix for the PCS alignment tensor fitting, the paramagnetic-nuclear spin distance was being incorrectly determined.
- The Q factors for the RDCs and PCSs were completely incorrect (found by comparing to Pales).
- All the value.*() user functions have now been converted from the relax 1.2 to the relax 1.3 design.
- Fixes for some circular import issues in generic_fns.minimise and generic_fns.value.
- All the relax_data.*() user functions have now been converted to the relax 1.3 design.
- Bug fix for the spin.copy user function, non-empty spin containers are no longer overwritten if the name and num are set to None.
- Fix for the latex_mf_table.py sample script (bug #13163).
- Rex values in XML results file not in s-1 (bug #13162).
- Fix for the structure.create_diff_tensor_pdb user function which was creating weird shaped ellipsoid diffusion tensor representations when α and β were unequal (bug #13032).
- Sparky assignments such as '004N-H' are now handled.
- Fixed a bad apostrophe character causing the 'full_analysis.py' script to fail.
- Removed a check disallowing multiple steady-state NOE data sets at the same spectrometer frequency.
- Bug fix for the results reading from_xml() method, the molecule name was being evaluated causing results.read to fail.
- Fixes for the model-free Monte Carlo simulation methods for deselected spins.
- Models with high te values (>200 ns) were not being eliminated in the full_analysis.py sample script (bug #13259).
- Monte Carlo simulations were failing in the model-free.py sample script (bug #13442).
- The model-free minimisation statistics are no longer reset by the Monte Carlo simulation setup.
- A number of bug fixes for Python 2.6 support.
- Model selection between data pipes of different type is now allowed.
- Bug fix for the maths_fns.rotation_matrix.R_2vect() function as the rotation axis is not always of unit length.
- The diffusion tensor geometric object PDB representation is now correctly generated.
- The isotropic cone geometric object PDB representation is now correctly generated.
- The Hetrogen section was failing with MC simulations in the structure.write_pdb user function.
- pymol.cartoon was failing when multiple proteins were loaded.
- Bug fix for the maths_fns.rotation_matrix.R_to_axis_angle() function, the axis needs to be normalised.
- Bug fixes for the grace.write user function.
- Monte Carlo simulations failed when all parameters except for the diffusion tensor were fixed.
- The diffusion and alignment tensor *_sim and *_err elements are now present and read from a results file.
- The align_tensor.matrix_angles user function now avoids NaN problems through arccos of numbers > 1.
- Bug fixes for the updating of the diffusion tensor MC simulation data structures.
- Fix for the copying of diffusion tensors data structures.
- relax and the sample scripts are more compatible with non-Unix operating systems by using the Python os.sep and os.pardir rather than '/' and '..' for directory separators and the parent directory.
- Caught a NaN problem in the N-state model, RDC Q factor code causing failures in MS Windows.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.3
relax version 1.3.3 | |||||
| |||||
Keywords | DASHA, OpenDX, Modelfree4, NMRView, XEasy | ||||
---|---|---|---|---|---|
Release type | Major feature and bugfix | ||||
Release date | 29 November 2008 | ||||
| |||||
The relax 1.3.3 user manual |
Description
This is a major bugfix and feature release. Support for the programs Dasha, Modelfree4 and OpenDX has returned and XEasy and NMRView peak lists can now be read. Upgrading to this version is highly recommended as it fixes a number of very important bugs. Some of these are include faulty error analysis when performing relaxation curve-fitting, results.write failure, model selection failure if spins were deselected, diffusion tensor optimisation failure, and internal PDB reader problems.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.3
(29 November 2008, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.3
Features
- Dasha can be run from within relax again.
- Art Palmer's Modelfree can be run from within relax again.
- OpenDX execution and control is once again supported.
- NMRView peak lists are now supported.
- XEasy peak lists are again supported.
Changes
- Internal relax cleanups by the addition of the specific model_loop() method - this should eliminate a series of potential hidden bugs.
- The results.write and results.display now only support XML output.
- More information is now extracted from the Modelfree mfout files.
- The version of the Modelfree program is checked and if it is an old, buggy version, relax will refuse to execute it.
- The system tests can now handle the sometimes large differences in Modelfree results between the GNU gcc and Portland C compiler versions.
- Fixes and improvements to much of the API documentation.
Bugfixes
- A failure of the minimisation set() function has been fixed.
- The reset user function now works again.
- Fixes to the relax data store methods add(), to_xml() and from_xml().
- Many fixes for the support of Art Palmer's Modelfree program.
- The mapping of the global parameter space (diffusion tensor, etc.) for visualisation in OpenDX has been fixed.
- state.save no longer fails after running state.load (bug #12437).
- Sparky peak lists with the assignment '?-?' are now handled properly (bug #11913).
- Error analysis in relaxation curve-fitting was incorrectly implemented with standard deviation rather than variance averaging (bug #12456).
- A number of fixes for the LaTeX table generating sample script.
- Fixes for the teeing and logging via the -l and -t command line arguments (bug #12489).
- Fix for when XH bond vector data from a PDB file is missing for a spin system (bug #12487).
- Many fixes for when structural data is missing.
- The relax script is no longer overwritten if the log or tee file is not specified on the command line (bug #12498).
- Missing RelaxError failure in the sequence handling code (found when trying to solve bug #12582).
- A failure in the results.write user function has been fixed (bug #12582).
- Model selection no longer fails if no model is ever selected.
- Model selection was failing if spins were deselected (bug #12591).
- The directory name can now be part of the file name argument to results.read (bug #12588).
- Optimisation of only the diffusion tensor after calling fix was failing if some spins were deselected (bug #12607).
- The internal PDB reader was failing when the PDB file contained CONECT records (bug #12637).
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.2
relax version 1.3.2 | |||||
| |||||
Keywords | Model-free analysis, NOE analysis | ||||
---|---|---|---|---|---|
Release type | Major bugfix | ||||
Release date | 8 October 2008 | ||||
| |||||
The relax 1.3.2 user manual |
Description
This release solves many major bugs in the final stages of model-free analysis, especially when using the 'full_analysis.py' script [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b]. This version also marks the return of the NOE analysis. If you are using relax version 1.3.1, it is recommended that you upgrade to 1.3.2. Bugs which have been resolved include: problems reading PDB files; failure of the value.set, fix and value.write user functions; non-functional model elimination; model selection issues in certain situations; and various Monte Carlo simulation issues.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.2
(8 October 2008, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.2
Features
- The NOE analysis has been converted to the new design and is fully functional again.
Changes
- Internal abstractions to the relax data store by using the generic_fns.pipes API.
- Added more literature references to the 'full_analysis.py' script.
- Eliminated Monte Carlo simulations are better identified during user function execution.
Bugfixes
- The generation of the cone geometric object for the N-state model is fixed.
- Fixes for the relax_curve_diff.py and latex_mf_table.py sample scripts (identified by the relax data store abstraction).
- Fixed the reading of relax 1.2 model-free results files (identified by the relax data store abstraction).
- Various PDB file loading issues fixed.
- value.set no longer fails when the parameter being set already exists (Bug #12406).
- Fix for the bug whereby model elimination does nothing for model-free models. This fix may solve other model-free related issues (Bug #12407).
- Model elimination no longer fails when no diffusion tensor is loaded (Bug #12408).
- The error when loading the PDB file through the reading of the results file in the 'final' stage of the 'full_analysis.py' sample script is fixed (Bug #12409).
- Model elimination is fixed in the 'full_analysis.py' script.
- The fix user function works again when the element argument is set to 'all'.
- Fix for the duplication of sequence data during model selection.
- Monte Carlo simulations were failing due to a missing sequence error (Bug #12410).
- The model elimination error "AttributeError: 'SpinContainer' object has no attribute 'params'." has been fixed (Bug #12411).
- A missing global chi-squared value was causing failure of global model selection (Bug #12412).
- Monte Carlo simulation elimination was removing the simulation not from the affected spin but from all spins (Bug #12416).
- Fix for the failure of the value.write user function in all analysis types (Bug #12418).
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.1
relax version 1.3.1 | |||||
| |||||
Keywords | Complete redesign | ||||
---|---|---|---|---|---|
Release type | Major feature | ||||
Release date | 28 September 2008 | ||||
| |||||
The relax 1.3.1 user manual |
Description
Finally, it's arrived! The new and improved relax is finally ready for release. It's taken 2 years to get here, 4400 individual changes, and a complete rewrite of almost every last line of code - all in all an impressive team effort. Although the jump from 1.3.0 to 1.3.1 appears small, the changes are so expansive that hardly any code is preserved between these versions. In addition, the release includes all changes which occurred between relax versions 1.2.10 and 1.2.14. For this shiny new version, we have had complete redesign of relax. This started all the way back in October of 2006 with the post https://www.nmr-relax.com/mail.gna.org/public/relax-devel/2006-10/msg00053.html. This overhaul involves the new molecule-residue-spin data structure and the elimination of the 'run' concept replacing it with the data pipe paradigm.
No longer is relax constrained to handling a single spin type for the entire system, or a single spin per residue. Multiple structures, multiple residues per structure, and multiple spins per residue can be handled, paving the way for using relax with small organic molecules, with RNA and DNA, and for protein systems using not only 15N data but also any data from carbons or other spin types. As for the data pipe concept, this is the next logical step in the evolution of relax. The 'run' had significantly diverged from its original meaning, so now it has been renamed to the pipe. Everything in relax is now associated with a data pipe. These pipes can be created, merged with user functions such as model_selection, branched by copying, and the entire contents preserved at any time into an XML formatted results file - imagination is the only limitation as to what can be done with these pipes. The progress of relax can be considered as the flow of data through these pipes, with each user function modifying or using the contents.
For for identifying and selecting spins, the spin identification string concept has been introduced. The string is composed of three components: the molecule id token beginning with the '#' character, the residue id token beginning with the ':' character, and the atom or spin system id token beginning with the '@' character. Each token can be composed of multiple elements separated by the ',' character and each individual element can either be a number, name, or range of numbers separated by the '-' character. Hence the full id string specification is "#<mol_name> :<res_id>[, <res_id>[, <res_id>, ...]] @<atom_id>[, <atom_id>[, <atom_id>, ...]],". Basic usage of the Boolean operators and ('&') and or ('|') is also supported.
Note that in this version, not all parts of relax are currently functional. Many, such as relaxation curve fitting, model-free analysis, reduced spectral density mapping, consistency testing, etc. are fully functional but if you do uncover a non-operational user function, please submit a bug report or use the stable 1.2.14 version. Conversion of the last parts of relax to the new design will not be too hard, especially if all issues are reported. Note that this is a development line and that scripts written for version 1.3.1 may not work automatically in future 1.3 versions.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.1
(28 September 2008, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.1
Features
- Complete redesign of relax (https://mail.gna.org/public/relax-devel/2006-10/msg00053.html).
- Extension of the Grace plotting abilities to include series data such as relaxation exponential curves.
- For easy reference, all physical constants have been shifted to the 'physical_constants.py' module.
- Complete overhaul of the handling of structures with the introduction of a structural object API.
- An internal structural object has been created, complete with PDB reading and writing methods, to optionally replace the Scientific python PDB object.
- Large improvements to the API documentation by the use of epydoc formatted docstrings.
- All spins can be looped over simply by using the spin_loop() generator function.
- Molecules, residues, and spins are now selected by the new syntax of the spin identification string.
- Improvements and simplifications to the 'full_analysis.py' script [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] with all user modifiable variables shifted to the top of the script as global variables.
- Automatic looping until convergence has been added to the 'full_analysis.py' [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] script to further simplify usage.
- Setting the type of nucleus is now done with the value.set user function on a spin-by-spin basis. This is important for RNA, small molecules and protein analyses with Ca and N data.
- A new analysis type, the N-state model for interpreting domain motions using RDC and PCS data, is now supported.
- The mechanical pivot-CoM analysis of the N-state model and associated cone image construction is included.
- The consistency testing code has been ported from the 1.2 line.
- The results file has been converted to the versatile XML format.
- All analysis types, present and future, are automatically supported through the reading and writing of the XML results file.
- The XML results file stores floats at full 64 bit precision in an XML attribute using the IEEE-754 byte array.
Changes
- The RelaxError and RelaxWarning systems have been redesigned. The objects are no longer placed into __builtin__ but must now be imported.
- The unit and system test frameworks have been expanded to 1046 and 55 tests respectively covering most aspects of relax usage.
- The inclusion of headers in the sample scripts to identify the author and age of the script.
- Conversion of the relax data storage object into a singleton. Rather than accessing 'self.relax.data', the singleton is now imported as needed.
- Unit tests can now be run individually.
- The optimisation code has been spun out into its own project, minfx (https://web.archive.org/web/gna.org/projects/minfx/). This is now a dependency.
- The Boolean values True and False are now used instead of 1 and 0 for user function arguments.
- The class methods of the 'generic_fns' package have been converted to module functions for greater API flexibility.
- Complete redesign of the diffusion tensor object in the relax data store. Many diffusion tensor attributes are calculated on the fly when accessed.
- The 'specific_fns' package has been redesigned with the API for retrieving analysis specific methods tidied up.
- The inevitable switch from Numeric python to numpy has occurred.
- The system tests and unit tests can be run separately.
- All STDOUT and STDERR output is caught by the test suite and only printed if the test fails.
- The system tests use the unit test framework to significantly simplify the addition of new tests.
- User scripts can now be used directly as system tests.
- All threading code has been eliminated in preparation for replacement by the multi_processor code.
- The precision of the 15N gyromagnetic ratio input into Art Palmer's Modelfree4 program has been increased.
- Scientific python is no longer an essential dependency.
- The 'unselect' user function class has been renamed to 'deselect'.
- Big updates to the relax manual.
- PDB files can be specified without the '.pdb' ending.
Bugfixes
- The unit test and system test frameworks are now functional.
- The failure of reduced spectral density mapping has been identified and fixed (bug #9238, bug #9562).
- The second set of extended model-free formulae were accessing undefined functions (bug #9189).
- Docstring fetching issues with Python 2.5 have been fixed (bug #9390).
- The sample script for placing model-free results into a LaTeX table now works (bug #10189).
- The default parameter values for relaxation curve fitting were incorrectly set.
- Security: Replaced the insecure os.tempnam() with tempfile.mktemp().
- ZeroDivisionError fix for model elimination and Monte Carlo simulation elimination (bug #11004).
- The handling of spins with missing XH bond vectors has been fixed (bug #11378).
- The relax_data.display user function is now functional again (bug #11383).
- MS Windows with Python 2.5 is now supported.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
References
- [*d'Auvergne and Gooley, 2007] d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
- [*d'Auvergne and Gooley, 2008b] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
<HarvardReferences />
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
relax 1.3.0
relax version 1.3.0 | |||||
| |||||
Release type | Experimental development | ||||
---|---|---|---|---|---|
Release date | 19 February 2007 |
Description
This is the first release of the unstable 1.3 development line. In addition to all the capabilities of relax 1.2.10 the new features of this release include the addition of a unit test framework, preliminary support for PyMOL, the creation of PDB files, the ability to display the diffusion tensor encoded as a PDB file using PyMOL, the ability to display the distribution of XH bond vectors used in the analysis via a PDB file, the new user function class 'structure' containing the old user function pdb which has been split and redesigned, removal of apply(func, args) calls from the minimisation code, improved spin system selection using Boolean operators, and a few other small features, bugfixes, and program changes. As the user function names have been and will continue to be modified please do not expect either the backwards or forwards compatibility of relax scripts written for the 1.3 relax versions.
Download
The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).
CHANGES file
Version 1.3.0
(19 February 2007, from /1.3)
http://svn.gna.org/svn/relax/tags/1.3.0
Features
- Implementation of the PDB geometric representation of the Brownian rotational diffusion tensor using structure.create_diff_tensor_pdb.
- Added a sample script for the creation of the PDB representation of the diffusion tensor.
- Addition of the ability to calculate the centre of mass of the selected residues (not available as a user function).
- The addition of PDB writing capabilities (not available as a user function).
- Creation of the molmol.command user function to send Molmol commands to a running instance of Molmol.
- Creation of the molmol.ribbon user function to apply the Molmol ribbon style (which is equivalent to clicking on 'ribbon' in the Molmol side menu).
- Creation of the molmol.tensor_pdb user function for displaying the PDB geometric object of the diffusion tensor in Molmol over a loaded structure.
- Preliminary support for PyMOL.
- Creation of the pymol.view user function for launching PyMOL.
- Creation of the pymol.cartoon user function for hiding everything, showing the cartoon representation, and colouring the cartoon by secondary structure.
- Creation of the pymol.tensor_pdb user function, the equivalent of molmol.tensor_pdb.
- A unit test framework for the test suite has been created and a few tests have been written (accessible through the --test-suite or --unit-test command line arguments).
- Addition of the structure.create_vector_dist user function for creating a PDB representation of the XH bond vectors of selected residues from the structure.
- Addition of the pymol.vector_dist user function for displaying the PDB representation of the XH vector distribution overlain over the structure within PyMOL.
Changes
- The unmodified Hessian and turning the line search off are now specified by different regular expressions. (see task #3630)
- Splitting of the pdb user function into pdb.read and pdb.vectors (these have been subsequently renamed). (see task #3838)
- Created the JOBS file to describe the roles of the relax manager positions.
- Removal of apply(func, args) calls from the minimisation code.
- Addition of the io.file_root() function.
- Addition of the RelaxImplementError for internal use.
- Added the text "re-run relax with the '--debug' flag" to the RelaxFault error class.
- Redesign of the diffusion tensor data structure 'self.relax.data.diff' for the automatic calculation of diffusion tensor parameters, vectors, and matrices when parameters are set or changed.
- The 'pdb' user function class has been renamed to 'structure'.
- The init_data user function has been renamed to reset.
Bugfixes
- Fixed the selection of nucleic acids by name as Scientific python was prefixing 'R' to the single letter codes.
Links
For reference, the following links are also part of the announcement for this release:
Announcements
If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.
See also
- The combined release notes for all relax versions (warning, this is very large).
- The combined release descriptions for all relax versions.
- The combined release metadata for all relax versions.
- The combined release features for all relax versions.
- The combined release changes for all relax versions (warning, this is very large).
- The combined release bugfixes for all relax versions.
- The combined release announcement links for all relax versions.
References
- [*Bieri et al, 2011] Bieri, M., d'Auvergne, E., and Gooley, P. (2011). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and μs motion of proteins. J. Biomol. NMR, 50, 147-155. (DOI: 10.1007/s10858-011-9509-1).
- [*d'Auvergne and Gooley, 2008] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3).
<HarvardReferences />