Table 4

MCS = Reduce(Math, J, S)

1: // Argument:
2: // Math, a collection of cut sets for objective reaction
3: // set J N in system S ∈ ℝm × n
4: // Output:
5: // MCS, a collection of MCS for J
6:
7: MCS, Done = empty collection
8: for all sets H in collection Mathdo
9:   ToDo = {H};
10:   while ToDo is not empty do
11:   Math = a lowest cardinality set from ToDo
12:   //Apply LP based test to all
13:   //immediate subsets of Math to determine
14:   //which cut at least one flux in objective set J
15:   Math = collection of size |Math| - 1 subsets of Math that are also cut sets for objective set J in S
16:   add Math to collection Done
17:   if Math is empty then
18:      add Math to collection MCS
19:   else if Math contains one set then
20:      add sole set in Math to MCS and Done
21:   else
22:      add sets in Math to ToDo
23:   end if
24:      Remove from ToDo super sets of any set in collection Done
25:   end while
26: end for
27: return MCS

Imielinski and Belta BMC Systems Biology 2008 2:40   doi:10.1186/1752-0509-2-40