Summary
While expanding a BioNetGen parity test suite, I ran the RuleHub model collection
through BioNetGen 2.9.3 (BNG2.pl + run_network/NFsim). 40 models fail at
the front-end — i.e. during parse / network generation, before any simulator
runs — so they're broken regardless of method (ODE/SSA/NF) and regardless of
which BNG-compatible tool consumes them.
They fall into a few clean categories, most mechanically fixable. Each model is
listed with its exact BNG2.pl error and the cause. Paths are relative to the
RuleHub repo root.
Scope note: 4 additional models with the same kinds of problems live in
RuleMonkey (tests/models/feature_coverage/), not RuleHub, so they're omitted
here — listed at the bottom for reference.
1. Deprecated / unsupported block names (15)
begin molecules → should be begin molecule types (9)
begin molecules is an archaic block name; current BioNetGen uses
begin molecule types. Mechanical rename.
Published/Faeder2003/Faeder_2003.bngl
Published/Nag2009/Nag_2009.bngl
Published/mapkdimers/mapk-dimers.bngl
Published/mapkmonomers/mapk-monomers.bngl
Published/notch/notch.bngl
Published/wnt/wnt.bngl
Tutorials/General/chemistry/chemistry.bngl
Tutorials/General/toy1/toy1.bngl
Tutorials/General/toy2/toy2.bngl
begin molecular types → typo for begin molecule types (1)
Published/vilar2002/vilar_2002.bngl
begin anchors — block not supported by BNG2.pl (5)
Could not process block type 'anchors'. The anchors block (compartmental /
localization) isn't processed by BNG2.pl 2.9.3; these models need it ported or
removed.
Published/Blinovegfr/Blinov_egfr.bngl
Published/Blinovran/Blinov_ran.bngl
Published/RulebasedRantransport/Rule_based_Ran_transport.bngl
Published/RulebasedRantransportdraft/Rule_based_Ran_transport_draft.bngl
Published/Rulebasedegfrcompart/Rule_based_egfr_compart.bngl
2. Missing companion files (10)
The .bngl references a file that isn't in the repo (the model directories
contain only the .bngl + metadata.yaml/README.md).
Missing seed-species file .species (3)
Couldn't read from file ./<name>.species: No such file or directory
Tutorials/General/polymer/polymer.bngl
Tutorials/General/polymerdraft/polymer_draft.bngl
Tutorials/polymerfixed/polymer_fixed.bngl
Missing read-file input (3)
Couldn't read from file <...>: No such file or directory
Published/Ordyan2020/CaMKIIholo/CaMKII_holo.bngl
Tutorials/michmentcont/michment_cont.bngl
Tutorials/simplenfsimtest/simple_nfsim_test.bngl
Missing geometry file for compartmental models (3)
Error loading default geometry: <...> is missing or corrupted
Tutorials/fcerijicomp/fceri_ji_comp.bngl
Tutorials/recdim/rec_dim.bngl
Tutorials/recdimcomp/rec_dim_comp.bngl
Missing SBML import target (1)
Could not find 'BIOMD0000000010.xml'
Tutorials/simplesbmlimport/simple_sbml_import.bngl
3. Unquoted barewords in action blocks (4)
Bareword "X" not allowed while "strict subs" in use — BNG2.pl evaluates action
arguments as Perl, so unquoted string values are rejected.
Tutorials/General/simple/simple.bngl — simulate_ode({suffix=>ode,...}); should be suffix=>"ode"
Published/Ligon2014/Ligon_2014.bngl — simulate_nf({suffix=>nf,...}); should be suffix=>"nf"
Published/tlbr/tlbr.bngl — simulate_rm({t_end=>t_end,n_steps=>n_steps}); uses bare parameter names as values (needs literal values)
Published/Kesseler2013/Kesseler_2013.bngl — max_stoich=>{MPF=>unlimited,...}; unlimited is not a valid stoich value (must be a number, as the other entries use 1e10)
4. Undefined symbols in functions (2)
Published/Nosbisch2022/Nosbisch_2022.bngl — rate-law functions use t as simulation time (e.g. (1.0 * t) < 5000.0), but t is undefined; BioNetGen exposes time as time, not t. (Parameter 't' is referenced but not defined)
Published/Ordyan2020/extraCaMKIIHolo/extra_CaMKII_Holo.bngl — functions reference tics / tics_per_second (e.g. max(tics/tics_per_second - 300, 0)), which are never declared. (Parameter 'tics' is referenced but not defined)
5. Malformed model structure / other (9)
Published/McMillan2021/McMillan_2021.bngl — molecule T(1,2,3) uses numeric component names; component names must begin with a letter or underscore. (Invalid component name in '1,2,3)')
Published/Erdem2021/Erdem_2021.bngl — Found illegal wildcard bond breaking in a rule (a rule breaks a bond specified with a wildcard).
Published/Zhang2023/Zhang_2023.bngl — observable SphK1 has a dangling edge (bond to nothing). (SpeciesGraph::updateEdges(): dangling edge not allowed)
Tutorials/Kiefhaberemodel/Kiefhaber_emodel.bngl — observable references A(c~U,s!1), a molecule not present in molecule types. (does not match any declared molecule types)
Published/BaruaFceRI2012/BaruaFceRI_2012.bngl — a seed-species expression refers to observables/functions, which isn't allowed in the species block. (Error while parsing species block)
Published/Mertins2023/Mertins_2023.bngl — a block isn't closed before the next begins. (begin block before end of previous block parameters)
Published/Jung2017/Jung_2017.bngl — block begin/end mismatch. (end 540.0 does not match begin parameters)
Published/Dushek2014/Dushek_2014.bngl — Perl-eval error from a malformed function/expression. (Not a CODE reference at (eval 89) line 1)
Tutorials/NativeTutorials/translateSBML/translateSBML.bngl — no reaction rules defined, nothing to simulate. (Nothing to do: no reaction rules defined)
Reproduction
perl BNG2.pl <model>.bngl # fails at parse / network generation
(Tested via PyBioNetGen bionetgen.run(..., simulator="subprocess"), which wraps
BNG2.pl 2.9.3; identical failures occur driving the model directly.)
Summary
While expanding a BioNetGen parity test suite, I ran the RuleHub model collection
through BioNetGen 2.9.3 (
BNG2.pl+run_network/NFsim). 40 models fail atthe front-end — i.e. during parse / network generation, before any simulator
runs — so they're broken regardless of method (ODE/SSA/NF) and regardless of
which BNG-compatible tool consumes them.
They fall into a few clean categories, most mechanically fixable. Each model is
listed with its exact
BNG2.plerror and the cause. Paths are relative to theRuleHub repo root.
1. Deprecated / unsupported block names (15)
begin molecules→ should bebegin molecule types(9)begin moleculesis an archaic block name; current BioNetGen usesbegin molecule types. Mechanical rename.Published/Faeder2003/Faeder_2003.bnglPublished/Nag2009/Nag_2009.bnglPublished/mapkdimers/mapk-dimers.bnglPublished/mapkmonomers/mapk-monomers.bnglPublished/notch/notch.bnglPublished/wnt/wnt.bnglTutorials/General/chemistry/chemistry.bnglTutorials/General/toy1/toy1.bnglTutorials/General/toy2/toy2.bnglbegin molecular types→ typo forbegin molecule types(1)Published/vilar2002/vilar_2002.bnglbegin anchors— block not supported by BNG2.pl (5)Could not process block type 'anchors'. Theanchorsblock (compartmental /localization) isn't processed by BNG2.pl 2.9.3; these models need it ported or
removed.
Published/Blinovegfr/Blinov_egfr.bnglPublished/Blinovran/Blinov_ran.bnglPublished/RulebasedRantransport/Rule_based_Ran_transport.bnglPublished/RulebasedRantransportdraft/Rule_based_Ran_transport_draft.bnglPublished/Rulebasedegfrcompart/Rule_based_egfr_compart.bngl2. Missing companion files (10)
The
.bnglreferences a file that isn't in the repo (the model directoriescontain only the
.bngl+metadata.yaml/README.md).Missing seed-species file
.species(3)Couldn't read from file ./<name>.species: No such file or directoryTutorials/General/polymer/polymer.bnglTutorials/General/polymerdraft/polymer_draft.bnglTutorials/polymerfixed/polymer_fixed.bnglMissing read-file input (3)
Couldn't read from file <...>: No such file or directoryPublished/Ordyan2020/CaMKIIholo/CaMKII_holo.bnglTutorials/michmentcont/michment_cont.bnglTutorials/simplenfsimtest/simple_nfsim_test.bnglMissing geometry file for compartmental models (3)
Error loading default geometry: <...> is missing or corruptedTutorials/fcerijicomp/fceri_ji_comp.bnglTutorials/recdim/rec_dim.bnglTutorials/recdimcomp/rec_dim_comp.bnglMissing SBML import target (1)
Could not find 'BIOMD0000000010.xml'Tutorials/simplesbmlimport/simple_sbml_import.bngl3. Unquoted barewords in action blocks (4)
Bareword "X" not allowed while "strict subs" in use— BNG2.pl evaluates actionarguments as Perl, so unquoted string values are rejected.
Tutorials/General/simple/simple.bngl—simulate_ode({suffix=>ode,...}); should besuffix=>"ode"Published/Ligon2014/Ligon_2014.bngl—simulate_nf({suffix=>nf,...}); should besuffix=>"nf"Published/tlbr/tlbr.bngl—simulate_rm({t_end=>t_end,n_steps=>n_steps}); uses bare parameter names as values (needs literal values)Published/Kesseler2013/Kesseler_2013.bngl—max_stoich=>{MPF=>unlimited,...};unlimitedis not a valid stoich value (must be a number, as the other entries use1e10)4. Undefined symbols in functions (2)
Published/Nosbisch2022/Nosbisch_2022.bngl— rate-law functions usetas simulation time (e.g.(1.0 * t) < 5000.0), buttis undefined; BioNetGen exposes time astime, nott. (Parameter 't' is referenced but not defined)Published/Ordyan2020/extraCaMKIIHolo/extra_CaMKII_Holo.bngl— functions referencetics/tics_per_second(e.g.max(tics/tics_per_second - 300, 0)), which are never declared. (Parameter 'tics' is referenced but not defined)5. Malformed model structure / other (9)
Published/McMillan2021/McMillan_2021.bngl— moleculeT(1,2,3)uses numeric component names; component names must begin with a letter or underscore. (Invalid component name in '1,2,3)')Published/Erdem2021/Erdem_2021.bngl—Found illegal wildcard bond breaking in a rule(a rule breaks a bond specified with a wildcard).Published/Zhang2023/Zhang_2023.bngl— observableSphK1has a dangling edge (bond to nothing). (SpeciesGraph::updateEdges(): dangling edge not allowed)Tutorials/Kiefhaberemodel/Kiefhaber_emodel.bngl— observable referencesA(c~U,s!1), a molecule not present inmolecule types. (does not match any declared molecule types)Published/BaruaFceRI2012/BaruaFceRI_2012.bngl— a seed-species expression refers to observables/functions, which isn't allowed in the species block. (Error while parsing species block)Published/Mertins2023/Mertins_2023.bngl— a block isn't closed before the next begins. (begin block before end of previous block parameters)Published/Jung2017/Jung_2017.bngl— block begin/end mismatch. (end 540.0 does not match begin parameters)Published/Dushek2014/Dushek_2014.bngl— Perl-eval error from a malformed function/expression. (Not a CODE reference at (eval 89) line 1)Tutorials/NativeTutorials/translateSBML/translateSBML.bngl— no reaction rules defined, nothing to simulate. (Nothing to do: no reaction rules defined)Reproduction
(Tested via PyBioNetGen
bionetgen.run(..., simulator="subprocess"), which wrapsBNG2.pl 2.9.3; identical failures occur driving the model directly.)