Open main menu

Changes

Relax 1.3.13

2,816 bytes added, 08:36, 20 September 2014
User function HTML manual links.
* 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 [http://www.nmr-relax.com/manual/structure_write_pdb.html 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 [http://www.nmr-relax.com/manual/structure_superimpose.html 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 [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function].* Added the centroid argument to the [http://www.nmr-relax.com/manual/structure_displacement.html 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 [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement user function].* Added checks for the [http://www.nmr-relax.com/manual/n_state_model_cone_pdb.html 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 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 [http://www.nmr-relax.com/manual/spectrum_read_intensities.html 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.
* 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 [http://www.nmr-relax.com/manual/spin_name.html spin.name user function ] docstring.* Shifted the spin ID field to the end of the [http://www.nmr-relax.com/manual/spin_name.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_data_delete.html 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 [http://www.nmr-relax.com/manual/spectrum_delete.html spectrum.delete user function].* The [http://www.nmr-relax.com/manual/spectrum_delete.html 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.
* 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 [http://www.nmr-relax.com/manual/sequence_read.html sequence.read user function ] or the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb ] and [http://www.nmr-relax.com/manual/structure_load_spins.html 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.
* 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 [http://www.nmr-relax.com/manual/script.html 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 [http://www.nmr-relax.com/manual/script.html 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.
* 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 [http://www.nmr-relax.com/manual/monte_carlo_setup.html 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 [http://www.nmr-relax.com/manual/monte_carlo_error_analysis.html 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 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 [http://www.nmr-relax.com/manual/pipe_create.html 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 [http://www.nmr-relax.com/manual/pipe_create.html 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.
* 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 [http://www.nmr-relax.com/manual/structure_vector.html structure.vector user function ] docstring.
* Created the wizard page spin_control() method for adding a spin control.
* The results file viewer is now executing the [http://www.nmr-relax.com/manual/grace_view.html 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() 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 [http://www.nmr-relax.com/manual/structure_load_pdb.html structure.load_pdb ] GUI user function now only shows *.pdb files.* Removed combine_models from the [http://www.nmr-relax.com/manual/structure_load_spins.html 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.
* 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 [http://www.nmr-relax.com/manual/value_set.html 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 [http://www.nmr-relax.com/manual/value_set.html value.set ] GUI user function now sets the value to the default when parameters are selected.* Expressions can now be used in the [http://www.nmr-relax.com/manual/value_set.html 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 [http://www.nmr-relax.com/manual/value_set.html 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 GUI interpreter object has been converted into a singleton.
* Changed the missing spin parameter messages to indicated that the [http://www.nmr-relax.com/manual/value_set.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_data_read.html 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.
<section begin=bugfixes/>
* Fix for the [http://www.nmr-relax.com/manual/pymol_cone_pdb.html 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 [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function ] in certain edge cases.* Bug fix for the [http://www.nmr-relax.com/manual/pymol_cone_pdb.html 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 [http://www.nmr-relax.com/manual/n_state_model_cone_pdb.html n_state_model.cone_pdb user function], the code was old and not functional any more.* Fix for the [http://www.nmr-relax.com/manual/frame_order_cone_pdb.html 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 [http://www.nmr-relax.com/manual/paramag_centre.html 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 [http://www.nmr-relax.com/manual/grace_write.html 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.
* 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 [http://www.nmr-relax.com/manual/spectrum_read_intensities.html 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 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 [http://www.nmr-relax.com/manual/structure_vectors.html 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 [http://www.nmr-relax.com/manual/residue_create.html residue.create ] and [http://www.nmr-relax.com/manual/spin_create.html 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.
* 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 [http://www.nmr-relax.com/manual/structure_read_pdb.html 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 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 [http://www.nmr-relax.com/manual/script.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_fit_relax_time.html 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().
* 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 [http://www.nmr-relax.com/manual/spectrum_replicated.html 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 [http://www.nmr-relax.com/manual/spectrum_replicated.html 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.
* 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 [http://www.nmr-relax.com/manual/spectrum_replicated.html 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.
* 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 [http://www.nmr-relax.com/manual/pipe_create.html pipe.create() user function ] call automatically switched pipes, but [http://www.nmr-relax.com/manual/pipe_copy.html pipe.copy() ] does not.
* The results viewer window no longer fails if relax is still in the initial state.
* Bug fix for the [http://www.nmr-relax.com/manual/value_set.html 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.
Trusted, Bureaucrats
4,228

edits