Derive the BMDB supported-model list from the nightly results - #1990
Merged
Conversation
The desktop's BMDB tab marks each BioModels Database model supported or not, showing a warning
icon and "model not compatible with vCell" for the rest, so a user is not surprised by an
import that fails. bioModelsNetInfo.xml behind it was hand-maintained and last touched in May
2025, so it had drifted from what VCell can actually open -- and it drifted further with the
SBML import fixes in 8.0.26.01.
Checked against test_cases.ndjson, which the BMDB nightly executes over the real collection:
55 models were flagged incompatible that VCell imports perfectly well, and 3 were flagged
compatible that it cannot. Users were being steered away from 55 usable models.
Supported is now derived from the nightly rather than curated by hand, and a test fails when
the two disagree, so the list cannot silently rot again as the importer improves. Regenerate
with
mvn test -pl vcell-client -Dtest=BioModelsNetInfoTest -Dvcell.updateBioModelsNetInfo=true
The nightly records execution -- import AND simulation -- while this list is only about
whether a model opens, so the mapping keys on failure type rather than pass/fail. A model that
imports and then fails in the solver still opens and stays supported; that distinction is what
most of the 55 are. Import-blocking types are listed in IMPORT_BLOCKING_FAILURES.
One judgment call worth review: MATH_GENERATION_FAILURE is treated as import-blocking. Such a
model does load, so it is not strictly an import failure, but it cannot produce math and is
unusable, and "not compatible with vCell" is a fair description. It accounts for 2 of the 3
demotions (175, 302); the third, 591, genuinely fails to import.
Not read at runtime from test_cases.ndjson directly, because vcell-cli is not a dependency of
vcell-client and its jar is not in the installer -- the client ships only vcell-core, -math,
-util, -restclient, -apiclient and -api-types. Deriving the checked-in XML keeps the desktop
reading its own resource and adds no packaging change.
The generated write preserves the file's CRLF line endings on purpose; writing platform
separators turned 58 attribute edits into a 1061-line diff on the first attempt.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The desktop's BMDB tab marks each BioModels Database model supported or not, showing a warning icon and "model not compatible with vCell" for the rest, so a user is not surprised by an import that fails.
bioModelsNetInfo.xmlbehind it is hand-maintained and was last touched in May 2025, so it had drifted from what VCell can actually open — and drifted further with the SBML import fixes in 8.0.26.01.The drift
Checked against
test_cases.ndjson, which the BMDB nightly executes over the real collection:Users were being steered away from 55 usable models. Supported goes from 928 → 983 of 1057.
What this changes
Supportedis now derived from the nightly rather than curated by hand, andBioModelsNetInfoTestfails when the two disagree — so the list cannot silently rot again as the importer improves.The mapping, and the one judgment call
The nightly records execution — import and simulation — while this list is only about whether a model opens. So the mapping keys on failure type, not pass/fail: a model that imports and then fails in the solver still opens and stays supported. That distinction is what most of the 55 are.
Import-blocking types are listed in
IMPORT_BLOCKING_FAILURES.MATH_GENERATION_FAILUREis treated as import-blocking, which is debatable — such a model does load, so it is not strictly an import failure, but it cannot produce math and is unusable, and "not compatible with vCell" is a fair description. It accounts for 2 of the 3 demotions (175, 302); the third, 591, genuinely fails to import with a Lambda-function parse error.Why not read the ndjson directly at runtime
vcell-cliis not a dependency ofvcell-client, and its jar is not in the installer — the client ships onlyvcell-core,-math,-util,-restclient,-apiclient,-api-types(verified againstdependency:copy-dependenciesandDockerfile-clientgen-dev:37-39). Deriving the checked-in XML keeps the desktop reading its own resource and adds no packaging change.Note for reviewers
The diff is 58 changed lines, not 1061. The generator preserves the file's CRLF line endings deliberately; writing platform separators turned the same 58 attribute edits into a whole-file diff on the first attempt.
vcell-clientFast group: 30 tests, 0 failures.Also worth knowing separately: this list ships inside the client jar, so it only reaches users on a client release. The runtime fetch from
vcell.org/webstart/VCellBMDBInfo/is commented out atBioModelsNetPanel.java:515-521.🤖 Generated with Claude Code