#include <enumerator.h>
Public Types |
|
Type definitions
|
|
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. |
|
typedef void(* | MutatorFunction )(Variant &, const Variant &) |
Site mutator function. |
|
Public Member Functions |
|
Constructors and Destructors
|
|
Enumerator () | |
Default Constructor. |
|
Enumerator (Container &container) | |
Detailed Constructor. |
|
Enumerator (Container &container, MutatorFunction mutator) | |
Detailed Constructor. |
|
~Enumerator () | |
Default Destructor. |
|
Accessors
|
|
void | addVariants (const SiteIterator &it, const VariantVector &variants) |
Add variants to the list of
variants. |
|
void | deleteVariants (const SiteIterator &it, const VariantVector &variants) |
Delete variants from the list of
variants. |
|
Size | countVariants () |
Count all variants. |
|
Container & | getCurrent () |
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 () |
Iterator | end () |
ConstIterator | begin () const |
ConstIterator | end () const |
Protected Member Functions |
|
void | mutate_ (SiteIterator &it, const Variant &v) |
Static Protected Member Functions |
|
static 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
.
typedef void(* BALL::Enumerator< Container, SiteIterator, Variant >::MutatorFunction)(Variant &, const Variant &) |
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.
BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( | Container & | container | ) |
Detailed Constructor.
The mutator function is set to a default mutator, using
the assignment operator for Variant
.
container | a Container class to be mutated |
BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( | Container & | container, | |
MutatorFunction | mutator | |||
) |
Detailed Constructor.
container | a Container class to be mutated | |
mutator | the function defining the mutations to be applied |
Size BALL::Enumerator< Container, SiteIterator, Variant >::countVariants | ( | ) |
Count all variants.
void BALL::Enumerator< Container, SiteIterator, Variant >::createCombination | ( | const EnumeratorIndex & | index | ) | throw (EnumeratorIndex::IncompatibleIndex) |
Create a combination denoted by an instance of EnumeratorIndex.
index | the instance of EnumeratorIndex that describes the combination to be created |
void BALL::Enumerator< Container, SiteIterator, Variant >::createCombination | ( | const Position | index | ) | throw (Exception::IndexOverflow) |
Create a combination denoted by its number.
index | the number of the combination to be created |
Container & BALL::Enumerator< Container, SiteIterator, Variant >::getCurrent | ( | ) |
Access the current content.