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{
20 /*
21 * @brief This class applies fixed and variable modifications to (unmodified)
22 * nucleic acid sequences, combinatorically generating modified sequences.
23 *
24 */
25 class OPENMS_DLLAPI ModifiedNASequenceGenerator
26 {
27 public:
29
32 const std::set<ConstRibonucleotidePtr>& fixed_mods,
33 NASequence& sequence);
34
37 const std::set<ConstRibonucleotidePtr>& var_mods,
38 const NASequence& seq, Size max_variable_mods_per_NASequence,
39 std::vector<NASequence>& all_modified_NASequences,
40 bool keep_original = true);
41
42 protected:
45 const std::vector<int>& subset_indices,
46 const std::map<int, std::vector<ConstRibonucleotidePtr>>& map_compatibility,
47 int depth,
48 const NASequence& current_NASequence,
49 std::vector<NASequence>& modified_NASequences);
50
55 const std::set<ConstRibonucleotidePtr>& var_mods,
56 const NASequence& seq,
57 std::vector<NASequence>& all_modified_NASequences,
58 bool keep_original = true);
59 };
60}
61
Definition ModifiedNASequenceGenerator.h:26
static void applyFixedModifications(const std::set< ConstRibonucleotidePtr > &fixed_mods, NASequence &sequence)
Applies fixed modifications to a single NASequence.
static void applyAtMostOneVariableModification_(const std::set< ConstRibonucleotidePtr > &var_mods, const NASequence &seq, std::vector< NASequence > &all_modified_NASequences, bool keep_original=true)
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)
Recursively generate all combinatorial placements at compatible sites.
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)
Applies variable modifications to a single NASequence. If keep_original is set the original (e....
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