#include <enumerator.h>
Public Types | |
Type definitions | |
typedef void(* | MutatorFunction )(Variant &, const Variant &) |
Site mutator function. | |
typedef std::vector< Variant > | VariantVector |
A vector containing all possible variants for a specific site. | |
typedef std::pair< SiteIterator, VariantVector > | Site |
A combination of a site position and all its possible variants. | |
typedef std::list< Site > | SiteList |
A list of sites. | |
typedef ForwardIterator< Enumerator< Container, SiteIterator, Variant >, Container, EnumeratorIndex *, IteratorTraits_ > | Iterator |
Mutable forward iterator. | |
typedef ConstForwardIterator< Enumerator< Container, SiteIterator, Variant >, Container, EnumeratorIndex *, IteratorTraits_ > | ConstIterator |
Constant forward iterator. | |
Public Member Functions | |
Constructors and Destructors | |
Enumerator () throw () | |
Default Constructor. | |
Enumerator (Container &container) throw () | |
Detailed Constructor. | |
Enumerator (Container &container, MutatorFunction mutator) throw () | |
Detailed Constructor. | |
~Enumerator () throw () | |
Default Destructor. | |
Accessors | |
void | addVariants (const SiteIterator &it, const VariantVector &variants) throw () |
Add variants to the list of variants. | |
void | deleteVariants (const SiteIterator &it, const VariantVector &variants) throw () |
Delete variants from the list of variants. | |
Size | countVariants () throw () |
Count all variants. | |
Container & | getCurrent () throw () |
Access the current content. | |
void | createCombination (const Position index) throw (Exception::IndexOverflow) |
Create a combination denoted by its number. | |
void | createCombination (const EnumeratorIndex &index) throw (EnumeratorIndex::IncompatibleIndex) |
Create a combination denoted by an instance of EnumeratorIndex. | |
Iterators | |
Iterator | begin () throw () |
Iterator | end () throw () |
ConstIterator | begin () const throw () |
ConstIterator | end () const throw () |
Protected Member Functions | |
void | mutate_ (SiteIterator &it, const Variant &v) throw () |
Static Protected Member Functions | |
void | defaultAssign_ (Variant &a, const Variant &b) |
Protected Attributes | |
Container & | container_ |
MutatorFunction | mutator_ |
SiteList | variant_sites_ |
EnumeratorIndex | position_ |
bool | is_valid_position_ |
Friends | |
class | IteratorTraits_ |
The EnumeratorIndex class is designed to enumerate all possible combinations of things. Applications are e.g. the enumeration of all possible sequences defined through a multisequence or enumerating all possible rotamers of a peptide or a bindings site.
Container
it operates on (e.g. the String representing the sequence or the protein containing the amino acids)SiteIterator
(i.e. an iterator pointing to a defined position within the container)Variant
type (i.e. the type of the object to be enumerated). It has to be the same type as the dereferenced SiteIterator
.
In the case of a string sequence that has to be mutated, the Container
is of class String , the SiteIterator
is of type String::Iterator
, and Variant
is obviously of type char
.
|
Site mutator function. A function used to assing one variant of a site in the container to another. In the trivial case, this is just the assignment operator (as implemented in the default case), but more involved enumeration problems (e.g. side chain rotamer enumeration) might require additional code for the assignment of the true variant. |
|
A combination of a site position and all its possible variants.
|
|
A list of sites.
|
|
A vector containing all possible variants for a specific site.
|
|
Detailed Constructor.
The mutator function is set to a default mutator, using the assignment operator for
|
|
Detailed Constructor.
|
|
Count all variants.
|
|
Create a combination denoted by an instance of EnumeratorIndex.
|
|
Create a combination denoted by its number.
|
|
Access the current content.
|