Skip to main content

Table 7 Steps of ISP latitudinal search (LAS) algorithm

From: Novel domain expansion methods to improve the computational efficiency of the Chemical Master Equation solution for large biological networks

Step 0:

Inputs: Initial node N0, aμ, vμ, tol τm, tf, tstep

Initialize: \( {\boldsymbol{Bound}}_{\boldsymbol{lower}}={\boldsymbol{X}}_{\boldsymbol{K}},{\boldsymbol{b}}_{{\boldsymbol{N}}^i,\boldsymbol{N}}^{\hbox{'}}{\left(\boldsymbol{X}-{\boldsymbol{v}}_{\mu}\right)}^{\hbox{'}}={\boldsymbol{P}}^{\left(\boldsymbol{t}\right)}\left({\boldsymbol{X}}_{\mathbf{0}}\right),\boldsymbol{A}=\left[\right] \)

Step 1:

Start from parent node Ni = (X0, ƌl) ← Current State of the system at td,

Step 2:

Flag the current node as explored, update A and add the state Xi in the domain so that; if 1 − IT exp (t. Aj). P(t)(X0) τm(leak) holds true go to Step 3; else stop the algorithm

Step 3:

Sort exp(t. Aj). P(t)(X0) and shift the set of states in \( {\mathbf{X}}_K^{\hbox{'}}\;\mathrm{at}\;{t}^{\hbox{'}} \) having smallest probabilities, if P(t)(XK) ≥ τm(leak) > \( {\mathrm{P}}^{(t)}\left({\mathbf{X}}_K^{\hbox{'}}\right) \) and at td update \( {\mathbf{X}}_K\leftarrow {\mathbf{X}}_K-{\mathbf{X}}_K^{\hbox{'}} \)

Step 4a:

Extend the graph dictionary Dict by vμ(Xi(t)) by 1 level to check all the nodes nj = (Xj, ƌl , Ͼ\( {}_{N_i,{N}_i^{\hbox{'}}}\left.\left(\mathit{\min}\right)\right) \) adjacent to Ni: BoundupperRM(Boundlower) reachable by exactly RM reactions (from fast to slow) having Ͼ\( {}_{N_i,{N}_i^{\hbox{'}}}\left(\mathit{\min}\right) \). If nK = (XK, ƌl, Ͼ\( {}_{N_i,{N}_i^{\hbox{'}}}\left.\left(\mathit{\min}\right)\right) \) be the set of adjacent nodes such that nK nJ then go to next Step,

Step 4b:

Compute the BLNP function for nK Boundupper:

\( b\left(\left.{N}_{N1,.. NM}\right|{b}_{1,N.\dots {N}^{\hbox{'}}N}^{\hbox{'}}\right)={P}_{N,1.\dots N,N\hbox{'}}\left(\omega \right)\ast {b}_{N^{\hbox{'}},N}^{\hbox{'}}{\left(X-{v}_i\right)}^{\hbox{'}} \)

Step 5a:

If nK = (XK, ƌl, Ͼ\( {}_{N_i,{N}_i^{\hbox{'}}}\left.\left(\mathit{\min}\right)\right)\in domain \), then update the values of the set of states XK present in domain and take domaindomainprevious domain and go back to Step 1; else If nK = (XK, ƌl, Ͼ\( {}_{N_i,{N}_i^{\hbox{'}}}\left.\left(\mathit{\min}\right)\right)\notin domain \), then add it to the queue in order, according to reachability and go to the next Step,

Step 5b:

sort \( b\left({N}_{N1,.. NM}\left|{b}_{N1,.. NM}^{\hbox{'}}\right.\right) \) in descending order and update \( queue\leftarrow \left( queue;b\left({N}_{N1,.. NM}\left|{b}_{1,N.\dots {N}^{\hbox{'}},N}^{\hbox{'}}\right.\right)\right) \)

Step 6:

Pull out the nodes nK = (XK, ƌl, Ͼ\( {}_{N_i,{N}_i^{\hbox{'}}}\left.\left(\mathit{\min}\right)\right) \) from the queue in order and add the set of states XK in the domain as domaindomain + XK and take domainprevious domain, then go back to Step 1,

Output: domain with probable states