title: A depth-first search algorithm to compute elementary flux modes by linear programming.
abstract: BACKGROUND
  The decomposition of complex metabolic networks into elementary flux modes (EFMs) provides a useful framework for exploring reaction interactions systematically. Generating a complete set of EFMs for large-scale models, however, is near impossible. Even for moderately-sized models (<400 reactions), existing approaches based on the Double Description method must iterate through a large number of combinatorial candidates, thus imposing an immense processor and memory demand.
  
  
  RESULTS
  Based on an alternative elementarity test, we developed a depth-first search algorithm using linear programming (LP) to enumerate EFMs in an exhaustive fashion. Constraints can be introduced to directly generate a subset of EFMs satisfying the set of constraints. The depth-first search algorithm has a constant memory overhead. Using flux constraints, a large LP problem can be massively divided and parallelized into independent sub-jobs for deployment into computing clusters. Since the sub-jobs do not overlap, the approach scales to utilize all available computing nodes with minimal coordination overhead or memory limitations.
  
  
  CONCLUSIONS
  The speed of the algorithm was comparable to efmtool, a mainstream Double Description method, when enumerating all EFMs; the attrition power gained from performing flux feasibility tests offsets the increased computational demand of running an LP solver. Unlike the Double Description method, the algorithm enables accelerated enumeration of all EFMs satisfying a set of constraints.
authors: Lake-Ee
authors: LE
authors: Quek
authors: Lars K
authors: LK
authors: Nielsen
mesh_terms: D000465:Algorithms; D019295:Computational Biology / Q000379:methods*; D004926:Escherichia coli / Q000235:genetics / Q000378:metabolism; D023281:Genomics; D005947:Glucose / Q000378:metabolism; D064688:Metabolic Flux Analysis / Q000379:methods*; D053858:Metabolic Networks and Pathways; D011382:Programming, Linear; D012984:Software; D013997:Time Factors; D014633:Valine / Q000378:metabolism
chemical_list: D014633:Valine; D005947:Glucose