* Expanded the functionality of the [http://www.nmr-relax.com/manual/rdc_copy.html rdc.copy] and [http://www.nmr-relax.com/manual/pcs_copy.html pcs.copy] user functions, allowing for the operation on two data pipes with different spin sequences, skipping deselected spins and interatomic data containers, printing out all copied data for better feedback, and copying all alignment metadata.
* The [http://www.nmr-relax.com/manual/sequence_attach_protons.html sequence.attach_protons user function] now lists all the newly created spins.
* Clarification of the RDC and PCS Q factors with the printouts and XML file variable names modified to indicate if the normalisation is via the tensor size (2D<sub>a</sub><sup>2</sup>(4 + 3R)/5) or via the sum of data squared to allow for clearer RDC vs. PCS comparisons.
* Expansion of the [http://www.nmr-relax.com/manual/align_tensor_copy.html align_tensor.copy user function] to allow all tensors to be copied between different data pipes.
* Huge speed up for loading results and state files with Monte Carlo simulation alignment tensors.
* Added the 'title' and 'subtitle' arguments to the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot user function]. This problem was detected by the new [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.pcs.Pcs-class.html#test_corr_plot Pcs.test_corr_plot system test]. The [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot user function] now matches the [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function] in terms of arguments.
* Completed the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.pcs.Pcs-class.html#test_corr_plot Pcs.test_corr_plot system test]. The file contents are now known and have been carefully checking in Grace.
* Clarification of the RDC and PCS Q factors. This affects the [http://www.nmr-relax.com/manual/rdc_calc_q_factors.html rdc.calc_q_factors] and [http://www.nmr-relax.com/manual/pcs_calc_q_factors.html pcs.calc_q_factors] user functions, as well as all other operations involving the calculation of Q factors. The printouts have been modified to clarify if the normalisation is via the tensor size (2D<sub>a</sub><sup>2</sup>(4 + 3R)/5) or via the sum of data squared, and the separation of the two is now clearer. This allows for better RDC vs. PCS comparisons. In addition, the data pipe variable names have been updated to reflect the normalisation, so it is instantly known when looking at the XML contents of results or save files which was used. The backwards compatibility hooks have been modified to support the data pipe variable name changes.
* The [http://www.nmr-relax.com/manual/align_tensor_copy.html align_tensor.copy user function] 'tensor_from' argument can now be None. This is to enable the copying of all alignment tensors from one data pipe to another.
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.align_tensor.Align_tensor-class.html#test_copy_pipes Align_tensor.test_copy_pipes system test]. This is to show a problem in the [http://www.nmr-relax.com/manual/align_tensor_copy.html align_tensor.copy user function] when copying all tensors between data pipes.
* Big bug fix for the [http://www.nmr-relax.com/api/3.3/pipe_control.interatomic-module.html#interatomic_loop pipe_control.interatomic.interatomic_loop() function]. This was identified in the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.rdc.Rdc-class.html#test_rdc_copy_different_spins Rdc.test_rdc_copy_different_spins system test]. The problem was that the pipe argument was being ignored when looking up the spin containers. Hence if the pipe being worked on was not the current data pipe, and the spin sequences were not identical, the function would fail. This mainly affects the [http://www.nmr-relax.com/manual/rdc_copy.html rdc.copy user function].
* Fix for the [http://www.nmr-relax.com/manual/pcs_read.html pcs.read user function]. The problem was caught by the new [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.pcs.Pcs-class.html#test_pcs_copy_different_spins Pcs.test_pcs_copy_different_spins system test]. If the spin system does not exist in the current data pipe, but data for it is present in the PCS file, the [http://www.nmr-relax.com/manual/pcs_read.html pcs.read user function] would terminate in a TypeError.
* Fixes for the [http://www.nmr-relax.com/manual/rdc_calc_q_factors.html rdc.calc_q_factors user function] for when no alignment tensor is present. This was caught by the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.rdc.Rdc-class.html#test_calc_q_factors_no_tensor Rdc.test_calc_q_factors_no_tensor system test]. Now if no tensor is present, a warning is given and the 2D<sub>a</sub><sup>2</sup>(4 + 3R)/5 normalised Q factor is skipped. Also, if present but no spin isotope information is present, then RelaxSpinTypeError errors are raised.
* Fix for the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot user function] when the spin containers have no element information.
* Fix for [https://gna.org/bugs/?23372 bug #23372, the sequence.read failure with CSV files]. The problem was that the sep argument was not being passed all the way to the backend [http://www.nmr-relax.com/api/3.3/lib.io-module.html#extract_data lib.io.extract_data() function].