Identification of trap-spaces
Motivation
Trap-spaces, also called stable motifs or symbolic steady states, are parts of the dynamics from which the system can not escape, (see Zanudo 2013 and Klarner 2014). Each trap-space is defined as a pattern, where some components are fixed, and others are free, such that the images of all matching states also match the pattern. Each trap-space contains at least one attractor, and a trap-space can contain one or several smaller trap-spaces. The number of "terminal" trap-spaces, which do not include smaller trap-spaces, is a minimal bound for the number of attractor. Every model contains at least one trap-space where all variables are free (the whole state space). The computation of trap-spaces relies on the identification of positive and negative prime implicants for the functions of each component, and amounts to the identification of consistent, stable groups of prime implicants, such that all fixed components are stable together. In bioLQM, trap-spaces can be identified using ASP (relying on clingo as external solver) or directly using decision diagrams.
Comand-line use
List the trap-spaces of a model using the trapspace tool:
java -jar bioLQM.jar model.sbml -r trapspace
The identification of trap-spaces relies on the clingo ASP solver: it generates ASP code, launches clingo, and parses the output. It currently looks for clingo in the executable PATH.
It can also use a BDD-based solver if clingo is not available (see below).
It does not print all trapspaces: if some variables are downstream of fixed variables, many related trapspaces may exist but only the fully percolated ones are listed (such that all free variables can still change value). The percolated variables appear with a mark next to their value (i.e. 0' instead of just 0). The all parameter can be used to list all trapspaces without percolation.
java -jar bioLQM.jar model.sbml -r trapspace all
The model can be reduced before computing trap-spaces by removing fixed and output components, which is known to preserve percolated trap-spaces.
java -jar bioLQM.jar model.sbml -r trapspace reduce
Trap-spaces may overlap or include each other, attractors are usually part of terminal trap-spaces. The result can be filtered using the terminal parameter:
java -jar bioLQM.jar model.sbml -r trapspace terminal
If you are interested in all trap-spaces, it is also possible to compute an inclusion tree. When using this parameter, patterns are numbered and associated to the list of their directly included sub-trap-spaces:
java -jar bioLQM.jar model.sbml -r trapspace tree
Finally, if you are curious about the ASP encoding, or if you want to launch clingo outside of bioLQM, you can ask for the ASP code:
java -jar bioLQM.jar model.sbml -r trapspace showASP
Beside the ASP-based solver, trap-spaces can also be computed using BDDs, without requiring external tools. This approach is often faster, and also computes percolated trap-spaces, but does not identify the percolated components (i.e. we loose the information that this is an attractive trapspace embded inside a bigger one). You can select the BDD solver using the BDD parameter (which can be combined with the other parameters listed above).
java -jar bioLQM.jar model.sbml -r trapspace BDD
The BDD-based solver is usually faster but requires the computation of all solutions, while the ASP solver can start enumerating them as they are found, enabling partial analysis of highly complex models by launching clingo outside of bioLQM.
API use
The dedicated task is available throught the TrapSpaceService instance and provides additional methods to retrieve the list of trap-spaces instead of printing them out.