Hi Uri,
What is the objective you are optimising for?
One reason for what you observe could be that, as far as I can see
from the code, addLoopLawConstraints excludes Exchange reactions
(assuming, that those are only present as reversible reactions (a
common assumption in COBRA). Thus it does not expect that there
could be multiple exchangers for the same metabolite.
Personally, I prefer to remove unnecessary loops by the taxicab
norm (i.e. running optimizeCbModel(model,'min','one') ), which
minimises the total amount of flux used to achieve the objective.
While this can not be applied to more complex objectives, it works
fine for simple minimizations and maximisations e.g. biomass.
Using this approach you won't get any cycles, as they would not be
optimal( since the total flux is higher if the cycle exists).
The problem with this approach is if you try to optimize reactions within the system which are part of a cycle themselves, as it will commonly only activate that specific cycle (simply imagine a large network containing, among other reactions the Cycle R1:A<->B, R2:B <->C, R3:C<->A. If you maximize or minimize any reaction within this cycle the - most likely - flux minimal answer will be to just activate the cycle).
Anoter option you have is to merge the reverse and forward reactions again into one reaction and ensure that you don't have multiple exchangers for the same metabolite (in the same compartment), at which point the looplawconstraints should work again.
Best,
Thomas
--
---
You received this message because you are subscribed to the Google Groups "COBRA Toolbox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
-- Université du Luxembourg Faculté des Sciences, de la Technologie et de la Communication Campus Belval, Biotech II 115 6 avenue du Swing L-4367 Belvaux Tel: (+352) 46 66 44 5309 Email: thoma...@uni.lu