Coder Social home page Coder Social logo

cameo's People

Contributors

carrascomj avatar hredestig avatar jlerman44 avatar kristianjensen avatar kvikshaug avatar matthiaskoenig avatar meono avatar midnighter avatar phantomas1234 avatar sgalkina avatar the-code-magician avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cameo's Issues

Issue with GLPK loading in Cameo

Hi all,

I have been getting an error upon loading cameo about optlang not having solvers installed and missing the glpk interface. When executing "import cameo" I get

ERROR:optlang:No solvers available.
AttributeError: 'module' object has no attribute 'glpk_interface'

My guess is this has happened since some upgrade recently because a while back Cameo was working fine. I tried regular install through pip with a --pre flag and also using the requirements.txt files but no luck. I do have GLPK installed on my Mac and cobrapy is working as it should.

After looking at the installation output from pip i noticed that swiglpk failed at building the wheel and then installed through setup.py correctly. With wheel I get the error

You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from. The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
build/bdist.macosx-10.5-x86_64/wheel/

I will take a look at the suggested fixes. But this seems abnormal to me, any ideas on a fix?

Multiprocessing incompatibility with find_essential_genes

Hi!

When running the cameo in methods using multiprocessing, finding essential genes is broken.

cameo (0.11.3)
cobra (0.10.1)

One fix can be to allow one to set the number of jobs to one in the find_essential_genes method, so it wouldn't run using multiprocessing. Because when the num_jobs argument is None, cobrapy takes the cpu_count and computes gene deletions using a Pool. However, it is not possible to spawn a pool inside a child process.

The fix would be to check allow setting the number of jobs and run single process mode in cameo. Computing the essential genes is not the bottleneck in any of the methods.

Cheers,

João

Code cameo-notebooks/08-high-level-API.ipynb

Traceback:

Optimizing 8 pathways
---------------------------------------------------------------------------
RemoteTraceback                           Traceback (most recent call last)
RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/pool.py", line 119, in worker
    result = (True, func(*args, **kwds))
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/pool.py", line 44, in mapstar
    return list(map(*args))
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cameo/api/designer.py", line 94, in __call__
    max_evaluations=max_evaluations, max_knockouts=15, max_time=max_time)
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cameo/strain_design/heuristic/evolutionary_based.py", line 144, in run
    use_nullspace_simplification=use_nullspace_simplification)
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cameo/strain_design/heuristic/evolutionary/optimization.py", line 766, in __init__
    self.essential_genes = {g.id for g in find_essential_genes(self.model)}
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cobra/flux_analysis/variability.py", line 240, in find_essential_genes
    deletions = single_gene_deletion(model, method='fba')
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cobra/flux_analysis/deletion.py", line 263, in single_gene_deletion
    method=method, num_jobs=num_jobs)
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cobra/flux_analysis/deletion.py", line 147, in _multi_deletion
    num_cpu, initializer=_init_worker, initargs=(model,)
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/context.py", line 118, in Pool
    context=self.get_context())
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/pool.py", line 168, in __init__
    self._repopulate_pool()
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/pool.py", line 233, in _repopulate_pool
    w.start()
  File "/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/process.py", line 103, in start
    'daemonic processes are not allowed to have children'
AssertionError: daemonic processes are not allowed to have children
"""

The above exception was the direct cause of the following exception:

AssertionError                            Traceback (most recent call last)
<ipython-input-8-327cca7e82b0> in <module>()
----> 1 report = api.design(product='vanillin', view=mp_view)

/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cameo/api/designer.py in __call__(self, product, hosts, database, aerobic, view)
    185             raise KeyError("Product %s is not in the %s database" % (product, database.id))
    186         pathways = self.predict_pathways(product, hosts=hosts, database=database, aerobic=aerobic)
--> 187         optimization_reports = self.optimize_strains(pathways, view, aerobic=aerobic)
    188         return optimization_reports
    189 

/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cameo/api/designer.py in optimize_strains(self, pathways, view, aerobic)
    219             logger.info('Running heuristic optimizations on predicted pathways.')
    220             opt_gene_runner = _OptGeneRunner(options=self.options)
--> 221             designs = view.map(opt_gene_runner, strategies)
    222             logger.info('Processing heuristic optimization results.')
    223             results = self.build_results_data(designs, strategies, results, 'PathwayPredictor+OptGene')

/usr/local/miniconda3/envs/cameo/lib/python3.4/site-packages/cameo/parallel.py in map(self, *args, **kwargs)
     53 
     54     def map(self, *args, **kwargs):
---> 55         return self.pool.map(*args, **kwargs)
     56 
     57     def apply(self, func, *args, **kwargs):

/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/pool.py in map(self, func, iterable, chunksize)
    258         in a list that is returned.
    259         '''
--> 260         return self._map_async(func, iterable, mapstar, chunksize).get()
    261 
    262     def starmap(self, func, iterable, chunksize=None):

/usr/local/miniconda3/envs/cameo/lib/python3.4/multiprocessing/pool.py in get(self, timeout)
    606             return self._value
    607         else:
--> 608             raise self._value
    609 
    610     def _set(self, i, obj):

AssertionError: daemonic processes are not allowed to have children

Further unification of cobrapy and cameo codebase

Just found that a cobrapy model defines the property boundaries whereas the pathway predictor expects exchanges. We are thinking about implementing further methods/properties here (opencobra/cobrapy#589) but we should make sure the right one is used by cameo (boundaries includes sink and demand reactions).

Constrains with reverse_variable and forward_variable do no working as expected

Ubuntu 16.04
Python 3.5.2

I wrote following code

from cameo import models
model = models.bigg.e_coli_core

# O2t is reversible reaction
O2t = model.reactions.get_by_id('O2t')

constrain = model.solver.interface.Constraint(O2t.flux_expression, lb=30)
model.solver.add(constrain)

solution = model.solve()

print(solution.x_dict['O2t'])

and it return expected result as 30

Then I changed constrain as
model.solver.interface.Constraint(O2t.forward_variable, lb=30)

and it return an unexpected result as 21.799492655998755

I confused because when I checked source code, I saw that
flux_expression = 1. * self.forward_variable - 1. * self.reverse_variable

Actually, I want to add a constraint with just reverse_variable or forward_variable without using flux_expression but it is not working. For example, I want to add constraint like abs(reaction.flux_expression) >= 0 but abs is not linear or quadratic function; thus, I decide to use other implementation of abs as self.forward_variable + self.reverse_variable but it does not work because of the reason explained above.

Solver do not return expected result

I started to learn cameo and tried following code.

from cobra import Model, Metabolite, Reaction
from cameo.core.solver_based_model import to_solver_based_model

# max cone * cone_margin + popsicle * popsicle margin
# subject to
# cone * cone_cost + popsicle * popsicle_cost <= budget

cone_selling_price = 7.
cone_production_cost = 3.
popsicle_selling_price = 2.
popsicle_production_cost = 1.
starting_budget = 100.

cone = Reaction("cone")
popsicle = Reaction("popsicle")

# constrainted to a budget
budget = Metabolite("budget")
budget._constraint_sense = "L"
budget._bound = starting_budget

cone.add_metabolites({budget: cone_production_cost})
popsicle.add_metabolites({budget: popsicle_production_cost})

# objective coefficient is the profit to be made from each unit
cone.objective_coefficient = \
    cone_selling_price - cone_production_cost
popsicle.objective_coefficient = \
    popsicle_selling_price - popsicle_production_cost

m = Model("lerman_ice_cream_co")
m.add_reactions((cone, popsicle))

solver_model = to_solver_based_model(m)

solution_cameo = solver_model.solve()
solution_cobra = m.optimize()

print(solution_cobra.f)
print(solution_cameo.f)

Output:

133.33333333333334
0.0

Cobra and cameo result are different. cameo do not solve the problem. Did I do something wrong?

FVA on Recon 2 takes forever when two constraints (with indicator variables) are added to the model

Run 1: FVA on Recon 2 network with some custom objective function with no additional constraints to those already come with the model. This run takes 3-4 mins.

Run 2: Add the following three constraints into the above model, FVA does not finish (we stopped the run manually after 2 hours).

c6c0326e-f909-11e6-9a45-c5832ca45183: var_PPDOx_1 = 1 -> 1e-05 <= 1.0*PPDOx - 1.0*PPDOx_reverse_c99fa c6c1449c-f909-11e6-9249-c5832ca45183: var_PPDOy_1 = 1 -> 1e-05 <= 1.0*PPDOy - 1.0*PPDOy_reverse_a61f6 c6c1a68c-f909-11e6-9e90-c5832ca45183: 1 <= var_PPDOx_1 + var_PPDOy_1 <= 2

Environment info:

Solver: Cplex
Python: 3.5

gnomic import error

When trying to import cameo.api, cameo.strain_design and its sub-packages I get the following gnomic import error:

~\Miniconda3\lib\site-packages\cameo\core\target.py in <module>()
     16 import numpy
     17 import six
---> 18 from gnomic import Accession, Feature, Del, Mutation, Ins, Type, Genotype, genotype_to_string, genotype_to_text
     19 
     20 from cameo import ui
ImportError: cannot import name 'Accession'

I tried multiple versions of gnomic and cameo, but can't get around this issue.

Full error message:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-17-68ffa8a21102> in <module>()
----> 1 from cameo.strain_design.heuristic.evolutionary_based import OptGene
      2 
      3 optgene = OptGene(model)
      4 from cameo.flux_analysis import lmoma
      5 results = optgene.run(target="ADH21", 

~\Miniconda3\lib\site-packages\cameo\strain_design\__init__.py in <module>()
     15 from __future__ import absolute_import
     16 
---> 17 from cameo.strain_design.deterministic import OptKnock, FSEOF, DifferentialFVA
     18 from cameo.strain_design.heuristic import OptGene

~\Miniconda3\lib\site-packages\cameo\strain_design\deterministic\__init__.py in <module>()
     13 # limitations under the License.
     14 
---> 15 from .flux_variability_based import *
     16 from .linear_programming import OptKnock

~\Miniconda3\lib\site-packages\cameo\strain_design\deterministic\flux_variability_based.py in <module>()
     53 from cameo.flux_analysis.simulation import pfba, fba
     54 
---> 55 from cameo.core.strain_design import StrainDesignMethod, StrainDesignMethodResult, StrainDesign
     56 from cameo.core.target import ReactionKnockoutTarget, ReactionModulationTarget, ReactionInversionTarget
     57 

~\Miniconda3\lib\site-packages\cameo\core\strain_design.py in <module>()
     24 
     25 from cameo.core.result import Result
---> 26 from cameo.core.target import EnsembleTarget, Target
     27 from cameo.visualization.plotting import plotter
     28 

~\Miniconda3\lib\site-packages\cameo\core\target.py in <module>()
     16 import numpy
     17 import six
---> 18 from gnomic import Accession, Feature, Del, Mutation, Ins, Type, Genotype, genotype_to_string, genotype_to_text
     19 
     20 from cameo import ui

ImportError: cannot import name 'Accession'

[Feature Request] Pathway prediction score

Based on the principles presented in this publication (doi:10.1038/nchembio.971) and summarized here (http://dx.doi.org/10.1016/j.cbpa.2016.12.023) as:

To identify the most promising pathways out of many different possible routes, a comprehensive pathway analysis is recommended. Such an analysis compares different pathway candidates according to physicochemical properties, including resources consumption, thermodynamic feasibility, kinetic proficiency, toxicity and hydrophobicity of intermediates, as well as overlap with endogenous metabolism.

I suggest adding some sort of scoring or at least reporting of these intrinsic pathway parameters to the pathway predictor in cameo. This may contribute to coming to an informed decision on which pathway to choose out of those that were predicted by the tool.

Instability

Sometimes cameo.api.design() runs up to the end. Sometimes its infeasible.

Please checkout the cli branch. You can simply run:

./bin/cameo -p vanillin -of csv -y -t from cameo project folder.

Inability to stay feasible

https://www.ibm.com/support/knowledgecenter/en/SS9UKU_12.5.0/com.ibm.cplex.zos.help/UsrMan/topics/cont_optim/simplex/20_num_difficulty.html

If a problem repeatedly becomes infeasible in Phase II (that is, after CPLEX has achieved a feasible solution), then numeric difficulties may be occurring. It may help to increase the Markowitz tolerance in such a case. By default, the value of the parameter EpMrk is 0.01, and suitable values range from 0.0001 to 0.99999.
Sometimes slow progress in Phase I (the period when CPLEX calculates the first feasible solution) is due to similar numeric difficulties, less obvious because feasibility is not gained and lost. In the progress reported in the log file, an increase in the printed sum of infeasibilities may be a symptom of this case. If so, it may be worthwhile to set a higher Markowitz tolerance, just as in the more obvious case of numeric difficulties in Phase II.

Running moma fails throwing recursion depth exceded exception

Executing lmoma with larger models causes recursion depth be exceed. This occurs on a model we are building but can be replicated on included BIGG models.
Occurs on Ubuntu 14.04, 16.04, 16.10. Manjaro 16.10 with Cameo version 0.8.0 and python versions 2.7 and 3.5

Code to replicate:

import cameo
from cameo.flux_analysis import fba, lmoma
model = cameo.models.bigg.iJN746
ref = fba(model)
result = lmoma(model, reference=ref)

Increasing maximum recursion depth with sys.setrecursionlimit(2000) also breaks, with python throwing a type error.

MetaNetX database

The search in the database is not very reliable. I already changed it to be lower-case only, which helped. Also, MetaNetX has mapping for things that are redundant, however I can only find one source and one name, where there should be sources and names or synonyms.

I cannot find L-Serine, L-Lactate, etc.
There are several algorithms to do this:

  • Hamming distance
  • Levenshtein distance
  • Damerau–Levenshtein distance
  • Jaro–Winkler distance

Update development.html with latest cobrapy changes

I just read the
http://cameo.bio/development.html

and found some out of date things due to the new cobrapy release.
Things like

Solver interface
Cameo deviates from cobrapy in the way optimization problems are solved by using a separate solver interface provided by the optlang package (see optlang_interface). The following benefits ....

I understood that cobrapy now also uses the optlang approach with all its advantages. This should be updated in the documentation.

implement optswap

optswap [1] is an algorithm for recommending co-factor swaps for strain design - let's implement this in cameo using the pattern also used for knockout optimisation

[1] King ZA, Feist AM. Optimizing Cofactor Specificity of Oxidoreductase Enzymes
for the Generation of Microbial Production Strains—OptSwap. Ind
Biotechnol. 2013;9:
236–246. doi:10.1089/ind.2013.0005

api.products contains disconnected metabolites.

Hi.

I was trying to search for some compounds using cameo.
When I run cameo search "poly-γ-glutamic acid" I can find an hit.

Loading product database ...
Searching product database ...
The following products were found:
                           name formula mass InChI  search_rank
MNXM77536  poly-L-glutamic acid                               0

But I cannot find in in any universal_model.

db = models.universal.metanetx_universal_model_bigg_rhea_kegg_brenda
db.metabolites.MNXM77536

AttributeError: DictList has no attribute or entry MNXM77536

Maybe disconnected metabolites should not be in api.products so that users are not mislead.

Cheers

fitness plot not showing with bokeh > 0.12.0

from cameo import models
model_orig = models.bigg.iJO1366
py = product_yield(model.reactions.EX_thr__L_e, model.reactions.EX_glc__D_e)
optswap = CofactorSwapOptimization(model=model, objective_function=py)
optswap.run(max_evaluations=2000, max_size=2)

gives a plot that never shows up instead we get

/Users/henred/venv/pyv35/lib/python3.5/site-packages/bokeh/io.py:589: UserWarning:

Cannot find a last shown plot to update. Call output_notebook() and show(..., notebook_handle=True) before push_notebook()

and this is the case with all the other heuristic optimization methods as well, e.g. OptGene

Cameo crashes after COBRApy import on macOS

Here is a minimal script to cause a crash on my machine. The crash only occurs if cameo is imported after cobra.

# system_profiler SPSoftwareDataType
# > Software:
# >
# > System Software Overview:
# >
# > System Version: macOS 10.12 (16A323)
# > Kernel Version: Darwin 16.0.0

# brew list glpk
# > /usr/local/Cellar/glpk/4.60/bin/glpsol
# > /usr/local/Cellar/glpk/4.60/include/glpk.h
# > /usr/local/Cellar/glpk/4.60/lib/libglpk.40.dylib
# > /usr/local/Cellar/glpk/4.60/lib/ (2 other files)

import cobra
print(cobra.__version__)
# > 0.5.2

import cameo
print(cameo.__version__)
# > 0.7.1

model = cameo.models.bigg.iJO1366
# > GLPK initialization failed
# > [1]    77230 abort      python3 cobrapy_cameo_crash.py

trouble reverting reaction changes

test_reactions_in_group_become_blocked_if_one_is_removed fails when rolling back changes to the model due variable not being properly removed

Sorting targets

When merging pathways with other manipulations, knock-in targets should be placed first to avoid missing identifiers when applying the remaining targets.

Cobrapy and Cameo FVA results difference

Ubuntu 16.04
Python 3.5.2
solver: cplex

I have tried flux variability analysis with cameo and cobra. But their results are different. I report my experiment in this notebook.

Moreover, cameo's fva runs 10 times slower in my machine as you see in the notebook.

What is the wrong with this code?

Cobrapy and Cameo FVA running time difference

Ubuntu 16.04
Python 3.5.2
solver: cplex

As I mention in this issue #114 cameo FVA runs slower although documentation claim reverse. Moreover, I observe same performance issue in multiple datasets. Especially, it causes a headache in the bigger dataset like recon2.

Thanks for your great interest.

cobrapy versus cameo (Ice Cream)

Hello,

I have been trying to perform the cobrapy's Ice Cream example (https://cobrapy.readthedocs.io/en/latest/milp.html)
in cameo:

from cameo import Model, Metabolite, Reaction

cone = Reaction("cone")
popsicle = Reaction("popsicle")
cone.variable_kind = "integer"
popsicle.variable_kind = "integer"

# constrainted to a budget
budget = Metabolite("budget")
budget._constraint_sense = "L"
budget._bound = starting_budget

cone.add_metabolites({budget: cone_production_cost})
popsicle.add_metabolites({budget: popsicle_production_cost})

# objective coefficient is the profit to be made from each unit
cone.objective_coefficient = cone_selling_price - cone_production_cost
popsicle.objective_coefficient = popsicle_selling_price - popsicle_production_cost

m = Model("lerman_ice_cream_co")
m.add_reactions((cone, popsicle))

print('Objective (%s): %s' % (m.objective.direction, m.objective.expression))
print('x:', m.optimize().x_dict)
print('y:', m.optimize().y_dict)

For cameo this results in the following:

Objective (max): 4.0*cone - 4.0*cone_reverse_29d6f + 1.0*popsicle - 1.0*popsicle_reverse_a0c73
x: OrderedDict([('cone', 0.0), ('popsicle', 0.0)])
y: OrderedDict([('cone', 0.0), ('popsicle', -0.6666666666666665)])

And for cobrapy in (I was not sure how to display the expression of the objective function, there are however both maximized):

x: {'popsicle': 1.0, 'cone': 33.0}
y: None

First of the fluxes differ, secondly the y-value correspond to metabolites and reactions for cobrapy and cameo, respectively. Clearly, I'm missing something here. I would greatly appreciate any explanation on this matter. Also I believe it would be good to state information explaining these differences on the cameo vs cobrapy page (http://cameo.bio/development.html#cameo-vs-cobrapy).

Thank you in advance

Constraints with Indicator Variables

Hi,
We are trying to use constraints associated with indicator variables. However, they do not seem to be providing the expected impact on the fba solutions. In the below example, we want at least one of R1 and R2 to have a flux over 10^-6. Accordingly, we created two indicator variables (one for each reaction's constraint, i.e., >= 10^6). Then, we created an additional constraint which enforces that at least one of the indicator variables should be 1. As the example run output shows, these constraints do not seem to be taken into consideration. Is this a bug, or we are somehow setting things wrong? Thanks.

Example case and its sample run output:

from cobra.core import Model, Reaction
from cameo.core import SolverBasedModel, Metabolite
from cameo.core.solution import Solution
from cameo.flux_analysis import fba
import optlang

    model = Model('example_model')
    r1 = Reaction('R1')
    r1.name = 'R1'
    r1.lower_bound = 0.
    r1.upper_bound = 1000.
    r1.objective_coefficient = 0.

    r2 = Reaction('R2')
    r2.name = 'R2'
    r2.lower_bound = 0.
    r2.upper_bound = 1000.
    r2.objective_coefficient = 0.

    r3 = Reaction('R3')
    r3.name = 'R3'
    r3.lower_bound = 0
    r3.upper_bound = 1000
    r3.objective_coefficient = 0

    ACP_c = Metabolite(
        'ACP_c',
        formula='C11H21N2O7PRS',
        name='acyl-carrier-protein',
        compartment='c')

    r1.add_metabolites({ACP_c: 1.0})
    r2.add_metabolites({ACP_c: 1.0})
    r3.add_metabolites({ACP_c: -1.0})

    model.add_reactions([r1, r2, r3])
    smodel = SolverBasedModel(description=model)
    #smodel.solver.interface = optlang.cplex_interface

    lb = 10 ** -6
    metabolite = ACP_c

    indicator_vars = []
    for r in metabolite.producers():
        var = smodel.solver.interface.Variable("var_%s" % r.id, type="binary")
        c = smodel.solver.interface.Constraint(r.flux_expression, lb=lb, indicator_variable=var,
                                              active_when=1)  # When the indicator is 1, constraint is enforced)
        smodel.solver.add(c)
        indicator_vars.append(var)

    expr = sum(indicator_vars)
    c = smodel.solver.interface.Constraint(expr, lb=1, ub=len(indicator_vars))
    smodel.solver.add(c)

    df = fba(smodel)

    for r in metabolite.producers():
        print(r.id, df[r.id], r.forward_variable.primal, r.reverse_variable.primal)

    print(smodel.solution.status)
    print(smodel.solver)
    print(smodel.solver.interface)` 

Sample run output:

R2 0.0 0.0 0.0
R1 0.0 0.0 0.0
optimal

\ENCODING=ISO-8859-1

\Problem name:
Ran 3 tests in 21.891s

Maximize
OK
_240ad1f1mf55em11e6mb6came9177c3519c1#0:
Subject To
ACP_c#0: R1 - R1_reverse_cda52 + R2 - R2_reverse_8c6d2
- R3 + R3_reverse_5c108 = 0
_240ad1fcmf55em11e6mae0ame9177c3519c1#1: var_R2 + var_R1
- Rg_240ad1fcmf55em11e6mae0ame9177c3519c1#1
= 1
_240ad1f9mf55em11e6ma1f3me9177c3519c1#0: var_R2 = 1 -> R2 - R2_reverse_8c6d2
>= 0.000001
_240ad1fbmf55em11e6m8477me9177c3519c1#1: var_R1 = 1 -> R1 - R1_reverse_cda52
>= 0.000001
Bounds
0 <= R1 <= 1000
R1_reverse_cda52 = 0
0 <= R2 <= 1000
R2_reverse_8c6d2 = 0
0 <= R3 <= 1000
R3_reverse_5c108 = 0
0 <= var_R2 <= 1
0 <= var_R1 <= 1
0 <= Rg_240ad1fcmf55em11e6mae0ame9177c3519c1#1 <= 1
Binaries
var_R2 var_R1
End

<module 'optlang.cplex_interface' from 'C:\Python35\lib\site-packages\optlang\cplex_interface.py'>

Process finished with exit code 0`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.