def scre_iteration(assignments, K0, lagtime_list, M, X, populations):
    KList = []
    counts_list = []
    for LagTime in lagtime_list:
        logger.info("Estimating rates at lagtime %d", LagTime)
        K = K0.copy() * float(LagTime)
        C0 = MSMLib.GetCountMatrixFromAssignments(assignments,
                                                  LagTime=LagTime).toarray()
        Counts = C0.sum(1)
        Counts /= LagTime
        X2 = SCRE.MaximizeRateLikelihood(X, M, populations, C0, K)
        K = SCRE.ConstructRateFromParams(X2, M, populations, K)
        K /= (LagTime)
        KList.append(K)
        counts_list.append(Counts)

    KList = np.array(KList)
    SCRE.PlotRates(KList, lagtime_list, counts_list)
    return KList
def interactive_scre(assignments):
    Counts = MSMLib.GetCountMatrixFromAssignments(assignments, LagTime=1)
    CountsAfterTrimming, Mapping = MSMLib.ErgodicTrim(Counts)
    MSMLib.ApplyMappingToAssignments(assignments, Mapping)
    ReversibleCounts = MSMLib.EstimateReversibleCountMatrix(
        CountsAfterTrimming)
    T = MSMLib.EstimateTransitionMatrix(ReversibleCounts).toarray()
    populations = np.array(ReversibleCounts.sum(0)).flatten()
    populations /= populations.sum()

    K0 = SCRE.ConvertTIntoK(T)
    M, X = SCRE.get_parameter_mapping(K0)

    while len(X) > 0:
        lagtime_list = get_lagtimes()
        KList = scre_iteration(assignments, K0, lagtime_list, M, X,
                               populations)
        matplotlib.pyplot.show()
        if len(X) > 1:
            i, j, lagtime = get_input()
            SCRE.FixEntry(M, X, populations, K0, i, j, KList[lagtime][i, j])
        else:
            lagtime = get_lagtime()
            return KList[lagtime]
Beispiel #3
0
import sys, os
import numpy as np
import scipy.io
from msmbuilder import arglib
from msmbuilder import Serializer
from msmbuilder import MSMLib

Assignments = Serializer.LoadData("%s" % (sys.argv[1]))
NumStates = max(Assignments.flatten()) + 1
LagTime = sys.argv[2]
Counts = MSMLib.GetCountMatrixFromAssignments(Assignments,
                                              NumStates,
                                              LagTime=LagTime,
                                              Slide=True)
scipy.io.mmwrite('%s' % (sys.argv[3]), Counts)