Closed mfondi closed 2 years ago
Hi @mfondi, Thank you for trying out memote. There are a few tests that are notoriously slow for large models. I would recommend skipping them.
You don't show the traceback of interrupting above which would tell me exactly which test it is stuck on. I can guess that it is metabolite production or consumption.
You can skip tests either via the command line option or a config file. Take a look at this one and adapt it as needed https://github.com/SysBioChalmers/yeast-GEM/blob/feat/memote/memote.ini
Hi. thanks for the reply.
Following your indications, I am trying again with --skip test_find_metabolites_not_consumed_with_open_bounds and --skip test_find_metabolites_not_produced_with_open_bounds
Here is the complete output from my previous run of memote (the one I killed).
============================= test session starts ============================== platform linux -- Python 3.6.9, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 rootdir: /usr/local/lib/python3.6/site-packages/memote/suite/tests collected 262 items
../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_annotation.py F [ 0%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFFFF.FFFFFFFFFFFFFFFFF [ 24%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_basic.py . [ 25%] .....FF.....FFF.F.F.FF [ 33%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_biomass.py . [ 33%] FFFFFFFFFFFFFF..F...........FFFFFFFFFFFFFF.F F.FFFF.F....FFFFFFFFFFFFFFFF [ 61%] FFFFFFFFFFFFFFFFFFFFFFFFFF..............FFFFFFFFFFFFFF [ 82%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_consistency.py F [ 82%] ssssssssssssssss.FFFFF.^C^C
=============================== warnings summary =============================== /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 PytestCacheWarning: could not create cache path /usr/local/lib/python3.6/site-packages/memote/suite/tests/.pytest_cache/v/cache/stepwise
/usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 PytestCacheWarning: could not create cache path /usr/local/lib/python3.6/site-packages/memote/suite/tests/.pytest_cache/v/cache/nodeids
/usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 PytestCacheWarning: could not create cache path /usr/local/lib/python3.6/site-packages/memote/suite/tests/.pytest_cache/v/cache/lastfailed
-- Docs: https://docs.pytest.org/en/latest/warnings.html = 170 failed, 53 passed, 16 skipped, 3 warnings in 155293.03s (1 day, 19:08:13) =
Aborted! ^CError in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/local/lib/python3.6/multiprocessing/util.py", line 262, in _run_finalizers finalizer() File "/usr/local/lib/python3.6/multiprocessing/util.py", line 186, in call res = self._callback(*self._args, **self._kwargs) File "/usr/local/lib/python3.6/multiprocessing/pool.py", line 605, in _terminate_pool p.join() File "/usr/local/lib/python3.6/multiprocessing/process.py", line 124, in join res = self._popen.wait(timeout) File "/usr/local/lib/python3.6/multiprocessing/popen_fork.py", line 50, in wait return self.poll(os.WNOHANG if timeout == 0.0 else 0) File "/usr/local/lib/python3.6/multiprocessing/popen_fork.py", line 28, in poll pid, sts = os.waitpid(self.pid, flag) KeyboardInterrupt
thanks Marco.
Let me know if skipping solves the issue temporarily.
Hi. Apparently, I went through by skipping the two tests mentioned above although I ran into some other errors (writing the output from what I can say). Here is the full report:
docker run -v /home/matlab/Marco/memote/Models_For_Memote:/opt opencobra/memote memote report snapshot --filename "/opt/output_dir/report_OURmodel.html" /opt/OURmodel.xml --skip test_find_metabolites_not_consumed_with_open_bounds --skip test_find_metabolites_not_produced_with_open_bounds ============================= test session starts ============================== platform linux -- Python 3.6.9, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 rootdir: /usr/local/lib/python3.6/site-packages/memote/suite/tests collected 262 items
../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_annotation.py F [ 0%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFFFF.FFFFFFFFFFFFFFFFF [ 24%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_basic.py . [ 25%] .....FF.....FFF.F.F.FF [ 33%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_biomass.py . [ 33%] FFFFFFFFFFFFFF..F...........FFFFFFFFFFFFFF.FF.FFFF.F....FFFFFFFFFFFFFFFF [ 61%] FFFFFFFFFFFFFFFFFFFFFFFFFF..............FFFFFFFFFFFFFF [ 82%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_consistency.py F [ 82%] ssssssssssssssss.FFFFF.ssF [ 92%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_essentiality.py s [ 92%] [ 92%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_growth.py s [ 93%] [ 93%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_matrix.py . [ 93%] ... [ 94%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_sbml.py . [ 95%] . [ 95%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_sbo.py . [ 95%] ...s.....F [ 99%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_thermodynamics.py . [100%]
=============================== warnings summary =============================== /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 PytestCacheWarning: could not create cache path /usr/local/lib/python3.6/site-packages/memote/suite/tests/.pytest_cache/v/cache/stepwise
/usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 PytestCacheWarning: could not create cache path /usr/local/lib/python3.6/site-packages/memote/suite/tests/.pytest_cache/v/cache/nodeids
/usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 /usr/local/lib/python3.6/site-packages/_pytest/cacheprovider.py:124 PytestCacheWarning: could not create cache path /usr/local/lib/python3.6/site-packages/memote/suite/tests/.pytest_cache/v/cache/lastfailed
-- Docs: https://docs.pytest.org/en/latest/warnings.html
===== 172 failed, 69 passed, 21 skipped, 3 warnings in 10651.36s (2:57:31) =====
Writing snapshot report to '/opt/output_dir/report_OURmodel.html'.
critical: The memote result structure is incompatible with the JSON standard.
weights:
cards:
misc:
experimental:
matrix:
gap_finding:
energy_metabolism:
test_biomass:
gpr_calculations:
basic_rxn:
basic_met:
basic_info:
sbml_format:
scored:
sections:
annotation_sbo:
annotation_gene:
annotation_rxn:
annotation_met:
consistency:
score:
tests:
test_find_candidate_irreversible_reactions:
data: <class 'tuple'>
test_biomass_specific_sbo_presence:
test_sink_specific_sbo_presence:
test_demand_specific_sbo_presence:
test_exchange_specific_sbo_presence:
test_gene_specific_sbo_presence:
test_metabolite_specific_sbo_presence:
test_transport_reaction_specific_sbo_presence:
test_metabolic_reaction_specific_sbo_presence:
test_gene_sbo_presence:
test_reaction_sbo_presence:
test_metabolite_sbo_presence:
test_fbc_presence:
test_sbml_level:
test_degrees_of_freedom:
test_matrix_rank:
test_number_independent_conservation_relations:
test_absolute_extreme_coefficient_ratio:
test_growth_from_data_qualitative:
score:
metric:
data:
message:
result:
duration:
test_gene_essentiality_from_data_qualitative:
score:
metric:
data:
message:
result:
duration:
test_find_reactions_unbounded_flux_default_condition:
test_find_metabolites_not_consumed_with_open_bounds:
test_find_metabolites_not_produced_with_open_bounds:
test_find_disconnected:
test_find_deadends:
test_find_orphans:
test_find_stoichiometrically_balanced_cycles:
test_blocked_reactions:
test_reaction_mass_balance:
test_reaction_charge_balance:
test_detect_energy_generating_cycles:
score:
metric:
data:
message:
result:
duration:
test_stoichiometric_consistency:
test_essential_precursors_not_in_biomass:
score:
metric:
data:
message:
result:
duration:
test_direct_metabolites_in_biomass:
score:
metric:
data:
message:
result:
duration:
test_fast_growth_default:
score:
metric:
data:
message:
result:
duration:
test_gam_in_biomass:
score:
metric:
data:
message:
result:
duration:
test_biomass_precursors_open_production:
score:
metric:
data:
message:
result:
duration:
test_biomass_precursors_default_production:
score:
metric:
data:
message:
result:
duration:
test_biomass_open_production:
score:
metric:
data:
ZoneI_Biomass: nan
ZoneIZ_Biomass: nan
ZoneIIp_Biomass: nan
ZoneIId_Biomass: nan
Root_BiomassRoot: nan
PlantBiomass: nan
NoduleI_BiomassRoot: nan
NoduleIZ_BiomassRoot: nan
NoduleIIp_BiomassRoot: nan
NoduleIId_BiomassRoot: nan
NoduleBiomass: nan
Leave_BiomassShootWithOutStarch: nan
Leave_BiomassShoot: nan
Biomass: nan
message:
result:
duration:
test_biomass_default_production:
score:
metric:
data:
message:
result:
duration:
test_biomass_consistency:
score:
metric:
data:
message:
result:
duration:
test_biomass_presence:
test_find_medium_metabolites:
test_find_reactions_with_identical_genes:
data:
test_find_duplicate_reactions:
test_find_reactions_with_partially_identical_annotations:
data:
test_find_duplicate_metabolites_in_compartments:
test_find_unique_metabolites:
test_find_reversible_oxygen_reactions:
test_transport_reaction_gpr_presence:
test_find_constrained_transport_reactions:
test_find_transport_reactions:
test_find_constrained_pure_metabolic_reactions:
test_find_pure_metabolic_reactions:
test_protein_complex_presence:
test_compartments_presence:
test_metabolic_coverage:
data: <class 'tuple'>
test_ngam_presence:
test_gene_protein_reaction_rule_presence:
test_metabolites_charge_presence:
test_metabolites_formula_presence:
test_metabolites_presence:
test_reactions_presence:
test_genes_presence:
test_model_id_presence:
test_reaction_id_namespace_consistency:
test_metabolite_id_namespace_consistency:
test_gene_product_annotation_wrong_ids:
score:
metric:
data:
message:
result:
duration:
test_reaction_annotation_wrong_ids:
score:
metric:
data:
message:
result:
duration:
test_metabolite_annotation_wrong_ids:
score:
metric:
data:
message:
result:
duration:
test_gene_product_annotation_overview:
score:
metric:
data:
message:
result:
duration:
test_reaction_annotation_overview:
score:
metric:
data:
message:
result:
duration:
test_metabolite_annotation_overview:
score:
metric:
data:
message:
result:
duration:
test_gene_product_annotation_presence:
test_reaction_annotation_presence:
test_metabolite_annotation_presence:
meta:
packages:
Traceback (most recent call last):
File "/usr/local/bin/memote", line 8, in
thanks in advance for your help. best
Hmm, seems there are some infinity bounds maybe? Or a NaN snuck in somewhere? Would it be possible for you to share the model with me? You can send it privately to my e-mail address and I will keep it confidential.
sure, thanks. where can I send it? m.
My bad, the one in my profile would work fine. morbeb@biosustain.dtu.dk
This test test_biomass_open_production
creates a lot of infeasible solutions which end up as nan
values in the result. I will need to make some changes so that you can save this as JSON. It's a bit curious though that biomass production is infeasible with all exchanges open.
INFO:memote.utils:ZoneI_Biomass: nan
INFO:memote.utils:ZoneIZ_Biomass: nan
INFO:memote.utils:ZoneIIp_Biomass: nan
INFO:memote.utils:ZoneIId_Biomass: nan
INFO:memote.utils:Root_BiomassRoot: nan
INFO:memote.utils:PlantBiomass: nan
INFO:memote.utils:NoduleI_BiomassRoot: nan
INFO:memote.utils:NoduleIZ_BiomassRoot: nan
INFO:memote.utils:NoduleIIp_BiomassRoot: nan
INFO:memote.utils:NoduleIId_BiomassRoot: nan
INFO:memote.utils:NoduleBiomass: nan
INFO:memote.utils:Leave_BiomassShootWithOutStarch: nan
INFO:memote.utils:Leave_BiomassShoot: nan
INFO:memote.utils:Biomass: nan
Hi,
I have same issue with the ".xml" model from http://bigg.ucsd.edu/models/iEK1008.
It get stuck in ../../.local/lib/python3.6/site-packages/memote/suite/tests/test_consistency.py
Running just: memote run iEK1008.xml
How could I solve it?
Also, is possible to use .json .sbml and .mat formats in memote? I should change some input flag?
Hey @AgustinPardo,
It get stuck in ../../.local/lib/python3.6/site-packages/memote/suite/tests/test_consistency.py
There is a mixed-integer problem in this test. If you run memote with the default GLPK solver, this will be very slow. If you are an academic and can access the CPLEX or Gurobi solver that would make the test much faster. Otherwise you can skip the test or define a solver timeout which is what is done at https://memote.io where you can also upload the model to test it.
Also, is possible to use .json .sbml and .mat formats in memote? I should change some input flag?
You can use JSON as I describe in https://github.com/opencobra/memote/issues/699#issuecomment-696975126 or with the web service. As long as your .sbml
is valid SBML it should work fine? Same with .xml
. Matlab files don't work with memote, although again you could try loading the Matlab model with cobrapy directly and then calling memote yourself in your Python code.
Thanks
How could I skip the test?
Hi,
I run:
import cobra
import memote
model=cobra.io.read_sbml_model( "iEK1008.xml")
result=memote.test_model(model, skip="test_stoichiometric_consistency")
and I get this error:
platform linux -- Python 3.6.9, pytest-5.4.1, py-1.8.1, pluggy-0.13.1
rootdir: /home/agustin
plugins: cov-2.8.1
collected 145 items
../../../.local/lib/python3.6/site-packages/memote/suite/tests/test_annotation.py ...FFFFFFFFF.FFFFF.FFFFFFFFFFFFFFF..FF..F...F....FFF.FFFFF.FFFF.. [ 44%]
../../../.local/lib/python3.6/site-packages/memote/suite/tests/test_basic.py ......FF.......F...F.FF [ 60%]
../../../.local/lib/python3.6/site-packages/memote/suite/tests/test_biomass.py .F....FF.F [ 67%]
../../../.local/lib/python3.6/site-packages/memote/suite/tests/test_consistency.py Fatal Python error: Aborted
Current thread 0x00007f4d3f22e740 (most recent call first):
File "/home/agustin/.local/lib/python3.6/site-packages/optlang/glpk_interface.py", line 688 in _run_glp_mip
File "/home/agustin/.local/lib/python3.6/site-packages/optlang/glpk_interface.py", line 714 in _optimize
File "/home/agustin/.local/lib/python3.6/site-packages/optlang/interface.py", line 1470 in optimize
File "/home/agustin/.local/lib/python3.6/site-packages/memote/support/consistency.py", line 263 in find_inconsistent_min_stoichiometry
File "/home/agustin/.local/lib/python3.6/site-packages/memote/suite/tests/test_consistency.py", line 64 in test_stoichiometric_consistency
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/python.py", line 184 in pytest_pyfunc_call
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/python.py", line 1479 in runtest
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/runner.py", line 135 in pytest_runtest_call
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/runner.py", line 217 in <lambda>
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/runner.py", line 244 in from_call
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/runner.py", line 217 in call_runtest_hook
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/runner.py", line 186 in call_and_report
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/runner.py", line 100 in runtestprotocol
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/runner.py", line 85 in pytest_runtest_protocol
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/main.py", line 272 in pytest_runtestloop
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/main.py", line 247 in _main
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/main.py", line 191 in wrap_session
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/main.py", line 240 in pytest_cmdline_main
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/agustin/.local/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/agustin/.local/lib/python3.6/site-packages/_pytest/config/__init__.py", line 125 in main
File "/home/agustin/.local/lib/python3.6/site-packages/memote/suite/api.py", line 123 in test_model
File "run_memote.py", line 5 in <module>
Aborted (core dumped)
How could I solve it?
I solve the issue with this:
result=memote.test_model(model, skip=["test_consistency"])
I skipped 30 test from test_consistency:
============================================================ 66 failed, 49 passed, 30 skipped in 54.24s =============================================================
Which one do you think I could not skip and still run?
Another little issue:
I am running:
import cobra
import memote
model=cobra.io.read_sbml_model("iEK1008.xml")
result=memote.test_model(model, skip=["test_consistency"], results=True)
memote.snapshot_report(result[1], config=None, html=True)
The html file report is not being exported. Do you know what is happening?
Since you have an SBML file, I suggest you just use the command line:
memote report snapshot --skip test_stoichiometric_consistency iEK1008.xml
If you want to run via Python, you need to write the snapshot report to a file.
import cobra
import memote
model=cobra.io.read_sbml_model("iEK1008.xml")
result=memote.test_model(model, skip=["test_stoichiometric_consistency"], results=True)
report = memote.snapshot_report(result[1], config=None, html=True)
with open("report.html", "w") as handle:
handle.write(report)
Hi,
I experienced the same problem with memote. Skipping test_stoichiometric_consistency test seem to work fine for me (as. of 21/10/2020).
Hey @mfondi @AgustinPardo @ensakz
I just released memote 0.12.0 last night that should address this problem. Can you please test with that and let me know how it goes?
@Midnighter thank you for the release, it solves problem with me
I have just updated the webservice to the same effect. Please feel free to re-open if this continues to be a problem for you.
Problem description
We are trying to use memote on a multi-compartment, large reconstruction accounting for roughly 4500 reactions. We used the following code to launch memote on it:
docker run -v /home/matlab/Marco/memote/Models_For_Memote:/opt opencobra/memote memote report snapshot --filename "/opt/output_dir/report_OURmodel.html" /opt/OURmodel.xml
memote got stuck at this point (I killed the process after two days):
============================= test session starts ============================== platform linux -- Python 3.6.9, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 rootdir: /usr/local/lib/python3.6/site-packages/memote/suite/tests collected 262 items
../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_annotation.py F [ 0%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFFFF.FFFFFFFFFFFFFFFFF [ 24%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_basic.py . [ 25%] .....FF.....FFF.F.F.FF [ 33%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_biomass.py . [ 33%] FFFFFFFFFFFFFF..F...........FFFFFFFFFFFFFF.F F.FFFF.F....FFFFFFFFFFFFFFFF [ 61%] FFFFFFFFFFFFFFFFFFFFFFFFFF..............FFFFFFFFFFFFFF [ 82%] ../../usr/local/lib/python3.6/site-packages/memote/suite/tests/test_consistency.py F [ 82%] ssssssssssssssss.FFFFF.
Do you have any suggestion on how to overcome this issue? Could it be that the reconstruction is too big for memote to analyse it? Is there an upper limit for the size of the reconstructions that memote can analyse?
I can provide more details if needed.
Thanks in advance for your help. bets m.