- Fix problems with spreadsheet parser. Now supports
.xls
,.xlsx
, and.ods
. - Fix a bug with models whose biomass optimization is infeasible.
- Fix bug caused from upstream changes -> cobrapy -> pandas.
- Refactor stoichiometric consistency test into 3 separate ones.
- Change the logic for identifying biomass reactions to be less eager.
- Fix failing excel reader.
- Fix an issue where experimental growth was incorrectly not reported.
- Allow the user to set a threshold value for growth in experimental data.
- Fix and enable the consistency test for minimal unconservable sets.
- Correct the names of parametrized experiments.
- Make the confusion matrix computation more robust.
- Fix an issue where experimental data was not loaded.
- Enable command line options for solver timeouts.
- Setting the log level to DEBUG now also enables the solver log output.
- Improve the biomass reaction finding logic.
- Explicitly register custom markers biomass, essentiality and growth used for custom test parametrization in pytest.
- Fix logic for consistency tests of production and consumption of metabolites with open bounds. It allows multiprocessing, currently relying on cobra.Configuration to select the number of processors.
- Pin cobrapy version to <= 0.14.2 (because cobra==0.15.1,0.15.2 SBML parsing is broken).
- Pin cobrapy version to 0.14.2 (because cobra==0.15.1,0.15.2 SBML parsing is broken).
- Include memote's requirement for git on installation instructions.
- Check for the presence of git in CLI commands that require it.
- Replace vega with taucharts in all reports.
- Fix plots to be large enough.
- Fix responsive behaviour.
- Add clear axis labels and understandable titles.
- Add an option to save all plots to png, json and csv.
- Color code the category plots just like the results buttons on the snapshot report.
- Fix the data that is displayed in the independent an specific sections of the history report.
- Invert metrices and display as percentages.
- Add hover-over tooltips for all plots.
- Implement lazy loading for all the reports, meaning that the content of an expansion panel in any of the reports is only rendered when it is open.
- Fix the reactions with identical genes test case to not group all reactions without any GPR together.
- Enable CI on Appveyor (unit tests on Windows as opposed to linux which we do on Travis).
- Replace any commit operations through gitpython with direct subprocess invocations of git.
- Regenerate the mock repo we use in some tests so that filemode changes are ignored by default.
- Repair memote online which would not get the most up-to-date status when checking whether a repo had already been activate for testing on Travis CI.
- Pin travis-encode due to conflicts in dependency on click with goodtables and jsonschema.
- Repair the experimental testing and add a test case for the runner with experimental data.
- Update docstring of test_find_duplicate_reactions.
- Add a guide explaining the structure of and how to interpret the memote reports.
- Add guidelines on writing custom tests to the documentation.
- Add unit tests to the CLI workflow.
- Remove dependency on GitHub and Travis API wrappers, make calls through python requests.
- Fix bugs in memote
- The number of duplicated reactions is now reported uniquely rather than all duplicate pairs.
- Add missing parametrized metric on
test_biomass_open_production
.
- Add metrics, i.e., model-size independent test outcomes to almost all test cases.
- Repair auto generation of API docs and update section on test suite.
- Remove our dependecy on PyGithub and TravisPy by reimplementing all the necessary steps with requests
- Add unit and integration tests for runner.py and reports.py, except for memote online.
- Debug memote online - could only be tested manually, CI is impossible without a secure way of storing github credentials.
- Add logging statements to all CLI functions to facilitate future debugging.
- Enhance the function for finding unique metabolites and make it more robust.
- Improve logging output when there is a problem with serializing a result to JSON.
- Fix some test cases that got broken by cobrapy's new boundary identification.
- Fix bug that would lead to biomass SBO annotations not being reported.
- Add
seed.reaction
namespace to the reaction annotation databases.
- Change SBO annotation tests to check for multiple terms until we can properly handle the ontology.
- Remove 'Steady-state flux solution vectors' test case.
- Improve the descriptions of stoichiometric matrix test cases.
- Fix the discovery or orphan and dead-end metabolites.
- Improve detection of metabolites that are not consumed or not produced by only opening exchange reactions not other boundary reactions.
- Thematically reorganize the test cases in the config.
- Instead of min/max bounds consider the median bounds for testing (un-)bounded fluxes.
- Use a model context for every test case.
- Fix bug which involved find_transport_reactions to ignore compartments.
- Internal change to use model context rather than copy.
- Internal changes to JSON structure.
- Remove tests for metabolite inconsistency with closed bounds. The results are a subset only of the unconserved metabolites.
- Make the consistency tests account better for numeric instability.
- Add the GLPK exact solver as a possible option.
- Update memote-report-app from Angular 5.1.0 to 7.2.0.
- Reduce the prominence of the total score in the reports.
- Provide partial calculations for each section.
- Show overall formula of how the total score is calculated.
- Clearly indicate weights/ multipliers by introducing margenta badges next to each test in the report.
- In the reports, improve the descriptions of the 'Help' section and rename this section to 'Readme'.
- Rename the principal sections and include a brief explanation for each.
- Fix bug that would show a test as 'Errored' although it only failed. Fixed by making condition in errorFailsafe in test-result.model.ts more specific for cases where data is undefined or null.
- Fix bug that would make parametrized tests disappear from the report if they had errored or if for some reason their 'data' attribute was undefined.
- Unpin pytest (require >= 4.0) and adjust some internal mechanics accordingly.
- Display an alternative message if some biomass components do not contain a formula.
- Extend the annotations tests by a check for full length InChI strings.
- Fix a bug in
Unrealistic Growth Rate In Default Medium
which reported the opposite of what was the case. - Extend the description of each test by a description of how it is implemented.
- Refactor test that identifies duplicate reactions to take into metabolites, reaction directionality and compartments into account.
- Add additional tests that identify reactions having identical annotations and identical genes.
- Refactor test that identifies duplicate metabolites to use for inchi strings in addition to inchikeys.
- Round score to and display a single decimal value.
- Fix bug that would show a test as errored whenever it was marked as skipped.
- Read SBML files with modified parser that can collect the level, version and whether the FBC package is used.
- Validate the SBML structure with the libSBML python API if the parser errors and produce a simple SBML validation report.
- Add test cases that report on the level and version, and FBC availability through the memote reports.
- Temporarily pin pytest to <4.1 in order to avoid a breaking API change on their part.
- Refactor the test for enzyme complexes to only return an estimated size.
- Compress JSON and SQLite storage of results using gzip by default. JSON continues to work either compressed or uncompressed. At the moment we offer no database migration, please contact us if you need help in migrating a large existing SQLite database rather than just re-computing it.
- Adjust the reversibility index test to not use name matching and increase the threshold slightly. Also adjust the description of the test.
- Adjust tests to the change in the
add_boundary
interface. - Identify blocked reactions using the cobrapy built-in function.
- Add a feature to allow suppling a commit range to
memote history
. - Add a test that checks if reactions are annotated with reactome identifiers.
- Add a feature that allows identifying specific metabolites by matching annotation information against the metabolite shortlist for a given MNX ID.
- Change every usage of SBO key to lower case to conform to the identifiers.org namespace for the Systems Biology Ontology.
- Remove that metabolite SBO terms are used when identifying transport reactions as this may lead to false positives.
- Return metabolite IDs when finding duplicate metabolites to avoid serialization errors.
- Identify transport reactions first by formula then by annotation.
- For the diff report, run pytest in different processes to avoid accidentally overwriting the results of the former with the results of the later runs.
- In the diff report, fix a typo that allowed the diff button to depart the defined colour scheme (blue -> red) to cyan.
- Fix the snapshot report not showing environment information.
- Allow
memote run
to skip commits where the model was not changed, if the flag--skip-unchanged
is provided. - Fix the default value of the overall score to be zero instead of one and make sure that the calculation is ensured with unit tests.
- Fix medium and experiment loading
- Add a test to check reaction directionality with thermodynamic estimation from eQuilibrator API.
- Fix test titles and descriptions.
- Unpin cobra dependency and set it to >0.13.3.
- Set ruamel.yaml to >=0.15 to keep up with cobra.
- Handle various pytest verbosity options better.
- Improve
memote new
behavior.
memote run
in a repository now immediately commits the result to the deployment branch.
- Allow running of
memote history
from any branch. - Let the history report only use commits where the model actually changed.
- Proofread and update all docstrings and comments inside the
memote
subfolder. - Reworded all test titles to be a) shorter and b) as neutral as was sensibly possible.
- Reordered tests in the test-config.yaml such that results belonging to a category are grouped logically.
- Updated the documentation to include a newer flowchart, up-to-date getting started and custom test sections.
- Update code to account for breaking changes in the most recent version of cobrapy (0.13.0) and subsequently unpin cobrapy dependency (set to >=0.13.0).
- Allow users to selective recompute the history of results.
- Skip commits in the history that did not change the model file.
- Change format_type on experimental tests from count to percent
- Fix typo in test_basic.py that lead to tests returning null which breaks the diff report frontend.
- Update the diff report to properly show errored and skipped tests
- Fix issues with asynchronicity on the diff report.
- Change format_type on experimental tests from
count
topercent
- Fix typo in
test_basic.py
that lead to tests returning null which breaks the diff report frontend. - Update the diff report to properly show errored and skipped tests
- Finalize testing comparing with experimental data (growth and esentiality).
- Temporarily disable
test_find_inconsistent_min_stoichiometry
. - Update the nullspace function.
- Improve optlang compatibility.
- Add test
find_medium_metabolites
to detect and display all substrates capable of being taken up by model - Display the score on History and Snapshot reports.
- Invert the colour coding.
- Display results as percentages.
- Add ability to generate a diff report which compares two or more models.
- Annotation of metabolite shortlist simplified.
- Refactor internal API and JSON object creation.
- Expose more of the internal API to the top level.
- Also, remember to carry a towel!
- Add test
find_duplicate_reactions
to detect duplicate reactions in model - Add dynamic upper and lower bounds. They are based on the most extreme bound values given in a model (if none exist -1000 and 1000 are chosen as defaults)
- Fix logic in
find_bounds
function inhelpers.py
- Make the report type variable a string in the
index.html
.
- Distribute the missing tests.
- Fix a problem with the report caused by previous refactoring.
- Remove the pip dependency in
show_versions
. - Update the CI to use stages and
tox-travis
. - Modify some editor and other configuration.
- Expose testing of experimental essentiality and growth data in memote.
- Create a configuration system for media that is extensible to further experimental data types.
- Add test for identifying purely metabolic reactions with fixed constraints in models
- Add test for identifying transport reactions with fixed constraints in models
- Add test for identifying reversible oxygen-containing reactions in models
- Add division import from __future__ to
test_biomass
andtest_consistency
where it was missing. - Add O2 to MetaNetX shortlist, allowing for easier identification
- Allow tests and test module to be skipped or run exclusively when creating a snapshot report.
- Fix some typos
- Add history report view and connect it to memote report history call.
find_direct_metabolites
detects and removes false positives.find_transport_reactions
detects reactions using forumlae and annotations- Add tests for detecting gene annotations (and verifying they are in MIRIAM style)
- Add unit tests for
matrix.py
in filetest_for_matrix.py
. - Add tests
find_metabolites_not_produced_with_open_bounds
andfind_metabolites_not_consumed_with_open_bounds
- Add test
find_duplicate_metabolites_in_compartments
to detect duplicate metabolites in identical compartments - Cache heavily used support functions in
helpers.py
andconsistency_helpers.py
- Test summary only displays extended narrative summary describing test, and not one-line summary describing expected function behavior/output
- Fix the following bugs:
- Fix type annotation on the test for Biomass Production in Complete Medium
- Fix TypeError when running memote new which was associated with unicode and string formatting in py2.7
- Sort existing test results from misc into the respective categories (by editing test_config.yml)
- Move Matrix statistics category to unscored side into their own card
- Add a tuple of (number of reactions, number of genes) to the data annotation of the metabolic coverage test.
- Add filter in
report_data_service
that changed the test result status to "error" when the data attribute isnull
, thus avoiding that the report interface breaks when trying to access data. - Add test for identifying stoichiometrically balanced cycles in models
- Correct the arguments used for repositories such that
memote run
andmemote history
work as expected inside of a repository.
- Emergency fix for distributing required JSON file.
Let Travis re-package the snapshot report with every release.
Add new module to test for the presence of SBO term annotations.
Add a test for Biomass production in complete medium.
Clarify extend of mass- and charge-imbalance testing.
Remove much of the boilerplate code of the report template as a preparation for the history and diff report.
Fix bug with test_blocked_reactions
Update the testData.json with data from the previous release
Fix a small bug with the metrics of mass/charge unbalanced reactions.
Correctly invert the found identifiers in wrong annotations and namespace consistency in order to report the correct results.
Add a cross-reference shortlist using MetaNetX flatfiles
Add a script that can be used to add more metabolites and then to re-generate the shortlist
Add helper function
find_met_in_model
which looks up a query metabolite ID using the MNX namespace in the shortlist and:- If no compartment is provided, returns a list of all possible candidates metabolites.
- If a compartment is provided, tries to return a list containing only ONE corresponding metabolite.
Add helper function
find_compartment_id_in_model
to identify compartments using an internal shortlist of possible compartment names.Provide tests for each function
- Refactor code to use these functions specifically:
find_ngam
find_biomass_reaction
detect_energy_generating_cycles
find_exchange_rxns
find_demand_rxns
find_sink_rxns
gam_in_biomass
find_biomass_precursors
Improve
find_ngam
in addition to agnostically looking for ATP hydrolysis reactions, the test now also looks for a range of possible "buzzwords" in the reaction NAME: ['maintenance', 'atpm', 'requirement', 'ngam', 'non-growth', 'associated']. One match suffices as a classification.Improve
find_biomass_reaction
to look for three attributes in a biomass reaction, one of which is sufficient to classify it as a biomass reaction:- "Buzzwords" in the reaction ID: ['biomass', 'growth', 'bof']
- An annotation matching the SBO-Term SBO:0000630 specifically!
- Containing a metabolite matching the regex:
^biomass(_[a-zA-Z]+?)*?$
(case-insensitive)
Add function
bundle_biomass_components
to identify whether a given biomass reaction is 'split' or 'lumped'. This function looks simply at the size of the biomass reaction. Based on a guess-timated cut-off the reaction is then classified. If it is 'lumped' it is returned without changes, if it is 'split' the reactions of any non-energy precursor metabolite are returned as well. This is based on the assumption that a 'split' biomass reaction has the following structure: a (1 gDW ash) + b (1 gDW phospholipids) + c (free fatty acids) + d (1 gDW carbs) + e (1 gDW protein) + f (1 gDW RNA) + g (1 gDW DNA) + h (vitamins/cofactors)-> 1 gDCW biomass. We're supposing that for each macromolecule precursor metabolite there is a single reaction defining its composition i.e.e
= protein would have the reaction:alanine + asparagine + ... + valine --> e
Add function, test and model test to identify missing essential precursors to the biomass reaction. The function is
essential_precursors_not_in_biomass
Record the score of individual test cases and sections in the result output.
Correct the import of module 'annotation' with 'sbo' in
test_sbo.py
Refactor sink_react_list to sink_reactions for improved readability
Allow
test_sink_specific_sbo_presence
to be skipped when no sink reactions are present with a metric of 1.0Fix a bug that compared the length of a float to generate a metric in
test_basic.py
and generated a TypeError.Fix a bug that prevented
find_biomass_precursors
inmemote/support/biomass.py
from functioning due to a malformed setIn CONTRIBUTING.rst replace link to semantic commit guide by seesparkbox with link to guide by karma, due to error with sphinx linkcheck.
Fix a bug that prevented
find_biomass_precursors
from correctly identifyingatp
andh2o
metabolites in cobra model reactionsFix improperly labeled sbo terms for biomass production in
biomass.py
andtest_for_helpers.py
.Add matrix conditioning functions in
matrix.py
which are used for model stoichiometric matrix testing intest_matrix.py
Add missing rank and nullspace_basis functions in
consistency_helpers.py
Fix issue with improper string/dict formatting in
test_biomass.py
testsRe-organize the architecture to read in external configurations and add custom tests.
Add an argument
--location
which replaces--directory
which can be used to set the directory or database where results should be stored.
- Enable test result and meta-data collection.
- Allow command line option and configuration of exclusive test cases and
modules skipping all others (
--exclusive test_biomass
). - Allow command line option and configuration to skip test cases and
modules (
--skip test_model_id_presence
). - Introduce a dummy configuration file for the report organization and test scoring weights.
- Sort unconfigured tests into the card 'Misc. Tests' in the snapshot report.
- Handle skipped tests better in the snapshot report.
- Bundle the Angular report javascript libraries in the snapshot template
- Pass results into the report as JSON
- Fixed/ changed a lot of visuals on the angular report:
- Indent the rows of the parametrized test results
- Color the header text of the parametrized test results in pure black
- Remove the horizontal lines in the parametrized test results
- Display all results regardless of scored/ unscored inside of buttons to force a uniform line height and a more consistent look
- Add logic to correctly display errored tests
- Give skipped and errored test results a distinct look
- Explicitly handle boolean results, and add boolean as an option for the 'type' attribute.
- Fix the raw data output in the textboxes so that they are formatted python code.
- Allow command line option to enable the definition of a custom test directory in combination with a corresponding config file.
- Extend test descriptions to make it more clear how a user can satisfy the test conditions.
- Remove duplicate test for the presence of transport reactions.
- Implement a test for unbounded flux through reactions in the default condition.
- Implement a test for detecting metabolites that can either be produced or removed from the model when all system boundaries are closed.
- Implement a test for 'direct' metabolites, i.e. the detection of biomass precursors that are not involved in any metabolic reactions; only in exchange reactions, transporters and the biomass reaction itself.
- Implement a test that checks for a low ratio of transport reactions without GPR relative to the total amount of transport reactions.
- Fix UnicodeDecodeError when memote tries to open the html template for the snapshot report.
- Improve the automated release pipeline. It now creates pumpkins.
- Provide a new decorator
@register_with
that can be used in alltest_for*
modules and replaces themodel_builder
function. - Temporarily change the links to readthedocs to point to latest instead of stable.
- Provide angular2 app for the snapshot report instead of the jinja template
- Correctly account for reversibility when testing for dead-end and orphan metabolites.
- Fix a bunch of bugs:
- Remove false positive detection of Biocyc annotation
- Allow memote to identify CTP or GTP driven transport reactions
- Refactor how memote detects GAM in the biomass reaction
- Add tests to find deadend, orphan and disconnected metabolites.
- Extend and improve algorithm to find energy-generating cycles
- Remove the
print
statement frommemote.support.annotation .generate_component_annotation_miriam_match
. - Fix the bug in the assertion output of
memote.memote.suite.tests.test_basic .test_gene_protein_reaction_rule_presence
. - Split mass-charge-balance test into two separate tests for more clarity
- Fix a bug in
memote.support.consistency_helpers.get_internals
that did not exclude the (by definition) imbalanced biomass reactions.
- Fix documentation building and add auto-generation of docs.
- Make the command line output of pytest more verbose until the report is up to speed.
- Temporarily skip
test_find_stoichiometrically_balanced_cycles
- Catch errors when testing for compartments and loops.
- Push all branches with
memote online
.
- Fix JSON serialization of test results.
- Add a programmatic API in module
memote.suite.api
(#162). - Reorganize the structure and build process for auto-documenting
memote
(#172). - Add a new command
memote online
(#95, #153). - Add more basic tests.
- Improve GitHub support.
- Update the readthedocs and gitter badge.
- Add a function
memote.show_versions()
for easy dependency checking.
- Properly configure Travis deployment.
- Build tags.
- Enable automatic deployment to PyPi.
- Greatly extend the core test modules: * basic * consistency * biomass * annotation * syntax
- Add an Angular-material based report with plotly.
- Add documentation on readthedocs.io.
- Make the first release on PyPi.
- Yet another package structure for supporting functions, their tests, and the model test suite.
- New package structure and start of joint development