| | |
The Fragmenter class provides a model for performing gas phase fragmentation reactions involving FragmentationPathway objects and Polymer Sequences. More...
| Header: | #include <Fragmenter.hpp> |
| Fragmenter(MsXpS::libXpertMassCore::PolymerCstQSPtr polymer_cqsp, MsXpS::libXpertMassCore::PolChemDefCstSPtr pol_chem_def_csp, const std::vector<MsXpS::libXpertMassCore::FragmentationConfig> &fragmentation_configs, const MsXpS::libXpertMassCore::CalcOptions &calc_options, const MsXpS::libXpertMassCore::Ionizer &ionizer) | |
| Fragmenter(const MsXpS::libXpertMassCore::Fragmenter &other) | |
| ~Fragmenter() | |
| std::size_t | accountFormulas(MsXpS::libXpertMassCore::OligomerSPtr &&template_oligomer_sp, MsXpS::libXpertMassCore::OligomerCollection &oligomers, const MsXpS::libXpertMassCore::FragmentationConfig &fragmentation_config, const QString &name, int charge) |
| bool | accountFragmentationRule(MsXpS::libXpertMassCore::FragmentationRuleSPtr fragmentation_rule_sp, bool only_for_checking, std::size_t monomer_index, MsXpS::libXpertMassCore::Enums::FragEnd frag_end, double &mono, double &avg) |
| MsXpS::libXpertMassCore::OligomerCollection | accountIonizationLevels(MsXpS::libXpertMassCore::OligomerCollection &oligomers, const MsXpS::libXpertMassCore::FragmentationConfig &fragmentation_config) |
| void | addFragmentationConfig(const MsXpS::libXpertMassCore::FragmentationConfig &fragmentation_config) |
| bool | fragment() |
| int | fragmentEndLeft(const MsXpS::libXpertMassCore::FragmentationConfig &fragmentation_config) |
| int | fragmentEndNone(const MsXpS::libXpertMassCore::FragmentationConfig &fragmentation_config) |
| int | fragmentEndRight(const MsXpS::libXpertMassCore::FragmentationConfig &fragmentation_config) |
| const MsXpS::libXpertMassCore::CalcOptions & | getCalcOptionsCstRef() const |
| MsXpS::libXpertMassCore::CalcOptions & | getCalcOptionsRef() |
| const std::vector<MsXpS::libXpertMassCore::FragmentationConfig> & | getFragmentationConfigsCstRef() const |
| std::vector<MsXpS::libXpertMassCore::FragmentationConfig> & | getFragmentationConfigsRef() |
| const MsXpS::libXpertMassCore::Ionizer & | getIonizerCstRef() const |
| MsXpS::libXpertMassCore::Ionizer & | getIonizerRef() |
| const MsXpS::libXpertMassCore::OligomerCollection & | getOligomerCollectionCstRef() const |
| MsXpS::libXpertMassCore::OligomerCollection & | getOligomerCollectionRef() |
| void | transferOligomer(MsXpS::libXpertMassCore::OligomerSPtr &&source_oligomer_sp, MsXpS::libXpertMassCore::OligomerCollection &dest) |
| std::size_t | transferOligomers(MsXpS::libXpertMassCore::OligomerCollection &source, MsXpS::libXpertMassCore::OligomerCollection &dest) |
| MsXpS::libXpertMassCore::CalcOptions | m_calcOptions |
| std::vector<MsXpS::libXpertMassCore::CrossLinkedRegion> | m_crossLinkedRegions |
| std::vector<MsXpS::libXpertMassCore::FragmentationConfig> | m_fragmentationConfigs |
| MsXpS::libXpertMassCore::Ionizer | m_ionizer |
| MsXpS::libXpertMassCore::OligomerCollection | m_oligomers |
| MsXpS::libXpertMassCore::PolChemDefCstSPtr | mcsp_polChemDef |
| MsXpS::libXpertMassCore::PolymerCstQSPtr | mcsp_polymer |
The fragmentation process is configured by the member vector of FragmentationConfig instances that may store, for example, all the fragmentation pathways that need to be dealt with in the inner workings of this Fragmenter class. For example, the user might want to perform a series of fragmentation involving pathways b and y for protein fragmentation.
See also FragmentationPathway, FragmentationRule, FragmentationConfig, and Ionizer.
Constructs a Fragmenter instance with a number of parameters.
If polymer_cqsp or pol_chem_def_csp is nullptr, that is a fatal error.
Constructs Fragmenter instance as a copy of other.
If polymer_cqsp or pol_chem_def_csp is nullptr, that is a fatal error.
[noexcept] Fragmenter::~Fragmenter()Desstructs this Fragmenter instance
Generates as many more Oligomer fragments are there are Formula instances to be accounted for.
template_oligomer_sp is the Oligomer instance that serves as a template to generate as many variants as there are Formula instances in the fragmentation_config's member container of Formula instances. For example, if the caller wants to generate for each Oligomer frament a variant with -H2O and -NH3 formulas applied, then each fragment Oligomer in the oligomers collection will generate two variants: one with water-production decomposition and one with ammonia-producing decomposition. Thus, in the end, there will be as many times more fragment Oligomer instances in oligomers as there are Formula instances to be accounted for.
name and charge are the name and charge onto which base the creation of the variant fragment Oligomer new name so that the fragment Oligomer has a name that documents the kind of fragmentation pathway is was generated from along with both the Formula that was accounted for and finally its charge.
Returns the count of variant fragment Oligomer instances that were added into the oligomers collection.
Accounts for the fragmentation_rule_sp FragmentationRule if the Monomer instance at monomer_index matches the requirement of the rule along with frag_end.
The masses are accounted to mono and avg.
If only_for_checking is true, then the computation is only a verification that the FragmentationRule is to be accounted for. If only_for_checking is false, the fragmentation rule is actually accounted for.
Returns true if the FragmentationRule should be accounted for (if only_for_checking is true) or if it was effectively accounted for (if only_for_checking is false), false otherwise.
For each ionization level contained in the fragmentation_config start and stop ionization level members, create fragment Oligomer variants of all the Oligomer instances present in oligomers.
The generated fragment Oligomer instances are stored in a OligomerCollection that is returned.
Adds fragmentation_config to the member container of FragmentationConfig instances.
Performs the actual fragmentation and returns true if successful, false otherwise.
All the FragmentationConfig instances in the member container are iterated into and the fragmentation procedure is implemented, storing all the generated fragment Oligomer instances in the member OligomerCollection instance.
Performs the actual fragmentation in the specific case that fragmentation_config indicates the fragment Oligomers to be generated contain the left Polymer end (like b ions in protein gas phase chemistry).
Returns the count of produced fragment Oliogomer instances.
Performs the actual fragmentation in the specific case that fragmentation_config indicates the fragment Oligomers to be generated contain no Polymer end (like immonium ions in protein gas phase chemistry).
Returns the count of produced fragment Oliogomer instances.
the actual fragmentation in the specific case that fragmentation_config indicates the fragment Oligomers to be generated contain the right Polymer end (like y ions in protein gas phase chemistry).
Returns the count of produced fragment Oliogomer instances.
b*rief Returns a constant reference to the CalcOptions instance.
b*rief Returns a reference to the CalcOptions instance.
Returns a constant reference to the container of FragmentationConfig instances.
Returns a reference to the container of FragmentationConfig instances.
Returns a constant reference to the Ionizer instance.
Returns a reference to the Ionizer instance.
Returns a const reference to the member OligomerCollection instance.
Returns a reference to the member OligomerCollection instance.
Transfers (using std::move()) source_oligomer_sp to dest.
Transfers (using std::move()) all the Oligomer instances from source to dest.
After the transfer, the source Oligomer container is cleared since it contains only nullptr items.
This variable holds the CalcOptions that configure the way masses and formulas are to be computed.
This variable holds the vector of CrossLinkedRegion that describe the way product ion fragments might involved CrossLink instances.
See also CrossLinkedRegion.
This variable holds the container of FragmentationConfig instances that collectively configure the fragmentation pathways to implement during the fragmentation process.
This variable holds the Ionizer that directs the ionization of the Oligomer instances obtained by cleaving the Polymer.
This variable holds the vector of fragment Oligomer instances (product ions) generated as a result of the fragmentation.
This variable holds the PolChemDef polymer chemistry definition that is the context in which the Polymer exists.
This variable holds the Polymer polymer that is being cleaved (digested).