-
Notifications
You must be signed in to change notification settings - Fork 25
BioNetGen Architecture
The core of BioNetGen consists of two coupled programs: BNG2.pl and run_network. BioNetGen also interacts with a number of third party programs, including NFsim (network-free simulator), RuleBender (IDE), PySB, and Virtual Cell. This software repository only contains the source code for BNG2.pl and run_network.
BNG2.pl, written in Perl, reads and writes BNGL model files, generates reaction networks, and calls external simulators (such as run_network and NFsim). BNG2.pl is found the in 'bng2' folder of this repository. BNG2.pl depends on a number of Perl modules, which are found in 'bng2/Perl2'.
run_network, written in C and C++, is a reaction network simulation that supports ODE simulation, exact stochastic simulation (SSA), and accelerated stochastic simulation (PLA). The current major version of run_network is 3. The source code for run_network is contained in the 'bng2/Network3'
- bng2 - source code for BNG2.pl, Perl modules, and run_network
- bng2/Perl2 - BNG2 Perl modules and a few Perl scripts
- bng2/Models2 - example BNGL model files
- bng2/Validate - validation scripts and models
- bng2/Network3 - source code for run_network
- matlab - tools for integrating BioNetGen with MATLAB
- parsers - source code for the new BioNetGen language parser
All BNG2 Perl modules are found in the 'bng2/Perl2/' folder.
All BNG2 classes are implemented as Perl Modules found at 'bng2/Perl2/'
- ComponentType - defines the component type class
- Component - defines the BNGL component class
- MoleculeType - defines the BNGL molecule type class
- MoleculeTypesList - implements a MoleculeType container class
- Molecule - defines the BNGL molecule class
- SpeciesGraph - defines the BNGL species graph class (i.e., complexes and patterns)
- Species - defines the BNGL species class (adds a population member to a complex)
- SpeciesList - implements a Species container class
- RateLaw - defines the BNGL ratelaw class (member of RxnRule)
- RxnRule - defines the BNGL reaction rule class
- Rxn - defines the BNGL reaction class
- RxnList - implements a Rxn container class
- Observable - defines the BNGL observable object class
- Param - defines parameter object class (i.e. things with names)
- ParamList - implements a parameter look-up table
- Expression - defines math expressions
- Function - defines function objects
- HNauty - implements the heirarchical canonical-graph labeling algorithm
- BNGModel - defines the BNGL Model class (methods associated with this class are found in BNGModel.pm, BNGAction.pm, BNGOutput.pm). BNGL models have members
- Compartment - defines the cBNGL compartment class
- CompartmentList - implements a Compartment container class
- EnergyPattern
- Population
- PopulationList
- RefineRule
- MacroBNGModel - Model reduction module (not currently supported)
- BNGMessages.pm
- BNGOptions.pm
- BNGUtils.pm
- Cache.pm - a class for 'caching' BNG objects with an assoicated label for future retreival
- CartesianProduct.pm - a class for iterating over the cartesian product of sets
- Console.pm - implements a primitive BNG interactive console (currently a sandbox)
- XMLReader.pm - read BNG-XML files and represent as intermediate Perl structures (in development)