Build status | Documentation |
---|---|
A collection of tests for constraint-based metabolic models.
There are currently 2 main test suites implemented:
- FROG reproducibility and curation checks
- Memote-style model consistency and annotation checks
You can generate FROG reports using function frog_generate_report
and compare
the "compatibility" of two reports using frog_compare_reports
. See the inline
documentation for more details.
The supposed workflow with FROG reports is the following:
- If you are a model author, you generate a FROG report that is used as a reference solution of your metabolic model problem, and distribute it along a model.
- If you are a model curator, you demand the FROG report from the original author as a "certificate" of their model's intended functionality.
- If you use a model of someone other, you generate another FROG report with your analysis software, and then compare the report against the original model author's report to verify that your software is interpreting the model information correctly and that the solutions are compatible within a reasonable tolerance.
The implementation is based off the description of the EBI's FBC curation
site, with some details
following the decisions in the fbc_curation
Python
tool (working with COBRApy) by
Matthias König (@matthiaskoenig).
The implementation in FBCModelTests.jl is mostly authored by Mirek Kratochvíl (@exaexa) with parts contributed by St. Elmo Wilken (@stelmo).
This package exposes a number of tests aimed at quickly checking if certain basic quality characteristics of a constraint-based metabolic model are satisfied. Assuming your model will work with the default configuration arguments of the test functions (see their docstrings), then you can test your model with:
using FBCModelTests
using COBREXA, Tulip, Test
model = load_model("e_coli_core.json")
@testset "Test model" begin
FBCModelTests.Memote.run_tests(model, Tulip.Optimizer)
end
model_info = FBCModelTests.Memote.generate_memote_report(model, optimizer)
You can set the configuration parameters by adjusting the config
kwarg, which
is a type of MemoteConfig
. Note, some of the original Memote tests involve
solving MILPs, these tests are not included in this package as the issues they
identify are often easier to identify by simpler means. For example, find the
stoichiometrically inconsistent metabolites is simpler done by just checking the
mass balance around each reaction.
The implementation in FBCModelTests.jl is mostly authored by St. Elmo Wilken (@stelmo) with parts contributed by Vincent M. von Häfen (@vm-vh) and Flora Schlüter (@Fl-Sch).
FBCModelTests.jl package is developed at the Luxembourg Centre for Systems Biomedicine of the University of Luxembourg (uni.lu/lcsb) and the Institute for Quantitative and Theoretical Biology at the Heinrich Heine University in Düsseldorf (qtb.hhu.de). The development was supported by European Union's Horizon 2020 Programme under PerMedCoE project (permedcoe.eu) agreement no. 951773.