The following image shows the overall structure of OpenMS:
Without looking into the details of OpenMS the situation is very simple. Applications can be implemented using OpenMS, which in turn relies on several external libraries: Qt provides visualization and a platform abstraction layer. Xerces allows XML file parsing. libSVM is used for machine learning tasks. The Computational Geometry Algorithms Library (CGAL) provides data structures and algorithms for geometric computation.
OpenMS can itself be subdivided into several layers. At the very bottom are the foundation classes which implement low-level concepts and data structures. They include basic concepts (e.g. factory pattern, exception handling), basic data structures (e.g. string, points, ranges) and system-specific classes (e.g. file system, time). The kernel classes, which capture the actual MS data and metadata, are built upon the foundation classes. Finally, there is a layer of higher-level functionality that relies on the kernel classes. This layer contains file I/O supporting several file formats, data reduction functionality and all other analysis algorithms.
OpenMS / TOPP release 2.3.0 | Documentation generated on Tue Jan 9 2018 18:22:05 using doxygen 1.8.13 |