0.11.0
Release notes for cameo 0.11.0
Highlights
This a major release with substantial changes to several areas. Cameo pioneered the use of a model class that tightly integrates with the underlying solver and called this the SolverBasedModel
which inherited from cobrapy's regular Model
. Since this innovation is useful in more places than cameo, we have now moved all this functionality to cobrapy and consequently there is no longer any need for the extra class in cameo. In this release, we provide a refactored cameo that no longer has its own core classes but directly imports all of these from cobrapy.
Additionally, we now use cobrapy's context manager instead of the TimeMachine
(which inspired it) so method's that took a time_machine
argument no longer do so.
We have also started the process to better adhere to the scope of cameo, which is strain design, and to move all basic analysis and simulation to cobrapy. Since these changes are substantial, this is still a work in progress but we wanted to already make a release so that cameo users and contributors more easily can follow the direction we are taking.
Overall, although the changes are substantial, the actual changes to user workflows should be fairly small but with a few backwards incompatible changes which are outlined below. We hope that the added advantage of a better integration with cobrapy, and other packages that depend on cobrapy will make up for any inconvenience.
New features
- pandas
0.20.2
support
Fixes
phenotypic_phase_plane
no longer assumed that exchange reactions are formulated to have negative stoichiometry.Python 2
on Windows no longer fails when reading zipped jsons.essential_genes
as argument to optgene is now respected, previously ignored.- divide by zero error now handled properly in optgene/optknock
Backwards incompatible changes
SolverBasedModel
,Gene
andMetabolite
are no longer defined in
cameo and must be imported from cobrapy.cobra.Model
does not havechange_bounds
method. Instead use
direct assignment and the context manager instead ofTimeMachine
.cobra.Model
does not havesolve
method. Useoptimize
.cobra.Model
does not haveS
property. Usecobra.util.create_stoichimetric_matrix
cobra.Model
does not havefix_objective_as_constraint
. Use
cobra.util.fix_objective_as_constraint
.cobra.Model
does not havenon_functional_genes
. No replacement.cobra.Model
does not haveadd_exchange
. Usecobra.Model.add_boundary
instead.cobra.Model
does not haveadd_ratio_constraint
. Usecobra.Model.add_cons_vars
.cobra.Model
does not haveessential_{genes,reactions}
. Use
cobra.flux_analysis.find_essential_{genes,reactions}
.cobra.Model
does not havechange_objective
. Use direct
assignment to objective..knock_out()
methods do not accepttime_machine
. Use context
manager.cobra.Reaction
does not haveeffective_bounds
. No replacement.cobra.Reaction
does not haveis_exchange
. Useboundary
instead.cobra.Model
does not have asolution
property. User is expectd
to keep track of solutions.SolveError
is replaced bycobra.exceptions.OptimizationError
cameo.stuff
was removed.cameo.visualization.plotting_old
was removed.