Skip to main content

Table 8 Steps of ISP longitudinal latitudinal search (LOLAS) 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, ƌstep, ƃlimit, 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:

Initialize count(ƃlimit) and 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:

For ƌstep, extend the graph dictionary Dict by vμ(Xi(t)) for count(ƃlimit) 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 the 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 stack in order, according to reachability and go to next Step,

Step 5b:

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

Step 6:

Pop of the top nodes nK = (XK, ƌl , Ͼ\( {}_{N_i,{N}_i^{\hbox{'}}}\left.\left(\mathit{\min}\right)\right) \) from the stack and add the set of states XK in the domain as domaindomain + XK and take domainprevious domain, and go to next Step,

Step 7:

If count(ƃlimit) = ƃlimit creates Boundupper = {domain} up to ƃlimit then label BoundlowerBoundupper and go back to Step 1; else if count(ƃlimit) < ƃlimit creates {domain} up to count(ƃlimit) then go to next Step,

Step 8:

count(ƃlimit)← count(ƃlimit) + 1 and go to Step 4a

Output: domain with probable states