-
massXpert2 is the successor of massXpert. massXpert was put in maintenance mode at version 7.0.0 (last Debian package 7.0.0-2). massXpert2 is a deep refactoring of massXpert involving the following changes: - modularization of all the gui and nongui code that might be useful also for the mineXpert2 project in two private static libraries libmass and libmassgui. - libmass and libmassgui are in the source tree in the form of git submodules. Their code is located at: - https://gitlab.com/msxpertsuite/libmass - https://gitlab.com/msxpertsuite/libmassgui - full refactoring of the chemical element modelling, that is, no more based on the Isotope/Atom/AtomCount classes but on a new Isotope class that mimicks the data structure of the IsoSpec++ library data. That Isotope class describes an isotope. The full set of chemical element data is stored in IsotopicData, a class that contains a vector of all the Isotopes instances of a given chemical-element-based environment (a polymer chemistry definition has one IsotopicData member). The IsotopicData class has all the functions required to handle the large std::vector<Isotope *>, allowing amongst other things to: - gather all the isotopes by the same symbol; - compute an average mass for a given set of isotopes or for all the isotopes by a given symbol; - find the monoisotopic mass for a given symbol or for a given set of isotopes; - ... All these functions permit to perform on the fly all the calculations that were coded in Isotope/Atom/AtomCount and QList<Atom> in massXpert. In addition to the std::vector<Isotope *>, the IsotopicData class has two maps relating the each symbol in the data with its monoisotopic mass and with its average mass: - std::map<QString, double> relating symbol and mono mass; - std::map<QString, double> relating symbol and avg mass; A large set of functions allow inserting, appending and removing isotope instances of any given symbol from the vector with automatic update of the average and mono mass for that symbol in the corresponding map. Lookup of the masses of any given symbol is extremely fast with these two maps. - The modifications above (in libmass) are accompanied by a full set of GUI modifications in: - libmassgui, for all the new GUI'nterfaces that might be useful in mineXpert2 also; - src/gui, for the new version of GUI'nterfaces that are specifically designed for the new massXpert2. The present commit is the first commit (all precedent commits were squashed into this one) that features a set of functionalities on par with those found in massXpert. Thorough testing will certainly highlight some glitches, but this commit has been tested by comparing with massXpert and is seemingly pretty functional with no differences visibles with respect to massXpert. For the record, massXpert is located at all these repositories: - https://gitlab.com/msxpertsuite/massxpert - https://forgemia.inra.fr/pappso/massxpert - https://salsa.debian.org/debichem-team/massxpert
90b2bdfc
This project is licensed under the GNU General Public License v3.0 only.
Learn more
Loading