Within relax all user functions operate on data stored within the current data pipe. This pipe stores data is input, processed, or output as user functions are called. There are different types of data pipe for different analyses, e.g. a reduced spectral density mapping pipe, a model-free pipe, an exponential curve-fitting pipe, etc. Multiple data pipes can be created within relax and various operations performed in sequence on these pipes. This is useful for operations such as model selection whereby the function model_selection can operate on a number of pipes corresponding to different models and then assign the results to a newly created pipe. When running relax you choose which pipe you are currently in by using the pipe.switch user function to jump between pipes.
The flow of data through relax can be thought of as travelling through these pipes. User functions exist to transfer data between these pipes and other functions combine data from multiple pipes into one or vice versa. The simplest invocation of relax would be the creation of a single data pipe and with the data being processed as it is passing through this pipe.
The primary method for creating a data pipe is through the user function pipe.create. For example
[numbers=none] relax> pipe.create('m1', 'mf')
will create a model-free data pipe labelled “m1”. The following is a table of all the types which can be assigned to a data pipe.
Data pipe type
|Consistency testing of relaxation data|
|“frame order”||The Frame Order analyses of domain motions|
|“jw”||Reduced spectral density mapping|
|“hybrid”||A special hybridised data pipe|
|“mf”||Model-free data analysis|
|“N-state”||N-state model of domain motions|
|“noe”||Steady state NOE calculation|
|“relax_disp”||Relaxation dispersion curve fitting|
The relax user manual (PDF), created 2019-06-14.