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

- libXpertMassCore
- AbstractLowMassDeconvolver

# MsXpS::libXpertMassCore::Processing::AbstractLowMassDeconvolver Class

class MsXpS::libXpertMassCore::Processing::AbstractLowMassDeconvolver

The AbstractLowMassDeconvolver class manages the deconvolution of low mass analytes mass spectra. More...

Header: | `#include <MsXpS/libXpertMassCore/Processing/AbstractLowMassDeconvolver.hpp>`
Inherited By: | MsXpS::libXpertMassCore::Processing::LowMassDeconvolverFullLabelling and MsXpS::libXpertMassCore::Processing::LowMassDeconvolverNoLabelling

- List of all members, including inherited members
- AbstractLowMassDeconvolver is part of libXpertMassCore Data processing.

## Public Functions

| AbstractLowMassDeconvolver(const MsXpS::libXpertMassCore::Processing::LowMassDeconvolverParameters &parameters)
virtual | ~AbstractLowMassDeconvolver()

## Protected Functions

pappso::Trace | collapseTheoreticalIsotopicCluster(const pappso::Trace &theoretical_cluster) const
pappso::Trace | convertFromNeutralToChargedIsotopicCluster(const pappso::Trace &neutral_isotopic_cluster, int charge) const
QList<MsXpS::libXpertMassCore::Processing::DeconvolutedFeature> | groupByNeutralMass(const std::vector<MsXpS::libXpertMassCore::Processing::ChargeSpecificFeature> &charge_specific_features) const
pappso::Trace | isotopicClusterForFormula(const QString &formula, double intensity) const
pappso::Trace | isotopicClusterForNeutralMass(double neutral_mass, double intensity, QString &message) const
double | neutralToMz(double neutral_mass, int charge) const
pappso::Trace | selectCandidatePeaks(const pappso::Trace &input_centroids) const

## Protected Variables

MsXpS::libXpertMassCore::Processing::LowMassDeconvolverParameters | m_params

## Detailed Description

By low mass analytes, it is meant that the isotopic cluster they produce is shaped with the monoisotopic peak most intense of all.

In the protein chemistry field, small analytes are those that are contained in the [100 - 2000] dalton range.

The AbstractLowMassDeconvolver class serves as the base class to two classes specialized in the low mass deconvolution of mass spectra acquired either on natural isotopic abundance analytes (LowMassDeconvolverNoLabelling) or on analytes fully labelled with stable heavy isotopes (LowMassDeconvolverFullLabelling; which inverts the shape of the isotopic cluster while maintaining the monoisotopic isotopologue peak the most intense of all).

## Member Function Documentation

### `[explicit]` AbstractLowMassDeconvolver::AbstractLowMassDeconvolver(const MsXpS::libXpertMassCore::Processing::LowMassDeconvolverParameters &parameters)

Constructs a LowMassDeconvolver instance using parameters.

The parameters structure members are used to initialize the isotopic data and the Averagine formula. Any failure to do so triggers qFatal() calls.

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

Destructs this instance.

### `[protected]` pappso::Trace AbstractLowMassDeconvolver::collapseTheoreticalIsotopicCluster(const pappso::Trace &theoretical_cluster) const

Converts the highly detailed (with hyperfine isotopic structure centroids) theoretical_cluster isotopic cluster into a cluster where very close peaks are merged (which is what is called the collapse). The new isotopic cluster is returned as a pappso::Trace.

See also BinnedIsotopicCentroid.

### `[protected]` pappso::Trace AbstractLowMassDeconvolver::convertFromNeutralToChargedIsotopicCluster(const pappso::Trace &neutral_isotopic_cluster, int charge) const

Converts the input neutral_isotopic_cluster into an isotopic cluster of charge and returns it as a new pappso::Trace.

See also neutralToMz.

### `[protected]` QList<MsXpS::libXpertMassCore::Processing::DeconvolutedFeature> AbstractLowMassDeconvolver::groupByNeutralMass(const std::vector<MsXpS::libXpertMassCore::Processing::ChargeSpecificFeature> &charge_specific_features) const

Iterates in the each ChargeSpecificFeature in charge_specific_features and checks if multiple items in it correspond to the same neutral analyte.

The notion here is that a given analyte might be found as ions of different charges and the input centroids might thus have matched theoretical isotopic clusters generated from different ChargeSpecificFeature instances of the same analyte. Each time a ChargeSpecificFeature instance is iterated into, it triggers either the allocation of a new DeconvolutedFeature instance if no previous instance was found for the corresponding neutral mass, or the update of an existing instance if an instance already existed with the same neutral mass.

The created DeconvolutedFeature instances (neutral mass along with supporting ions) are returned in a container.

### `[protected]` pappso::Trace AbstractLowMassDeconvolver::isotopicClusterForFormula(const QString &formula, double intensity) const

Creates an isotopic cluster for formula with its intensity set to intensity and returns it as a pappso::Trace.

The IsotopicClusterGenerator used for the calculation is configured using the isotopic data provided in the m_params (LowMassDeconvolverParameters) Averagine member.

### `[protected]` pappso::Trace AbstractLowMassDeconvolver::isotopicClusterForNeutralMass(double neutral_mass, double intensity, QString &message) const

Creates an isotopic cluster for neutral_mass with the specified intensity and returns it as a pappso::Trace.

Any message that needs to be fed back to the caller is appended to message.

First, the neutral mass is used to establish a corresponding Averagine-based neutral formula. The formula is then used to create the isotopic cluster.

See also isotopicClusterForFormula.

### `[protected]` double AbstractLowMassDeconvolver::neutralToMz(double neutral_mass, int charge) const

Returns the m/z value calculated by ionizing neutral_mass with charge protons.

qFatal() is triggered if charge is 0.

    return (neutral_mass + charge * PROTON_MASS) / charge;

### `[protected]` pappso::Trace AbstractLowMassDeconvolver::selectCandidatePeaks(const pappso::Trace &input_centroids) const

Iterates in the input_centroids centroided mass spectrum and filters all the data points that have their m/z or intensity value outside of configured ranges (as defined in m_params).

Returns a new filtered pappso::Trace.

## Member Variable Documentation

### MsXpS::libXpertMassCore::Processing::LowMassDeconvolverParameters AbstractLowMassDeconvolver::m_params

This variable holds the LowMassDeconvolverParameters member.