Finally, it's arrived! The new and improved relax is finally ready for release. It's taken 2 years to get here, 4400 individual changes, and a complete rewrite of almost every last line of code - all in all an impressive team effort. Although the jump from [[relax 1.3.0|1.3.0]] to [[relax 1.3.1|1.3.1]] appears small, the changes are so expansive that hardly any code is preserved between these versions. In addition, the release includes all changes which occurred between relax versions [[relax 1.2.10|1.2.10]] and [[relax 1.2.14|1.2.14]]. For this shiny new version, we have had complete redesign of relax. This started all the way back in October of 2006 with the post https://mail.gna.org/public/relax-devel/2006-10/msg00053.html. This overhaul involves the new molecule-residue-spin data structure and the elimination of the 'run' concept replacing it with the data pipe paradigm.
No longer is relax constrained to handling a single spin type for the entire system, or a single spin per residue. Multiple structures, multiple residues per structure, and multiple spins per residue can be handled, paving the way for using relax with small organic molecules, with RNA and DNA, and for protein systems using not only 15N <sup>15</sup>N data but also any data from carbons or other spin types. As for the data pipe concept, this is the next logical step in the evolution of relax. The 'run' had significantly diverged from its original meaning, so now it has been renamed to the pipe. Everything in relax is now associated with a data pipe. These pipes can be [http://www.nmr-relax.com/manual/pipe_create.html created], merged with user functions such as [http://www.nmr-relax.com/manual/model_selection.html model_selection], branched by [http://www.nmr-relax.com/manual/pipe_copy.html copying], and the entire contents preserved at any time into an [http://www.nmr-relax.com/manual/results_write.html XML formatted results file] - imagination is the only limitation as to what can be done with these pipes. The progress of relax can be considered as the flow of data through these pipes, with each user function modifying or using the contents.
For for identifying and selecting spins, the spin identification string concept has been introduced. The string is composed of three components: the molecule id token beginning with the '#' character, the residue id token beginning with the ':' character, and the atom or spin system id token beginning with the '@' character. Each token can be composed of multiple elements separated by the ',' character and each individual element can either be a number, name, or range of numbers separated by the '-' character. Hence the full id string specification is "#<mol_name> :<res_id>[, <res_id>[, <res_id>, ...]] @<atom_id>[, <atom_id>[, <atom_id>, ...]],". Basic usage of the Boolean operators and ('&') and or ('|') is also supported.