Example #1
0
    def setUp(self):
        p = np.zeros(10)
        q = np.zeros(10)
        p[0:-1] = 0.5
        q[1:] = 0.5
        p[4] = 0.01
        q[6] = 0.1

        self.A = [0, 1]
        self.B = [8, 9]
        self.a = 1
        self.b = 8

        self.bdc = birth_death_chain(q, p)
        T_dense = self.bdc.transition_matrix
        T_sparse = csr_matrix(T_dense)
        self.T = T_sparse

        self.mu = self.bdc.stationary_distribution
        self.qminus = self.bdc.committor_backward(self.a, self.b)
        self.qplus = self.bdc.committor_forward(self.a, self.b)

        # present results
        self.fluxn = flux.flux_matrix(self.T, self.mu, self.qminus, self.qplus, netflux=False)
        self.netfluxn = flux.flux_matrix(self.T, self.mu, self.qminus, self.qplus, netflux=True)
        self.totalfluxn = flux.total_flux(self.netfluxn, self.A)
        self.raten = flux.rate(self.totalfluxn, self.mu, self.qminus)
    def totalflux(self, a, b):
        r"""The tiotal flux for the reaction A=[0,...,a] => B=[b,...,M].

        Parameters
        ----------
        a : int
            State index
        b : int
            State index

        Returns
        -------
        F : float
            The total flux between reactant and product

        """
        flux = self.flux(a, b)
        A = list(range(a + 1))
        from deeptime.markov.tools.flux import total_flux
        return total_flux(flux, A)
def test_total_flux(tpt_scenario):
    assert_almost_equal(tpt_scenario[1].total_flux, 0.0108050847458)
    assert_almost_equal(total_flux(tpt_scenario[1].net_flux), 0.0108050847458)
    assert_almost_equal(total_flux(tpt_scenario[1].net_flux, A=[0]),
                        0.0108050847458)