The impl package and subpackages contain the actual implementation of the algorithm to compute elementary modes (EFMs).

Different implementations might implement different algorithms, however, current implementations are all versions of the double description method (see [1], [2]). The default implementation class is {@link ch.javasoft.metabolic.efm.impl.SequentialDoubleDescriptionImpl SequentialDoubleDescriptionImpl}. The algorithm supports {@link ch.javasoft.metabolic.efm.memory.incore in-core} and {@link ch.javasoft.metabolic.efm.memory.outcore out-of-core} computation, storing intermediary modes in memory (in-core) or on disk (out-of-core memory). Different algorithm versions are reflected by different {@link ch.javasoft.metabolic.efm.model model} versions, currently, the {@link ch.javasoft.metabolic.efm.model.nullspace nullspace} approach (see [3], [4]) and the {@link ch.javasoft.metabolic.efm.model.canonical canonical} approach (see [5]) are available. For implementation details, also see [6].

References

  1. Motzkin, T. S., Raiffa, H., Thompson, G., and Thrall, R. M., "The double description method", 1953
    in Contributions to the Theory of Games II, volume 8 of Annals of Math. Studies, pages51-73. Princeton University Press (Princeton/RI).
  2. Fukuda, K. and Prodon, A., "Double description method revisited", 1995
    in Combinatorics and Computer Science, pages 91-111.
  3. Wagner, C., "Nullspace approach to determine the elementary modes of chemical reaction systems", 2004,
    J.Phys. Chem. B, 108, 2425-2431.
  4. Gagneur, J. and Klamt, S., "Computation of elementary modes: A unifying framework and the new binary approach", 2004,
    BMC Bioinformatics, 5, 175.
  5. Schuster, S. and Hilgetag, C., "On elementary flux modes in biochemical reaction systems at steady state", 1994,
    J.Biol. Syst., 2, 165-182.
  6. Terzer, M. and Stelling, J., "Large scale computation of elementary flux modes with bit pattern trees",
    Bioinformatics, August 1, 2008, doi:10.1093/bioinformatics/btn401