Start fitting svd demo

This demo shows you how to use Singular Value Decomposition (SVD) of your data. The start of this demo is identical to the 'Start fitting demo'.

Start the toolbox by typing inside the command window, and press enter. The main graphical user interface will open.

Load your dataset.

Two figures open. The raw dataset in three dimensions (can be rotated) and another plot that allows for data exploration. Clicking once inside the latter figure (the surface plot) to activate a cross-hair, and a second time to select a point inside the surface plot. The selected point (the center of the cross-hair) determines which time trace and which spectrum to plot individually. Click again for another point.

Define the rate constants in descending order (to get increasing time constants), separated by spaces. The order button does this automatically for you. The grab button takes the values of the last fit and puts them in the rate constants box.

Select the parallel model to apply to your data. It will appear in the information panel after having pressed the fit button. The number of rate constants should match the model file.

Fix time zero to start with to prevent poor convergence: activate constraints, and check the corresponding box. Release it after having fitted your first session if desired.

Check the SVD box, and set the number of components to 4. This number represent the number of singular values (see below). SVD deconstructs the data into unique orthogonal vectors that have a corresponding singular value: SVD = U S V' where U are the left singular vectors (LSV) representing the time evolution, and V the right singular vector, representing a basis spectum that corresponds to singular value S. The singular values are sorted in decreasing order, and the highest value is called the most 'dominant'. Use only those singular values which can reconstruct the data reliably (see below). For now, use 4 singular values.

Press Fit!

The command window shows the fit results, with the first 4 (as selected) singular values. Note that the first three are clearly larger than the fourth one.

A number of figures are also generated.

The 'trace1' figure shows the LSV's of the first 4 (although only 4 components were selected above, the SVD is applied to the full dataset!) figures in the top row, and the RSV's in the bottom row. Besides showing the time traces (the LSV's) resulting from SVD, they are also fitted straight away (using the defined rate constants and model). It is important to know that the RSV's are not fitted or used in any way.

In this case, the fit is nearly perfect (the blue fit is on top of the black traces!) with the three selected time constants. The fourth LSV basically shows a noisy trace, just as the fourth RSV (the spectrum), indicating that one singular value too many has been selected. This can also be seen in the singular value plot, where the first three singular values have an amplitude that rises from the baseline formed by components 4 to 90. That was already clear from the results shown in the command window (they are the same values). The fact that the fourth SV and its corresponding RSV and LSV are structureless indicate that a (artificial) data set, reconstructed from SV's 1-3 and their corresponding LSV's and RSV's, is almost identical to the original dataset. In essence SVD can therefore be used as noise filter, by ignoring those SV's that are considered to represent noise.

The amplitude of the exponentials used to fit the LSV's can be considered to represent a spectrum, although it has no physical meaning. Check out the spectra figure.

This figure shows the amplitude of each exponential for each SV. For instance, it can be seen that, for the second singular value, the relative contribution of the first rate constant (the blue line) to the fit of the second LSV is higher than that of the other two rate constants (-0.336 vs. 0.1744 and 0.1435, note that the sign is irrelevant). In this way an idea is obtained of which rate constant is more strongly present in the LSV's and which less. Check also that the amplitude of the fourth component is basically zero.

The toolbox also has an additional feature, which scales the LSV with each singular value. Obviously the first SV is dominant over the second one, and the second over the third and so on. Multiplying the LSV with each corresponding SV can be done by ticking the following box.

After pressing fit again, the scaled LSV's are now fitted.

Note that the SV's and RSV's did not change, but only the LSV's. The fit results in a dramatic improvement of the sum of squares (as opposed to 1 without scaling). In general the scaling has also a significant effect on the speed of convergence (i.e. less iterations and/or less calculation time) and accuracy.

An additional plot is also shown in the spectra window. The right plot depicts the relative contribution of each rate constant to the data (still consisting of 4 SV's). This is calculated by the sum of relative contributions of each rate constant to each SV (the values shown in the left plot). Each component contributes more or less a third to the data. The percentual contribution plot can be used as an estimate of the presence of a state or species in the data, because each rate constant is linked to a specific species.

Finally, the fitted time constants can be used as starting values for a global fit on the full dataset.

See the fitting results section:

- Fit results screenshots