Skip to content

Releases: biosustain/cameo

Don't count pathways with insufficient flux towards `max_predictions` in PathwayPredictor

06 Feb 13:12
Compare
Choose a tag to compare
Refactor pathway prediction (#230)

* style: correct new flake8 errors

* refactor: make low flux not count towards maximum

* Pathways found with a low flux value should not count towards the
  maximum number of desired pathways.
* A pathway with a low flux will now issue only a warning message not an
  error message.
* Callbacks are only called on successful pathways.

Upgrade to plotly>=3.0.0

18 Dec 10:28
3edf27c
Compare
Choose a tag to compare
0.11.8

fix: use `mode=lines` instead of `model=line` in new plotly API (#223…

Make cameo compatible with cobrapy's deprecation of `solution.f`

12 Dec 18:48
159ba25
Compare
Choose a tag to compare
Merge pull request #222 from biosustain/devel

Towards 0.11.7

0.11.0

28 Jul 09:19
0.11.0
Compare
Choose a tag to compare

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 and Metabolite are no longer defined in
    cameo and must be imported from cobrapy.
  • cobra.Model does not have change_bounds method. Instead use
    direct assignment and the context manager instead of TimeMachine.
  • cobra.Model does not have solve method. Use optimize.
  • cobra.Model does not have S property. Use cobra.util.create_stoichimetric_matrix
  • cobra.Model does not have fix_objective_as_constraint. Use
    cobra.util.fix_objective_as_constraint.
  • cobra.Model does not have non_functional_genes. No replacement.
  • cobra.Model does not have add_exchange. Use cobra.Model.add_boundary instead.
  • cobra.Model does not have add_ratio_constraint. Use cobra.Model.add_cons_vars.
  • cobra.Model does not have essential_{genes,reactions}. Use
    cobra.flux_analysis.find_essential_{genes,reactions}.
  • cobra.Model does not have change_objective. Use direct
    assignment to objective.
  • .knock_out() methods do not accept time_machine. Use context
    manager.
  • cobra.Reaction does not have effective_bounds. No replacement.
  • cobra.Reaction does not have is_exchange. Use boundary instead.
  • cobra.Model does not have a solution property. User is expectd
    to keep track of solutions.
  • SolveError is replaced by cobra.exceptions.OptimizationError
  • cameo.stuff was removed.
  • cameo.visualization.plotting_old was removed.

0.10.3

30 May 09:12
Compare
Choose a tag to compare

Features

  • DifferentialFVAResult now returns a redundant pandas.DataFrame instead of a pandas.Panel (which is deprecated).

Fixes

  • Improve designer behavior and API.
  • Move away from pickle files to JSON.
  • Further rely on cobrapy.
  • Adjust to new pandas 0.20.1 release.

0.10.2

20 Mar 15:30
0.10.2
Compare
Choose a tag to compare

Features

  • Migrate all tests to pytest

Fixes

Fix the broken cameo.api.design

0.10.1

14 Mar 12:20
0.10.1
Compare
Choose a tag to compare

New features

  • Add option to FVA to also lock a pFBA objective as a constraint
  • Command line interface for strain design!

Fixes

  • Performance improvement to the new FVA which minimizes first and maximizes afterwards.
  • Ongoing improvements to cameo.api
    • Allow aliases for host (strain) names
    • Improvements to pathway prediction
    • Avoid reporting genes in solutions that have no effect

0.10.0b1

27 Feb 11:53
0.10.0b1
Compare
Choose a tag to compare
* Fixes
- improvements to displaying objective functions
- better notebook intergration for plotting optimization results
- Debug loading medium from a DataFrame
- add is_exchange property to reaction
- exchange reactions can only have one metabolite (not zero)
- fix remove reactions
- Improvements to DifferentialFVA
  - fold change calculation and representation in notebook
  - differential FVA implementation to yield feasible designs.
  - improvement: methods that change the objective inside should be
  tested to ensure that the objective remains the same
- Speedup FVA by doing minimization first then maximization

* Features
- support multiple substrates on yield functions

0.9.0b1: * Features

20 Jan 14:18
Compare
Choose a tag to compare
- Implement multiobjective function (#93) for strain design methods (api changes), optgene with multiobjectives
- Complete refactoring of the high-level api for strain design
  - The targets for the design. Targets can be applied to a model.
  - All StrainDesignMethdoResult produce a list of StrainDesign (result._designs) and the StrainDesign contains Targets.
  - Refactored optswap
  - Make Target comapible with DictList
  - StrainDesign can be concatenated (design_a + design_b)
  - Much more..

* Fixes
- phenotypic phase plane labels were misguiding / improved, e.g. yield label only for objective function
- 3d plot only with objective upper value

0.8.0

05 Dec 12:03
Compare
Choose a tag to compare
* Features
- Support multiple reactions in ratio constraints
- Yield based phenotypic phase plane (aka production envelope)
- Support for knocking metabolites
- Add with statement in ProblemCache
- Implementation of OptSwap

* Fixes
- Faster retrieval of shadow prices from solver
- Debug load model
- Faster lmoma and moma
- Debug gene knockout
- Fix broken unit-tests that depended on comparing dataframes