IntaRNA 3.4.1
RNA-RNA interaction prediction | C++ API
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
IntaRNA::InteractionEnergyIdxOffset Class Reference

#include <InteractionEnergyIdxOffset.h>

Inheritance diagram for IntaRNA::InteractionEnergyIdxOffset:
Inheritance graph
[legend]
Collaboration diagram for IntaRNA::InteractionEnergyIdxOffset:
Collaboration graph
[legend]

Public Member Functions

 InteractionEnergyIdxOffset (const InteractionEnergy &energyOriginal, const size_t offset1=0, const size_t offset2=0)
 
virtual ~InteractionEnergyIdxOffset ()
 
size_t getOffset1 () const
 
void setOffset1 (size_t offset1)
 
size_t getOffset2 () const
 
void setOffset2 (size_t offset2)
 
virtual E_type getE (const size_t i1, const size_t j1, const size_t i2, const size_t j2, const E_type hybridE) const
 
virtual E_type getE (const Z_type Z) const
 
virtual bool areComplementary (const size_t i1, const size_t i2) const
 
virtual bool isGU (const size_t i1, const size_t i2) const
 
virtual size_t size1 () const
 
virtual size_t size2 () const
 
virtual E_type getED1 (const size_t i1, const size_t j1) const
 
virtual E_type getED2 (const size_t i2, const size_t j2) const
 
virtual bool isAccessible1 (const size_t i) const
 
virtual bool isAccessible2 (const size_t i) const
 
virtual E_type getE_multi (const size_t i1, const size_t j1, const size_t i2, const size_t j2, const ES_multi_mode ES_mode) const
 
virtual E_type getES1 (const size_t i1, const size_t j1) const
 
virtual E_type getES2 (const size_t i2, const size_t j2) const
 
virtual E_type getE_multiUnpaired (const size_t numUnpaired) const
 
virtual E_type getE_multiHelix (const size_t j1, const size_t j2) const
 
virtual E_type getE_multiClosing () const
 
virtual E_type getE_init () const
 
virtual E_type getE_interLeft (const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
 
virtual E_type getE_danglingLeft (const size_t i1, const size_t i2) const
 
virtual E_type getE_danglingRight (const size_t j1, const size_t j2) const
 
virtual E_type getE_endLeft (const size_t i1, const size_t i2) const
 
virtual E_type getE_endRight (const size_t j1, const size_t j2) const
 
virtual Z_type getPr_danglingLeft (const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
 
virtual Z_type getPr_danglingRight (const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
 
virtual Z_type getRT () const
 
virtual Interaction::BasePair getBasePair (const size_t i1, const size_t i2) const
 
virtual size_t getIndex1 (const Interaction::BasePair &bp) const
 
virtual size_t getIndex2 (const Interaction::BasePair &bp) const
 
virtual bool isValidInternalLoop (const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
 
virtual E_type getEall1 () const
 
virtual E_type getEall2 () const
 
- Public Member Functions inherited from IntaRNA::InteractionEnergy
 InteractionEnergy (const Accessibility &accS1, const ReverseAccessibility &accS2, const size_t maxInternalLoopSize1, const size_t maxInternalLoopSize2, const E_type energyAdd, const bool energyWithDangle, const bool internalLoopGU)
 
virtual ~InteractionEnergy ()
 
virtual EnergyContributions getE_contributions (const Interaction &interaction) const
 
virtual const Accessibility & getAccessibility1 () const
 
virtual const ReverseAccessibility & getAccessibility2 () const
 
const size_t getMaxInternalLoopSize1 () const
 
const size_t getMaxInternalLoopSize2 () const
 
virtual Z_type getBoltzmannWeight (const E_type energy) const
 
virtual Z_type getBoltzmannWeight (const Z_type energy) const
 
virtual E_type getEnergyAdd () const
 
bool isInternalLoopGUallowed () const
 

Protected Attributes

const InteractionEnergy & energyOriginal
 
size_t offset1
 
size_t offset2
 
- Protected Attributes inherited from IntaRNA::InteractionEnergy
const Accessibility & accS1
 accessibility values for sequence S1
 
const ReverseAccessibility & accS2
 accessibility values for sequence S2 (reversed index order)
 
const size_t maxInternalLoopSize1
 
const size_t maxInternalLoopSize2
 
const E_type energyAdd
 user defined shift of the energy spectrum
 
const bool energyWithDangles
 whether or not dangling end energy contributions are to be added
 
const bool internalLoopGU
 whether or not GU base pairs allowed in internal loops
 

Additional Inherited Members

- Public Types inherited from IntaRNA::InteractionEnergy
enum  ES_multi_mode { ES_multi_1only , ES_multi_2only , ES_multi_both }
 
- Static Protected Member Functions inherited from IntaRNA::InteractionEnergy
static bool isAllowedLoopRegion (const RnaSequence &seq, const size_t i, const size_t j, const size_t maxInternalLoopSize)
 

Detailed Description

Wrapper for a given InteractionEnergy object where indices are shifted by a given positive offset (shifted towards infinity). This is useful for local interaction computations.

Author
Martin Mann

Constructor & Destructor Documentation

◆ InteractionEnergyIdxOffset()

IntaRNA::InteractionEnergyIdxOffset::InteractionEnergyIdxOffset ( const InteractionEnergy &  energyOriginal,
const size_t  offset1 = 0,
const size_t  offset2 = 0 
)
inline

construction

Parameters
energyOriginalwrapped energy object used for computations
offset1the index offset for sequence 1
offset2the index offset for sequence 2

◆ ~InteractionEnergyIdxOffset()

IntaRNA::InteractionEnergyIdxOffset::~InteractionEnergyIdxOffset ( )
inlinevirtual

Member Function Documentation

◆ areComplementary()

bool IntaRNA::InteractionEnergyIdxOffset::areComplementary ( const size_t  i1,
const size_t  i2 
) const
inlinevirtual

Checks whether or not two positions (shifted by offset) can form a base pair

Parameters
i1index in first sequence
i2index in second sequence
Returns
true if seq1(i1) can form a base pair with seq2(i2)

Reimplemented from IntaRNA::InteractionEnergy.

◆ getBasePair()

Interaction::BasePair IntaRNA::InteractionEnergyIdxOffset::getBasePair ( const size_t  i1,
const size_t  i2 
) const
inlinevirtual

Provides the base pair encoding for the given indices after shifting by the used offset

Parameters
i1the index in the first sequence
i2the index in the (reversed) second sequence
Returns
the according base pair (i1+offset1,reverseIdx(i2+offset2))

Reimplemented from IntaRNA::InteractionEnergy.

◆ getE() [1/2]

E_type IntaRNA::InteractionEnergyIdxOffset::getE ( const size_t  i1,
const size_t  j1,
const size_t  i2,
const size_t  j2,
const E_type  hybridE 
) const
inlinevirtual

Provides the overall energy for an interaction from [i1,j1] in the first sequence and [i2,j2] in the second sequence given the hybridization energy contribution.

Parameters
i1the index of the first sequence interacting with i2
j1the index of the first sequence interacting with j2 with i1<=j1
i2the index of the second sequence interacting with i1
j2the index of the second sequence interacting with j1 with i2<=j2
hybridEthe hybridization energy for the interaction
Returns
E = hybridE
  • ED1(i1,j1) + ED2(i2,j2)
  • Edangle(i1,i2) + Edangle(j1,j2)
  • Eend(i1,i2) + Eend(j1,j2)

Reimplemented from IntaRNA::InteractionEnergy.

◆ getE() [2/2]

E_type IntaRNA::InteractionEnergyIdxOffset::getE ( const Z_type  Z) const
inlinevirtual

Provides the ensemble energy for a given partition function Z.

Parameters
Zthe ensemble's partition function to convert
Returns
E = -RT * log( Z )

Reimplemented from IntaRNA::InteractionEnergy.

◆ getE_danglingLeft()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_danglingLeft ( const size_t  i1,
const size_t  i2 
) const
inlinevirtual

Computes the dangling end energy penalties for the left side (i1-1 and i2-1) of the interaction closed by the intermolecular base pair (i1,i2).

Note, the indices are shifted by an offset for computation.

Parameters
i1the index of the first sequence interacting with i2
i2the index of the second sequence interacting with i1
Returns
the dangling end penalty for the left side of the interaction

Implements IntaRNA::InteractionEnergy.

◆ getE_danglingRight()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_danglingRight ( const size_t  j1,
const size_t  j2 
) const
inlinevirtual

Computes the dangling end energy penalties for the right side (j1+1 and j2+1) of the interaction closed by the intermolecular base pair (j1,j2).

Note, the indices are shifted by an offset for computation.

Parameters
j1the index of the first sequence interacting with j2
j2the index of the second sequence interacting with j1
Returns
the dangling end penalty for the right side of the interaction

Implements IntaRNA::InteractionEnergy.

◆ getE_endLeft()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_endLeft ( const size_t  i1,
const size_t  i2 
) const
inlinevirtual

Provides the penalty for closing an interaction with the given base pair on the "left side" (i1 = 5' end of seq1 of the interaction)

Note, the indices are shifted by an offset for computation.

Parameters
i1the index of the first sequence interacting with i2
i2the index of the second sequence interacting with i1
Returns
the loop closure penalty for the left side of the interaction

Implements IntaRNA::InteractionEnergy.

◆ getE_endRight()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_endRight ( const size_t  j1,
const size_t  j2 
) const
inlinevirtual

Provides the penalty for closing an interaction with the given base pair on the "right side" (j1 = 3' end of seq1 of the interaction)

Note, the indices are shifted by an offset for computation.

Parameters
j1the index of the first sequence interacting with j2
j2the index of the second sequence interacting with j1
Returns
the loop closure penalty for the right side of the interaction

Implements IntaRNA::InteractionEnergy.

◆ getE_init()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_init ( ) const
inlinevirtual

Provides the duplex initiation energy.

Returns
the energy for duplex initiation

Implements IntaRNA::InteractionEnergy.

◆ getE_interLeft()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_interLeft ( const size_t  i1,
const size_t  j1,
const size_t  i2,
const size_t  j2 
) const
inlinevirtual

Computes the energy estimate for the 'left side' interaction loop region closed by the intermolecular base pairs (i1,i2) and enclosing (j1,j2) where the regions [i1,j1] and [i2,j2] are considered unpaired or E_INF is the internal loop size exceeds the allowed maximum (see constructor).

Note, the indices are shifted by an offset for computation.

Note, the right interaction base pair (j1,j2) is not included in the returned energy value.

Parameters
i1the index of the first sequence interacting with i2
j1the index of the first sequence interacting with j2 with i1<=j1
i2the index of the second sequence interacting with i1
j2the index of the second sequence interacting with j1 with i2<=j2
Returns
the energy for the loop or E_INF if the allowed loop size is exceeded or no valid internal loop boundaries

Implements IntaRNA::InteractionEnergy.

◆ getE_multi()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_multi ( const size_t  i1,
const size_t  j1,
const size_t  i2,
const size_t  j2,
const ES_multi_mode  ES_mode 
) const
inlinevirtual

Provides the energy contribution of an interaction site gap, i.e. the provided regions are without intermolecular base pairs but are considered to be involved in intramolecular base pairs only. The multi-site gap is scored according to a multiloop in a single structure prediction model. The ends of the two regions are supposed to form an intermolecular base pair each, i.e. (i1,i2) and (j1,j2) have to be complementary.

Parameters
i1the start of the structured region of seq1
j1the end of the structured region of seq1
i2the start of the structured region of seq2
j2the end of the structured region of seq2
ES_modedefines for which sequence intramolecular structure contributions are to be considered
Returns
the energy contribution of a multi-site interaction gap

Reimplemented from IntaRNA::InteractionEnergy.

◆ getE_multiClosing()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_multiClosing ( ) const
inlinevirtual

Provides the energy contribution/penalty for closing an intermolecular interaction left of a multi-site gap.

Returns
the energy contribution/penalty of the intermolecular helix within an intramolecular multiloop

Implements IntaRNA::InteractionEnergy.

◆ getE_multiHelix()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_multiHelix ( const size_t  j1,
const size_t  j2 
) const
inlinevirtual

Provides the energy contribution/penalty of the helix repesented by the interaction right of a multi-site gap starting with base pair (j1,j2)

Parameters
j1the end of the gap in seq1, ie the first base paired in the interaction site to the right of the gap
j2the end of the gap in seq2, ie the first base paired in the interaction site to the right of the gap
Returns
the energy contribution/penalty of the intermolecular helix within an intramolecular multiloop

Implements IntaRNA::InteractionEnergy.

◆ getE_multiUnpaired()

E_type IntaRNA::InteractionEnergyIdxOffset::getE_multiUnpaired ( const size_t  numUnpaired) const
inlinevirtual

Provides the energy contribution for a given number of unpaired nucleotides under the assumption that the region is part of an (intermolecular) multiloop.

Parameters
numUnpairedthe number of unpaired bases
Returns
the energy contribution of the given number of unpaired bases within an intramolecular multiloop

Implements IntaRNA::InteractionEnergy.

◆ getEall1()

E_type IntaRNA::InteractionEnergyIdxOffset::getEall1 ( ) const
inlinevirtual

Provides the overall ensemble energy for sequence 1 given its accessibility constraints

Returns
Eall(constraint-conform intra-molecular structures for seq1)

Implements IntaRNA::InteractionEnergy.

◆ getEall2()

E_type IntaRNA::InteractionEnergyIdxOffset::getEall2 ( ) const
inlinevirtual

Provides the overall ensemble energy for sequence 2 given its accessibility constraints

Returns
Eall(constraint-conform intra-molecular structures for seq2)

Implements IntaRNA::InteractionEnergy.

◆ getED1()

E_type IntaRNA::InteractionEnergyIdxOffset::getED1 ( const size_t  i1,
const size_t  j1 
) const
inlinevirtual

Provides the ED penalty for making a region with sequence 1 accessible

Note, the indices are shifted by an offset for computation.

Parameters
i1the start of the accessible region
j1the end of the accessible region
Returns
the ED value for [i1,j1]

Reimplemented from IntaRNA::InteractionEnergy.

◆ getED2()

E_type IntaRNA::InteractionEnergyIdxOffset::getED2 ( const size_t  i2,
const size_t  j2 
) const
inlinevirtual

Provides the ED penalty for making a region with (the reversed) sequence 2 accessible

Note, the indices are shifted by an offset for computation.

Parameters
i2the start of the accessible region
j2the end of the accessible region
Returns
the ED value for [i2,j2]

Reimplemented from IntaRNA::InteractionEnergy.

◆ getES1()

E_type IntaRNA::InteractionEnergyIdxOffset::getES1 ( const size_t  i1,
const size_t  j1 
) const
inlinevirtual

Provides the ensemble energy (ES) of all intramolecular substructures that can be formed within a given region of sequence 1 under the assumption that the region is part of an (intermolecular) multiloop, i.e. at least one base pair is formed by each substructure.

If no structure can be formed within the region, E_INF is returned.

Parameters
i1the start of the structured region of seq1
j1the end of the structured region of seq1
Returns
the ES value for [i1,j1] or E_INF if no intramolecular structure can be formed

Implements IntaRNA::InteractionEnergy.

◆ getES2()

E_type IntaRNA::InteractionEnergyIdxOffset::getES2 ( const size_t  i2,
const size_t  j2 
) const
inlinevirtual

Provides the ensemble energy (ES) of all intramolecular substructures that can be formed within a given region of sequence 2 under the assumption that the region is part of an (intermolecular) multiloop, i.e. at least one base pair is formed by each substructure.

If no structure can be formed within the region, E_INF is returned.

Parameters
i2the start of the structured region of seq2
j2the end of the structured region of seq2
Returns
the ES value for [i2,j2] or E_INF if no intramolecular structure can be formed

Implements IntaRNA::InteractionEnergy.

◆ getIndex1()

size_t IntaRNA::InteractionEnergyIdxOffset::getIndex1 ( const Interaction::BasePair &  bp) const
inlinevirtual

Provides the index within the first sequence of the given base pair shifted by the offset.

Returns
the shifted index of the first sequence within the base pair encoding

Reimplemented from IntaRNA::InteractionEnergy.

◆ getIndex2()

size_t IntaRNA::InteractionEnergyIdxOffset::getIndex2 ( const Interaction::BasePair &  bp) const
inlinevirtual

Provides the (reversed) index within the second sequence of the given base pair shifted by the offset.

Returns
the shifted index of the second sequence within the base pair encoding

Reimplemented from IntaRNA::InteractionEnergy.

◆ getOffset1()

size_t IntaRNA::InteractionEnergyIdxOffset::getOffset1 ( ) const
inline

Access to the currently used index offset for sequence 1

Returns
the index offset for sequence 1 used

◆ getOffset2()

size_t IntaRNA::InteractionEnergyIdxOffset::getOffset2 ( ) const
inline

Access to the currently used index offset for sequence 2

Returns
the index offset for sequence 2 used

◆ getPr_danglingLeft()

Z_type IntaRNA::InteractionEnergyIdxOffset::getPr_danglingLeft ( const size_t  i1,
const size_t  j1,
const size_t  i2,
const size_t  j2 
) const
inlinevirtual

Computes the probability of the dangling ends for the left side (i1-1 and i2-1) of the interaction closed by the intermolecular base pair (i1,i2) for an interaction of [i1,j1] with [i2,j2].

Note, the indices are shifted by an offset for computation.

Parameters
i1the index of the first sequence interacting with i2
j1the index of the first sequence interacting with j2 with i1<=j1
i2the index of the second sequence interacting with i1
j2the index of the second sequence interacting with j1 with i2<=j2
Returns
the dangling end probability for the left side of the interaction

Reimplemented from IntaRNA::InteractionEnergy.

◆ getPr_danglingRight()

Z_type IntaRNA::InteractionEnergyIdxOffset::getPr_danglingRight ( const size_t  i1,
const size_t  j1,
const size_t  i2,
const size_t  j2 
) const
inlinevirtual

Computes the probability of the dangling ends for the right side (j1+1 and j2+1) of the interaction closed by the intermolecular base pair (j1,j2) for an interaction of [i1,j1] with [i2,j2].

Note, the indices are shifted by an offset for computation.

Parameters
i1the index of the first sequence interacting with i2
j1the index of the first sequence interacting with j2 with i1<=j1
i2the index of the second sequence interacting with i1
j2the index of the second sequence interacting with j1 with i2<=j2
Returns
the dangling end probability for the right side of the interaction

Reimplemented from IntaRNA::InteractionEnergy.

◆ getRT()

Z_type IntaRNA::InteractionEnergyIdxOffset::getRT ( ) const
inlinevirtual

Access to the normalized temperature for Boltzmann weight computation

Implements IntaRNA::InteractionEnergy.

◆ isAccessible1()

bool IntaRNA::InteractionEnergyIdxOffset::isAccessible1 ( const size_t  i) const
inlinevirtual

Whether or not position i is accessible for interaction in sequence 1

Note, the index is shifted by an offset for computation.

Parameters
ithe position of interest in sequence 1
Returns
true if the position can partake in an interaction; false otherwise

Reimplemented from IntaRNA::InteractionEnergy.

◆ isAccessible2()

bool IntaRNA::InteractionEnergyIdxOffset::isAccessible2 ( const size_t  i) const
inlinevirtual

Whether or not position i is accessible for interaction in sequence 2

Note, the index is shifted by an offset for computation.

Parameters
ithe position of interest in sequence 2
Returns
true if the position can partake in an interaction; false otherwise

Reimplemented from IntaRNA::InteractionEnergy.

◆ isGU()

bool IntaRNA::InteractionEnergyIdxOffset::isGU ( const size_t  i1,
const size_t  i2 
) const
inlinevirtual

Checks whether or not two positions can form a GU base pair

Parameters
i1index in first sequence
i2index in second sequence
Returns
true if seq1(i1) can form a GU base pair with seq2(i2)

Reimplemented from IntaRNA::InteractionEnergy.

◆ isValidInternalLoop()

bool IntaRNA::InteractionEnergyIdxOffset::isValidInternalLoop ( const size_t  i1,
const size_t  j1,
const size_t  i2,
const size_t  j2 
) const
inlinevirtual

Checks whether or not the given indices mark valid internal loop boundaries, i.e.

  • (i1,i2) and (j1,j2) are complementary
  • i1..j1 and i2..j2 are allowed loop regions
  • no boundary overlap ( (j1-i1==0 && j2-i2==0) || (j1-i1>0 && j2-i2>0) )
  • if !internalLoopGU : both ends are no GU base pairs
Parameters
i1the index of the first sequence interacting with i2
j1the index of the first sequence interacting with j2 with i1<=j1
i2the index of the second sequence interacting with i1
j2the index of the second sequence interacting with j1 with i2<=j2
Returns
true if the boundaries are sound for internal loop calculation; false otherwise

Reimplemented from IntaRNA::InteractionEnergy.

◆ setOffset1()

void IntaRNA::InteractionEnergyIdxOffset::setOffset1 ( size_t  offset1)
inline

Sets the index offset to be used for sequence 1

Parameters
offset1the index offset for sequence 1 to be used

◆ setOffset2()

void IntaRNA::InteractionEnergyIdxOffset::setOffset2 ( size_t  offset2)
inline

Sets the index offset to be used for sequence 2

Parameters
offset2the index offset for sequence 2 to be used

◆ size1()

size_t IntaRNA::InteractionEnergyIdxOffset::size1 ( ) const
inlinevirtual

Length of sequence 1 excluding the index offset

Returns
length of sequence 1 excluding index offset

Reimplemented from IntaRNA::InteractionEnergy.

◆ size2()

size_t IntaRNA::InteractionEnergyIdxOffset::size2 ( ) const
inlinevirtual

Length of sequence 2 excluding index offset

Returns
length of sequence 2 excluding index offset

Reimplemented from IntaRNA::InteractionEnergy.

Member Data Documentation

◆ energyOriginal

const InteractionEnergy& IntaRNA::InteractionEnergyIdxOffset::energyOriginal
protected

the wrapped energy computation handler

◆ offset1

size_t IntaRNA::InteractionEnergyIdxOffset::offset1
protected

the index offset in sequence 1

◆ offset2

size_t IntaRNA::InteractionEnergyIdxOffset::offset2
protected

the index offset in sequence 2


The documentation for this class was generated from the following file: