OpenMS
Loading...
Searching...
No Matches
ModifiedNASequenceGenerator.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Timo Sachsenberg $
6// $Authors: Timo Sachsenberg $
7// --------------------------------------------------------------------------
8
9#pragma once
10
14#include <vector>
15#include <map>
16#include <set>
17
18namespace OpenMS
19{
38 class OPENMS_DLLAPI ModifiedNASequenceGenerator
39 {
40 public:
42
61 const std::set<ConstRibonucleotidePtr>& fixed_mods,
62 NASequence& sequence);
63
88 const std::set<ConstRibonucleotidePtr>& var_mods,
89 const NASequence& seq, Size max_variable_mods_per_NASequence,
90 std::vector<NASequence>& all_modified_NASequences,
91 bool keep_original = true);
92
93 protected:
110 const std::vector<int>& subset_indices,
111 const std::map<int, std::vector<ConstRibonucleotidePtr>>& map_compatibility,
112 int depth,
113 const NASequence& current_NASequence,
114 std::vector<NASequence>& modified_NASequences);
115
129 const std::set<ConstRibonucleotidePtr>& var_mods,
130 const NASequence& seq,
131 std::vector<NASequence>& all_modified_NASequences,
132 bool keep_original = true);
133 };
134}
135
Generator of modified nucleic-acid sequences for fixed and variable modification placement.
Definition ModifiedNASequenceGenerator.h:39
static void applyFixedModifications(const std::set< ConstRibonucleotidePtr > &fixed_mods, NASequence &sequence)
Apply all compatible fixed modifications from fixed_mods to sequence in place.
static void applyAtMostOneVariableModification_(const std::set< ConstRibonucleotidePtr > &var_mods, const NASequence &seq, std::vector< NASequence > &all_modified_NASequences, bool keep_original=true)
Fast specialisation of variable-modification placement for at most one modification per sequence.
static void recurseAndGenerateVariableModifiedSequences_(const std::vector< int > &subset_indices, const std::map< int, std::vector< ConstRibonucleotidePtr > > &map_compatibility, int depth, const NASequence &current_NASequence, std::vector< NASequence > &modified_NASequences)
Recursive helper for applyVariableModifications — enumerate every assignment of compatible modificati...
static void applyVariableModifications(const std::set< ConstRibonucleotidePtr > &var_mods, const NASequence &seq, Size max_variable_mods_per_NASequence, std::vector< NASequence > &all_modified_NASequences, bool keep_original=true)
Enumerate all sequence variants obtained by combinatorially placing up to max_variable_mods_per_NASeq...
Representation of a nucleic acid sequence.
Definition NASequence.h:36
Representation of a ribonucleotide (modified or unmodified)
Definition Ribonucleotide.h:28
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19