opened
joaocardoso
username_0
Hi @biosustain/team-modeling 
The final effort to get the high-level API running smoothly is here.

#### Please read everything before asking questions that are might be answered bellow! Thanks

Before any changes, things work like this: methods on strain_design are subclass of StrainDesignMethod. A StrainDesignMethod.run returns a StrainDesignMethodResult, which contains a list of StrainDesign. The StrainDesign contains a DictList of Target (Target is explained bellow).

Added stuff:
* Target (anything from GeneManipulationTarget, GeneKnockoutTarget, ReactionCofactorSwapTarget, ReactionKnockinTarget, etc.) basically everything that changes the model and is predicted by a strain design method.
* swap_cofators method to the Reaction (@hredestig I told you so before).
* DifferentialFVA to the high-level API (because the results are now comparable and 'aggregatable')
* OptSwap as a StrainDesignMethod (like OptGene). Let's make it clear that stuff under cameo.strain_design.heuristic.evolutionary is low-level API, not to be exposed as StrainDesignMethod.
* Target output gnomic if python.version >= 3.

Refactored stuff:
* Evaluators moved to cameo.strain_design.heuristic.evolutionary.evaluators because cameo.strain_design.heuristic.optimization became a mess.
* cameo.strain_design.heuristic.decoders got more generic names for what they do.
* since Gene and Reaction support knock_out() there is no need for weird stuff coming out of the decoders any more.
* FSEOF, DifferentialFVA, OptKnock, OptGene, PathwayPredictor and OptSwap are all subclass of StrainDesignMethod and all outputs are converted into target.
* KnockoutOptimziation was renamed to TargetOptimization and only specific stuff is implemented.
* KnockoutOptimizationResult was renamed to TargetOptimizationResult and has a metadata field to include specific stuff from implementations of TargetOptimization (such as cofactors to swap).
High level api
issue
created
joaocardoso
username_0
@KristianJensen: I made it possible to merge Target. If targets are incompatible it will raise an exception.
comment
created
phantomas1234
username_1
![image](https://cloud.githubusercontent.com/assets/55217/20306663/bccb37ee-ab3b-11e6-8c7c-37ee8347b6e8.png)

The progress bar for the optimizations ends up at the top. Can it be moved to the bottom of the running computation?
comment
created
Midnighter
username_2
Not sure what you're currently using for the progressbar. I've been quite impressed with [tqdm](https://github.com/tqdm/tqdm) so far.
comment
created
phantomas1234
username_1
I am going to merge this now, come hell and high water ...
comment