Changes

Jump to navigation Jump to search

Relax 3.3.5

9,543 bytes added, 17:50, 27 January 2015
User function HTML manual links.
<section begin=description/>
This is a major feature and bugfix release. It fixes an important bug in the Monte Carlo simulation error analysis in the relaxation dispersion analysis. Features include improvements to the NMR spectral noise error analysis, expansion of the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function ] to handle both first and last point normalisation for reasonable R1 curves in saturation recovery experiments, the implementation of Needleman-Wunsch pairwise sequence alignment algorithm using the BLOSUM62, PAM250 and NUC 4.4 substitution matrices for more advanced 3D structural alignments via the [http://www.nmr-relax.com/manual/structure_align.html structure.align ] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] user functions as well as any of the other structure user functions dealing with multiple molecules, expansion of the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function ] to allow the RMSD to be calculated between different molecules rather than just models, expansion of the [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot user function ] to allow it to operate on different molecules, conversion of the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd], [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] and [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion ] user functions to a new pipes/models/molecules/atom_id design to allow the user functions to operate on different data pipes, different structural models and different molecules, addition of the displace_id argument to the [http://www.nmr-relax.com/manual/structure_align.html structure.align ] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] user functions to allow finer control over which atoms are translated and rotated by the algorithm, large improvement for the PDB molecule identification code affecting the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function], creation of the lib.plotting package for assembling all of the data plotting capabilities of relax, implementation of the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function ] for creating text output or Gnuplot graphs of the correlation matrix of interatomic distance, angle or parallax shift fluctuations, the implementation of ordinary least squares fitting, and improvements for the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot ] and [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot ] user functions.
<section end=description/>
<section begin=features/>
* Improvements to the NMR spectral noise error analysis.
* Addition of the new [http://www.nmr-relax.com/manual/spectrum_error_analysis_per_field.html spectrum.error_analysis_per_field user function ] to quickly perform a per-NMR field spectrum error analysis.* Added [http://www.nmr-relax.com/manual/spectrum_sn_ratio.html spectrum.sn_ratio user function ] to calculate the signal to noise ration for all spins, and introduced the per-spin sn_ratio parameter for the NOE, relaxation curve-fitting and relaxation dispersion analyses.* Added the new [http://www.nmr-relax.com/manual/select_sn_ratio.html select.sn_ratio ] and [http://www.nmr-relax.com/manual/deselect_sn_ratio.html deselect.sn_ratio ] user functions to change the selection status of spins according to their signal to noise ratio.* Expansion of the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function ] to handle both first and last point normalisation for reasonable R1 curves in saturation recovery experiments.* Conversion of the [http://www.nmr-relax.com/manual/structure_align.html structure.align], [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot], [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd], [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] and [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion ] user functions to a standardised pipes/models/molecules/atom_id argument design to allow the user functions to operate on different data pipes, different structural models and different molecules simultaneously and to restrict operation to a subset of all spins. This is also used by the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].* Addition of the displace_id argument to the [http://www.nmr-relax.com/manual/structure_align.html structure.align ] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] user functions to allow finer control over which atoms are translated and rotated by the algorithm independently of the align_id atom ID for selecting atoms used in the superimposition.* Large improvement for the PDB molecule identification code affecting the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] allowing discontinuous ATOM and HETATM records with the same chain ID to be loaded as the same molecule.
* Creation of the lib.plotting package for assembling all of the data plotting capabilities of relax into a unified software independent API.
* Implementation of the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function ] for creating text output or Gnuplot graphs of the correlation matrix of interatomic distance, angle or parallax shift fluctuations, measured as sample standard deviations, between different molecules.
* The implementation of ordinary least squares fitting.
* And improvements Improvements for the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot ] and [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot ] user functions.* The implementation of Needleman-Wunsch pairwise sequence alignment algorithm using the BLOSUM62, PAM250 and NUC 4.4 substitution matrices for more advanced 3D structural alignments via the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. The Needleman-Wunsch algorithm is implemented as in the EMBOSS software to allow for gap opening and extension penalties as well as end penalties. This is also used in all the other structure user functions dealing with multiple molecules - [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations], [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot], [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd], [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose], [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion].* Improved support for PDB secondary structure metadata for the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb ] and [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb ] user functions.
<section end=features/>
* Added the function pipe_control.error_analysis_per_field(), as an automatic way of submitting subset IDs per field for error analysis.
* For the pipe_control.spectrum.error_analysis_per_field(), added additional printout of subset IDs used for error analysis.
* In the auto_analysis.relax_disp module, used the new [http://www.nmr-relax.com/manual/spectrum_error_analysis_per_field.html spectrum.error_analysis_per_field user function ] to calculate the peak intensity errors.* Reinserted the error_analysis() function in the auto class of relaxation dispersion. This function only checks if the error analysis has not been be performed before, and then decides to call the user function [http://www.nmr-relax.com/manual/spectrum_error_analysis_per_field.html spectrum.error_analysis_per_field()user function]. The implementation can be tested with the Relax_disp.test_estimate_r2eff_err_auto system test.
* In pipe_control.spectrum.error_analysis_per_field() removed the checks which would stop the calculation of the errors. This function will now always run, which will make it possible for the user to try different error calculations.
* Copy of the system test script peak_lists.py to spectrum.py. This is for the implementation of calculation of signal to noise ratio, selection and deselection.
* For the specific analysis of "noe", "relax_disp", and "relax_fit", initialised the sn_ratio parameter structure.
* Added float around values in signal_noise_ratio() function.
* Made the user function [http://www.nmr-relax.com/manual/spectrum_sn_ratio.html spectrum.sn_ratio user function] smaller.* Added two new system tests Spectrum.test_deselect_sn_ratio_all and Spectrum.test_deselect_sn_ratio_any. These test the user function [http://www.nmr-relax.com/manual/deselect_sn_ratio.html deselect.sn_ratiouser function], to deselect spins with a signal to noise ratio lower than the specified ratio.
* Added function in pipe_control.spectrum.sn_ratio_deselection(), a function to deselect spins according to the signal to noise ratio. The function is flexible, since it possible to use different comparison operators. And the function can be switched, so a selection is made instead.
* Added the new [http://www.nmr-relax.com/manual/deselect_sn_ratio.html deselect.sn_ratio user function ] to deselect spins according to their signal to noise ratio.
* Added new backend function in pipe_control.spectrum.sn_ratio_selection. This is to select spins with a signal to noise ratio, higher or lower than the specified ratio.
* Added two new system tests Spectrum.test_select_sn_ratio_all and Spectrum.test_select_sn_ratio_any. These test the [http://www.nmr-relax.com/manual/select_sn_ratio.html select.sn_ratio user function].* Added the new [http://www.nmr-relax.com/manual/select_sn_ratio.html select.sn_ratio user function ] to select spins with signal to noise ratio above a specified ratio. The default ratio for signal to noise selection is 10.0. But should probably be 50-100 instead. The default of 'all_sn' is True, meaning that all signal to noise ratios for the spins needs to pass the test.* Small fix for standard values in user function [http://www.nmr-relax.com/manual/deselect_sn_ratio.html deselect.sn_ratiouser function]. The standard values will deselect spins which have at least one signal to noise ratio which is lower than 10.0.
* Small fix for the backend of spectrum sn_ratio_selection() and sn_ratio_deselection(). The standard values have been changed.
* Fix for the window size in user function [http://www.nmr-relax.com/manual/dx_map.html dx.mapuser function]. The size of the windows was not compatible with the latest change.
* Documentation fix in the manual for the lower and upper bonds for parameters in the grid search.
* Documentation fix in the manual for the lower and upper bonds for parameters in the minimisation.
* Extended the devel script image size converter.
* Adding new oxygen icon in all needed sizes.
* Comment fix in user function [http://www.nmr-relax.com/manual/select_sn_ratio.html select.sn_ratio ] and [http://www.nmr-relax.com/manual/deselect_sn_ratio.html deselect.sn_ratio].* Important fix for the [http://www.nmr-relax.com/manual/spectrum_error_analysis_per_field.html spectrum.error_analysis_per_field user function]. This is for the compilation of the user manual. The possessive apostrophe should not be used in the text "spectrum ID's". This grammar error triggers an unfortunate bug in the docstring fetching script docs/latex/fetch_docstrings.py whereby the script thinks that ' is the start of a quote.
* Added a compressed EPS version of the 128x128/actions/document-preview-archive Oxygen icon. The EPS bounding box was manually changed to 0 0 18 18 in a text editor. The scanline translation parameters were also fixed by changing them all to 18 as well. This allows the icon to be used in the relax manual.
* Fix for the blacklist objects in data_store.data_classes.Element.to_xml(). The class blacklist variable was not being taken into account.
* Added the norm_type argument to the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function]. This is in response to http://thread.gmane.org/gmane.science.nmr.relax.devel/7392/focus=7438. This norm_type argument can either be 'first' or 'last' to allow different points of the plot to be the normalisation factor. The default of 'first' preserves the old behaviour of first point normalisation.* The relax_fit_saturation_recovery.py system test script now sets the norm_type argument. This is for testing out this new option for the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function].* The new [http://www.nmr-relax.com/manual/grace_write.html grace.write user function ] norm_type argument has been activated. The argument is now passed from pipe_control.grace.write into the write_xy_data() function of the lib.software.grace module, and is used to select which point to use for the normalisation.* The relaxation exponential curve-fitting auto-analysis now sets the normalisation type. This is for the new [http://www.nmr-relax.com/manual/grace_write.html grace.write user function]. If the model for all spins is set to 'sat', then the norm_type will be set to 'last'. This allows for reasonable normalised curves for the saturation recovery R1 experiment types.
* Change for norm_type variable in the relaxation exponential curve-fitting auto-analysis. This is now set to 'last', not only for the saturation recovery, but now also for the inversion recovery experiment types. This ensures that the normalisation point is the steady state magnetisation peak intensity.
* Cleared the list of blacklisted objects for the cdp.exp_info data structure. The data_store.exp_info.ExpInfo class blacklist variable had previously not been used. But after recent changes, the list was now active. As all the contents of the container were blacklisted, the container was being initialised as being empty when reading the XML formatted state or results files. Therefore the blacklist is now set to an empty list.
* Improvements for all of the tables of the relaxation dispersion chapter of the manual. The captions are now the full width (or height for rotated tables) of the page in the PDF version of the manual. The \latex{} command from the latex2html package has been used to improve the HTML versions of the tables by deactivating the landscape environment, the cmidrule command, and the caption width commands. This results in properly HTML formatted tables, rather than creating a PNG image for the whole table. These should significantly improve the tables in the webpages http://www.nmr-relax.com/manual/Comparison_of_dispersion_analysis_software.html, http://www.nmr-relax.com/manual/The_relaxation_dispersion_auto_analysis.html, and http://www.nmr-relax.com/manual/Dispersion_model_summary.html.
* Created the Structure.test_align_molecules system test. This will be used to extend the functionality of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] to be able to align different molecules in the same data pipe, rather than requiring either models or identically named structures in different data pipes.* Modified the Structure.test_align_molecules system test. This now simultaneously checks both the pipes and molecules arguments to the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
* More changes for the new Structure.test_align_molecules system test.
* Some more fixes for the Structure.test_align_molecules system test.
* Change to the Structure.test_align system test. The molecules argument for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] has been changed to match the models argument, in that it now needs to be a list of lists with the first dimension matching the pipes argument. This change is to help with the implementation of the new structure.align functionality.* Implemented the new molecules argument for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. In addition to accepting the new argument, the user function backend has been redesigned for flexibility. The assembly of coordinates and final rotations and translations now consist of three loops over desired data pipes, all models, and all molecules. If the models or molecules arguments are supplied, then the models or molecules in the loop which do not match are skipped. This logic simplifies and cleans up the backend.* Created the Structure.test_rmsd_molecules system test. This will be used to implement a new molecules argument for the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function ] so that the RMSD between different molecules rather than different models can be calculated.* Implemented the new molecules argument for the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function]. This allows the RMSD between different molecules rather than different models to be calculated, extending the functionality of this user function.* Created the Structure.test_displacement_molecules system test. This will be used to implement the new molecules argument for the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement user function].* Implemented the molecules argument for the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement user function]. This allows the displacements (translations and rotations) to be calculated between different molecules rather than different models. This information is stored in the dictionaries of the cdp.structure.displacement object with the keys set to the molecule list indices.* Created the Structure.test_find_pivot system test. This is to check the [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot user function ] as this algorithm is currently not being checked in the test suite.* Created the Structure.test_find_pivot_molecules system test. This will be used to implement support for a molecules argument in the [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot user function ] so that different molecules rather than different models can be used in the analysis.
* Increased the precision of pivot optimisation in the Structure.test_find_pivot_molecules system test.
* Implemented the molecules argument for the [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot user function]. This allows the motional pivot optimisation between different molecules rather than different models.* Shifted the atomic assembly code from the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] into its own function. The new function assemble_coordinates() of the pipe_control.structure.main module will be used to standardise the process of assembling atomic coordinates for all of the structure user functions. This will improve the support for comparing different molecules rather than different models as missing atoms or divergent primary sequence are properly handled, and it has multi-pipe support.* Changed the argument order for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. The standardised order will now be pipes, models, molecules, atom_id, etc.* Converted the [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot user function ] to the new pipes/models/molecules/atom_id design. This allows the motional pivot algorithm to work on atomic coordinates from different data pipes, different structural models, and different molecules. The change allows the Structure.test_find_pivot_molecules system test to now pass, as missing atomic data is now correctly handled. The user function backend uses the new pipe_control.structure.main.assemble_coordinates() function. The Structure.test_find_pivot and Structure.test_find_pivot_molecules system tests have been updated for the user function argument changes.
* Shift of the atomic coordinate assembly code into the relax library. Most of the pipe_control.structure.main.assemble_coordinates() function has been shifted into the assemble_coord_array() function of the new lib.structure.internal.coordinates module. The pipe_control function now only checks the arguments and assembles the structural objects from the relax data store, and then calls assemble_coord_array() to do all of the work. This code abstraction increases the usefulness of the atomic coordinate assembly and allows it to be significantly expanded in the future, for example by being able to take sequence alignments into consideration.
* Tooltip standardisation for the [http://www.nmr-relax.com/manual/structure_align.html structure.align ] and [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot ] user functions.
* The coordinate assembly function now returns list of unique IDs. This is for each structural object, model and molecule.
* Changed the structure ID strings returned by the assemble_coord_array() function. This is from the lib.structure.internal.coordinates module. The structural object name is only included if more than one structural object has been supplied.
* More improvements for the structure ID strings returned by the assemble_coord_array() function.
* Converted the internal structural displacement object to use unique IDs rather than model numbers. This allows the object to be much more flexible in what types of structures it can handle. This is in preparation for a change in the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement user function].* Converted the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement user function ] to the new pipes/models/molecules/atom_id design. This allows the displacements to be calculated between atomic coordinates from different data pipes, different structural models, and different molecules. The user function backend has been hugely simplified as it now uses the new pipe_control.structure.main.assemble_coordinates() function. The Structure.test_displacement system test has been updated for the user function argument changes.
* Another refinement for the structure ID strings returned by the assemble_coord_array() function.
* Updated the Structure.test_displacement_molecules system test. This is for the changes to the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement user function].
* Docstring spelling fixes for the steady-state NOE and relaxation curve-fitting auto-analyses.
* Converted the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function ] to the new pipes/models/molecules/atom_id design. This allows the RMSD calculation to work on atomic coordinates from different data pipes, different structural models, and different molecules. The user function backend uses the new pipe_control.structure.main.assemble_coordinates() function. The Structure.test_rmsd_molecules system test has been updated for the user function argument changes.
* Created the internal structural object model_list() method. This is to simplify the assembly of a list of all current models in the structural object.
* Converted the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function ] to the new pipes/models/molecules/atom_id design. The user function arguments have not changed, however the backend now uses the new pipe_control.structure.main.assemble_coordinates() function. This is to simply decrease the number of failure points possible in the structure user functions. The change has no effect on the user function use or results.
* Documentation fix for the assemble_coord_array() function. The return values for lib.structure.internal.coordinates.assemble_coord_array() were incorrectly documented.
* Modified the Structure.test_bug_22070_structure_superimpose_after_deletion system test. This now calls the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] after calling the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function ] to better test a condition that can trigger bugs.* Fixes for the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] and [http://www.nmr-relax.com/manual/structure_align.html structure.align ] user functions. The fit_to_mean() and fit_to_first() functions of lib.structure.superimpose where being incorrectly called, in that they expect a list of elements and not lists of lists.* Code refactorisation for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] backend. The looping over data pipes, model numbers, and molecule names, skipping those that don't match the function arguments, has been shifted into the new structure_loop() generator function of the pipe_control.structure.main module. This function assembles the data from the data store and then calls the new loop_coord_structures() generator function of the lib.structure.internal.coordinates module which does all of the work.
* Some docstring expansions for the pipe_control.structure.main module functions.
* Refactored the descriptions of a number of structure user functions. This includes the [http://www.nmr-relax.com/manual/structure_align.html structure.align], [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot], [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd ] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] user functions. The paragraph_multi_struct and paragraph_atom_id module strings have been created and are shared as two paragraphs for each of these user function descriptions. This standardises the pipe/model/molecule/atom_id descriptions. The user function wizard page sizes have been updated for these changes.
* Changed the design of the lib.structure.internal.coordinates.assemble_coord_array() function. The elements_flag argument has been renamed to seq_info_flag. If this is set, then in addition to the atomic elements, the molecule name, residue name, residue number, and atom name is now assembled and returned. This information is now the common information between the structures, hence the return values for the elements are a list of str rather than list of lists. All of the code in pipe_control.structure.main has been updated for the change.
* Fix for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] if no data pipes are supplied. The pipes list was no longer being created as it was shifted to the assemble_coordinates() function, however it is required for the translation and rotation function calls.* Converted the [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion user function ] to the new pipe/model/molecule/atom_id design. This allows the web of motion representation to work on atomic coordinates from different data pipes, different structural models, and different molecules. The user function backend uses the new pipe_control.structure.main.assemble_coordinates() function to assemble the common atom coordinates, molecule names, residue names, residue numbers, atom names and elements. All this information is then used to construct the new web of motion PDB file. Therefore the entire backend has been rewritten. The Structure.test_web_of_motion_12, Structure.test_web_of_motion_13, and Structure.test_web_of_motion_all system tests have all been updated for the changed [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion user function ] arguments. In addition, the system tests Structure.test_web_of_motion_12_molecules, Structure.test_web_of_motion_13_molecules and Structure.test_web_of_motion_all_molecules have been created as a copy of the other tests but with the 3 structures loaded as different molecules.
* Fix for the IDs returned by lib.structure.internal.coordinates.assemble_coord_array(). The list of unique structure IDs was being incorrectly constructed if multiple molecules are present but the molecules argument was not supplied. It would be of a different size to the coordinate data structure.
* Fix for the Structure.test_displacement system test for the assemble_coord_array() function bugfix.
* Modified the Structure.test_align system test to show a failure of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. The alignment causes all atoms in the structural object to be translated and rotated, whereas it should only operate on the atoms of the atom_id argument.* Modified the Structure.test_superimpose_fit_to_mean system test. This is also to demonstrate a bug, this time in the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function], in which the algorithm causes a translation and rotation of all atoms rather than just those selected by the atom_id argument.* Modified some system tests of the [http://www.nmr-relax.com/manual/structure_align.html structure.align ] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] user functions. The displace_id argument has been introduced for both of these user functions for finer control over which atoms are translated and rotated by the algorithm. This allows, for example, to align structures based on a set of backbone heavy atoms while the protons and side chains are displaced by default. Or if a domain is aligned, then just that domain can be displaced.* Added the displace_id argument to the [http://www.nmr-relax.com/manual/structure_align.html structure.align ] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose ] user functions. This gives both of these user functions finer control over which atoms are translated and rotated by the algorithm. This allows, for example, to align structures based on a set of backbone heavy atoms while the protons and side chains are displaced by default. Or if a domain is aligned, then just that domain can be displaced.
* Fixes for the Structure.test_superimpose_fit_to_mean system test for the displace_id argument.
* Modified the Structure.test_align_molecules system test to catch a bug. This is the failure of the displace_id argument of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] when the molecules argument is supplied - all atoms are being displaced instead of a subset.* Fix for the displace_id and molecules arguments of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. The atom ID used for the translations and rotations is now properly constructed from the molecule names in the molecules list and the displace_id string.* Changes for water in the PDB file created by the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function]. The waters with the residue name 'HOH' are no longer output to HET records.* Improvement for the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function]. The helix and sheet secondary structure reading now takes the real_mol argument into account to avoid reading in too much information.* Improvement for the merge argument of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function]. This argument is now overridden if the molecule to merge to does not exist. This allows the merge flag to be used together with read_mol and set_mol_name set to lists.* Fix for the selective secondary structure reading of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function]. The molecule index needs to incremented by 1 to be the molecule number.* Large improvement for the PDB molecule identification code. This affects the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function]. Now the chain ID code, if present in the PDB file, is being used to determine which ATOM and HETATM records belong to which molecule. All of the records for each molecule are stored until the end, when they are all yielded. This allows for discontinuous chain IDs throughout the PDB file, something which occurs often with the HETATM records.* Expanded the displace_id argument for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. This can now be a list of atom IDs, so that any atoms can be rotated together with the structure being aligned. This is useful if the molecules argument is supplied.* Fix for the Noe.test_bug_21562_noe_replicate_fail system test. This is for the changed behaviour of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function]. The problem is that the PDB file read in this test has the chain ID set to X. This broken PDB causes molecule numbering problems.* Expanded the description of the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function].* Changed the paragraph ordering in the documentation of a number of the structure user functions. This includes the [http://www.nmr-relax.com/manual/structure_align.html structure.align], [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], and [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot ] user functions.* Fix for the prompt examples documentation for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].* Improved the sizing layout of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] GUI dialog.* Improved the sizing layout of the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function ] GUI dialog.* Created the Structure.test_atomic_fluctuations system test. This will be used to implement the idea of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].* Implemented the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. This is loosely based on the [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion user function ] and is related to it. The user function will write to file a correlation matrix of interatomic distance fluctuations.
* Created 4 unit tests for the lib.io.swap_extension function. This is in preparation for implementing the function.
* Implemented the lib.io.swap_extension() function. This is confirmed to be fully functional by its four unit tests.
* Created the empty lib.plotting package. This follows from the thread at http://thread.gmane.org/gmane.science.nmr.relax.devel/7444. The package will be used for assembling all of the data plotting capabilities of relax. It will make support for different plotting software - Grace, OpenDX, matplotlib, gnuplot, etc - more coherent. This will be used to create a software independent API for plotting in relax. I.e. the plotting software is chosen by the user and then the data output by the user function passes into the lib.plotting API which is then passed into the software dependent backend in lib.plotting.
* Created the Structure.test_atomic_fluctuations_gnuplot system test. This checks the operation of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function ] when the output format is set to 'gnuplot'. This will be used to implement this option. The current gnuplot script expected by this test is just a very basic starting script for now.
* Created the lib.plotting API function correlation_matrix(). This is the lib.plotting.api.correlation_matrix() function. It will be used for the visualisation of rank-2 correlation matrices. The current basic API design here uses a dictionary of backend functions (currently empty) for calling the backend.
* Implemented a very basic gnuplot backend for the correlation_matrix() plotting API function. This is in the new lib.plotting.gnuplot module. It creates an incredibly basic gnuplot script for visualising the correlation matrix, assuming a text file has already been created.
* Enabled the gnuplot format for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. This uses the plotting API correlation_matrix() function for visualisation. The change allows the Structure.test_atomic_fluctuations_gnuplot system test to pass.* Shifted the matrix output of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function ] into lib.plotting.text. The new lib.plotting.text module will be used by the relax library plotting API to output data into plain text format. The current correlation_matrix() function, which has been added to the API correlation_matrix() function dictionary, simply has the file writing code of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. This significantly simplifies the user function.* More simplifications for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function ] backend.* Fix for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function ] backend. The pipe_control.structure.main.atomic_fluctuations() function no longer opens the output file.
* The gnuplot correlation_matrix() plotting API function now creates a text file of the data. The lib.plotting.gnuplot.correlation_matrix() function now calls the lib.plotting.text.correlation_matrix() function prior to creating the gnuplot script.
* Significantly expanded the gnuplot script from via the correlation_matrix() plotting API function. This is for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. The output terminal is now set to EPS, the colour map changed from the default to a blue-red map, labels have been added, the plot is now square, and comments are now included throughout the script to help a user hand modify it after creation.
* Improvement in the comments from the gnuplot correlation_matrix() plotting API function.
* Updated the Structure.test_atomic_fluctuations_gnuplot system test. This is for the gnuplot correlation_matrix() plotting API changes which affect the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].* Docstring fixes for the Structure.test_atomic_fluctuations_gnuplot system test. This was pointing to the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function ] instead of structure.atomic_fluctuations.* Fixes and improvements for the gnuplot correlation_matrix() plotting API function. This is for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. The "pm3d map" plot type is incorrect for such data type, so instead of using 'splot', 'plot' is being used instead. The resultant EPS file is now much smaller. The colour map has also been changed to one of the inbuilt ones for higher contrast.* Forced the gnuplot correlation_matrix plot to be square. This is for the correlation_matrix() plotting API function used by the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].* Updated the Structure.test_atomic_fluctuations_gnuplot system test. This is for the changes of the gnuplot correlation_matrix() plotting API function used by the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
* Docstring fix for the Structure.test_atomic_fluctuations system test.
* Another docstring fix for the Structure.test_atomic_fluctuations system test.
* Created the Structure.test_atomic_fluctuations_angle system test. This will be used to implement the mapping of inter-atomic vector angular fluctuations between structures via a new 'measure' keyword argument for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].* Implemented angular fluctuations for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. This adds the measure argument to the user function to allow either the default of 'distance' or the 'angle' setting to be chosen. The implementation is confirmed by the Structure.test_atomic_fluctuations_angle system test which now passes.* Clean ups and speed ups of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. Duplicate calculations are now avoided, as the SD matrix is symmetric.* Description improvements and GUI layout fixes for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].* Added the 'parallax shift' measure to the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. The parallax shift is defined as the length of the average vector minus the interatomic vector. It is similar to the angle measure however, importantly, it is independent of the distance between the two atoms.
* Updated the gnuplot scripts to be executable. These are the scripts created by the gnuplot specific correlation_matrix() plotting API function. The file is made executable and the script now starts with "#!/usr/bin/env gnuplot".
* Created the Structure.test_atomic_fluctuations_parallax system test. This is to demonstrate that the parallax shift fluctuations are not implemented correctly.
* Fix for the Structure.test_atomic_fluctuations_parallax system test. The distance shifts need to be numbers, not vectors.
* Proper implementation of the 'parallax shift' for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].* Improved the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function ] documentation. The fluctuation categories are now better explained. And the 'parallax shift' option is now available in the GUI.* Fix for the parallax shift description in the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function]. The parallax shift is not quite orthogonal to the distance fluctuations.
* Implemented ordinary_least_squares function the repeated auto-analysis. Inspection of statistics books, shows that several authors does not recommend using regression through the origin (RTO). From Joseph G. Eisenhauer, Regression through the Origin: RTO residuals will usually have a nonzero mean, because forcing the regression line through the origin is generally inconsistent with the best fit; R square measures (for RTO) the proportion of the variability in the dependent variable "about the origin" explained by regression. This cannot be compared to R square for models which include an intercept. From "Experimental design and data analysis for biologists", G. P. Quinn, M. J. Keough: Minimum observed xi rarely extends to zero, and forcing our regression line through the origin not only involves extrapolating the regression line outside our data range but also assuming the relationship is linear outside this range (Cade & Terrell 1997, Neter et al. 1996); We recommend that it is better to have a model that fits the observed data well than one that goes through the origin but provides a worse fit to the observed data; residuals from the no-intercept model no longer sum to zero; usual partition of SSTotal into SSRegression and SSResidual does not work.
* Added save state for test of bug 23186. [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter "dw" from Monte-Carlo, is based on first spin].
* More robustness for the spin viewer GUI window update_*() methods. The data returned from the self.tree.GetItemPyData(key) call can in rare racing cases not contain the 'id' key. This is now being checked for and are being skipped in the update_mol(), update_res() and update_spin() methods. The problem was found in the Mf.test_bug_20479_gui_final_pipe system test when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
* Created a development document for catching segfaults and other errors in the GUI tests. This is needed as not all wxPython errors can be caught in the Python unittest framework.
* Small whitespace formatting fix for the titles printed by the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display user function].* Improvements for the plots created by the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot user function]. The axes now have labels, and have the range and number of ticks set to reasonable values.* Improvements for the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot user function ] - the plot range is now determined by the data.* Improvements for the [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function ] - the plot range is now determined by the data.
* Added save state for testing implementation of error analysis. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Simplification of system test Relax_disp.test_task_7882_monte_carlo_std_residual, to just test the creation of Monte-Carlo data where errors are drawn from the reduced chi2 distribution. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Extension of the [http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data user function ] to draw errors from the reduced chi2 Gauss distribution as found by best fit. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Adding to backend of pipe_control.error_analysis(), to modify data point as error drawn from the reduced chi2 Gauss distribution. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Adding empty API method to return errors from the reduced chi2 distribution. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* To system test Relax_disp.test_task_7882_monte_carlo_std_residual(), adding test for raise of errors, if the R2eff model is selected. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Added test of argument "distribution" in pipe_control.error_analysis.monte_carlo_create_data(). This is to make sure that a wrong argument is not passed into the function. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Extended the user function '[http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data'user function], to allow for the definition of the STD to use in Gauss distribution. This is for creation of Monte-Carlo simulations, where one has perhaps gained information about the expected errors of the data points, which is not measured. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* In backend pipe_control.error_analysis.monte_carlo_create_data() added the argument 'fixed_error' to allow for fixed input of error to the Gauss distribution. Inserted a range of checks, to make sure function behaves as expected. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Added to pipe_control.error_analysis.monte_carlo_create_data() the creation of data points for a fixed distribution. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* To system test Relax_disp.test_task_7882_monte_carlo_std_residual(), added tests for creation of Monte-Carlo data by different methods. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* In pipe_control.error_analysis.monte_carlo_create_data(), if data is of list type or ndarray, then modify the data point according to the fixed error if the distribution is set to 'fixed'. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Expanded the STD acronym, to the meaning of standard deviation. This is in the user function '[http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data'user function]. [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Added a RelaxWarning printout to the dep_check module if wxPython 2.8 or less is encountered. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/7502. The warning text is simply written to STDERR as relax starts.
* Updated the wxPython version in the relax manual to be 2.9 or higher. This is in the section http://www.nmr-relax.com/manual/Dependencies.html.
* The GUI tests are now skipped for wxPython version <= 2.8 due to bugs causing fatal segfaults. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/7502. These wxPython versions are simply too buggy.
* Fix for the Relax_disp.test_bug_23186_cluster_error_calc_dw system test on 32-bit and Python <= 2.5 systems.
* Better error handling in the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. If no common atoms can be found between the structures, a RelaxError is now raised for better user feedback.
* Created an empty lib.sequence_alignment relax library package. This may be used in the future for implementing more advanced structural alignments (the current method is simply to skip missing atoms, sequence numbering changes are not handled).
* Added the sequence_alignment package to the lib package __all__ list.
* The needleman_wunsch_align() function now accepts the end gap penalty arguments. These are passed onto the needleman_wunsch_matrix() function.
* Added the end gap penalty arguments to lib.sequence_alignment.align_protein.align_pairwise().
* Created the Structure.test_align_CaM_BLOSUM62 system test. This will be used for expanding the functionality of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] to perform true sequence alignment via the new lib.sequence_alignment package. The test aligns 3 calmodulin (CaM) structures from different organisms, hence the sequence numbering is different and the current [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] design fails. The [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] has been expanded in the test to include a number of arguments for advanced sequence alignment.
* Added support for the PAM250 substitution matrix to the protein pairwise sequence alignment function. This is the function lib.sequence_alignment.align_protein.align_pairwise().
* Bug fix for the Needleman-Wunsch sequence alignment algorithm. Part of the scoring system was functioning incorrectly when the gap penalty scores were non-integer, as some scores were being stored in an integer array. Now the array is a float array.
* Created the Test_align_protein.test_align_pairwise_PAM250 unit test. This is in the unit test module _lib._sequence_alignment.test_align_protein. It checks the protein alignment function lib.sequence_alignment.align_protein.align_pairwise() together with the PAM250 substitution matrix.
* Small docstring expansion for lib.sequence_alignment.align_protein.align_pairwise().
* Added the sequence alignment arguments to the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function ] front end. This includes the 'matrix', 'gap_open_penalty', 'gap_extend_penalty', 'end_gap_open_penalty', and 'end_gap_extend_penalty' arguments. The 'algorithm' argument has not been added to save room, as there is only one choice of 'NW70'. A paragraph has been added to the user function description to explain the sequence alignment part of the user function.* Added the sequence alignment arguments to the back end of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. This is to allow the code in trunk to be functional before the sequence alignment before superimposition has been implemented.* Removed the 'algorithm' argument from the Structure.test_align_CaM_BLOSUM62 system test script. This is for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. The argument has not been implemented to save room in the GUI, and as 'NW70' is currently the only choice.* The sequence alignment arguments are now passed all the way to the internal structural object backend. These are the arguments of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
* Created the lib.sequence.aa_codes_three_to_one() function. The lib.sequence module now contains the AA_CODES dictionary which is a translation table for the 3 letter amino acid codes to the one letter codes. The new aa_codes_three_to_one() function performs the conversion.
* Implemented the internal structural object MolContainer.loop_residues() method. This generator method is used to quickly loop over all residues of the molecule.
* Implemented the internal structural object one_letter_codes() method. This will create a string of one letter residue codes for the given molecule. Only proteins are currently supported. This method uses the new lib.sequence.aa_codes_three_to_one() relax library function.
* Sequence alignment is now performed in lib.structure.internal.coordinates.assemble_coord_array(). This is a pairwise alignment to the first molecule of the list. The alignments are not yet used for anything. The assemble_coord_array() function is used by the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function], as well as a few other structure user functions.
* Fix for the lib.sequence.aa_codes_three_to_one() function. Non-standard residues are now converted to the '*' code. The value of 'X' prevents any type of alignment of a stretch of X residues as X to X in both the BLOSUM62 and PAM250 substitution matrices are set to -1.
* Modified the gap penalty arguments for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. These now must always be supplied, as None is not handled by the backend lib.sequence_alignment.needleman_wunsch module. The previous defaults of None are now set to 0.0.
* Updated the artificial diffusion tensor test suite data. This is the data in test_suite/shared_data/diffusion_tensor. The residues in the PDB files are now proper amino acids, so the HETATM records are now ATOM records, and the CONECT records have been eliminated.
* Another update for the artificial diffusion tensor test suite data. The number of increments on the sphere has been increased from 5 to 6, to make the vector distribution truly uniform. All PDB files and relaxation data has been updated.
* Reintroduced the simulated PDB truncation into the artificial diffusion tensor test suite data. This is different to the previous implementation which was deleted recently. It now simulates the truncation of both the N and H positions in the PDB and reconstructs the expected vector.
* Updates for some of the Structure.test_create_diff_tensor_pdb_* system tests. This includes Structure.test_create_diff_tensor_pdb_ellipsoid, Structure.test_create_diff_tensor_pdb_oblate, and Structure.test_create_diff_tensor_pdb_prolate. The new simulated PDB truncation in the test data causes the PDB files created in these tests to be slightly different.
* The pairwise sequence alignment is now active in the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function]. This is implemented in the lib.structure.internal.coordinates.assemble_coord_array() function for assembling atomic coordinates. It will also automatically be used by many of the structure user functions which operate on multiple structures. The atomic coordinate assembly logic has been completely changed. Instead of grouping atomic information by the molecule, it is now grouped per residue. This allows the residue based sequence alignments to find matching coordinate information. The assemble_coord_array() function will also handle the algorithm argument set to None and assume that the residue sequences are identical between the structures, but this should be avoided. A new function, common_residues() has been created as a work-around for not having a multiple sequence alignment implementation. It will take the pairwise sequence alignment information and construct a special data structure specifying which residues are present in all structures. The logic for skipping missing atoms remains in place, but it now operates on the residue rather than molecule level and simply uses the atom name rather than atom ID to identify common atoms.
* Changed the gap opening penalty to 10 in the N-state model structure_align.py system test script.
* Docstring update for the pipe_control.structure.main.assemble_coordinates() function. This is for the algorithm argument which can now be set to None.
* Fix in dispersion API, to set error value for clustered values. [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter "dw" from Monte-Carlo, is based on first spin.
* Fix for [https://gna.org/bugs/?23187 bug #23187, the problem whereby opening the spin viewer window, deleting a residue, and then reopening the spin viewer crashes relax]. This change completes the spin viewer update_*() functions. The prune_list variable was initialised but not used. Now it is used to store the keys of the items to delete, and then the items are deleted at the end in a new loop so that the loop over the dictionary keys is not corrupted.
* Fix for the [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function]. The Y-axis is now set to the measured RDC, as the RDC errors are plotted as dY errors. This matches the behaviour of the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot user function].* Bug fix for the printouts from the [http://www.nmr-relax.com/manual/relax_data_read.html relax_data.read user function]. This problem was introduced in the last relax release. The problem is that the spin ID in the loaded relaxation data printout is the same for all data, being the spin ID of the first spin. This has no effect on how relax runs, it is only incorrect feedback.* Bug fix for the PDB secondary sheet handling when combining multiple PDB structures. The helix and sheet metadata now converts the original chain IDs into molecule indices, shifted to new values based on the currently loaded data, when the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] is executed. When the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function ] is executed, the molecule indices are converted into new chain IDs. This allows the chain IDs in the HELIX and SHEET records to match those of the ATOM and HETATOM records.* Bug fix for the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] parsing of CONECT records. CONECT records pointing to ATOM records were not being read by the user function. As ATOM records should not require CONECT records by their definition, this is only a minor problem affecting synthetic edge cases.
<section end=bugfixes/>
Trusted, Bureaucrats
4,228

edits

Navigation menu