| <large>libXpertMassCore and libXpertMassGui Developer Documentation</large>

- libXpertMassCore
- FragmentationConfig

# MsXpS::libXpertMassCore::FragmentationConfig Class

class MsXpS::libXpertMassCore::FragmentationConfig

The FragmentationConfig class derives from FragmentationPathway and adds functionality to configure the way the fragmentation occurs in the Oligomer Sequence. More...

Header: | `#include <FragmentationConfig.hpp>`
Inherits: | MsXpS::libXpertMassCore::FragmentationPathway

- List of all members, including inherited members
- FragmentationConfig is part of Gas-phase chemical reactions.

## Public Functions

| FragmentationConfig(const MsXpS::libXpertMassCore::FragmentationPathway &fragmentation_pathway, int start_index = 0, int stop_index = 0, bool sequence_embedded = false)
| FragmentationConfig(MsXpS::libXpertMassCore::PolChemDefCstSPtr pol_chem_def_csp, const QString &name, const QString &formula, MsXpS::libXpertMassCore::Enums::FragEnd frag_end = Enums::FragEnd::NE, const QString &comment = QString(), bool sequence_embedded = false)
| FragmentationConfig(const MsXpS::libXpertMassCore::FragmentationConfig &other)
virtual | ~FragmentationConfig()
bool | addFormula(const MsXpS::libXpertMassCore::Formula &formula)
bool | addFormula(const QString &formula_string)
const std::vector<MsXpS::libXpertMassCore::Formula> & | getFormulasCstRef() const
std::vector<MsXpS::libXpertMassCore::Formula> & | getFormulasRef()
std::size_t | getStartIndex() const
std::size_t | getStartIonizeLevel() const
std::size_t | getStopIndex() const
std::size_t | getStopIonizeLevel() const
bool | isSequenceEmbedded() const
void | setIonizeLevels(std::size_t start, std::size_t stop)
void | setSequenceEmbedded(bool value)
void | setStartIndex(std::size_t index)
void | setStartIonizeLevel(std::size_t value)
void | setStopIndex(std::size_t index)
void | setStopIonizeLevel(std::size_t value)
QString | toString() const
MsXpS::libXpertMassCore::FragmentationConfig & | operator=(const MsXpS::libXpertMassCore::FragmentationConfig &other)

## Protected Variables

std::vector<MsXpS::libXpertMassCore::Formula> | m_formulas
bool | m_sequenceEmbedded
std::size_t | m_startIndex
std::size_t | m_startIonizeLevel
std::size_t | m_stopIndex
std::size_t | m_stopIonizeLevel

## Detailed Description

Since an Oligomer is actually defined to merely be a monomer range in a given Polymer Sequence, the configuration handles the definition of the Polymer sequence region that needs to undergo fragmentation.

Because the user might need to apply specific gas phase chemical reactions upon fragmentation of the Oligomer that are not defined per se in the FragmentationPathway, a container of formulas enables the application of any number of such chemical reactions for each fragmentation event. This is useful in any polymer chemistry definition, because most often the Oligomer undergoing fragmentation has loss of neutral ions decompositions like NH3 or H2O.

The user might need to generate fragmentation ions that are of different ionization levels. This class provides settings for this eventuality.

See also FragmentationPathway.

## Member Function Documentation

### FragmentationConfig::FragmentationConfig(const MsXpS::libXpertMassCore::FragmentationPathway &fragmentation_pathway, int start_index = 0, int stop_index = 0, bool sequence_embedded = false)

Constructs a fragmentation configuration with a number of parameters.

- fragmentation_pathway Fragmentation pathway that will become the base class instance of this instance.
- start_index Start position (index) in the Polymer Sequence that delimits the Oligomer undergoing fragmentation.
- stop_index Stop position (index) in the Polymer Sequence that delimits the Oligomer undergoing fragmentation.
- sequence_embedded Indicates if the product ion sequence needs to be stored in the fragment Oligomer.

The PolChemDef member of the FragmentationPathway base class is tested. If it is nullptr, that is a fatal error.

See also FragmentationPathway.

### FragmentationConfig::FragmentationConfig(MsXpS::libXpertMassCore::PolChemDefCstSPtr pol_chem_def_csp, const QString &name, const QString &formula, MsXpS::libXpertMassCore::Enums::FragEnd frag_end = Enums::FragEnd::NE, const QString &comment = QString(), bool sequence_embedded = false)

Constructs a fragmentation configuration with a number of parameters.

- pol_chem_def_csp Polymer chemistry definition that is passed to the FragmentationPathway base class. Cannot be nullptr (fatal error if so).
- name Name that is passed to the FragmentationPathway base class. Cannot be empty.
- formula Formula that is passed to the FragmentationPathway base class.
- frag_end The end of the Oligomer undergoing fragmentation that is found in the product ions. Used to initialize the FragmentationPathway base class.
- comment Comment that is passed to the FragmentationPathway base class. Defaults to the null string.
- sequence_embedded Indicates if the product ion sequence needs to be stored in the fragment Oligomer.

See also FragmentationPathway.

### FragmentationConfig::FragmentationConfig(const MsXpS::libXpertMassCore::FragmentationConfig &other)

Constructs a fragmentation configuration as a copy of other.

The PolChemDef member of the FragmentationPathway base class is tested. If it is nullptr, that is a fatal error.

See also FragmentationPathway.

### `[virtual noexcept]` FragmentationConfig::~FragmentationConfig()

Constructs this fragmentation configuration.

### bool FragmentationConfig::addFormula(const MsXpS::libXpertMassCore::Formula &formula)

Adds a formula to the container of Formula instances.

Returns true if the formula validated successfully, false otherwise.

### bool FragmentationConfig::addFormula(const QString &formula_string)

Adds a Formula to the container of Formula instances using formula_string.

### const std::vector<MsXpS::libXpertMassCore::Formula> &FragmentationConfig::getFormulasCstRef() const

Returns a const reference to the container of Formula instances.

### std::vector<MsXpS::libXpertMassCore::Formula> &FragmentationConfig::getFormulasRef()

Returns a reference to the container of Formula instances.

### std::size_t FragmentationConfig::getStartIndex() const

Returns the Oligomer start index in the Polymer Sequence.

### std::size_t FragmentationConfig::getStartIonizeLevel() const

Returns the start value of the ionization range.

### std::size_t FragmentationConfig::getStopIndex() const

Returns the Oligomer stop index in the Polymer Sequence.

### std::size_t FragmentationConfig::getStopIonizeLevel() const

Returns the stop value of the ionization range.

### bool FragmentationConfig::isSequenceEmbedded() const

Returns if the product ion Oligomer's sequence needs to be stored.

### void FragmentationConfig::setIonizeLevels(std::size_t start, std::size_t stop)

Sets the start and stop values of the ionization range.

### void FragmentationConfig::setSequenceEmbedded(bool value)

Sets if the product ion Oligomer's sequence needs to be stored to value.

See also isSequenceEmbedded().

### void FragmentationConfig::setStartIndex(std::size_t index)

Sets the Oligomer start index in the Polymer Sequence.

### void FragmentationConfig::setStartIonizeLevel(std::size_t value)

Sets the start value of the ionization range.

### void FragmentationConfig::setStopIndex(std::size_t index)

Sets the Oligomer stop index in the Polymer Sequence.

### void FragmentationConfig::setStopIonizeLevel(std::size_t value)

Sets the stop value of the ionization range.

### QString FragmentationConfig::toString() const

Returns a string describing this FragmentationConfig instance.

### MsXpS::libXpertMassCore::FragmentationConfig &FragmentationConfig::operator=(const MsXpS::libXpertMassCore::FragmentationConfig &other)

Assigns other to this FragmentationConfig instance.

## Member Variable Documentation

### std::vector<MsXpS::libXpertMassCore::Formula> FragmentationConfig::m_formulas

Container for Formula instances that describe additional decomposition reactions like those often observed in protein gas phase chemistry (loss of ammonia and/or of water).

### bool FragmentationConfig::m_sequenceEmbedded

Specifies if the sequence of the fragments needs to be stored or not in the Oligomer fragments.

### std::size_t FragmentationConfig::m_startIndex

This variable holds the index that delimits the start position (index) of the Polymer Sequence that defines the Oligomer undergoing fragmentation.

### std::size_t FragmentationConfig::m_startIonizeLevel

This variable holds the first value of the ionization level range.

### std::size_t FragmentationConfig::m_stopIndex

This variable holds the index that delimits the stop position (index) of the Polymer Sequence that defines the Oligomer undergoing fragmentation.

### std::size_t FragmentationConfig::m_stopIonizeLevel

This variable holds the last value of the ionization level range.