Backward-incompatible changes#
The changes below were found by comparing RAVEN 2.11.3 with RAVEN 3 in the code. They are grouped into changes that raise an error, changes that give a different result without an error, changes to error and warning identifiers, changes that raise warnings, and installation changes. The changelog of RAVEN 3 lists further bug fixes. Those whose effect was not checked are named after the table of corrected behaviour.
Changes that raise errors#
RAVEN 2 usage |
RAVEN 3 behaviour |
|---|---|
|
Removed. Use |
|
Raises an error. The accepted format is SBML Level 3 Version 1 with FBC package version 2 (see SBML I/O) |
|
RAVEN 2 exported tab-delimited text. RAVEN 3 raises the error "only export to xlsx format is supported" for every extension other than |
|
Removed |
|
Removed, with all WoLF PSORT support |
|
Raises an error whose message names |
|
Removed. RAVEN 3 has no code that depends on |
|
The arguments are removed together with |
|
Removed without a direct successor. To find why a reaction cannot carry flux, use |
|
Removed. Removed functionality gives the replacements where one exists |
Any function in |
Folder removed, with the 7 functions of the MetaCyc-based reconstruction. RAVEN 3 has no replacement |
Any function in |
Folders removed, with 16 functions for visualisation and plotting, such as |
Any function in |
Folder removed. RAVEN 3 has no replacement (see Removed functionality) |
|
Removed (see Reconstruction: KEGG and homology pipelines) |
|
Removed as a function of its own. It is a local function of |
|
Renamed |
|
Raises |
|
The parameters |
|
Raises |
|
Raises |
|
Raises |
|
Raises an error. Position 9 is |
Changes that alter results without an error#
The same call on the same model gives a different output. Positions count all arguments of the call, required ones included: in scoreModel(model, hpaData, arrayData, tissue, celltype, ...) the model is position 1 and celltype is position 5.
Argument positions and defaults that change meaning#
Function |
RAVEN 3 behaviour |
|---|---|
|
A call with one to four positional arguments shifts. The first argument, |
|
|
|
The third argument is read as |
|
|
|
|
|
|
|
A gene that is absent from the data receives |
|
RAVEN 2 accepted |
|
The default predictor is |
|
The default |
|
The best hit is the hit with the highest bitscore. RAVEN 2 selected the hit with the lowest E-value. No parameter selects the criterion (see Reconstruction: KEGG and homology pipelines) |
|
The default is |
|
The default is |
|
The default is |
Corrected behaviour#
Function |
RAVEN 3 behaviour |
|---|---|
|
Gene substitution uses exact tokens. RAVEN 2 used regular expressions or |
|
|
|
The rule is parsed with |
|
The changelog of RAVEN 3 states that the check uses a parse tree. The effect on results was not compared (see Parsing of gene-reaction rules) |
|
Produces a valid grRule. RAVEN 2 wrapped the new rule as |
|
Keeps the boundary constraint ( |
|
The step changes nothing. RAVEN 2 raised an error, because |
|
With |
|
The conversion of |
|
The merged metabolite is the copy in compartment |
The changelog of RAVEN 3 lists a bug fix for each of permuteModel, optimizeProb, getFluxZ, convertToIrrev, replaceMets, setExchangeBounds, fitParameters and guessComposition. It lists further fixes that can change results, for example for mergeLinear, mergeModels, closeModel, addTransport, getExchangeRxns, removeLowScoreGenes, getMinNrFluxes, reporterMetabolites, getElementalBalance, checkModelStruct and deleteUnusedGenes. The effect of these fixes on results was not checked.
Changes to error and warning identifiers#
RAVEN 2 raised its errors through dispEM with an empty identifier (MException('', ...)), so no RAVEN 2 script could catch an error by err.identifier. RAVEN 3 replaces dispEM with error() and warning() calls. Not every call carries an identifier, and a script can match on err.identifier for the calls that do. RAVEN:badInput appears in 220 lines and RAVEN:warning in 63 lines of src/ and the root .m files (non-comment lines that contain the identifier). Further identifiers in the RAVEN: namespace are RAVEN:modelError, RAVEN:badGrRule, RAVEN:infeasibleModel, RAVEN:infeasible, RAVEN:sampling, RAVEN:grRuleTooComplex, RAVEN:deprecated, RAVEN:legacyMethod, RAVEN:notMainBranch, RAVEN:glpkMILP, RAVEN:fetchToolboxAsset:unverified, RAVEN:fetchToolboxAsset:checksum, RAVEN:fetchToolboxAsset:manifest, RAVEN:runSuppOrth:supportLv, RAVEN:runSuppOrth:failed, RAVEN:runSuppOrth:notFound and RAVEN:hitsFromSuppOrth:unmappedProteins. Identifiers in other namespaces include parseRAVENargs:tooManyArgs, parseRAVENargs:noSpec, getPhylDist:noData, renameModelGenes:*, setGAM:* and parseYAML:*. The list is not exhaustive.
Whether try/catch blocks that match on message text match was not compared message by message.
Changes that raise warnings#
getINITModelandrunINIT, the functions of the legacy tINIT method, issue a one-time notice with the identifierRAVEN:legacyMethodthat points toftINIT.warning('off','RAVEN:legacyMethod')silences it. The help text of both functions states that the function remains supported, although the changelog of RAVEN 3 marks both as deprecated (see Gap-filling and context-specific model extraction).makeSomething,consumeSomething,canProduceandcanConsumeare wrappers in the folderdeprecated/aroundfindLeakMetaboliteandcanExchange. They issue a one-timeRAVEN:deprecatedwarning that they will be removed in the next major release.checkInstallationischeckRavenin RAVEN 3, moved frominstallation/to the repository root, with the same signature:[currVer, installType] = checkRaven(developMode, checkBinaries). The wrappercheckInstallationforwards every argument and output tocheckRavenand issues aRAVEN:deprecatedwarning that namescheckRavenon every call. The wrapper will be removed in the next major release.
Installation changes#
The repository of RAVEN 3 does not contain the KEGG HMM libraries, the external binaries (BLAST+, DIAMOND, HMMER, cd-hit, MAFFT, WoLF PSORT and SCIP) or Apache POI. The first time a function needs them, RAVEN 3 fetches the KEGG HMM libraries and reference tables and the BLAST+, DIAMOND and HMMER binaries from the toolbox-assets repository, so the first use requires internet access. The binaries are stored in src/external/<tool>. The function setRavenSolver downloads SCIP for Windows from the RAVEN v2.8.6 GitHub release. An offline bundle of the binaries is available as a *-binaries RAVEN release. Download data and binaries describes what is fetched and where it is cached, and Toolbox dependencies and installation covers the air-gapped install and the dependency comparison.