# 3.5.1. Dependencies¶

## 3.5.1.1. List of Dependencies¶

Briefly, RMG depends on the following packages, almost all of which can be found in the RMG anaconda channel as binary packages.

**boost:**portable C++ source libraries**cairo:**a 2D vector graphics library with support for multiple backends including image buffers, PNG, PostScript, PDF, and SVG file output. Used for molecular diagram generation**cairocffi:**a set of Python bindings and object-oriented API for cairo**coverage:**code coverage measurement for Python**cython:**compiling Python modules to C for speed up**dde:**Data Driven Estimator for neural network thermochemistry prediction**ffmpeg:**(optional) used to encode videos, necessary for generating video flux diagrams**gaussian:**(optional) commerical software program for quantum mechanical calculations. Must be installed separately.**gcc:**GNU compiler collection for C,C++, and Fortran. (MinGW is used in windows)**gprof2dot:**converts Python profiling output to a dot graph**graphviz:**generating flux diagrams**jinja2:**Python templating language for html rendering**jupyter:**(optional) for using IPython notebooks**lpsolve:**mixed integer linear programming solver, used for resonance structure generation. Must also install Python extension.**markupsafe:**implements XML/HTML/XHTML markup safe strings for Python**matplotlib:**library for making plots**mock:**for unit-testing**mopac:**semi-empirical software package for QM calculations**mpmath:**for arbitrary-precision arithmetic used in Arkane**muq:**(optional) MIT Uncertainty Quantification library, used for global uncertainty analysis**networkx:**(optional) network analysis for reaction-path analysis IPython notebook**pytest:**advanced unit test controls**numpy:**fast matrix operations**openbabel:**chemical toolbox for speaking the many languages of chemical data**psutil:**system utilization diagnostic tool**pydas:**differential algebraic system solver**pydot:**interface to Dot graph language**pydqed:**constrained nonlinear optimization**pyparsing:**a general parsing module for python**pyrdl:**RingDecomposerLib for graph ring perception**pyyaml:**Python framework for YAML**pyzmq:**Python bindings for zeroMQ**quantities:**unit conversion**rdkit:**open-source cheminformatics toolkit**scipy:**fast mathematical toolkit**setuptools:**for packaging Python projects**sphinx:**documentation generation**symmetry:**calculating symmetry numbers of chemical point groups**xlwt:**generating Excel output files

## 3.5.1.2. License Restrictions on Dependencies¶

All of RMG’s dependencies except the ones listed below are freely available and compatible with RMG’s open source MIT license (though the specific nature of their licenses vary).

**pydas**: The DAE solvers used in the simulations come from Linda Petzold’s research group at UCSB. For running sensitivity analysis in RMG, the DASPK 3.1 solver is required, which “is subject to copyright restrictions” for non-academic use. Please visit their website for more details. To run RMG without this restriction, one may switch to compiling with the DASSL solver instead in RMG, which is “available in the public domain.”

If you wish to do on-the-fly quantum chemistry calculations of thermochemistry (advisable for fused cyclic species in particular, where the ring corrections to group additive estimates are lacking), the then you will need the third-party software for the QM calculations:

**gaussian**: Gaussian03 and Gaussian09 are currently supported and commercially available. See https://gaussian.com for more details.