Model service which takes care of adjusting model according to incoming messages and returns information such as fluxes, theoretical maximum yields, etc
[x] Newly created metabolites (as result of adding new reactions) will now have a demand reaction created for them. (Previously, a M_e metabolite was created together with both an exchange and transport reaction)
[x] No longer creating transport reactions for measured compounds that cannot already leave the model. TODO: This should be detected and the user should receive an explicit warning that their model must be fixed, but right now the model will simply be infeasible.
[x] When looking up the exchange reaction for a measured metabolite, having multiple exchange reactions is now an error (previously picked a random reaction)
[x] Providing any unrecognized identifiers for measurements (metabolites or reactions) is now an error
[x] Medium compound without formula will now have its lower bound set to -10 (like carbon sources), not -1000
[x] The medium is now assigned through model.medium = ... so that cobrapy can figure out which direction the exchange takes place, instead of assuming that changing the lower bound is correct
[x] Providing unknown medium compounds is now an error
[ ] ~ICE parts lookup now queries BiGG API for reaction details instead of parsing an equation string from the comment field~
DELETE_GENE
M_e
metabolite was created together with both an exchange and transport reaction)model.medium = ...
so that cobrapy can figure out which direction the exchange takes place, instead of assuming that changing the lower bound is correct