Пример #1
0
def test_ntimescales_1():
    # see issue #603
    trajs = [np.random.randint(0, 30, size=500) for _ in range(5)]
    pccap = PCCAPlus(n_macrostates=11).fit(trajs)

    lumped_trajs = pccap.transform(trajs)
    assert len(np.unique(lumped_trajs)) == 11
Пример #2
0
def test_ntimescales_1():
    # see issue #603
    trajs = [np.random.randint(0, 30, size=500) for _ in range(5)]
    pccap = PCCAPlus(n_macrostates=11).fit(trajs)

    lumped_trajs = pccap.transform(trajs)
    assert len(np.unique(lumped_trajs)) == 11
Пример #3
0
def test_ntimescales_1():
    # see issue #603
    trajs = [random.randint(0, 100, size=500) for _ in range(15)]

    pccap = PCCAPlus(n_macrostates=11).fit(trajs)
    lumped_trajs = pccap.transform(trajs)
    observed_macros = len(np.unique(lumped_trajs))
    assert observed_macros == 11, observed_macros
Пример #4
0
def test_ntimescales_1():
    # see issue #603
    trajs = [random.randint(0, 100, size=500) for _ in range(15)]

    pccap = PCCAPlus(n_macrostates=11).fit(trajs)
    lumped_trajs = pccap.transform(trajs)
    observed_macros = len(np.unique(lumped_trajs))
    assert observed_macros == 11, observed_macros
Пример #5
0
def test_ntimescales_3():
    # see issue #603
    trajs = [np.random.randint(0, 30, size=500) for _ in range(5)]
    msm = MarkovStateModel(n_timescales=10).fit(trajs)

    pccap = PCCAPlus.from_msm(msm, 11)
    lumped_trajs = pccap.transform(trajs)
    assert len(np.unique(lumped_trajs)) == 11
Пример #6
0
def test_ntimescales_3():
    # see issue #603
    trajs = [np.random.randint(0, 30, size=500) for _ in range(5)]
    msm = MarkovStateModel(n_timescales=10).fit(trajs)

    pccap = PCCAPlus.from_msm(msm, 11)
    lumped_trajs = pccap.transform(trajs)
    assert len(np.unique(lumped_trajs)) == 11
Пример #7
0
def test_ntimescales_2():
    # see issue #603
    trajs = [random.randint(0, 100, size=500) for _ in range(15)]
    msm = MarkovStateModel().fit(trajs)

    pccap = PCCAPlus.from_msm(msm, 11)
    lumped_trajs = pccap.transform(trajs)
    observed_macros = len(np.unique(lumped_trajs))
    assert observed_macros == 11, observed_macros
Пример #8
0
def test_from_msm():
    assignments, _ = _metastable_system()
    msm = MarkovStateModel()
    msm.fit(assignments)
    pcca = PCCA.from_msm(msm, 2)

    msm = MarkovStateModel()
    msm.fit(assignments)
    pccaplus = PCCAPlus.from_msm(msm, 2)
Пример #9
0
def test_ntimescales_2():
    # see issue #603
    trajs = [random.randint(0, 100, size=500) for _ in range(15)]
    msm = MarkovStateModel().fit(trajs)

    pccap = PCCAPlus.from_msm(msm, 11)
    lumped_trajs = pccap.transform(trajs)
    observed_macros = len(np.unique(lumped_trajs))
    assert observed_macros == 11, observed_macros
Пример #10
0
def test_from_msm():
    assignments, _ = _metastable_system()
    msm = MarkovStateModel()
    msm.fit(assignments)
    pcca = PCCA.from_msm(msm, 2)

    msm = MarkovStateModel()
    msm.fit(assignments)
    pccaplus = PCCAPlus.from_msm(msm, 2)
Пример #11
0
def test_pcca_plus_1():
    assignments, ref_macrostate_assignments = _metastable_system()
    pipeline = Pipeline([('msm', MarkovStateModel()), ('pcca+', PCCAPlus(2))])
    macro_assignments = pipeline.fit_transform(assignments)[0]
    # we need to consider any permutation of the state labels when we
    # test for equality. Since it's only a 2-state that's simple using
    # the logical_not to flip the assignments.
    assert (np.all(macro_assignments == ref_macrostate_assignments) or np.all(
        macro_assignments == np.logical_not(ref_macrostate_assignments)))
Пример #12
0
    def generate_msm(self, clustered):
        """
        Generates a MSM from the current cluster data

        Returns: Msm
        """
        # Generate microstate MSM
        self.currtime = time.time()
        msm = MarkovStateModel(lag_time=self.config.getint("model", "msm_lag"),
                               reversible_type="transpose",
                               ergodic_cutoff="off",
                               prior_counts=0.000001)
        msm.fit(clustered)
        print("TIME\tmicromsm:\t%f" % (time.time() - self.currtime))
        utils.dump(msm, "msm_G%d.pkl" % self.generation)

        # Lump into macrostates
        self.currtime = time.time()
        pcca = PCCAPlus.from_msm(msm,
                                 n_macrostates=self.config.getint(
                                     "model", "macrostates"))
        mclustered = pcca.transform(clustered, mode="fill")
        if any(any(np.isnan(x) for x in m) for m in mclustered):  #pylint: disable=no-member
            print(
                "WARNING: Unassignable clusters in PCCA with %d macrostates!" %
                self.config.getint("model", "macrostates"))
        print("TIME\tpccaplus:\t%f" % (time.time() - self.currtime))
        if self.save_extras:
            utils.dump(pcca, "macrostater.pkl")

        # Generate macrostate MSM
        self.currtime = time.time()
        mmsm = MarkovStateModel(lag_time=self.config.getint(
            "model", "msm_lag"),
                                reversible_type="transpose",
                                ergodic_cutoff="off",
                                prior_counts=0.000001)
        mmsm.fit(mclustered)
        print("TIME\tmacromsm\t%f" % (time.time() - self.currtime))
        utils.dump(mmsm, "mmsm_G%d.pkl" % self.generation)

        return mmsm, mclustered
Пример #13
0
def test_from_msm_2():
    assignments, _ = _metastable_system()
    msm = MarkovStateModel()
    msm.fit(assignments)
    pccaplus = PCCAPlus.from_msm(msm, 2, 'crispness')
    assert pccaplus.objective_function == 'crispness'
Пример #14
0
        #msme.plot_free_energy(txx, obs=(0, 1), n_samples=10000,
        #                  pi=msm.populations_[assignments],
        #                  xlabel='tIC 1', ylabel='tIC 2')
        #plt.figure()
        #plt.scatter(clusterer.cluster_centers_[msm.state_labels_, 0],
        #        clusterer.cluster_centers_[msm.state_labels_, 1],
        #        s=1e4 * msm.populations_,       # size by population
        #        c=msm.left_eigenvectors_[:, 1], # color by eigenvector
        #        cmap="coolwarm",
        #        zorder=3)
        #plt.colorbar(label='First dynamical eigenvector')
        #plt.tight_layout()
        #plt.savefig('free_energy_plot.png')

        # Macrostate model
        pcca = PCCAPlus.from_msm(msm, n_macrostates=4)
        macro_trajs = pcca.transform(clustered_trajs)

        #msme.plot_free_energy(txx, obs=(0, 1), n_samples=10000,
        #                  pi=msm.populations_[assignments],
        #                  xlabel='tIC 1', ylabel='tIC 2')
        #plt.figure()
        #plt.scatter(clusterer.cluster_centers_[msm.state_labels_, 0],
        #        clusterer.cluster_centers_[msm.state_labels_, 1],
        #        s=50,
        #        c=pcca.microstate_mapping_,
        #        zorder=3
        #       )
        #plt.tight_layout()

        #plt.savefig('macrostate_clusters.png')
Пример #15
0
def test_from_msm_2():
    assignments, _ = _metastable_system()
    msm = MarkovStateModel()
    msm.fit(assignments)
    pccaplus = PCCAPlus.from_msm(msm, 2, 'crispness')
    assert pccaplus.objective_function == 'crispness'