135 return *(*vector_)[position_];
141 return (*vector_)[position_];
164 return (std::tie(vector_, position_) == std::tie(rhs.
vector_, rhs.
position_));
191 const std::vector<const Ribonucleotide*>*
vector_;
224 position_ = position;
256 return *(*vector_)[position_];
262 return (*vector_)[position_];
268 return (*vector_)[position_];
274 return Iterator(vector_, position_ + diff);
285 return Iterator(vector_, position_ - diff);
291 return (std::tie(vector_, position_) == std::tie(rhs.
vector_, rhs.
position_));
515 int max_attempts = 30,
516 bool keep_five_prime =
false,
bool keep_three_prime =
false)
const;
571 static std::string::const_iterator
parseMod_(
const std::string::const_iterator str_it,
const std::string& str,
NASequence& nas);
573 std::vector<const Ribonucleotide*>
seq_;
608 std::size_t seed = 0;
611 for (
const auto& ribo : seq)
614 const std::string& code = ribo.getCode();
620 if (five_prime !=
nullptr)
629 if (three_prime !=
nullptr)
Portable random shuffle with a reproducible, platform-independent random sequence.
Definition MathFunctions.h:479
ConstIterator of NASequence class.
Definition NASequence.h:78
ConstIterator(const std::vector< const Ribonucleotide * > *vec_ptr, difference_type position)
detailed constructor with pointer to the vector and offset position
Definition NASequence.h:95
const_pointer operator->() const
dereference operator
Definition NASequence.h:139
const value_type * const_pointer
Definition NASequence.h:83
const ConstIterator operator-(difference_type diff) const
backward jump operator
Definition NASequence.h:156
bool operator!=(const ConstIterator &rhs) const
inequality operator
Definition NASequence.h:168
const ConstIterator operator+(difference_type diff) const
forward jump operator
Definition NASequence.h:145
ConstIterator()=default
default constructor
ConstIterator & operator--()
decrement operator
Definition NASequence.h:181
std::random_access_iterator_tag iterator_category
Definition NASequence.h:86
bool operator==(const ConstIterator &rhs) const
equality comparator
Definition NASequence.h:162
Ribonucleotide value_type
Definition NASequence.h:80
std::vector< constvalue_type * >::difference_type difference_type
Definition NASequence.h:84
ConstIterator(const NASequence::Iterator &rhs)
copy constructor from Iterator
Definition NASequence.h:107
difference_type position_
Definition NASequence.h:194
ConstIterator(const ConstIterator &rhs)
copy constructor
Definition NASequence.h:102
value_type & reference
Definition NASequence.h:82
const std::vector< const Ribonucleotide * > * vector_
Definition NASequence.h:191
const value_type * pointer
Definition NASequence.h:85
const_reference operator*() const
dereference operator
Definition NASequence.h:133
virtual ~ConstIterator()
destructor
Definition NASequence.h:112
ConstIterator & operator++()
increment operator
Definition NASequence.h:174
ConstIterator & operator=(const ConstIterator &rhs)
assignment operator
Definition NASequence.h:119
difference_type operator-(ConstIterator rhs) const
Definition NASequence.h:150
const value_type & const_reference
Definition NASequence.h:81
Iterator of NASequence class.
Definition NASequence.h:204
const_pointer operator->() const
dereference operator
Definition NASequence.h:260
const value_type * const_pointer
Definition NASequence.h:211
pointer operator->()
mutable dereference operator
Definition NASequence.h:266
const Iterator operator+(difference_type diff) const
forward jump operator
Definition NASequence.h:272
Iterator & operator=(const Iterator &rhs)
assignment operator
Definition NASequence.h:240
virtual ~Iterator()
destructor
Definition NASequence.h:233
Iterator(std::vector< const Ribonucleotide * > *vec_ptr, difference_type position)
detailed constructor with pointer to the vector and offset position
Definition NASequence.h:221
difference_type operator-(Iterator rhs) const
Definition NASequence.h:277
Ribonucleotide value_type
Definition NASequence.h:208
bool operator==(const Iterator &rhs) const
equality comparator
Definition NASequence.h:289
std::vector< constvalue_type * >::difference_type difference_type
Definition NASequence.h:213
difference_type position_
Definition NASequence.h:320
value_type & reference
Definition NASequence.h:210
Iterator(const Iterator &rhs)
copy constructor
Definition NASequence.h:228
const value_type * pointer
Definition NASequence.h:212
const_reference operator*() const
dereference operator
Definition NASequence.h:254
bool operator!=(const Iterator &rhs) const
inequality operator
Definition NASequence.h:295
Iterator & operator++()
increment operator
Definition NASequence.h:301
Iterator & operator--()
decrement operator
Definition NASequence.h:308
const Iterator operator-(difference_type diff) const
backward jump operator
Definition NASequence.h:283
std::vector< const Ribonucleotide * > * vector_
Definition NASequence.h:317
const value_type & const_reference
Definition NASequence.h:209
Representation of a nucleic acid sequence.
Definition NASequence.h:37
const Ribonucleotide * get(size_t index)
Definition NASequence.h:358
ConstIterator cend() const
Definition NASequence.h:412
virtual ~NASequence()=default
NASequence & operator=(NASequence &&) &=default
Move assignment operator.
static std::string::const_iterator parseMod_(const std::string::const_iterator str_it, const std::string &str, NASequence &nas)
Parses modifications in square brackets.
bool operator<(const NASequence &rhs) const
less operator
static NASequence fromString(const std::string &s)
create NASequence object by parsing an OpenMS string
bool hasThreePrimeMod() const
NASequence getSuffix(Size length) const
Return sequence suffix of the given length (not start index!)
void setSequence(const std::vector< const Ribonucleotide * > &seq)
getter / setter for sequence
std::string toString() const
Iterator begin()
iterators
Definition NASequence.h:387
NASequence getShuffled(Math::RandomShuffler &shuffler, double identity_threshold=0.5, int max_attempts=30, bool keep_five_prime=false, bool keep_three_prime=false) const
Return a shuffled copy of this sequence with identity quality control.
bool operator==(const NASequence &rhs) const
destructor
bool hasFivePrimeMod() const
5' and 3' modifications
static void parseString_(const std::string &s, NASequence &nas)
double getMonoWeight(NASFragmentType type=Full, Int charge=0) const
utility functions
void setThreePrimeMod(const RibonucleotideChainEnd *r)
NASequence getPrefix(Size length) const
Return sequence prefix of the given length (not end index!)
std::vector< const Ribonucleotide * > & getSequence()
Definition NASequence.h:350
const Ribonucleotide *const & operator[](size_t index) const
Definition NASequence.h:369
friend std::ostream & operator<<(std::ostream &os, const NASequence &seq)
const std::vector< const Ribonucleotide * > & getSequence() const
Definition NASequence.h:345
ConstIterator end() const
Definition NASequence.h:402
bool operator!=(const NASequence &rhs) const
not quality
NASequence(std::vector< const Ribonucleotide * > s, const RibonucleotideChainEnd *five_prime, const RibonucleotideChainEnd *three_prime)
full constructor
void set(size_t index, const Ribonucleotide *r)
getter / setter for ribonucleotide elements (easily wrapped using pyOpenMS)
float getSequenceIdentity(const NASequence &other) const
Calculate sequence identity between this and another NASequence.
static NASequence fromString(const char *s)
create NASequence object by parsing a C string (character array)
NASequence getReversed(bool keep_five_prime=false, bool keep_three_prime=false) const
Return a reversed copy of this sequence.
const Ribonucleotide *& operator[](size_t index)
getter / setter for sequence elements (C++ container style)
Definition NASequence.h:364
EmpiricalFormula getFormula(NASFragmentType type=Full, Int charge=0) const
Get the formula for a NASequence.
NASFragmentType
an enum of all possible fragment ion types
Definition NASequence.h:44
@ AminusB
A ion with base loss, added for nucleic acid support.
Definition NASequence.h:63
@ YIon
MS:1001220 peptide bond up to the C-terminus.
Definition NASequence.h:53
@ XIon
MS:1001228 amide/C-alpha bond up to the C-terminus.
Definition NASequence.h:52
@ ZIon
MS:1001230 C-alpha/carbonyl carbon bond.
Definition NASequence.h:54
@ WIon
W ion, added for nucleic acid support.
Definition NASequence.h:62
@ BIonMinusH20
MS:1001222 b ion without water.
Definition NASequence.h:56
@ BIonMinusNH3
MS:1001232 b ion without ammonia.
Definition NASequence.h:58
@ AIon
MS:1001229 N-terminus up to the C-alpha/carbonyl carbon bond.
Definition NASequence.h:49
@ Precursor
MS:1001523 Precursor ion.
Definition NASequence.h:55
@ YIonMinusH20
MS:1001223 y ion without water.
Definition NASequence.h:57
@ NonIdentified
MS:1001240 Non-identified ion.
Definition NASequence.h:60
@ BIon
MS:1001224 N-terminus up to the peptide bond.
Definition NASequence.h:50
@ ThreePrime
only 3' terminus
Definition NASequence.h:48
@ CIon
MS:1001231 N-terminus up to the amide/C-alpha bond.
Definition NASequence.h:51
@ YIonMinusNH3
MS:1001233 y ion without ammonia.
Definition NASequence.h:59
@ Internal
internal, without any termini
Definition NASequence.h:46
@ Unannotated
no stored annotation
Definition NASequence.h:61
@ FivePrime
only 5' terminus
Definition NASequence.h:47
@ DIon
D ion, added for nucleic acid support.
Definition NASequence.h:64
NASequence & operator=(const NASequence &) &=default
Copy assignment operator.
ConstIterator cbegin() const
Definition NASequence.h:407
double getAverageWeight(NASFragmentType type=Full, Int charge=0) const
Get the Average Weight of a NASequence. NB returns the uncharged mass + or - proton masses to match t...
Iterator end()
Definition NASequence.h:397
NASequence getSubsequence(Size start=0, Size length=Size(-1)) const
Return subsequence with given starting position and length.
std::vector< const Ribonucleotide * > seq_
Definition NASequence.h:573
void setFivePrimeMod(const RibonucleotideChainEnd *r)
ConstIterator begin() const
Definition NASequence.h:392
const RibonucleotideChainEnd * getThreePrimeMod() const
const RibonucleotideChainEnd * getFivePrimeMod() const
NASequence(NASequence &&)=default
Move constructor.
NASequence(const NASequence &)=default
default constructor
Representation of a ribonucleotide (modified or unmodified)
Definition Ribonucleotide.h:28
const std::string getCode() const
Return the short name.
int Int
Signed integer type.
Definition Types.h:72
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
bool operator==(const IDBoostGraph::ProteinGroup &lhs, const IDBoostGraph::ProteinGroup &rhs)
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
void hash_combine(std::size_t &seed, std::size_t value) noexcept
Combine a hash value with additional data using golden ratio mixing.
Definition HashUtils.h:87
std::size_t fnv1a_hash_string(const std::string &s) noexcept
FNV-1a hash for a string.
Definition HashUtils.h:70
std::size_t operator()(const OpenMS::NASequence &seq) const noexcept
Definition NASequence.h:606