예제 #1
0
파일: util.py 프로젝트: sklus/scikit-time
 def __init__(self,
              reversible,
              statdist_constraint,
              sparse,
              count_mode="sliding"):
     super().__init__(statdist_constraint=statdist_constraint,
                      sparse=sparse,
                      count_mode=count_mode)
     maxerr = 1e-12
     if statdist_constraint:
         est = MaximumLikelihoodMSM(reversible=reversible,
                                    maxerr=maxerr,
                                    stationary_distribution_constraint=self.
                                    stationary_distribution,
                                    sparse=sparse)
     else:
         est = MaximumLikelihoodMSM(reversible=reversible,
                                    maxerr=maxerr,
                                    sparse=sparse)
     est.fit(self.counts)
     self._msm = est.fetch_model()
     self._msm_estimator = est
     self._expectation = 31.73
     if not reversible:
         self._timescales = np.array([310.49376926, 8.48302712, 5.02649564])
     else:
         self._timescales = np.array([310.87, 8.5, 5.09])
예제 #2
0
def msm_double_well(lagtime=100,
                    reversible=True,
                    **kwargs) -> MaximumLikelihoodMSM:
    count_model = TransitionCountEstimator(lagtime=lagtime, count_mode="sliding")\
        .fit(datasets.double_well_discrete().dtraj).fetch_model().submodel_largest()
    est = MaximumLikelihoodMSM(reversible=reversible, **kwargs)
    est.fit(count_model)
    return est
예제 #3
0
def estimate_markov_model(dtrajs, lag, **kw) -> MarkovStateModel:
    statdist_constraint = kw.pop('statdist', None)
    connectivity = kw.pop('connectivity_threshold', 0.)
    sparse = kw.pop('sparse', False)
    count_model = TransitionCountEstimator(lagtime=lag, count_mode="sliding", sparse=sparse).fit(dtrajs).fetch_model()
    count_model = count_model.submodel_largest(probability_constraint=statdist_constraint,
                                               connectivity_threshold=connectivity)
    est = MaximumLikelihoodMSM(stationary_distribution_constraint=statdist_constraint, sparse=sparse, **kw)
    est.fit(count_model)
    return est.fetch_model()