* The new user function class 'spectrum' contains all functions associated with spectral data.
* Spectral data is now identified by unique spectrum ID strings.
* The [http://www.nmr-relax.com/manual/noe_read.html noe.read() ] and [http://www.nmr-relax.com/manual/relax_fit_read.html relax_fit.read() ] user functions have been merged into [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities()].* The [http://www.nmr-relax.com/manual/relax_fit_mean_and_error.html relax_fit.mean_and_error() user function ] is now called [http://www.nmr-relax.com/manual/spectrum_error_analysis.html spectrum.error_analysis()].* The [http://www.nmr-relax.com/manual/noe_error.html noe.error() user function ] is now called [http://www.nmr-relax.com/manual/spectrum_baseplane_rmsd.html spectrum.baseplane_rmsd()].* The new [http://www.nmr-relax.com/manual/spectrum_integration_points.html 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 [http://www.nmr-relax.com/manual/relax_fit_relax_time.html relax_fit.relax_time()].* [http://www.nmr-relax.com/manual/grace_write.html grace.write() ] will now show a warning when an empty file is being created.* Replicated spectra are now specified explicitly via [http://www.nmr-relax.com/manual/spectrum_replicated.html 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 [http://www.nmr-relax.com/manual/structure_vectors.html 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.
* 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 [http://www.nmr-relax.com/manual/molecule_name.html 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 [http://www.nmr-relax.com/manual/spin_create.html spin.create() ] and [http://www.nmr-relax.com/manual/residue_create.html 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 [http://www.nmr-relax.com/manual/structure_vectors.html 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 [http://www.nmr-relax.com/manual/pcs_centre.html pcs.centre() user function ] can now accept pseudo-atoms.* The [http://www.nmr-relax.com/manual/pcs_centre.html 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.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 [http://www.nmr-relax.com/manual/n_state_model_set_type.html n_state_model.set_type() ] to [http://www.nmr-relax.com/manual/align_tensor_reduction.html align_tensor.reduction()].* Renamed [http://www.nmr-relax.com/manual/n_state_model_set_domain.html n_state_model.set_domain() ] to [http://www.nmr-relax.com/manual/align_tensor_set_domain.html align_tensor.set_domain()].
* The statistics ordering has been improved when profiling.
* [http://www.nmr-relax.com/manual/align_tensor_init.html 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 [http://www.nmr-relax.com/manual/rdc_read.html rdc.read() ] and [http://www.nmr-relax.com/manual/pcs_read.html pcs.read()].* Large improvements to the information printed by the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display() user function].* Removed a check for the presence of the alignment tensor so that [http://www.nmr-relax.com/manual/align_tensor_init.html 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().
<section end=changes/>
<section begin=bugfixes/>
* A bug in the Monte Carlo simulations for relaxation curve-fitting has been fixed ([https://gna.org/bugs/?12670 bug #12670]).
* Fixes for the Pymol PDB file opening and [http://www.nmr-relax.com/manual/pymol_cartoon.html 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 ([https://gna.org/bugs/?12679 bug #12679]).
* Fix for the [http://www.nmr-relax.com/manual/value_read.html value.read() user function], the directory and 'sep' arguments were being ignored.* Multiple failures of [http://www.nmr-relax.com/manual/structure_load_spins.html structure.load_spins() ] for different PDB file layouts have been fixed ([https://gna.org/bugs/?12735 bug #12735]).
* Model-free optimisation failures on Mac OS X for PowerPC ([https://gna.org/bugs/?12573 bug #12573]).
* Many PDB file reading fixes for different multi-molecule/multi-model formats.
* 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 [http://www.nmr-relax.com/manual/spin_copy.html 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 ([https://gna.org/bugs/?13163 bug #13163]).
* Rex values in XML results file not in s-1 ([https://gna.org/bugs/?13162 bug #13162]).
* Fix for the [http://www.nmr-relax.com/manual/structure_create_diff_tensor_pdb.html structure.create_diff_tensor_pdb() user function ] which was creating weird shaped ellipsoid diffusion tensor representations when 'alpha' and 'beta' were unequal ([https://gna.org/bugs/?13032 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 [http://www.nmr-relax.com/manual/results_read.html 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 ([https://gna.org/bugs/?13259 bug #13259]).
* 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 [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb() user function].* [http://www.nmr-relax.com/manual/pymol_cartoon.html 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 [http://www.nmr-relax.com/manual/grace_write.html 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 [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html 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.