opencobra/cobrapy — pull request #36 by aebrahim (2013-10-15 19:04:23+00:00)
Title: Py sbml ext

Reads and writes sbml level 3 using only the python xml parsing libraries, which means that sbml i/o can occur without the libsbml dependency. Additionally, being pure python, this code runs identically under jython.

The sbml produced passes [validation](http://sbml.org/Facilities/Validator/).

Some notes concerning the sbml level 3 format:

- Reaction upper bounds, lower bounds, and objective coefficients, along with metabolite formulas and charges, are encoded using the [fbc](http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Flux_Balance_Constraints_%28flux%29) package.
- Gene reaction rules and subsystems are now encoded under a cobra extension in the annotation field. For example, for reaction PGI in Salmonella:

```xml

STM4221
GlycolysisGluconeogenesis

```

These are the tasks which need to be accomplished:
- [x] read/write sbml with fbc for reaction bounds and metabolite formulas
- [x] imported model should solve properly
- [x] written sbml should pass validation
- [x] gene reaction rule encoding
- [x] subsystems annotation

Before a pull request like this can be merged, the field names should be agreed upon, and identical sbml level 3 support should be discussed for the matlab cobra toolbox.