The underlying algorithms of the language interface and post-generation analysis modules in RING, a network generation and analysis tool, are discussed. The front-end is a domain-specific reaction language developed with Silver, a meta-language based on attribute grammars. The language compiler translates user inputs written as a program into internal instructions, catches syntactic and semantic errors, and performs domain-specific optimization to speed up execution. In addition to generating reaction networks, RING allows post-processing analysis options to: (a) obtain reaction pathways and overall mechanisms from initial reactants to desired products using graph traversal algorithms, (b) group together isomers to reduce the size of the network through a novel molecule hashing technique, (c) calculate thermochemical quantities through semi-empirical methods such as group additivity, and (d) formulate and solve kinetic models of the entire or lumped complex network based on a rule-based kinetics specification scheme.
Bibliographical noteFunding Information:
Financial support from the National Science Foundation (CBET # 1307089 , IIS grant # 0905581 ) and from the University of Minnesota Digital Technology Center is gratefully acknowledged. The authors also acknowledge partial support from the Initiative for Renewable Energy (Large Grant: RL-0004-09 ), Digital Technology Center , and the doctoral dissertation fellowship at the University of Minnesota.
- Automated reaction network generation
- Domain-specific languages
- Extensible languages
- Isomer lumping
- Kinetic modeling
- Reaction network analysis