Backward-incompatible changes#
This is the consolidated list of everything a RAVEN 2 script could plausibly break on, or silently produce different output from, when run against RAVEN 3. Items are grouped by how they manifest.
Will error / undefined function#
RAVEN 2 usage |
What happens in RAVEN 3 |
|---|---|
|
Removed. Use |
|
Errors. Only SBML Level 3 Version 1, FBC package version 2 is accepted (see §6). |
|
No longer falls back to tab-delimited text export; errors with "only export to xlsx format is supported". |
|
Removed outright (was a dead-code path anyway). |
|
WoLF PSORT support is fully removed. |
|
Removed (RAVEN's last |
|
Removed, no direct successor. For debugging why a reaction can't carry flux, use |
|
All removed (see §4 for what replaces each, where anything does). |
Anything under |
Entire subsystems removed: MetaCyc-based reconstruction and all visualization/plotting functionality ( |
|
Removed along with the old local-KEGG-FTP-dump workflow (see §7). |
|
Removed as a standalone function; folded into an internal helper of |
Will silently produce different results#
Same call, same input model, different output. Grouped by function; see the linked section for the full explanation of each.
Function |
New behavior (default, unless noted) |
|---|---|
|
Best-hit tie-break now uses bitscore instead of E-value ( |
|
Default lowered from |
|
Gene substitution is exact-token-based instead of regex/ |
|
Default lowered from |
|
Default raised from |
|
grRules are now parsed correctly (exact gene-token matching, structure-aware isozyme/complex handling) instead of via substring/regex matching; §8 |
|
Produces a valid grRule instead of an unparseable one; §8 |
|
No longer drops a task's boundary constraint on a metabolite with no reactions: a task that used to silently pass may now correctly fail; §9 |
|
|
|
Gene-ID-to-MIRIAM matching no longer breaks on gene IDs containing regex metacharacters; §6 |
|
Each had a pre-existing bug fixed; output differs only for models/inputs that triggered it |
None of these are API changes; the same call with the same arguments now returns a different, corrected result.
Will warn, but keep working#
Error/warning identifiers changed.
dispEM(RAVEN 2's universal error/warning function) always raised errors with an empty identifier (MException('', ...)), so no RAVEN 2 script could have legitimately caught onerr.identifier. RAVEN 3 replacesdispEMwith nativeerror()/warning()calls, most (not all) carrying real identifiers, predominantlyRAVEN:badInput, plus a handful of specific ones (RAVEN:modelError,RAVEN:badGrRule,RAVEN:sampling,RAVEN:infeasible,RAVEN:grRuleTooComplex). Message text is largely unchanged (many messages are byte-identical to RAVEN 2's), sotry/catchblocks that pattern-match on message text keep working; scripts can newly (optionally) match onerr.identifierinstead.getINITModel/runINITnow emit a one-time "legacy" notice pointing atftINIT, silenceable withwarning('off','RAVEN:legacyMethod'). This is explicitly not a deprecation; RAVEN's own documentation states these functions "remain supported" indefinitely, to reproduce previously published Human-GEM-derived models. See §9.makeSomething,consumeSomething,canProduce,canConsumenow live in a newdeprecated/folder as thin wrappers aroundfindLeakMetabolite/canExchange, and emit a one-timeRAVEN:deprecatedwarning stating they "will be removed in the next major release." Unlike the legacy-notice functions above, these are on an actual removal track; migrate call sites before the next major release. See §9.checkInstallationis nowcheckRaven, moved frominstallation/to the repository root, with an unchanged signature ([currVer, installType] = checkRaven(developMode, checkBinaries)). Existing calls do not break:checkInstallationsurvives as a forwarding wrapper that passes every argument and output straight through, after emitting aRAVEN:deprecatedwarning namingcheckRaven. It is on the same removal track as thedeprecated/functions above, so switch at the next opportunity.
Environment / installation changes#
KEGG HMM libraries and external command-line binaries (BLAST+, DIAMOND, HMMER,
cd-hit, MAFFT, WoLF PSORT) are no longer committed to the repository. RAVEN 3
fetches them on demand from the raven-data GitHub release the first time a
function needs one, which means internet access is required on first use,
not just at clone/install time. See §11 for what's needed for
an air-gapped install, and the full dependency comparison.