text:
SRS form the basis of sampling and survey methods as it is easy to design and analyse, but it is rarely the best design. We may adopt systematic sampling or cluster sampling but we often are limited by the availability of sampling from. Thus, we need to look at stratified sampling to increase the precision.

In stratified sampling, we divide the population in H subpopulations, called strata, which do not overlap (mutually exclusive) and constitute the whole population so that each sampling unit belongs to exactly one stratum. We then draw independent random sample from each stratum.

Consider that we have 1000 males and 1000 females to select from, a SRS of size 100 might lead us to have no or very few males or females. This will cause us to not have a presentative sample since men and women respond differently on the item of interest. A stratified sample on the other hand, will suggest we take a SRS of 50 males and an independent SRS of 50 females, ensuring that the proportion in the sample is the same as that in the population.

• Clearly, we will have better precision (lower variance) using a stratified sampling as compared to SRS, for the estimates of population means and total. This is because variance within each stratum is often lower than ht variance in the whole population.
• Convenient to administer and may result in a lower cost. Sampling frame may be conducted differently in different strata, or different sampling designs or field procedures may be used. For example, using an internet survey by a large firm and a telephone survey for a small firm.

So let us look at some notations that we will be using.  Firstly, we divide the population N into H mutually exclusive and exhaustive strata.
h = 1, 2, …, H index the strata.
$N_h$ = number of sampling units in stratum h. Total number of units in the entire population $N = N_1 + N_2 + \ldots + N_H$
$n_h$ = number of sample units draw from stratum h. Total sample size $n = n_1 + n_2 + \ldots + n_H$
$D_h$ = the set of $n+h$ sample units drawn from stratum h.
$y_{hj}$ = value of $j^{th}$ unit in stratum h, where h = 1, 2, .., H and j = 1, 2, …, $N_h$.
Stratum population total, $= t_h = \sum_{j=1}^{N_h} y_{hj}, h=1, 2, \ldots , H$
Population total, $t = \sum_{h=1}^H t_h$
Stratum population mean, $\bar{y}_{hu} = \frac{1}{N_h} \sum_{j=1}^{N_h} y_{hj}$
Population mean, $\bar{y_u} = \frac{t}{N} = \frac{1}{N} \sum_{h=1}^{H} \sum_{j=1}^{N_h} y_{hj}$
Stratum population variance, $S_h^2 = \frac{1}{N_h - 1} \sum_{j=1}^{N_h} (y_{hj} - \bar{y}_{hu})^2$

Since we assume SRS within each stratum, then when we have a population of $N_h$ units and take an SRS of $n_h$ units, we can estimate $\bar{y}_{hu}$ by $\bar{y_h}$ and $t_h$ by $\hat{t_h} = N_h \bar{y}_h$
Estimate of stratum population mean $\bar{y}_{hu}$, $\bar{y_h} = \frac{1}{n_h} \sum_{j \in D_h} y_{hj}$
Estimate of stratum population total $t_h$, $\hat{t_h} = N_h \bar{y_h} = \frac{N_h}{n_h} \sum_{j \in D_h} y_{hj}$
Estimate of stratum population variance ${S_h}^2$, ${s_h}^2 = \frac{1}{n_h - 1} \sum_{h \in D_h} (y_{hj} = \bar{y_u})^2$

Notice $\frac{N_h}{N}$ appears a few times, this is the weight of $\bar{y_h}$ which is the proportion of the population units in stratum h, that is, relative sizes of the strata. When we use stratified sampling, the relative sizes of the strata must be known.
Estimate of population total $t = \sum_{h=1}^H t_h$, $\hat{t}_{STR} = \sum_{h=1}^H \hat{t_h} = \sum_{h=1}^H N_h \bar{y_h}$
Estimate of population mean $\bar{y_u}$, $\bar{y}_{STR} = \frac{\hat{t}_{STR}}{N} = \sum_{h=1}^H \frac{N_h}{N} \bar{y_h}$

Since we do SRS in each stratum, both $\bar{y}_{STR}$ and $\hat{t}_{STR}$ are unbiased estimates of $\bar{y_u}$ and t. Similarly, the variances of the estimators are obtained through SRS since we do independent sampling for different strata.
$Var(\hat{t}_{STR}) = \sum_{h=1}^H Var(\hat{t_h}) = \sum_{h=1}^H (1 - \frac{n_h}{N_h}) N_h^2 \frac{S_h^2}{n_h}$
$Var(\bar{y}_{STR}) = \frac{1}{N^2} Var(\hat{t}_{STR}) = \sum_{h=1}^H (1 - \frac{n_h}{N_h})(\frac{N_h}{N})^2 \frac{S_h^2}{n_h}$
As always, the standard error of an estimator is the square root of the estimated variance:
$SE(\hat{t}_{STR}) = \sqrt{\hat{V}(\hat{t}_{STR})}$
$SE(\bar{y}_{STR}) = \sqrt{\hat{V}(\bar{y}_{STR})}$

As long as we select at least one element per stratum, the specification for a stratified sample is satisfied. And with two elements per stratum, we can estimate both the mean and its error.

If either the sample sizes within each stratum are large or the number of strata are large, the approximate $100(1 - \alpha)\%$ confidence interval for the population mean $\bar{y_u}$ can be constructed as $\bar{y}_{STR} \pm z_{\alpha / 2} SE(\bar{y}_{STR})$ = $\bar{y}_{STR} \pm z_{\alpha / 2} \sqrt{\hat{Var}(\bar{y}_{STR})}$

We recall that proportion is a special mean.
$\hat{p}_{STR} = \sum_{h=1}^H \frac{N_h}{N} \hat{p_h}$
$Var(\hat{p}_{STR}) = \sum_{h=1}^H (\frac{N_h}{N})^2 (\frac{N_h - n_h}{N_h - 1}) \frac{p_h (1 - p_h)}{n_h}$
$\hat{Var}(\hat{p}_{STR}) = \sum_{h=1}^H (\frac{N_h}{N})^2 (\frac{N_h - n_h}{N_h - 1}) \frac{\hat{p_h} (1 - \hat{p_h})}{n_h}$

In SRS, we learnt that $\hat{t} = N \bar{y} = \sum_{i \in D} \frac{N}{n} y_i = \sum_{i \in D} w_i y_i$ and $w_i = \frac{1}{\pi_i} = \frac{N}{n}$ for i = 1, 2, …, N, refers to our sample weights. The sampling weight of unit i can be interpreted as the number of population units represented by unit i. And in STR:
$\hat{t}_{STR} = \sum_{h=1}^H \hat{t_h} = \sum_{h=1}^H N_h \bar{y_h} = \sum_{h=1}^H \sum_{j=1}^{n_h} \frac{N_h}{n_h} y_{hj} = \sum_{h=1}^H \sum_{j=1}^{n_h} w_{hj} y_{hj}$
Here $w_{hj} = \frac{N_h}{n_h}$ measures the number of units in population represented by the $j^{th}$ unit in stratum h. Clearly, $\sum_{h=1}^H \sum_{j \in D_h} w_{hj} = N$
It should be noted that under SRS within strata, weights for each sampling unit within a stratum are the same, while weights across the strata may be different.

Now we study how to do proportional allocation (an important property of stratified sampling), that is, allocating such that the number of sampled units in each stratum is proportional to the size of the stratum.
Stratum sample size, $n_h = N_h \frac{n}{N}$
Notice this rewrites to $\frac{n_h}{N_h} = \frac{n}{N}$ which implies that sampling weights (inclusion probabilities) for all units are constant.
Thus, the probability that an individual will be selected to be in the sample, $\frac{n}{N}$ is the same as in an SRS, but many bad samples that could occur in an SRS cannot be elected in a stratified sample with proportional allocation. A stratified sampled with proportional allocation is self-weighting (every unit in the sample has the same weight and represents the same number of unit in the population).

When $N_h$ is large enough, the variance of $\bar{y}_{STR}$ is under proportional allocation is usually lesser or equal to the variance of $\bar{y}$ from an SRS with the same number of observations.

When we have a stratified sample of size n with proportional allocation, $\frac{n_h}{N_h} = \frac{n}{N}$
$Var_{prop}(\hat{t}_{STR}) = \sum_{h=1}^H (1 - \frac{n_h}{N_h}) {N_H}^2 \frac{{S_h}^2}{n_h} = (1 - \frac{n}{N}) \frac{N}{n} \sum_{h=1}^H N_h {S_h}^2 = (1 - \frac{n}{N}) \frac{N}{n} (SSW + \sum_{h=1}^H {s_h}^2)$
We can find $Var_{SRS}(\hat{t})$ too.

In general, the variance of the estimator of t from a stratified sample with proportional allocation will be smaller than the variance of the estimator of t from an SRS with the same number of observations. The more unequal the stratum means the more precise $\bar{y}_{hu}$ get when we use proportional allocation.

Note that $Var_{prop}(\hat{t}_{STR})$ depends primarily on SSW since SSTO is a fixed value for the finite population. Consequently, SSW is smaller when SSB is larger. This result ONLY holds for population variances.

After considering proportional allocation, we can now look at optimal allocation. For proportional allocation, we increase precision (lower variance) when the within-stratum variance are more of less equal across all the strata. But we do not consider the cost $c_h$ here. Our goal is to minimise the variance of the estimate given a total cost.

Problem: min $C = c_0 + \sum_{h=1}^H c_h n_h$ where C = total cost, $c_0$ = overhead (fixed) cost and $c_h$ = cost of taking an observation in stratum h.
We can use Lagrange Multpliers to solve and will find that the optimal allocation $n_h \propto \frac{N_h S_h}{\sqrt{c_h}}$
Thus the optimal sample size in stratum h is $n_h = (\frac{\frac{N_h S_h}{\sqrt{c_h}}}{\sum_{l=1}^H \frac{N_l S_l}{\sqrt{c_l}}})n$

Since $n_h \propto \frac{N_h S_h}{\sqrt{c_h}}$, we see that sample size depends on stratum size, stratum variance, sampling cost.

• Proportional allocation is the optimal allocation if all variance and cost are equal across the strata. $\Rightarrow n_h \propto N_h$
• Neyman allocation is a special case of optimal allocation, used when the cost in the strata (not the variances) are approximately equal. $\Rightarrow n_h \propto N_h S_h$

In short, we have 3 methods of allocation of a sample to strata: Equal, Proportional, and Optimum (Neyman). These allocation strategies allow us to know the proportion of sample allocated to every stratum.

We say under absolute precision, that the desired margin of error is half-width of the confidence interval. The half-width of CI is $z_{\alpha / 2 } \sqrt{Var(\hat{t}_{STR})} = z_{\alpha / 2 } \sqrt{\frac{v}{n}}$ by definition if we ignore the FPC. So $n = \frac{z_{{\alpha / 2}}^2 v}{e^2}$

We may argue that stratified sampling almost always gives higher precision than SRS, and one should simply consider stratified only. However, we should note that stratified adds complexity to the survey, and we need to weigh if the gain in precision is worthy as compared with the added complexity. Stratified sampling is most efficient when the stratum mean differ widely, so we should construct such that the strata mean is as different as possible. To do this, we need more information. But the more information we have, the more strata we have, the more complexity there is. We will use SRS if there is no or little information about the target population.

Sampling & Survey #1 – Introduction
Sampling & Survey #2 – Simple Probability Samples
Sampling & Survey #3 – Simple Random Sampling
Sampling & Survey #4 – Qualities of estimator in SRS
Sampling & Survey #5 – Sampling weight, Confidence Interval and sample size in SRS
Sampling & Survey #6 – Systematic Sampling
Sampling & Survey #7 – Stratified Sampling
Sampling & Survey # 8 – Ratio Estimation
Sampling & Survey # 9 – Regression Estimation
Sampling & Survey #10 – Cluster Sampling
Sampling & Survey #11 – Two – Stage Cluster Sampling
Sampling & Survey #12 – Sampling with unequal probabilities (Part 1)
Sampling & Survey #13 – Sampling with unequal probabilities (Part 2)
Sampling & Survey #14 – Nonresponse

### One Comment

• […] Confidence Interval and sample size in SRS Sampling & Survey #6 – Systematic Sampling Sampling & Survey #7 – Stratified Sampling Sampling & Survey # 8 – Ratio Estimation Sampling & Survey # 9 – Regression […]


text:
# Main Page

(Difference between revisions)
Jump to: navigation, search
 Revision as of 15:55, 15 August 2005 (view source)Odile (Talk | contribs) (Changé le lien vers Skolelinux vers un lein pour Debian_Edu)← Older edit Revision as of 20:24, 15 August 2005 (view source)Hilaire (Talk | contribs) (Update the main page)Newer edit → Line 1: Line 1: - {{MainNav}} + {{IntroMain}} - Wiki software successfully installed. +
- Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] + {| - and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. + | {{IntroFreeduc-cd}} - + | {{IntroFreeduc-doc}} - + | {{IntroDebian-edu}} - ==Projects== + | {{IntroSoftware}} - [[Debian_Edu]] + |} - + - ==Test maths== + - $x + 2$ + - $\frac{\sqrt{5}}{2}$ + - + - ==Test uploads== + - [[Image:Mahalia_Jackson1.jpg]] + - + - ==Others tests== +

## Contents

### The OFSET collaborative portal

"...because collaboration is the path to success in free software for education"

Welcome to the OFSET collaborative portal. OFSET is a community of volunteers willing to develop and to enhance free software for education. The success of free software in education can be achieved by an open and frank collaboration between teachers, software developers, translators and authors. Therefore we are proposing this portal as a central point where exchanges can take place in any suited forms. Please keep reading the following sections and come back to collaborate.

### Freeduc-cd

Freeduc-cd is a GNU/Linux distribution which can be used without installation. It is specifically dedicated to the world of education and it enables an easy introduction for stakeholders of education to the 40 free software packages included on the cd-rom. Freeduc-doc is its sister project related to introductive documentation about the software. Read more.

### Freeduc-doc

Freeduc-doc is the sister project of Freeduc-cd. Proposing free software to educators is good, providing as well introductions to these free software is even better, this is the aim of this project. We need authors, translators and reviewers to keep going in this project. Read more.

### Debian-edu

Debian-edu is the official Debian project to provide a global solution to schools ICT infrastructure.

French: Debian-edu est le projet officiel de Debian pour fournir une solution logicielle globale d'informatisation d'un établissement scolaire. Nous proposons dans les pages suivantes l'espace francophone de collaboration autour de Debian-Edu. Lire la suite.

### Software

Promoting free software in education is wise, developing and contributing to such free software is even better. This is what we have been doing since several years. Writing quality free software required years of hard work, therefore collaboration is the only way to sustain and improve such efforts. Read more.

format: plain


text:
# relax release descriptions

This is a collection of all of the descriptions for each released relax version.

# Version 4 of relax

## relax 4.0 series

### relax 4.0.3

This is a minor feature and bugfix release. The structure.rmsd user function can now calculate per-atom RMSDs, structure superimposition is now orders of magnitude faster, the relax deployment scripts have been improved and expanded to cover other GNU/Linux systems, OpenMPI system testing scripts have been added, and the relax information printout has been improved. Bugfixes include that the structure.rmsd user function now correctly calculates the RMSD value, and the inversion recovery relaxation curve-fitting equations are now correct.

### relax 4.0.2

This is a minor feature and bugfix release. The new user functions system.cd and system.pwd have been added to allow the working directory to be changed and displayed. The time and sys_info user functions have been renamed to system.time and system.sys_info. The structure.delete_ss user function has been created to remove the helix and sheet information from the internal structural object. For bugs, the R2eff dispersion model can now handle missing peaks in subsets of spectra, and the structure.read_pdb can now handle multiple structures and multiple models with the merge flag set.

### relax 4.0.1

This is a major feature and bugfix release. Features include the new structure.pca user function for performing a principle component analysis (PCA) of a set of structures, handling of replicated R2,eff data points in the dispersion analysis, improvements in the handling of PDB structures, the protection against numpy ≥ 1.9 FutureWarnings for a number of soon to change behaviours in numpy, and addition of a deployment script for the Google Cloud Computing. Bugfixes include an error when loading relaxation data, the CSA constant equation in the manual, missing information in the relax state and results files, loading of certain state files in the GUI, running relax with no graphical display and using matplotlib, BMRB export failure when a spin container is missing data or parameters.

### relax 4.0.0

This is a major feature release for a new analysis type labelled 'frame order'. The frame order theory aims to unify all rotational molecular physics data sources via a single mechanical model. It is a bridging physics theory for rigid body motions based on the statistical mechanical ordering of reference frames. The previous analysis of the same name was an early iteration of this theory that was however rudamentary and non-functional. Its current implementation is for analysing RDC and PCS data from an internal alignment to interpret domain or other rigid body motions within a molecule or molecular complex.

# Version 3 of relax

## relax 3.3 series

### relax 3.3.9

This is a minor feature release with improvements to the automatic relaxation dispersion protocol for repeated CPMG data, support for Monte Carlo or Bootstrap simulating RDC and PCS Q factors, a huge speedup of Monte Carlo simulations in the N-state model analysis, and geometric mean and standard deviation functions added to the relax library.

### relax 3.3.8

This is a minor bugfix release which allows the relax GUI to be used on screens with the low resolution of 1024x768 pixels.

### relax 3.3.7

This is a major feature and bugfix release. New features include the statistics.aic and statistics.model user functions, plotting API advancements, huge speed ups for the assembly of atomic coordinates from a large number of structures, the sorting of sequence data in the internal structural object for better structural consistency, conversion of the structure.mean user function to the new pipe/model/molecule/atom_id design, and improvements to the rdc.copy and pcs.copy user functions. Bugs fixed include the incorrect pre-scanning of old scripts identifying the minimise.calculate user function as the old minimise user function, Python 3 fixes, and the failure in reading CSV files in the sequence.read user function. Many more features and bugfixes are listed below.

### relax 3.3.6

This is a minor feature and bugfix release. It includes the addition of the new structure.sequence_alignment user function which can use the 'Central Star' multiple sequence alignment algorithm or align based on residue numbers, saving the results in the relax data store. The assembly of structural coordinates used by the structure.align, structure.atomic_fluctuations, structure.com, structure.displacement, structure.find_pivot, structure.mean, structure.rmsd, structure.superimpose and structure.web_of_motion user functions has been redesigned around this new user function. It will use any pre-existing sequence alignments for the molecules of interest, use no sequence alignment if only structural models are selected, and default to a residue number based alignment if the structure.sequence_alignment user function has not been used. Bug fixes include a system test failure on Mac OS X, and I parameter text files and Grace graphs are now produced by the relaxation curve-fitting auto-analysis for the inversion recovery and saturation recovery experiment types. Many more details are given below.

### relax 3.3.5

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 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 structure.align and structure.superimpose user functions as well as any of the other structure user functions dealing with multiple molecules, conversion of the structure.displacement, structure.find_pivot, structure.rmsd, structure.superimpose and 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 structure.align and 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 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 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 pcs.corr_plot and rdc.corr_plot user functions. Many more features and bugfixes are listed below.

### relax 3.3.4

This is a major feature and bugfix release, finally adding support for the saturation recovery and inversion recovery R1 experiments and including a major bug fix for storing multi-dimensional numpy data structures as IEEE 754 byte arrays in the XML output of the relax state and results files.

### relax 3.3.3

This is a major feature and bugfix release. It fixes a failure when loading relaxation data and adds Python 3 support for using the NMRPipe showApod software. Features include a large expansion for the align_tensor.matrix_angles and align_tensor.svd user functions to support the standard inter-matrix angles, the unitary 9D vector notation {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz}, and the irreducible spherical tensor 5D basis set of {A-2, A-1, A0, A1, A2} for correctly calculating the inter-tensor angles, singular values and condition numbers.

### relax 3.3.2

This is a minor feature and bugfix release. It includes improvements to the readability of the HTML version of the manual, improved printouts throughout the program, numerous GUI enhancements, and far greater Python 3 support. Please see below for a full listing of all the new features and bugfixes.

### relax 3.3.1

This is a minor feature and bugfix release. It includes the addition of the error_analysis.covariance_matrix, structure.align, and structure.mean user functions and expanded functionality for the structure.com and structure.delete user functions. Many operations involving the internal structural object are now orders of magnitude faster, with the interatom.define user function showing the greatest speed ups. There are also improvements for helping to upgrade relax scripts to newer relax versions. The numdifftools package is now bundled with relax for allowing numerical gradient, Hessian and Jacobian matrices to be calculated. And the release includes the start of a new protocol for iteratively analysing repetitive relaxation dispersion experiments.

### relax 3.3.0

This is a major feature release which includes a huge number of changes, as can be seen below. The most important change is an incredible speed up of all relaxation dispersion models. See the table below for a comparison to the previous relax 3.2.3 release. The maximum possible advantage of linear algebra operations are used to eliminate all of the slow Python looping and to obtain the ultimate algorithms for speed. As this is using NumPy, conversion to C or FORTRAN will not result in any significant speed advantage. With these huge speed ups, relax should now be one of the fastest software packages for analysing relaxation dispersion phenomena.

Other important features include the implementation of a zooming grid search algorithm for use in all analysis types, expanded plotting capabilities for R values in the relaxation dispersion analysis, the ability to optimise the R1 parameter in all off-resonance dispersion models, proper minimisation statistics resetting by the minimisation user functions, and a large expansion of the periodic table information for all elements in the relax library for correctly estimating molecular masses. Additional features are that there is better tab completion support in the prompt UI for Mac OS X, the addition of the time user function for printing the current date and time, the value.copy user function accepting a force argument for overwriting values, model nesting in the dispersion auto-analysis has been extended, the spin-lock offset is now shown in the dispersion analysis in the GUI, the relax_disp.r2eff_estimate user function has been added for fast R2eff and I0 parameter value and error estimation, and gradient and Hessian functions have been added to the exponential curve-fitting C module allowing for more advanced optimisation in the relaxation curve-fitting and dispersion analyses.

Note that this new 3.3 relax series breaks compatibility with old relax scripts. The important change, which is the main reason for starting the relax 3.3.x line, is the renaming of the calc, grid_search and minimise user functions to minimise.calculate, minimise.grid_search and minimise.execute respectively. Please update your scripts appropriately. A new relax feature is that old user function calls are detected in the prompt and script UIs and a RelaxError raised explaining what to rename the user function to.

Important bugfixes in this release include that relax can run on MS Windows systems again, numerous Python 3 fixes, the ability to load Bruker DC files when the file format has corrupted whitespace, the GUI "close all analyses" feature works and no longer raises an error, structure.create_diff_tensor_pdb user function now works when no structural data is present, the geometric prolate diffusion 3D PDB representation in a model-free analysis now aligns with the axis in the PDB as it was previously rotated by 90 degrees, and the Monte Carlo simulations in the relaxation dispersion analysis for exponential curve-fitting for R2eff/R parameter errors is now correct and no longer underestimating the errors by half. For more details about the new features and the bug fixes, please see below. For fully formatted and easy to navigate release notes, please see http://wiki.nmr-relax.com/Relax_3.3.0.

To demonstrate the huge speeds ups in the relaxation dispersion analysis, the following table compares the speed of dispersion models in relax 3.2.3 compared to the new 3.3.0 version:

100 single spins analysis (times in seconds):
Dispersion model relax 3.2.3 timings relax 3.3.0 timings Speed change
No Rex 0.824±0.017 0.269±0.016 3.068x faster.
LM63 1.616±0.017 0.749±0.008 2.157x faster.
LM63 3-site 3.218±0.039 0.996±0.013 3.230x faster.
CR72 2.639±0.042 1.536±0.019 1.718x faster.
CR72 full 2.808±0.027 1.689±0.075 1.663x faster.
IT99 1.838±0.032 0.868±0.011 2.118x faster.
TSMFK01 1.643±0.033 0.718±0.011 2.289x faster.
B14 5.841±0.050 3.747±0.044 1.559x faster.
B14 full 5.942±0.053 3.841±0.044 1.547x faster.
NS CPMG 2-site expanded 8.309±0.066 4.070±0.073 2.041x faster.
NS CPMG 2-site 3D 245.180±2.162 45.410±0.399 5.399x faster.
NS CPMG 2-site 3D full 237.217±2.582 45.177±0.415 5.251x faster.
NS CPMG 2-site star 183.423±1.966 36.542±0.451 5.020x faster.
NS CPMG 2-site star full 183.622±1.326 36.788±0.343 4.991x faster.
MMQ CR72 5.920±0.105 4.078±0.105 1.452x faster.
NS MMQ 2-site 363.659±2.610 82.588±1.197 4.403x faster.
NS MMQ 3-site linear 386.798±4.480 92.060±0.754 4.202x faster.
NS MMQ 3-site 391.195±3.442 93.025±0.829 4.205x faster.
M61 1.576±0.022 0.862±0.009 1.828x faster.
DPL94 22.794±0.517 1.101±0.008 20.705x faster.
TP02 19.892±0.363 1.232±0.007 16.152x faster.
TAP03 31.701±0.378 1.936±0.017 16.377x faster.
MP05 24.918±0.572 1.428±0.015 17.454x faster.
NS R1rho 2-site 244.604±2.493 35.125±0.202 6.964x faster.
NS R1rho 3-site linear 287.181±2.939 68.245±0.536 4.208x faster.
NS R1rho 3-site 290.486±3.614 70.449±0.686 4.123x faster.
Cluster of 100 spins analysis (times in seconds):
Dispersion model relax 3.2.3 timings relax 3.3.0 timings Speed change
No Rex 0.818±0.016 0.008±0.001 97.333x faster.
LM63 1.593±0.018 0.037±0.000 43.401x faster.
LM63 3-site 3.134±0.039 0.067±0.001 47.128x faster.
CR72 2.610±0.047 0.115±0.001 22.732x faster.
CR72 full 2.679±0.034 0.122±0.005 22.017x faster.
IT99 1.807±0.025 0.063±0.001 28.687x faster.
TSMFK01 1.636±0.036 0.039±0.001 42.170x faster.
B14 5.799±0.054 0.488±0.010 11.879x faster.
B14 full 5.803±0.043 0.484±0.006 11.990x faster.
NS CPMG 2-site expanded 8.326±0.081 0.685±0.012 12.160x faster.
NS CPMG 2-site 3D 244.869±2.382 41.217±0.467 5.941x faster.
NS CPMG 2-site 3D full 236.760±2.575 41.001±0.466 5.775x faster.
NS CPMG 2-site star 183.786±2.089 30.896±0.417 5.948x faster.
NS CPMG 2-site star full 183.243±1.615 30.898±0.343 5.931x faster.
MMQ CR72 5.978±0.094 0.847±0.007 7.061x faster.
NS MMQ 2-site 363.138±3.041 75.906±0.845 4.784x faster.
NS MMQ 3-site linear 384.978±5.402 83.703±0.773 4.599x faster.
NS MMQ 3-site 388.557±3.261 84.702±0.762 4.587x faster.
M61 1.555±0.021 0.034±0.001 45.335x faster.
DPL94 22.837±0.494 0.140±0.002 163.004x faster.
TP02 19.958±0.407 0.167±0.002 119.222x faster.
TAP03 31.698±0.424 0.287±0.003 110.484x faster.
MP05 25.009±0.683 0.187±0.007 133.953x faster.
NS R1rho 2-site 242.096±1.483 32.043±0.157 7.555x faster.
NS R1rho 3-site linear 280.778±2.589 62.866±0.616 4.466x faster.
NS R1rho 3-site 282.192±5.195 63.174±0.816 4.467x faster.

For CPMG statistics: 3 fields, each with 20 CPMG points. Total number of dispersion points per spin is 60.

For R experiments: 3 fields, each with 10 spin lock offsets, and each offset has been measured at 5 different spin lock fields. Per field there is 50 dispersion points. Total number of dispersion points per spin is 150.

## relax 3.2 series

### relax 3.2.3

This is a major bugfix release and the first requiring numpy ≥ 1.6 to allow for faster calculations for certain analyses. There have been improvements to the GUI user functions, the ^[[?1034h escape code is finally suppressed on Linux systems, and the structure.com user function has been added. Bugfixes include the proper handling of R2A0 and R2B0 parameters in the relaxation dispersion models, the IT99 dispersion model tex parameter was incorrectly handled, the LM63 3-site dispersion models had a fatal mistake in its equations, files with multiple extensions (for example *.pdb.gz) are now correctly handled, and closing the free file format window in Mac OS X systems caused the GUI to freeze. Full details can be found below.

For this release, the Mac OS X framework used to build the universal 3-way (ppc, i386, x86_64) binaries for the stand-alone relax application has been updated. The relax application now bundles Python 2.7.8, numpy 1.8.1, scipy 0.14.0, nose 1.3.3, wxPython 2.9.3.1 osx-cocoa (classic), matplotlib 1.3.1, epydoc 3.0.1, mpi4py 1.3.1 and py2app 0.8.1. This should result in better formatted relax state and results files and give access to more advanced packages for power users to take advantage of.

### relax 3.2.2

This is a major feature and bugfix release. It includes a large speed up of all analytic relaxation dispersion models, the correct handling of edge case failures in all models of the dispersion analysis, a number of fixes for the handling of list-type data in the GUI user function windows including the fatal GUI crashes on Mac OS X systems, and many other bug fixes. Please see below for a full list of features, changes and bugfixes. All users of the dispersion analysis, the relax GUI, or Mac OS X systems are recommended to upgrade to this newest version.

### relax 3.2.1

This is a major bugfix release which includes the equations for the B14 and B14 full relaxation dispersion models [Baldwin 2014] introduced with relax version 3.2.0, now being calculated correctly, the NS CPMG 2-site expanded model correctly handling edge cases where no exchange is expected, and the structure.delete user function correctly operating when multiple models are loaded into the data store.

### relax 3.2.0

This is a major feature release. It includes the addition of the new B14 and B14 full relaxation dispersion models [Baldwin 2014], a complete rearrangement of the module layout of the specific analyses packages, a number of new user functions, documentation improvements including the addition of a new chapter to the manual for the N-state model or ensemble analysis, and numerous of other features. This is also a major bugfix release, so all users are recommended to upgrade. This is essential if you are using the new relaxation dispersion analysis in relax as a severe bug in the error calculation has been corrected. See below for a comprehensive list of new features, the rather large number of changes, and the long list of all bugs fixed.

## relax 3.1 series

### relax 3.1.7

This is a minor feature and bugfix release which includes improvements to the relaxation dispersion chapter of the manual and the addition of new infrastructure for R data handling in the dispersion analysis. More details are given below.

### relax 3.1.6

This is a major feature and bugfix release. A comprehensive tutorial has been added to the relaxation dispersion chapter of the manual which shows, step-by-step, the dispersion analysis in the GUI using screenshots. Other changes include improved PDB chain ID support, a new mode for running a relax script and then entering the prompt UI mode, multiple file reading by the spectrum.read_intensities user function, and improvements to the relaxation dispersion analysis. A number of major bugs in the dispersion analysis concerning different relaxation delay times for different experiments and for improved handling of the offset have also been fixed. A number of important GUI bugs have also been fixed. All users are recommended to upgrade to this version of relax.

### relax 3.1.5

This is a major bugfix release which fixes the complete failure of the NOE analysis for most users, a bug introduced in the last relax release (https://gna.org/forum/forum.php?forum_id=2433). All users of relax 3.1.4 should upgrade to this version.

### relax 3.1.4

This is a minor feature and bugfix release which has improvements for the handling of structural data involving multiple molecules or models and improved support in the NOE analysis for replicated spectra. Included are fixes for the failure of the structure.create_diff_tensor_pdb user function for non-spherical diffusion tensors when no Monte Carlo simulations are present and for the failure of the rdc.write user function for back calculated RDC data. Full details are given below.

### relax 3.1.3

This is a minor documentation release which includes small improvements to the documentation of the relaxation dispersion analysis in the manual as well as the API documentation for the lib.dispersion package. As the manual is available from http://download.gna.org/relax/manual/relax.pdf, installing this newer version of relax is not necessary.

### relax 3.1.2

This relax version is a minor bugfix release which repairs a number of icons on newer operating systems and a solves a problem caused by accidentally setting an incorrect spectrometer frequency.

### relax 3.1.1

This is a major feature and bugfix release which adds support for reading 3D structures of organic molecules from Gaussian log files, the new lib.periodic_table and lib.nmr modules, the NS MMQ 3-site linear, NS MMQ 3-site, NS R1rho 3-site linear, and NS R1rho 3-site relaxation dispersion models, R dispersion data sets where multiple offsets and multiple spin-lock fields have been collected for each spin, the loading of spins directly from peak lists, and the reading of NMRPipe seriesTab files. Due to the improvements and the bugs fixed in the relaxation dispersion analysis, all users are recommended to upgrade to this version.

### relax 3.1.0

After four years of development by numerous NMR spectroscopists, the relaxation dispersion analysis in relax is finally ready for release [Morin et al., 2014]! This support is complete and includes almost all analytic and numeric dispersion models in existence. These have been labelled as R2eff, No Rex, LM63 [Luz and Meiboom 1963], LM63 3-site [Luz and Meiboom 1963], CR72 [Carver and Richards 1972], IT99 [Ishima and Torchia 1999], TSMFK01 [Tollinger et al., 2001], NS CPMG 2-site expanded, NS CPMG 2-site 3D, NS CPMG 2-site star, M61 [Meiboom 1961], DPL94 [Davis et al., 1994], TP02 [Trott and Palmer 2002], TAP03 [Trott et al., 2003], MP05 [Miloushev and Palmer 2005], NS R1rho 2-site, MQ CR72, and MMQ 2-site, mainly named after the authors and publication date. It includes support for single, zero, double, and multiple quantum CPMG data, including combined proton-heteronuclear data, and off-resonance R data. An automated protocol has been developed to simplify the analysis and a GUI has been designed around this auto-analysis. Calculations have been parallelised at the spin cluster and Monte Carlo simulation level for speed.

## relax 3.0 series

### relax 3.0.2

This version is a minor feature and bugfix release which includes better pseudo-atom support, support of the value.write user function to allow model information to be written to file, improvements to the 2D Grace plots, and fixes for missing log messages when running on a cluster using OpenMPI.

### relax 3.0.1

This version is a minor feature and bugfix release. The handling of peak lists has been enhanced and chemical shifts can now be read into relax, there are a number of improvements throughout the GUI, and a number of minor bugs have been solved. If these changes affect you, please upgrade to this latest version.

### relax 3.0.0

This is the first release of the new relax 3 series. This release marks a major shift of relax towards becoming a scientific computing environment specialised for the study of molecular dynamics using experimental biophysical data. It is designed to be a replacement for numerical computational environments such as GNU Octave, MATLAB, Mathematica, Maple, etc. From the perspective of a user, however, not much has changed. There are only a few modifications to the prompt, script, or graphical user interfaces. Most changes are for the power user as they are rather in the backend. The infrastructure changes are comprehensive and include the reorganisation of most of the relax code base, a large expansion of the relax library, and general improvements and fixes to the user manual, the GUI, and the whole code base. The huge number of changes can be seen below.

# Version 2 of relax

## relax 2.2 series

### relax 2.2.5

This is a minor feature release. Improvements include the creation of Rex value files scaled to all spectrometer frequencies for the model-free auto-analysis [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] and some new capabilities in the structural API. Feel free to upgrade if you wish to use these new features.

### relax 2.2.4

This is a major bugfix release. System and unit test bugs in the Mac OS X application have been eliminated, the RMSD related functions for systems with old Numpy versions installed have been fixed, the system information printout when the relax path contains spaces now works, Python 3 fixes have been made throughout, problems with the last steps of the model-free auto-analysis under certain conditions have been resolved, and the value.write and value.display user functions no longer present a list of zero values when very small number are encountered (for example the field-strength independent Rex values from a model-free analysis). Upgrading is recommended.

### relax 2.2.3

This relax version is a major feature and bugfix release. It adds the new structure.add_model, structure.rmsd and structure.web_of_motion user functions, enhances the structure.load_spins and structure.find_pivot functions, and PDB support for the internal structural object has been improved and updated. The new 'lib' package is introduced which will, in the future, be extensive collection of functions and special objects for all types of molecular dynamics analyses. The relax controller in the relax GUI has been improved with line wrapping to allow all messages to be seen. And some major bugs affecting the model-free auto-analysis and PDB file creation have been fixed. All users are recommended to upgrade.

### relax 2.2.2

This is a minor bug fix release which resolves an important issue, introduced somewhere within the last few relax releases, whereby missing relaxation data is not handled properly in a model-free analysis. A number of other small bugs have also been fixed - please see below for details. If you plan on performing a new model-free analysis, upgrading to this version is recommended.

### relax 2.2.1

This is a quick bugfix release solving a number of issues uncovered since the release of relax 2.2.0 last week. Upgrading to this newest version is highly recommended.

### relax 2.2.0

This is a major feature and bugfix release which marks the completion of the N-state model analysis implementation. The N-state model allows single structures or ensembles of static structures to be analysed and compared using residual dipolar couplings (RDCs), pseudo-contact shifts (PCSs), distance restraints via NOEs. In addition to alignment tensors, the populations or probabilities of each state can be optimised as well as the position of the paramagnetic centre when PCSs are used.

## relax 2.1 series

### relax 2.1.2

This is the Python super-compatibility release - relax will now run on Python 2.3 all the way to Python 3.3, a span of over 9 years of Python development. Some exceptions are Python 3.0 as numpy and scipy are not compatible with that release, the execution of external programs in Python 2.3 not being supported, and the GUI currently not available on Python 3 due to the wxPython project not being compatible with this new Python design yet. A number of important bug fixes are also included. For more details please see below.

### relax 2.1.1

This release includes a major overhaul of the relax user manual with the addition of new chapters and tutorials for all analyses and major expansions and improvements overall. It also includes a major set of bug fixes to re-enable the NOE, R1 and R2 analyses of multiple spin types (e.g. the Trp sidechain indole NH), window ordering fixes for the GUI, and numerous other small bug fixes. More details are given below. All users are recommended to upgrade to this newest version.

### relax 2.1.0

This major feature release introduces the new concept of a container for data linking two atoms or spins - the interatomic data design. This is for NMR data such as the magnetic dipole-dipole interaction between two spins (including relaxation and RDC data) and NOESY data. This design significantly extends relax's flexibility and opens up new analysis type possibilities. As this is a highly invasive change, touching almost all of the relax analysis types and modifying the GUI, the minor version number has been incremented and all of the 2.0.x version numbering has been skipped. Additional features and changes include the update of the relax copyright license to GPLv3, support for absolute or signless RDCs has been added, and elimination of many GUI bugs in MS Windows. Due to the large number of improvements, changes, and bug fixes, all users are recommended to upgrade.

## relax 2.0 series

### relax 2.0.0

This is the first relax version of the new 2.0 line. Due to incredible number of changes to the core and large improvements visible throughout prompt and graphical user interfaces (UIs), it was decided that a brand new development line would be created. The 1.3 line will now be discontinued as it quite old - it came into existence 6 years ago (see https://mail.gna.org/public/relax-devel/2006-10/msg00053.html).

The features of these release include a complete restructuring of the user functions so that special 'definitions' are used to automatically create the user function front ends in all UIs. This now means that all user functions are now accessible from the GUI. The help system in the prompt UI mode has been revamped and is now better formatted (with better line wrapping for MS Windows). The core of the specific analysis API has been redesigned to make it much easier for NMR spectroscopists to add their own analysis types to relax. The GUI test suite has been significantly expanded so that the GUI should now be, and remain, robust. The XML formatted relax results and save files have been redesigned and improved for both numerical accuracy and readability. Data pipes can now be grouped together in special data bundles, and analysis tabs in the GUI are now associated with a specific bundle. BMRB export (as well as import) and support for Bruker Dynamics Centre relaxation data files are now tightly integrated into the GUI. Many other improvements can be found throughout the GUI. The incredible number of changes that have gone into this release can be seen below!

As this is the first release of a new line, a few minor bugs should be expected. All feedback is appreciated. Bugs can be reported at the official relax bug tracker through the link https://gna.org/bugs/?func=additem&group=relax. Any error messages that are not 'RelaxErrors', any strange behaviour in the GUI such as windows disappearing out the back, elements not updating, etc., or anything that does not behave exactly as you would expect should be treated as a bug!

# Version 1 of relax

## relax 1.3 series

### relax 1.3.16

This is mainly a documentation release. The relax user manual has been significantly updated - changes include the expansion and completion of the model-free analysis chapter, addition of graphical user interface (GUI) screenshots and descriptions, a description of Gary Thompson's multi-processor framework, and general updates and improvements throughout. For those who install relax using the scons 'install' target, the pyc and pyo files are now properly created for faster startup. The Bruker Protein Dynamics Centre user function class 'pdc' has been renamed to 'bruker' because of Bruker's absorption of the PDC into the Bruker Dynamics Centre. These user functions, as well as the BMRB user functions, have been added to the menu system in the GUI. Finally a test suite bug triggered in the Fink relax installation has been eliminated. If you would like improved documentation or would like to use any of the other changes, please update to this version.

### relax 1.3.15

This is a major feature release focusing on more complete Mac OS X support and prettifying all of the user interfaces (UIs). The new features include full Mac OS X support via fink and the Mac application DMG file (for Leopard, Snow Leopard and Lion with PPC, i386 and x86_64 CPUs), coloured terminal output in the prompt/script UI modes, the ability to run the full relax test suite within the GUI mode, general improvements throughout the GUI, support for wxPython 2.9, faster program start up, improved formatting of the HTML version of the user manual, and expansion of the multi-processor framework. Many additional changes are listed below. If you are a Mac OS X user, you are affected by one of the bugs listed below, or you would like to use the new features, then I would recommend upgrading to this new version.

### relax 1.3.14

This is a major bug fix release focusing on memory usage, performance, and IO. The parallised model-free optimisation code (for running on clusters/grids using the multi-processor package) was causing relax to crash on 32-bit systems due to the system running out of virtual memory. The new version should only require about a third of the memory of relax 1.3.13. The parts of relax dealing with atomic or spin specific data (reading of spin systems from PDB files, reading and writing of spin specific data, etc.) have been rewritten for efficiency and should now be many orders of magnitude faster for certain work loads. There have also been large improvements to the multi-processor framework, specifically the creation of a public API and a reference implementation. In addition there are improvements for IO capture on both the uni-processor and mpi4py-processor fabrics for relaying slave messages back to the master, better integration with the GUI and compatibility with the logging and teeing command line flags. Other changes include expansion of the relax information print out, support for numpy data structures in save files, and the addition of the rdc.delete and pcs.delete user functions. Feel free to upgrade if you would like the benefits of this new version.

### relax 1.3.13

This major release introduces the second version of the relax graphical user interface (GUI). This is a major rewrite of the entire GUI code base. The GUI should now be much more flexible, being able to handle all the different ways NMR data is collected and errors are measured. It now has the much of the flexibility of the prompt / scripting interface by the implementation of GUI versions of many of the user functions, and the GUI now has support for small organic molecules, RNA, DNA, sugars, etc. This flexibility will allow all other analysis types (reduced spectral density mapping, N-state model, the frame order theory, consistency testing, etc.) to be added to the GUI in the future. The GUI is now fully tested and functional on the three major platforms of GNU/Linux, Mac OS X and MS Windows.

In addition, there have been significant bugs fixed throughout the program in both the GUI and the rest of the code base. There are a number of improvements to the frame order theory. A number of new structure user functions have been added for structure creation and structure displacement and superimposition. There have been improvements to the N-state model analysis and to the handling of RDC and PCS values. New user functions have been added for visual representation of model-free results in PyMOL. And finally, the auto-analyses have been redesigned to have all input data pre-loaded into a relax data pipe and that data pipe passed into the the analysis. This grants more flexibility, specifically for non-protein organic molecules which can now be used with the dauvergne_protocol auto-analysis[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].

Due to the incredible number of changes and fixes which are part of this release (see below), all users are recommended to upgrade to this newest version.

### relax 1.3.12

This is a major feature release which adds the ability to run relax on clusters or grids of computers via the MPI protocol. This merges in Gary Thompson's multi-processor branch which was started all the way back in 2007. The 'multi' package introduces two processor fabrics, the standard uni-processor mode and the mpi4py mode for using the MPI protocol with Python. The model-free analysis code has been parallelised to take advantage of the multi-processor modes, significantly speeding up calculations on clusters with near perfect scaling efficiency. The flexible 'multi' package can easily be extended for other multi-processor modes such as additional MPI implementations using different Python libraries (pypar, etc.), the use of SSH tunnels for parallel programming, use of the twisted framework for communication, or the parallel virtual machine (PVM) via pypvm. For more information on how to use this, see https://mail.gna.org/public/relax-devel/2007-05/msg00000.html.

### relax 1.3.11

This is a major feature release - all users are recommend to upgrade to this version. The major features include the integration of relax and the BMRB via the reading and writing of the BMRB NMR-STAR format files for model-free analyses, support for reading the XYZ 3D structure files used in organic chemistry, significant GUI improvements, and better support for the Bruker Protein Dynamics Centre (PDC) files. In addition a large number of bugs have been resolved. All together, this is a large release consisting of just under 2000 individual changes.

### relax 1.3.10

This is a major feature release which introduces support for reading Bruker Protein Dynamics Centre (PDC) files. It also fixes a bug in the N-state model Q factor values when run in combination with Monte Carlo simulations for error analysis.

### relax 1.3.9

This is a major feature release which introduces the new graphical user interface written by Michael Bieri [Bieri et al, 2011]. This GUI provides easy access to a sub-set of relax's features - the R1 and R2 relaxation rate curve-fitting, NOE calculations, and the fully automatic model-free analysis of the dauvergne_protocol module [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].

### relax 1.3.8

This is a minor bugfix release in preparation for the impending merger of relaxGUI [Bieri et al, 2011]. New features include a sample script for creating CSV files from model-free results for import into spreadsheet programs, extensive system testing of all model-free models, fixes for a system test on 32-bit GNU/Linux, and a fix for running scripts with certain versions of Python.

### relax 1.3.7

This is a major bug fix release - all model-free users of relax version 1.3.6 must upgrade to this version. The fatal bug is that the prolate diffusion tensor when initialised with Da set to zero will be converted to an oblate tensor. Other bugs fixed include support for volume integration together with replicated spectra, the scipy dependency now bing optional, 32-bit GNU/Linux test suite fixes, and better support for the reading of old version 1.2.x results files. An additional feature is that the relax packages/modules can now be imported and used outside of relax.

### relax 1.3.6

This is a major feature release which includes many bug fixes and a security fix. Major additions include the addition of 9 new frame order models, execution locking, support for CCPN Analysis 2.1 peak lists, Monte Carlo simulations for the N-state model, optimisation of the Ln3+ position in the N-state model, weighting of RDCs and PCSs during optimisation, and no longer using execfile() closing a security hole.

### relax 1.3.5

This is a major feature release consisting of over a year's worth of improvements and bug fixes, with close to 2000 code changes. All users are recommended to upgrade to this newest version. New features include the ability to determine the stereochemistry of flexible organic molecules, expansion of the frame order theory, better support for RDCs and PCSs, 2D Grace plot improvements, and many new rotation_matrix module conversion functions.

### relax 1.3.4

This is a major feature release featuring innumerous changes and bugfixes. New features include support for spin containers for psueedo atoms, NOE distance restraints, improved structure handling with multiple molecules and multiple models, the N-state model with equal and fixed probabilities, handling of the Bruker ncproc parameter, return of hybridisation, return of MOLMOL macros for illustrating model-free parameters, and initial support for the new Frame Order theories.

### relax 1.3.3

This is a major bugfix and feature release. Support for the programs Dasha, Modelfree4 and OpenDX has returned and XEasy and NMRView peak lists can now be read. Upgrading to this version is highly recommended as it fixes a number of very important bugs. Some of these are include faulty error analysis when performing relaxation curve-fitting, results.write failure, model selection failure if spins were deselected, diffusion tensor optimisation failure, and internal PDB reader problems.

### relax 1.3.2

This release solves many major bugs in the final stages of model-free analysis, especially when using the 'full_analysis.py' script [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b]. This version also marks the return of the NOE analysis. If you are using relax version 1.3.1, it is recommended that you upgrade to 1.3.2. Bugs which have been resolved include: problems reading PDB files; failure of the value.set, fix and value.write user functions; non-functional model elimination; model selection issues in certain situations; and various Monte Carlo simulation issues.

### relax 1.3.1

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 1.3.0 to 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 1.2.10 and 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 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 created, merged with user functions such as model_selection, branched by copying, and the entire contents preserved at any time into an 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.

Note that in this version, not all parts of relax are currently functional. Many, such as relaxation curve fitting, model-free analysis, reduced spectral density mapping, consistency testing, etc. are fully functional but if you do uncover a non-operational user function, please submit a bug report or use the stable 1.2.14 version. Conversion of the last parts of relax to the new design will not be too hard, especially if all issues are reported. Note that this is a development line and that scripts written for version 1.3.1 may not work automatically in future 1.3 versions.

### relax 1.3.0

This is the first release of the unstable 1.3 development line. In addition to all the capabilities of relax 1.2.10 the new features of this release include the addition of a unit test framework, preliminary support for PyMOL, the creation of PDB files, the ability to display the diffusion tensor encoded as a PDB file using PyMOL, the ability to display the distribution of XH bond vectors used in the analysis via a PDB file, the new user function class 'structure' containing the old user function pdb which has been split and redesigned, removal of apply(func, args) calls from the minimisation code, improved spin system selection using Boolean operators, and a few other small features, bugfixes, and program changes. As the user function names have been and will continue to be modified please do not expect either the backwards or forwards compatibility of relax scripts written for the 1.3 relax versions.

## relax 1.2 series

### relax 1.2.15

This is a very minor bugfix release solving issues with the value.write user function and with error analysis when performing relaxation curve-fitting.

### relax 1.2.14

This is a minor bug fix release which fixes a minor bug in the consistency testing analysis and the compilation of the C modules in Windows when using Python 2.5. The relax manual has also had a minor facelift.

### relax 1.2.13

This release introduces new features and fixes a number of important bugs. The most significant feature is the consistency testing of relaxation data from different field strengths using the J(0), Fη and FR2 values [Morin and Gagné, 2009][Fushman et al., 1998]. Important bugs which have been fixed include the failure of Monte Carlo simulations when model-free model m0 is encountered causing the parameter errors for all subsequent residues to be zero, the failure of reading of Art Palmer's Modelfree4 'mfout' file, and the handling of missing structural data. For a full description of the additions and fixes, please see below.

### relax 1.2.12

This is an important bug fix release. It fixes major issues with the writing of results files and with the failure of model elimination. The 'latex_mf_table.py' sample script has also been fixed. More details are given below. If you have encountered these problems, please consider upgrading to this version to solve the issues.

### relax 1.2.11

This is another major bug fix release. Please upgrade to this version if you wish to use relax for reduced spectral density mapping as significant bugs in that part of relax have been identified and fixed. Other significant changes include this being the only version of relax which will run with Python 2.5, the addition of Grace plotting abilities improving the analysis of relaxation exponential curve-fitting, large simplifications for the user and automatic looping over iterations in the 'full_analysis.py' script [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b], and improvements to the reading and writing of model-free results files. See below for additional improvements.

### relax 1.2.10

This is a major bug fix release which includes a number of feature enhancements. Significant changes include the addition of convergence tests to the 'full_analysis.py' script [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b], the ability to compile the C modules on Mac OS X, more advanced spin system selection, the model-free and reduced spectral density mapping results files no longer being truncated, and improvements to the model-free section of the user manual by the addition of flow diagrams detailing the steps of different model-free analysis protocols. Significant bugfixes include more flexibility in the reading of XEasy text files, a number of fixes in the 'full_analysis.py' sample script, the proper setup of Monte Carlo simulation when reading results files, and a couple of MS Windows fixes. More details and additional features, changes, and bugfixes are detailed below.

### relax 1.2.9

This release fixes a important bug introduced into relax version 1.2.8. If you have installed 1.2.8, please upgrade to this new version. The problem was that relax was throwing a RelaxError saying that an infinite chi-squared value had been encountered when the chi-squared value was actually zero (see bug #7641). A few other small changes are detailed below.

### relax 1.2.8

This is a major bug fix release. A number of important bugs have been fixed including the failure of model selection between global diffusion models when using the local τm models (bug #7616), the failure of model elimination when the model m0 is used (bug #7226), and the failure in the reading of old model-free results files from relax versions prior to 1.2.5 (bug #7587). Additional bug fixes are detailed below. New features include preliminary support for RNA/DNA data and support for the grace.write user function for reduced spectral density mapping.

### relax 1.2.7

This release adds full compatibility for MS Windows. Unless you would like to use relax on Windows or are a developer (a few debugging features have been added), this release can be safely ignored. To allow relax to properly function on MS Windows a number of changes were necessary. This includes a number of bug fixes, the creation of the 'relax.bat' batch file, and modifications to allow the C modules to be compiled. Pre-compiled Windows zip files will now be available for download from the relax download page.

### relax 1.2.6

A quick release to fix the fatal 'devnull' ImportError (bug #6403). This bug effects those using Python versions < 2.4 and prevents relax from starting up. The solution was to import the object using a try statement to allow execution of the program. However if relax ever attempts to use 'devnull' a RelaxError is thrown, a message saying to upgrade to Python ≥ 2.4 is printed, and the program terminates. This is currently only a problem in the test-suite.

### relax 1.2.5

This is mainly a bugfix release. A large number of bugs have been eliminated including bug #5977, bug #6288, bug #6383, bug #5806, bug #6384, bug #6388, bug #6389, and bug #5746. These are described in more detail below. To fix a few of these bugs large disruptive changes were required. This included the change of the local τm parameter name from 'tm' to 'local_tm' and the simplification of the model-free model_statistics() function and modification of the model-free calculate() function. Therefore regressions and new bugs may appear in this release, most likely when the local τm parameter is encountered or during model selection.

### relax 1.2.4

This is a long overdue release which includes many new features, changes, and bugfixes. Molmol macros which plot parameter values onto the structure using arbitrary colour gradients through the X11 colours, Molmol colours, or RGB vectors can now be created by the program. A test suite has been added to aid in debugging and checking that new code does not break the functionality of the program. The relax manual has been significantly updated. Hyperlinks are now present. The chapter Open source infrastructure has been added and the development chapter has been rewritten. Hybrid runs are now supported. Half the protein can be analysed in one run, the other half in another, and then the two combined into one hybrid run.

### relax 1.2.3

This is a bug fix release which corrects a segfault crash of the exponential relaxation curve-fitting modules. The bug was introduced by the shift from the makefile to Sconstruct build system. The full descriptions of all bug fixes are:

• Sconstruct now does not use the '-fPIC' option during compilation which caused the exponential relaxation curve-fitting modules to segfault.
• The distribution binary and source file creation Sconstruct functions now properly compress the archives.
• The value.read function contained a bug where the residue number from the file was not being read. Instead the integer position within the file was being used as the residue number.

• The model-free spectral density function 'calc_S2f_S2s_ts_djw_dS2s' does not exist. Therefore when using the model with the parameters {Sf2, Ss2, τs}, the program would throw an error and stop. The function is actually calc_S2f_tf_S2s_ts_djw_dS2s. The factor 'data.s2f_s2' also had to be calculated in maths_fns/jw_mf_comps.py.

### relax 1.2.2

This release improves compatibility for different operating systems including Unix, Mac OS X, and Windows. To achieve this, the make system has been replaced by the Sconstruct system. Both the Dasha and Modelfree4 code has been significantly improved. A number of bugs have also been fixed including:

• The automatically generated Dasha script has been fixed. Previously the optimise command used was min all or lmin all. This is incorrect and the proper syntax is min m n or lmin m n where m is the first residue number while n is the last.
• The optimisation code has been fixed to handle the unstable, broken Numeric Python packages so that the Cholesky Hessian modification works again and the eigenvalue decomposition (which now freezes Python) is avoided.
• The file generic_fns/palmer.py has been modified to gracefully handle a Modelfree4 bug whereby the mfout output file has been corrupted due to the fusion of columns.

### relax 1.2.1

This release fixes a number of bugs affecting the creation of DASHA scripts for specific model-free models (two time scale motions but without the τf parameter) and the reading of DASHA results for models with motions on two time scales. The function value.write which was broken when trying to write out relaxation data (R1, R2, or the NOE) has been fixed as well as the out of date generate_ri.py sample script.

### relax 1.2.0

Introducing the newest 1.2 stable feature release of relax. The major feature of this release is that relaxation curve fitting is now supported within relax. Now relax can calculate the R1, R2, and NOE, as well as their associated errors, from peak intensities.

Other features include a shift to the 'make' system. Installation is now through makefiles and the command 'make install' as root will install relax into /usr/local/. Many of the development related scripts for compiling the manual, removing temporary files, creating the distribution packages, etc have been moved into makefiles as well. C modules have been added which interface with relax through the Python/C API. These implement the functions using in the optimisation of relaxation curves. To create the C shared objects, the command 'make' is used.

The minor version number which can be downloaded is relax version 1.2.0. This is the first release of the new 1.2 branch.

## relax 1.0 series

### relax 1.0.10

This is a maintenance release which incorporates Chris MacRaild's bug fix of the loading of the model-free results file. Chris has also incorporated the fix into the new 1.2 feature release.

### relax 1.0.9

A HTML version of the manual can now be created via latex2html.

### relax 1.0.8

The Dasha release. The program Dasha can now be fully controlled from within relax. Three functions have been added to create the Dasha script, execute Dasha using this script, and finally to extract all the minimisation results.

### relax 1.0.7

This release corresponds to solely cosmetic changes. An internal version number is now used within relax. This replaced the previous 1.0.7 version which was copied a bit to early.

### relax 1.0.6

This release includes both added features and bug fixes. The Euler angle β of the diffusion tensor is now treated as a glide reflection when between π and 2π rather than a translation of the space between 0 and π. The glide reflection and translation symmetries of the spheroid and ellipsoid diffusion tensors are now collapsed such that all angles are between 0 and π, and the simulated values lie π/2 either side of the fitted value.

### relax 1.0.5

This is a bugfix release, improving the user function diffusion_tensor.init. This fixes problems when using the ellipsoid parameters Dx, Dy, and Dz.

### relax 1.0.4

This is a feature release. Significant improvements to the OpenDX mapping functions have been made, including the ability to map any three parameters of all models within any order. Significantly diffusion tensor parameters can now by mapped.

### relax 1.0.3

This is a bugfix release. Two bugs affecting specific calculations of the spectral density gradient and Hessian have been removed. One occurs in the Hessian when optimising the spherical diffusion parameters simultaneously with the parameters Sf2, τf, S2, and τs. The other affects the gradient when optimising the parameters Sf2, Ss2, and τs.

### relax 1.0.2

This release corresponds to many changes to the Brownian rotational diffusion tensor.

It includes the shift to the geometric parameters:

$D_{iso} = \frac{1}{3} \left( D_x + D_y + D_z \right), \\ D_a = D_z - \frac{1}{2} \left( D_x + D_y \right) , \\ D_r = D_y - \frac{D_x}{2D_a} .$

Numerous bugs in the old correlation time, weights, and direction cosine code have been fixed. A few of these bugs had been fixed previously but those fixes were somehow lost. Two major problems in the calculation of the Hessian of the ellipsoid direction cosines have been fixed and the ellipsoid diffusion tensor now minimises orders of magnitude faster.

### relax 1.0.0

The initial relax release.

# Announcements

If you would like to receive announcements about new relax versions, please subscribe to the relax-announce mailing list using the relax-announce info page. This list only receives ~10 emails per year. It is archived at Gmane (thread, blog, NNTP, RSS), in the local archives, in The Mail Archive, and in the MARC (Mailing list ARChives).

# References

• [Baldwin 2014] ^ Baldwin A. J. (2014). An exact solution for R2,eff in CPMG experiments in the case of two site chemical exchange. J. Magn. Reson., 244, 114-124. (DOI: 10.1016/j.jmr.2014.02.023)
• [Bieri et al, 2011] ^ 1 2 Bieri, M., d'Auvergne, E., and Gooley, P. (2011). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and μs motion of proteins. J. Biomol. NMR, 50, 147-155. (DOI: 10.1007/s10858-011-9509-1)
• [Carver and Richards 1972] ^ Carver, J. P. and Richards, R. E. (1972). General 2-site solution for chemical exchange produced dependence of T2 upon Carr-Purcell pulse separation. J. Magn. Reson., 6(1), 89-105. (DOI: 10.1016/0022-2364(72)90090-X)
• [d'Auvergne and Gooley 2006] d'Auvergne, E. J. and Gooley, P. R. (2006). Model-free model elimination: A new step in the model-free dynamic analysis of NMR relaxation data. J. Biomol. NMR, 35(2), 117-135. (DOI: 10.1007/s10858-006-9007-z)
• [d'Auvergne and Gooley, 2007] ^ 1 2 3 4 5 6 d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
• [d'Auvergne and Gooley, 2008a] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models I. Minimisation algorithms and their performance within the model-free and Brownian rotational diffusion spaces. J. Biomol. NMR, 40(2), 107-119. (DOI: 10.1007/s10858-007-9214-2)
• [d'Auvergne and Gooley, 2008b] ^ 1 2 3 4 5 6 d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
• [d'Auvergne and Gooley, 2008] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models. J. Biomol. NMR, 40(2), 107-133. (DOI: 10.1007/s10858-007-9214-2, 10.1007/s10858-007-9213-3)
• [Davis et al., 1994] ^ Davis, D. G., Perlman, M. E., and London, R. E. (1994). Direct measurements of the dissociation-rate constant for inhibitor-enzyme complexes via the T1rho and T2 (CPMG) methods. J. Magn. Reson., 104(3), 266-275. (DOI: 10.1006/jmrb.1994.1084)
• [Fushman et al., 1998] ^ Fushman, D., Tjandra, N., and Cowburn, D. (1998). Direct measurement of 15N chemical shift anisotropy in solution. J. Am. Chem. Soc., 120(42), 10947-10952. (DOI: 10.1021/ja981686m)
• [Ishima and Torchia 2005] Ishima, R. and Torchia, D. A. (1999). Estimating the time scale of chemical exchange of proteins from measurements of transverse relaxation rates in solution. J. Biomol. NMR, 14(4), 369-372. (DOI: 10.1023/A:1008324025406)
• [Luz and Meiboom 1963] ^ 1 2 Luz, Z. and Meiboom, S. (1963). Nuclear magnetic resonance study of protolysis of trimethylammonium ion in aqueous solution - order of reaction with respect to solvent. J. Chem. Phys., 39(2), 366-370. (DOI: 10.1063/1.1734254)
• [Meiboom 1961] ^ Meiboom, S. (1961). Nuclear magnetic resonance study of proton transfer in water. J. Chem. Phys., 34(2), 375-388. (DOI: 10.1063/1.1700960)
• [Miloushev and Palmer 2005] ^ Miloushev, V. Z. and Palmer, 3rd, A. G. (2005). R(1rho) relaxation for two-site chemical exchange: general approximations and some exact solutions. J. Magn. Reson., 177(2), 221-227. (DOI: 10.1016/j.jmr.2005.07.023)
• [Morin and Gagné, 2009] ^ Morin, S. and Gagné, S. (2009). Simple tests for the validation of multiple field spin relaxation data. J. Biomol. NMR, 45, 361-372. (DOI: 10.1007/s10858-009-9381-4)
• [Morin et al., 2014] ^ Morin, S., Linnet, T. E., Lescanne, M., Schanda, P., Thompson, G. S., Tollinger, M., Teilum, K., Gagné, S., Marion, D., Griesinger, C., Blackledge, M., and d'Auvergne, E. J. (2014). relax: the analysis of biomolecular kinetics and thermodynamics using NMR relaxation dispersion data. Bioinformatics, 30(15), 2219-2220. (DOI: 10.1093/bioinformatics/btu166)
• [Tollinger et al., 2001] ^ Tollinger, M., Skrynnikov, N. R., Mulder, F. A. A., Forman-Kay, J. D., and Kay, L. E. (2001). Slow dynamics in folded and unfolded states of an sh3 domain. J. Am. Chem. Soc., 123(46), 11341-11352. (DOI: 10.1021/ja011300z)
• [Trott and Palmer 2002] ^ Trott, O. and Palmer, 3rd, A. G. (2002). R1rho relaxation outside of the fast-exchange limit. J. Magn. Reson., 154(1), 157-160. (DOI: 10.1006/jmre.2001.2466)
• [Trott et al., 2003] ^ Trott, O., Abergel, D., and Palmer, A. (2003). An average-magnetization analysis of R-1 rho relaxation outside of the fast exchange. Mol. Phys., 101(6), 753-763. (DOI: 10.1080/0026897021000054826)


text:
Rotational Energy

1. Jul 23, 2008

Lance WIlliam

A 250 g baseball is pitched at 35 m/s, and it's spinning at 55rad/s .

What fraction of its kinetic energy is rotational? Treat the baseball as a uniform solid sphere of radius 3.8 cm.

What the?! Im pretty lost on this one....

Do I use K_rot_=(1/2)$$I$$$$\omega$$^2

2. Jul 23, 2008

rock.freak667

Yes this will give the rotational ke of the ball.

3. Jul 23, 2008

Lance WIlliam

What is the Fraction of KE though?

4. Jul 23, 2008

rock.freak667

The total energy of the ball is $\frac{1}{2}mv^2$


text:
If the length of a rectangle is increased by $14$ units and its breadth is decreased by $7$ units then the area of the rectangle is increased by $35$ square units. However, if we decrease its length by $7$ units and increase breadth by $3$ units. Its area is decreased by $105$ square units. Find the length and breadth of the rectangle.

\begin{aligned} & \text{Length} = 35 \text{ units} \\ & \text{Breadth} = 27 \text{ units} \end{aligned}

Step by Step Explanation:
1. Let us assume the length and breadth of the rectangle be $x$ units and $y$ units respectively.
2. It is given that if the length of a rectangle is increased by 14 units and its breadth is decreased by 7 units then the area of the rectangle is increased by 35 square units.
Now, \begin{aligned} & \text{New length} = (x + 14) \text{ units} \\ & \text{New breadth} = (y - 7) \text{ units } \\ \therefore \space & \text{New area} = (x + 14)(y - 7) \text{ square units} \\ \therefore \space & (x + 14)(y - 7) - xy = 35 \\ \implies & xy - 7 x + 14 y - 98 - xy = 35 \\ \implies & 14 y - 7 x = 133 \\ \implies & 2 y - x = 19 && \ldots (i) \end{aligned}
3. Similarly, if we decrease its length by 7 units and increase breadth by 3 units. Its area is decreased by 105 square units.
Now, \begin{aligned} & \text{New length} = (x - 7) \text{ units} \\ & \text{New breadth} = (y + 3) \text{ units } \\ \therefore \space & \text{New area} = (x - 7)(y + 3) \text{ square units} \\ \therefore \space & xy - (x - 7)(y + 3) = 105 \\ \implies & xy - (xy + 3 x - 7 y - 21) = 105 \\ \implies & xy - xy - 3 x + 7 y + 21 = 105 \\ \implies & 7 y - 3 x = 84 && \ldots (ii) \end{aligned}
4. On multiplying $(i)$ by 3 we get:\begin{aligned} & 6 y - 3 x = 57 && \ldots (iii) \\ \end{aligned} Subtracting $(iii)$ from $(ii),$ we get:\begin{aligned} y = 27 \end{aligned}
5. Putting $y = 27$ in $(i),$ we get:\begin{aligned} & (2 \times 27) - x = 19 \\ \implies & x = 54 - 19 = 35 \end{aligned}
6. Hence, \begin{aligned} & \text{Length} = x \text{ units} = 35 \text{ units} \\ & \text{Breadth} = y \text{ units} = 27 \text{ units} \end{aligned}