Get the top N paths by iteratively performing Dijkstra’s algorithm.
Parameters: | sources : array_like, int
sinks : array_like, int
net_flux : np.ndarray
remove_path : str or callable, optional
num_paths : int, optional
flux_cutoff : float, optional
|
---|---|
Returns: | paths : list
fluxes : np.ndarray, shape = [n_paths,]
|
See also
Notes
The Dijkstra algorithm only allows for computing the single top flux pathway through the net flux matrix. If we want many paths, there are many ways of finding the second highest flux pathway.
The algorithm proceeds as follows:
Currently, there are two schemes for step (2):
If a new scheme is desired, the user may pass a function that takes the net_flux and the path to remove and returns the new net flux matrix.
References
[R60] | Weinan, E. and Vanden-Eijnden, E. Towards a theory of transition paths. J. Stat. Phys. 123, 503-523 (2006). |
[R61] | Metzner, P., Schutte, C. & Vanden-Eijnden, E. Transition path theory for Markov jump processes. Multiscale Model. Simul. 7, 1192-1219 (2009). |
[R62] | Berezhkovskii, A., Hummer, G. & Szabo, A. Reactive flux and folding pathways in network models of coarse-grained protein dynamics. J. Chem. Phys. 130, 205102 (2009). |
[R63] | Dijkstra, E. W. A Note on Two Problems in Connexion with Graphs. Numeriche Mathematik 1, 269-271 (1959). |
[R64] | Noe, Frank, et al. “Constructing the equilibrium ensemble of folding pathways from short off-equilibrium simulations.” PNAS 106.45 (2009): 19011-19016. |