|
| | SeedHandler (const InteractionEnergy &energy, const SeedConstraint &seedConstraint) |
| |
| virtual | ~SeedHandler () |
| |
| virtual const SeedConstraint & | getConstraint () const |
| |
| virtual const InteractionEnergy & | getInteractionEnergy () const |
| |
| virtual size_t | fillSeed (const size_t i1, const size_t j1, const size_t i2, const size_t j2)=0 |
| |
| virtual void | traceBackSeed (Interaction &interaction, const size_t i1, const size_t i2) const =0 |
| |
| virtual E_type | getSeedE (const size_t i1, const size_t i2) const =0 |
| |
| virtual bool | isSeedBound (const size_t i1, const size_t i2) const =0 |
| |
| virtual size_t | getSeedLength1 (const size_t i1, const size_t i2) const =0 |
| |
| virtual size_t | getSeedLength2 (const size_t i1, const size_t i2) const =0 |
| |
| virtual bool | updateToNextSeed (size_t &i1, size_t &i2, const size_t i1min=0, const size_t i1max=RnaSequence::lastPos, const size_t i2min=0, const size_t i2max=RnaSequence::lastPos) const |
| |
| virtual void | addSeeds (Interaction &i) const |
| |
| virtual bool | areLoopOverlapping (const size_t i1, const size_t i2, const size_t k1, const size_t k2) const |
| |
| virtual bool | isFeasibleSeedBasePair (const size_t i1, const size_t i2, const bool atEndOfSeed=false) const |
| |
Abstract interface to provide seed interaction information
| virtual bool IntaRNA::SeedHandler::areLoopOverlapping |
( |
const size_t |
i1, |
|
|
const size_t |
i2, |
|
|
const size_t |
k1, |
|
|
const size_t |
k2 |
|
) |
| const |
|
virtual |
Checks whether or not two seeds are loop overlapping, ie. given i1 < k1, the last x (>1) base pairs of seed(i1,i2) are equal to the first x base pairs of seed(k1,k2), or vice versa if k1 < i1.
- Parameters
-
| i1 | the left most interacting base of seq1 of seedA |
| i2 | the left most interacting base of seq2 of seedA |
| k1 | the left most interacting base of seq1 of seedB |
| k2 | the left most interacting base of seq2 of seedB |
- Returns
- true if seedA and seedB exist and they are loop overlapping; false otherwise
Reimplemented in IntaRNA::SeedHandlerIdxOffset.
| virtual bool IntaRNA::SeedHandler::updateToNextSeed |
( |
size_t & |
i1, |
|
|
size_t & |
i2, |
|
|
const size_t |
i1min = 0, |
|
|
const size_t |
i1max = RnaSequence::lastPos, |
|
|
const size_t |
i2min = 0, |
|
|
const size_t |
i2max = RnaSequence::lastPos |
|
) |
| const |
|
virtual |
Replace the input variables i1 and i2 to values to within the given range that correspond to
- the first seed (if the given index pair is no valid seed start or one of the indices is out of range bounds)
- the next seed according to some seed order
The indices are not updated if the last seed within the range is given or no seed within the range could be found. It returns whether or not the input variables have been updated.
Note, if changed, only the seed left-most base pair is within the range but the full seed indices might exceed i1max or i2max.
- Parameters
-
| i1 | seq1 seed index to be changed |
| i2 | seq2 seed index to be changed |
| i1min | first position within seq1 (inclusive) |
| i1max | last position within seq1 (inclusive) |
| i2min | first position within seq2 (inclusive) |
| i2max | last position within seq2 (inclusive) |
- Returns
- true if the input variables have been changed; false otherwise
Reimplemented in IntaRNA::SeedHandlerExplicit, IntaRNA::SeedHandlerIdxOffset, and IntaRNA::SeedHandlerNoBulge.