  MsXpS::libXpertMassCore CalcOptions:

    Properties: 6

      bool isDeepCalculation
      Enums::MassType massType
      Enums::CapType capType
      Enums::ChemicalEntity monomerEntities
      Enums::ChemicalEntity polymerEntities
      Enums::CapType selectionType

    Invokables: 28

      explicit CalcOptions(QObject *parent = nullptr);
      explicit CalcOptions(bool deep_calculation, Enums::MassType mass_type, Enums::CapType selectionping, Enums::ChemicalEntity monomer_entities, Enums::ChemicalEntity polymer_entities, QObject *parent = nullptr);
      explicit CalcOptions(const CalcOptions &other, QObject *parent = nullptr);
      CalcOptions &initialize(const CalcOptions &other);
      CalcOptions *clone(QObject *parent = nullptr);
      static CalcOptions *clone(const CalcOptions &other, QObject *parent = nullptr);
      void setIndexRange(const IndexRange &sequence_range = IndexRange());
      void setIndexRange(qsizetype index_start, qsizetype index_end);
      void setIndexRanges(const IndexRangeCollection &sequence_ranges);
      const IndexRangeCollection &getIndexRangeCollectionCstRef() const;
      IndexRangeCollection &getIndexRangeCollectionRef();
      IndexRangeCollection *getIndexRangeCollection();
      void setDeepCalculation(bool deep);
      bool isDeepCalculation() const;
      void setMassType(Enums::MassType mass_type);
      Enums::MassType getMassType() const;
      void setSelectionType(Enums::SelectionType selection_type);
      Enums::SelectionType getSelectionType() const;
      void setCapType(Enums::CapType selection_type);
      Enums::CapType getCapType() const;
      void setMonomerEntities(Enums::ChemicalEntity monomer_chem_ent);
      Enums::ChemicalEntity getMonomerEntities() const;
      void setPolymerEntities(Enums::ChemicalEntity polymer_chem_ent);
      Enums::ChemicalEntity getPolymerEntities() const;
      CalcOptions &operator=(const CalcOptions &other) = delete;
      bool operator==(const CalcOptions &other) const;
      bool operator!=(const CalcOptions &other) const;
      QString toString() const;



  MsXpS::libXpertMassCore IndexRange:

    Properties: 2

      qsizetype start
      qsizetype stop

    Invokables: 12

      explicit IndexRange(QObject *parent = nullptr);
      explicit IndexRange(qsizetype index_start, qsizetype index_stop, QObject *parent = nullptr);
      explicit IndexRange(const IndexRange &other, QObject *parent = nullptr);
      void initialize(const IndexRange &other);
      IndexRange *clone(QObject *parent = nullptr);
      static IndexRange *clone(const IndexRange &other, QObject *parent = nullptr);
      bool operator==(const IndexRange &other) const;
      bool operator!=(const IndexRange &other) const;
      void sortAscending();
      void sortDescending();
      bool isValid() const;
      void reset();



  MsXpS::libXpertMassCore IndexRangeCollection:

    Properties: 1

      QString comment

    Invokables: 29

      explicit IndexRangeCollection(QObject *parent = nullptr);
      explicit IndexRangeCollection(qsizetype index_start, qsizetype index_stop, QObject *parent = nullptr);
      explicit IndexRangeCollection( const QString &index_ranges_string, Enums::LocationType location_type = Enums::LocationType::INDEX, QObject *parent = nullptr);
      explicit IndexRangeCollection(const IndexRangeCollection &other, QObject *parent = nullptr);
      const QList<IndexRange *> &getRangesCstRef() const;
      QList<IndexRange *> &getRangesRef();
      static QList<IndexRange *> parseIndexRanges(const QString &index_ranges_string, Enums::LocationType location_type, QObject *parent = nullptr);
      bool operator==(const IndexRangeCollection &other) const;
      bool operator!=(const IndexRangeCollection &other) const;
      void setIndexRange(qsizetype start, qsizetype stop);
      void setIndexRange(const IndexRange &index_range);
      void setIndexRanges(const QList<IndexRange *> &index_ranges);
      void setIndexRanges(const IndexRangeCollection &index_ranges);
      qsizetype setIndexRanges(const QString &index_ranges_string, Enums::LocationType location_type);
      void appendIndexRange(qsizetype start, qsizetype stop);
      void appendIndexRange(const IndexRange &index_range);
      void appendIndexRanges(const QList<IndexRange *> &index_ranges);
      void appendIndexRanges(const IndexRangeCollection &index_ranges);
      qsizetype leftMostIndexRangeStart() const;
      QList<qsizetype> indicesOfLeftMostIndexRanges() const;
      bool isLeftMostIndexRange(const IndexRange &index_range) const;
      qsizetype rightMostIndexRangeStop() const;
      QList<qsizetype> indicesOfRightMostIndexRanges() const;
      bool isRightMostIndexRange(const IndexRange &index_range) const;
      IndexRange *mostInclusiveLeftRightIndexRange() const;
      bool encompassIndex(qsizetype index, bool globally = false) const;
      bool overlap() const;
      QString indicesAsText() const;
      QString positionsAsText() const;



  MsXpS::libXpertMassCore IsotopicData:

    Properties: 1

      std::size_t size

    Invokables: 22

      IsotopicData(QObject *parent = nullptr);
      IsotopicData(const IsotopicData &other, QObject *parent = nullptr);
      void appendNewIsotope(IsotopeQSPtr isotope_qsp, bool update_maps = true);
      bool insertNewIsotope(IsotopeQSPtr isotope_qsp, qsizetype index, bool update_maps = true);
      void appendNewIsotopes(const QList<IsotopeQSPtr> &isotopes, bool update_maps = true);
      bool updateMonoMassMap(const QString &symbol);
      std::size_t updateMonoMassMap();
      bool updateAvgMassMap(const QString &symbol);
      std::size_t updateAvgMassMap();
      double computeAvgMass(IsotopeListCstIteratorPair iter_pair, ErrorList *error_list_p) const;
      void updateMassMaps(const QString &symbol);
      std::size_t updateMassMaps();
      double getMonoMassBySymbol(const QString &symbol, bool &ok) const;
      double getMonoMass(IsotopeListCstIteratorPair iter_pair, ErrorList *error_list_p) const;
      double getAvgMassBySymbol(const QString &symbol, bool &ok) const;
      double getCumulatedProbabilitiesBySymbol(const QString &symbol, ErrorList *error_list_p) const;
      double getCumulatedProbabilities(IsotopeListCstIteratorPair iter_pair, ErrorList *error_list_p) const;
      qsizetype getIsotopeCountBySymbol(const QString &symbol) const;
      bool containsSymbol(const QString &symbol, int &count) const;
      bool containsName(const QString &name, int &count) const;
      QString isotopesAsStringBySymbol(const QString &symbol) const;
      bool isMonoMassIsotope(IsotopeCstQSPtr isotope_cqsp);



  MsXpS::libXpertMassCore MassPeakShaperConfig:

    Properties: 11

      double resolution
      double fwhm
      Enums::MassPeakWidthLogic massPeakWidthLogic
      double referencePeakMz
      int pointCount
      bool withBins
      int binSizeDivisor
      double binSize
      bool isBinSizeFixed
      double mzStep
      Enums::MassPeakShapeType massPeakShapeType



  MsXpS::libXpertMassCore Polymer:

    Properties: 6

      QString name
      QString code
      QString author
      QString filePath
      QString sequence
      std::size_t size

    Invokables: 45

      void setName(const QString &name);
      QString getName() const;
      void setCode(const QString &code);
      QString getCode() const;
      void setAuthor(const QString &author);
      QString getAuthor() const;
      void setFilePath(const QString &file_path);
      QString getFilePath() const;
      void setDateTime();
      void setDateTime(const QString &date_time);
      QString getDateTime() const;
      void setSequence(const QString &sequence_string);
      QString getSequenceText() const;
      std::size_t size() const;
      bool modifyMonomer(std::size_t index, const QString modif_name, bool override);
      bool hasModifiedMonomer(std::size_t left_index, std::size_t right_index) const;
      void unmodify(Enums::PolymerEnd polymer_end);
      bool setLeftEndModifByName(const QString &name = QString());
      bool setRightEndModifByName(const QString &name = QString());
      void setCalcOptions(const CalcOptions &calc_options);
      void setCalcOptions(const CalcOptions *calc_options);
      CalcOptions *getCalcOptions();
      void setIonizer(const Ionizer *ionizer_p);
      Ionizer *getIonizer();
      Enums::IonizationOutcome ionize();
      Enums::IonizationOutcome ionize(const Ionizer &ionizer);
      Enums::IonizationOutcome deionize();
      Enums::IonizationOutcome deionize(const Ionizer &ionizer);
      Enums::IonizationOutcome molecularMasses(double &mono, double &avg) const;
      std::size_t crossLinkCount() const;
      static bool calculateMasses(const Polymer *polymer_p, const CalcOptions &calc_options, double &mono, double &avg, bool reset);
      static bool calculateMasses(const Polymer *polymer_p, const CalcOptions &calc_options, const Ionizer &ionizer, double &mono, double &avg);
      bool calculateMasses(const CalcOptions &calc_options, bool reset);
      bool calculateMasses(const CalcOptions &calc_options, const Ionizer &ionizer);
      bool calculateMasses(const CalcOptions *calc_options_p, const Ionizer *ionizer_p);
      bool calculateMasses();
      double getMass(Enums::MassType mass_type) const;
      double &getMassRef(Enums::MassType mass_type);
      QString elementalComposition(const IndexRangeCollection &index_range_collection, const CalcOptions &calc_options) const;
      QString elementalComposition(const IndexRangeCollection &index_range_collection, const CalcOptions &calc_options, const Ionizer &ionizer) const;
      QString elementalComposition(const CalcOptions &calc_options) const;
      QString elementalComposition(const CalcOptions &calc_options, const Ionizer &ionizer) const;
      bool isValid() const;
      QString toString() const;
      void clear();



  MsXpS::libXpertMassCore Utils:

    Description:

      This class can be used in JS in two ways:
      1. By direct use of the 'utils' singleton
      and directly calling the invokable functions like so:
      utils.unspacify("this text has spaces")
      2. By instantiating an object like so:
      var the_utils = new Utils()
      and later calling the functions as methods of the
      object like so:
      the_utils.unspacify("this text has spaces")

    Properties: 1

      QString xmlIndentationToken
        Defines the string used for XML indentation formatting


    Invokables: 17

      explicit Utils(QObject *parent = nullptr);
        Creates a new instance of Utils

      static void doubleListStatistics(QList<double> list, double &sum, double &average, double &variance, double &std_dev, double &smallest_non_zero, double &smallest, double &greatest, double &median);
        Given the list of double values sets a number of statistical * values

      static bool almostEqual(double value1, double value2, int decimalPlaces = 10);
        Tells if two double values can be told apart with the * precision of the computer.

      static QString unspacify(const QString &text);
        Remove any space anywhere in the text string.

      static QString binaryRepresentation(int value);
        Returns the binary representation of the value.

      static QString elideText(const QString &text, int charsLeft = 4, int charsRight = 4, const QString &delimitor = "...");
      static QString stanzify(const QString &text, int width);
      static QString stanzifyParagraphs(const QString &text, int width);
      static int countZeroDecimals(double value);
      static double ppm(double value, double ppm);
        Returns the mass delta corresponding to ppm of value.

      static double addPpm(double value, double ppm);
      static double removePpm(double value, double ppm);
      static double res(double value, double res);
      static double addRes(double value, double res);
      static double removeRes(double value, double res);
      static QString joinErrorList(const ErrorList &error_list, const QString &separator = "\n");
      static bool isProgramRunning(const QString &program_name);



  MsXpS::libXpertMassCore CleavageAgent:



  MsXpS::libXpertMassCore CleavageConfig:

    Properties: 4

      int partials
      int startIonizeLevel
      int stopIonizeLevel
      bool sequenceEmbedded

    Invokables: 7

      CleavageConfig(QObject *parent = nullptr);
      CleavageConfig(PolChemDefCstSPtr pol_chem_def_csp, const QString &name, const QString &pattern, int partials = 0, bool is_sequence_embedded = false, QObject *parent = nullptr);
      CleavageConfig(const CleavageAgent &cleavage_agent, int partials = 0, bool is_sequence_embedded = false, QObject *parent = nullptr);
      CleavageConfig(const CleavageConfig &other, QObject *parent = nullptr);
      bool initialize(const CleavageConfig &other);
      bool setCleavageAgent(const CleavageAgent &cleavage_agent);
      void setIonizeLevels(int value1, int value2);



  MsXpS::libXpertMassCore Formula:

    Properties: 3

      QString title
      QString actionFormula
      bool valid

    Invokables: 23

      explicit Formula(QObject *parent = nullptr);
      explicit Formula(const QString &formula_string, QObject *parent = nullptr);
      Formula *clone(const Formula &other, QObject *parent = nullptr);
      Formula &initialize(const Formula &other);
      void setActionFormula(const QString &formula);
      void setActionFormula(const Formula &formula);
      bool appendActionFormula(const QString &formula);
      QString getActionFormula(bool withTitle = false) const;
      void setTitle(const QString &title);
      QString getTitle() const;
      QString extractTitle() const;
      QString removeTitle();
      void setForceCountIndex(bool forceCountIndex);
      bool isForceCountIndex() const;
      static bool checkSyntax(const QString &formula, bool forceCountIndex = false);
      bool checkSyntax() const;
      static QChar actions(const QString &formula);
      QChar actions() const;
      bool hasNetMinusPart();
      QString getPlusFormula() const;
      QString getMinusFormula() const;
      QString elementalComposition( std::vector<std::pair<QString, double>> *symbol_count_pairs_p = nullptr) const;
      QString formatXmlFormulaElement( int offset, const QString &indent = Utils::xmlIndentationToken);



  MsXpS::libXpertMassCore Ionizer:

    Properties: 6

      int nominalCharge
      int level
      bool isValid
      int currentStateNominalCharge
      int currentStateLevel
      bool isCurrentStateValid

    Invokables: 8

      Ionizer(QObject *parent = nullptr);
      int charge() const;
      int currentStateCharge() const;
      void forceCurrentState(const Formula &formula, int nominal_charge, int level);
      void forceCurrentStateLevel(int level);
      Ionizer makeIonizerWithCurrentStateData();
      bool validate(ErrorList *error_list_p) const;
      bool validateCurrentState(ErrorList *error_list_p) const;



  MsXpS::libXpertMassCore Isotope:

    Properties: 5

      QString name
      QString symbol
      double mass
      double probability
      bool isValid

    Invokables: 17

      Isotope(QObject *parent = nullptr);
      Isotope(const QString &name, const QString &symbol, double mass, double probability, QObject *parent = nullptr);
      Isotope(const QString &text, QObject *parent = nullptr);
      Isotope *clone(QObject *parent = nullptr) const;
      bool initialize(const QString &name, const QString &symbol, double mass, double probability);
      bool initialize(const QString &text);
      void clear();
      void setName(const QString &name);
      QString getName() const;
      void setSymbol(const QString &symbol);
      QString getSymbol() const;
      void setMass(double mass);
      double getMass() const;
      void setProbability(double probability);
      double getProbability() const;
      bool validate(ErrorList *error_list_p);
      QString toString() const;



MsXpS::libXpertMassCore CalcOptions:

  Properties: 6

    bool isDeepCalculation
    Enums::MassType massType
    Enums::CapType capType
    Enums::ChemicalEntity monomerEntities
    Enums::ChemicalEntity polymerEntities
    Enums::CapType selectionType

  Invokables: 28

    explicit CalcOptions(QObject *parent = nullptr);
    explicit CalcOptions(bool deep_calculation, Enums::MassType mass_type, Enums::CapType selectionping, Enums::ChemicalEntity monomer_entities, Enums::ChemicalEntity polymer_entities, QObject *parent = nullptr);
    explicit CalcOptions(const CalcOptions &other, QObject *parent = nullptr);
    CalcOptions &initialize(const CalcOptions &other);
    CalcOptions *clone(QObject *parent = nullptr);
    static CalcOptions *clone(const CalcOptions &other, QObject *parent = nullptr);
    void setIndexRange(const IndexRange &sequence_range = IndexRange());
    void setIndexRange(qsizetype index_start, qsizetype index_end);
    void setIndexRanges(const IndexRangeCollection &sequence_ranges);
    const IndexRangeCollection &getIndexRangeCollectionCstRef() const;
    IndexRangeCollection &getIndexRangeCollectionRef();
    IndexRangeCollection *getIndexRangeCollection();
    void setDeepCalculation(bool deep);
    bool isDeepCalculation() const;
    void setMassType(Enums::MassType mass_type);
    Enums::MassType getMassType() const;
    void setSelectionType(Enums::SelectionType selection_type);
    Enums::SelectionType getSelectionType() const;
    void setCapType(Enums::CapType selection_type);
    Enums::CapType getCapType() const;
    void setMonomerEntities(Enums::ChemicalEntity monomer_chem_ent);
    Enums::ChemicalEntity getMonomerEntities() const;
    void setPolymerEntities(Enums::ChemicalEntity polymer_chem_ent);
    Enums::ChemicalEntity getPolymerEntities() const;
    CalcOptions &operator=(const CalcOptions &other) = delete;
    bool operator==(const CalcOptions &other) const;
    bool operator!=(const CalcOptions &other) const;
    QString toString() const;


MsXpS::libXpertMassCore IndexRange:

  Properties: 2

    qsizetype start
    qsizetype stop

  Invokables: 12

    explicit IndexRange(QObject *parent = nullptr);
    explicit IndexRange(qsizetype index_start, qsizetype index_stop, QObject *parent = nullptr);
    explicit IndexRange(const IndexRange &other, QObject *parent = nullptr);
    void initialize(const IndexRange &other);
    IndexRange *clone(QObject *parent = nullptr);
    static IndexRange *clone(const IndexRange &other, QObject *parent = nullptr);
    bool operator==(const IndexRange &other) const;
    bool operator!=(const IndexRange &other) const;
    void sortAscending();
    void sortDescending();
    bool isValid() const;
    void reset();


MsXpS::libXpertMassCore IndexRangeCollection:

  Properties: 1

    QString comment

  Invokables: 29

    explicit IndexRangeCollection(QObject *parent = nullptr);
    explicit IndexRangeCollection(qsizetype index_start, qsizetype index_stop, QObject *parent = nullptr);
    explicit IndexRangeCollection( const QString &index_ranges_string, Enums::LocationType location_type = Enums::LocationType::INDEX, QObject *parent = nullptr);
    explicit IndexRangeCollection(const IndexRangeCollection &other, QObject *parent = nullptr);
    const QList<IndexRange *> &getRangesCstRef() const;
    QList<IndexRange *> &getRangesRef();
    static QList<IndexRange *> parseIndexRanges(const QString &index_ranges_string, Enums::LocationType location_type, QObject *parent = nullptr);
    bool operator==(const IndexRangeCollection &other) const;
    bool operator!=(const IndexRangeCollection &other) const;
    void setIndexRange(qsizetype start, qsizetype stop);
    void setIndexRange(const IndexRange &index_range);
    void setIndexRanges(const QList<IndexRange *> &index_ranges);
    void setIndexRanges(const IndexRangeCollection &index_ranges);
    qsizetype setIndexRanges(const QString &index_ranges_string, Enums::LocationType location_type);
    void appendIndexRange(qsizetype start, qsizetype stop);
    void appendIndexRange(const IndexRange &index_range);
    void appendIndexRanges(const QList<IndexRange *> &index_ranges);
    void appendIndexRanges(const IndexRangeCollection &index_ranges);
    qsizetype leftMostIndexRangeStart() const;
    QList<qsizetype> indicesOfLeftMostIndexRanges() const;
    bool isLeftMostIndexRange(const IndexRange &index_range) const;
    qsizetype rightMostIndexRangeStop() const;
    QList<qsizetype> indicesOfRightMostIndexRanges() const;
    bool isRightMostIndexRange(const IndexRange &index_range) const;
    IndexRange *mostInclusiveLeftRightIndexRange() const;
    bool encompassIndex(qsizetype index, bool globally = false) const;
    bool overlap() const;
    QString indicesAsText() const;
    QString positionsAsText() const;


MsXpS::libXpertMassCore IsotopicData:

  Properties: 1

    std::size_t size

  Invokables: 22

    IsotopicData(QObject *parent = nullptr);
    IsotopicData(const IsotopicData &other, QObject *parent = nullptr);
    void appendNewIsotope(IsotopeQSPtr isotope_qsp, bool update_maps = true);
    bool insertNewIsotope(IsotopeQSPtr isotope_qsp, qsizetype index, bool update_maps = true);
    void appendNewIsotopes(const QList<IsotopeQSPtr> &isotopes, bool update_maps = true);
    bool updateMonoMassMap(const QString &symbol);
    std::size_t updateMonoMassMap();
    bool updateAvgMassMap(const QString &symbol);
    std::size_t updateAvgMassMap();
    double computeAvgMass(IsotopeListCstIteratorPair iter_pair, ErrorList *error_list_p) const;
    void updateMassMaps(const QString &symbol);
    std::size_t updateMassMaps();
    double getMonoMassBySymbol(const QString &symbol, bool &ok) const;
    double getMonoMass(IsotopeListCstIteratorPair iter_pair, ErrorList *error_list_p) const;
    double getAvgMassBySymbol(const QString &symbol, bool &ok) const;
    double getCumulatedProbabilitiesBySymbol(const QString &symbol, ErrorList *error_list_p) const;
    double getCumulatedProbabilities(IsotopeListCstIteratorPair iter_pair, ErrorList *error_list_p) const;
    qsizetype getIsotopeCountBySymbol(const QString &symbol) const;
    bool containsSymbol(const QString &symbol, int &count) const;
    bool containsName(const QString &name, int &count) const;
    QString isotopesAsStringBySymbol(const QString &symbol) const;
    bool isMonoMassIsotope(IsotopeCstQSPtr isotope_cqsp);


MsXpS::libXpertMassCore MassPeakShaperConfig:

  Properties: 11

    double resolution
    double fwhm
    Enums::MassPeakWidthLogic massPeakWidthLogic
    double referencePeakMz
    int pointCount
    bool withBins
    int binSizeDivisor
    double binSize
    bool isBinSizeFixed
    double mzStep
    Enums::MassPeakShapeType massPeakShapeType


MsXpS::libXpertMassCore Polymer:

  Properties: 6

    QString name
    QString code
    QString author
    QString filePath
    QString sequence
    std::size_t size

  Invokables: 45

    void setName(const QString &name);
    QString getName() const;
    void setCode(const QString &code);
    QString getCode() const;
    void setAuthor(const QString &author);
    QString getAuthor() const;
    void setFilePath(const QString &file_path);
    QString getFilePath() const;
    void setDateTime();
    void setDateTime(const QString &date_time);
    QString getDateTime() const;
    void setSequence(const QString &sequence_string);
    QString getSequenceText() const;
    std::size_t size() const;
    bool modifyMonomer(std::size_t index, const QString modif_name, bool override);
    bool hasModifiedMonomer(std::size_t left_index, std::size_t right_index) const;
    void unmodify(Enums::PolymerEnd polymer_end);
    bool setLeftEndModifByName(const QString &name = QString());
    bool setRightEndModifByName(const QString &name = QString());
    void setCalcOptions(const CalcOptions &calc_options);
    void setCalcOptions(const CalcOptions *calc_options);
    CalcOptions *getCalcOptions();
    void setIonizer(const Ionizer *ionizer_p);
    Ionizer *getIonizer();
    Enums::IonizationOutcome ionize();
    Enums::IonizationOutcome ionize(const Ionizer &ionizer);
    Enums::IonizationOutcome deionize();
    Enums::IonizationOutcome deionize(const Ionizer &ionizer);
    Enums::IonizationOutcome molecularMasses(double &mono, double &avg) const;
    std::size_t crossLinkCount() const;
    static bool calculateMasses(const Polymer *polymer_p, const CalcOptions &calc_options, double &mono, double &avg, bool reset);
    static bool calculateMasses(const Polymer *polymer_p, const CalcOptions &calc_options, const Ionizer &ionizer, double &mono, double &avg);
    bool calculateMasses(const CalcOptions &calc_options, bool reset);
    bool calculateMasses(const CalcOptions &calc_options, const Ionizer &ionizer);
    bool calculateMasses(const CalcOptions *calc_options_p, const Ionizer *ionizer_p);
    bool calculateMasses();
    double getMass(Enums::MassType mass_type) const;
    double &getMassRef(Enums::MassType mass_type);
    QString elementalComposition(const IndexRangeCollection &index_range_collection, const CalcOptions &calc_options) const;
    QString elementalComposition(const IndexRangeCollection &index_range_collection, const CalcOptions &calc_options, const Ionizer &ionizer) const;
    QString elementalComposition(const CalcOptions &calc_options) const;
    QString elementalComposition(const CalcOptions &calc_options, const Ionizer &ionizer) const;
    bool isValid() const;
    QString toString() const;
    void clear();


MsXpS::libXpertMassCore Utils:

  Description:

    This class can be used in JS in two ways:
    1. By direct use of the 'utils' singleton
    and directly calling the invokable functions like so:
    utils.unspacify("this text has spaces")
    2. By instantiating an object like so:
    var the_utils = new Utils()
    and later calling the functions as methods of the
    object like so:
    the_utils.unspacify("this text has spaces")

  Properties: 1

    QString xmlIndentationToken
      Defines the string used for XML indentation formatting


  Invokables: 17

    explicit Utils(QObject *parent = nullptr);
      Creates a new instance of Utils

    static void doubleListStatistics(QList<double> list, double &sum, double &average, double &variance, double &std_dev, double &smallest_non_zero, double &smallest, double &greatest, double &median);
      Given the list of double values sets a number of statistical * values

    static bool almostEqual(double value1, double value2, int decimalPlaces = 10);
      Tells if two double values can be told apart with the * precision of the computer.

    static QString unspacify(const QString &text);
      Remove any space anywhere in the text string.

    static QString binaryRepresentation(int value);
      Returns the binary representation of the value.

    static QString elideText(const QString &text, int charsLeft = 4, int charsRight = 4, const QString &delimitor = "...");
    static QString stanzify(const QString &text, int width);
    static QString stanzifyParagraphs(const QString &text, int width);
    static int countZeroDecimals(double value);
    static double ppm(double value, double ppm);
      Returns the mass delta corresponding to ppm of value.

    static double addPpm(double value, double ppm);
    static double removePpm(double value, double ppm);
    static double res(double value, double res);
    static double addRes(double value, double res);
    static double removeRes(double value, double res);
    static QString joinErrorList(const ErrorList &error_list, const QString &separator = "\n");
    static bool isProgramRunning(const QString &program_name);


MsXpS::libXpertMassCore CleavageConfig:

  Properties: 4

    int partials
    int startIonizeLevel
    int stopIonizeLevel
    bool sequenceEmbedded

  Invokables: 7

    CleavageConfig(QObject *parent = nullptr);
    CleavageConfig(PolChemDefCstSPtr pol_chem_def_csp, const QString &name, const QString &pattern, int partials = 0, bool is_sequence_embedded = false, QObject *parent = nullptr);
    CleavageConfig(const CleavageAgent &cleavage_agent, int partials = 0, bool is_sequence_embedded = false, QObject *parent = nullptr);
    CleavageConfig(const CleavageConfig &other, QObject *parent = nullptr);
    bool initialize(const CleavageConfig &other);
    bool setCleavageAgent(const CleavageAgent &cleavage_agent);
    void setIonizeLevels(int value1, int value2);


MsXpS::libXpertMassCore Formula:

  Properties: 3

    QString title
    QString actionFormula
    bool valid

  Invokables: 23

    explicit Formula(QObject *parent = nullptr);
    explicit Formula(const QString &formula_string, QObject *parent = nullptr);
    Formula *clone(const Formula &other, QObject *parent = nullptr);
    Formula &initialize(const Formula &other);
    void setActionFormula(const QString &formula);
    void setActionFormula(const Formula &formula);
    bool appendActionFormula(const QString &formula);
    QString getActionFormula(bool withTitle = false) const;
    void setTitle(const QString &title);
    QString getTitle() const;
    QString extractTitle() const;
    QString removeTitle();
    void setForceCountIndex(bool forceCountIndex);
    bool isForceCountIndex() const;
    static bool checkSyntax(const QString &formula, bool forceCountIndex = false);
    bool checkSyntax() const;
    static QChar actions(const QString &formula);
    QChar actions() const;
    bool hasNetMinusPart();
    QString getPlusFormula() const;
    QString getMinusFormula() const;
    QString elementalComposition( std::vector<std::pair<QString, double>> *symbol_count_pairs_p = nullptr) const;
    QString formatXmlFormulaElement( int offset, const QString &indent = Utils::xmlIndentationToken);


MsXpS::libXpertMassCore Ionizer:

  Properties: 6

    int nominalCharge
    int level
    bool isValid
    int currentStateNominalCharge
    int currentStateLevel
    bool isCurrentStateValid

  Invokables: 8

    Ionizer(QObject *parent = nullptr);
    int charge() const;
    int currentStateCharge() const;
    void forceCurrentState(const Formula &formula, int nominal_charge, int level);
    void forceCurrentStateLevel(int level);
    Ionizer makeIonizerWithCurrentStateData();
    bool validate(ErrorList *error_list_p) const;
    bool validateCurrentState(ErrorList *error_list_p) const;


MsXpS::libXpertMassCore Isotope:

  Properties: 5

    QString name
    QString symbol
    double mass
    double probability
    bool isValid

  Invokables: 17

    Isotope(QObject *parent = nullptr);
    Isotope(const QString &name, const QString &symbol, double mass, double probability, QObject *parent = nullptr);
    Isotope(const QString &text, QObject *parent = nullptr);
    Isotope *clone(QObject *parent = nullptr) const;
    bool initialize(const QString &name, const QString &symbol, double mass, double probability);
    bool initialize(const QString &text);
    void clear();
    void setName(const QString &name);
    QString getName() const;
    void setSymbol(const QString &symbol);
    QString getSymbol() const;
    void setMass(double mass);
    double getMass() const;
    void setProbability(double probability);
    double getProbability() const;
    bool validate(ErrorList *error_list_p);
    QString toString() const;


