msmbuilder.msm_analysis.project_observable_onto_transition_matrix

msmbuilder.msm_analysis.project_observable_onto_transition_matrix(observable, tprob, num_modes=25)[source]

Projects an observable vector onto a probability transition matrix’s eigenmodes.

The function first decomposes the matrix tprob into num_modes different eigenvectors, sorted by eigenvalue. Then, it returns the amplitude of the projection of the observable onto each of those eigenmodes.

This projection gives an estimate of how strong an experimental signal will be see at each timescale - though the actual experimental response will also be modulated by the populations of states at play.

Parameters:

observable : array_like, float

a one-dimensional array of the values of a given observable for each state in the MSM

tprob : matrix

the transition probability matrix

num_modes : int

the number of eigenmodes to calculate (the top ones, sorted by mag.)

Returns:

timescales : array_like, float

the timescales of each eigenmode, in units of the lagtime of tprob

amplitudes : array_like, float

the amplitudes of the projection of observable onto each mode

Notes

The stationary mode is always discarded The eigenvalues/vectors are calculated from scratch, so this function

may take a little while to run