Skip to content
  • Filippo Rusconi (Uploading Debian Developer)'s avatar
    This commit is the very first commit of massXpert2 · 90b2bdfc
    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
Loading