SimTk/msmbuilder — pull request #182 by schwancr (2013-04-24 17:32:15+00:00)
Title: (Bug?)fix in msm_analysis.calc_expectation_timeseries

Changed eigendecomposition in msm_analysis.calc_expectation_timeseries to use msm_analysis.get_eigenvectors rather than scipy.sparse.linalg.eigs. The reason I think this is necessary is I was having issues calculating eigenvalues using eigs directly. For instance on one MSM, I was calculating the top 250, but the stationary eigenvector did not end up in the returned set. I do not understand why, and could not repeat it with a smaller MSM (mine was 19k states). Secondly, however, it is better practice to reuse our own eigendecomposition code anyway, so from a purely engineering perspective this is the right way to do it anyway. I also added a check to remove negative eigenvalues. Numerically this can happen, but they have no physical meaning, and so we should ignore them when calculating observables.