To visualise the frame order motions, this user function performs a type of simulation whereby structures are randomly rotated by a fixed angle within the bounds of the uniform distribution of the frame order model. This can be thought of as a pseudo-Brownian dynamics simulation. It is in no way a real molecular or Brownian dynamics simulation.

Note that the RDC and PCS data does not contain information about all parts of the real distribution of structures. Therefore the snapshots in this simulation only represent the components of the distribution present in the data, as modelled by the frame order models.

The simulation algorithm is as follows. The current state is initially defined as the identity matrix I. The maximum opening angleθ or the torsion angle sigma are defined by the parameter values of the frame order model. The algorithm for one step of the simulation is:

1 -

Generate a random vector in 3D.

2 -

Construct a rotation matrix from the random vector and the fixed rotation angle.

3 -

Pre-multiply the current state by the rotation matrix.

4 -

Decompose the new state into the torsion-tilt angles.

5 -

If θ or sigma are greater than model parameter values, set them to these maximum values.

6 -

Back convert the modified torsion-tilt angles to a rotation matrix - this is the current state.

7 -

Store a snapshot if the correct number of iterations has been reached. This consists of rotating a new model about the pivot(s), as defined by the frame order model.

8 -

Terminate the loop if the maximum number of snapshots has been reached.

The setting of the steps outside of the distribution to the maximum parameter values is specifically to allow for models with parameter values close to zero. Without this, the simulation would take a huge amount of time to complete.

As the simulation consists of one model per snapshot, if an ensemble of structures has been analysed, only one model from the ensemble can be used for the representation. This defaults to model number 1, but this can be changed.