pmcomp_distance#
- RNAdist.dp.pmcomp.pmcomp_distance(sequence, md=None)#
Approximates Expected Distances using basepair probabilities
Calculates Approximated Expected Distances using the following formulae:
\[ \begin{align}\begin{aligned}jupin(i, j) = 1 - \sum_{i < k < j} p_{k,j}\\E_{i,j} = jupin(i, j) * (E_{i,j-1}+1) + p_{i,j} + \sum_{i < k < j} (E_{i,k-1}+2) * p_{k,j}\end{aligned}\end{align} \]- Parameters:
sequence (str) – RNA sequence of size
N
md (RNA.md) – ViennaRNA model details object
- Returns:
N x N
matrixcontaining approximated expected distances from nucleotide
i
toj
atmatrix[i][j]
- Return type:
np.ndarray
You can calculate this using the default model details from ViennaRNA like this
>>> seq = "GGGCUAUUAGCUCAGUUGGUUAGAGCGCACCCCUGAUAAGGGUGAGGUCGCUGAUUCGAAUUCAGCAUAGCCCA" >>> x = pmcomp_distance(seq) >>> x.shape (74, 74)
Via including a model details object in the function call you can change settings for e.g. the temperature
>>> seq = "GGGCUAUUAGCUCAGUUGGUUAGAGCGCACCCCUGAUAAGGGUGAGGUCGCUGAUUCGAAUUCAGCAUAGCCCA" >>> md = RNA.md(temperature=35.4) >>> x = pmcomp_distance(seq, md=md) >>> x[:5, -5:] array([[4.00170356, 3.00188247, 2.00211336, 1.00316215, 2.0033279 ], [3.00170363, 2.00188257, 1.00212447, 2.00234503, 3.00249076], [2.00170369, 1.00188828, 2.00369139, 3.00389263, 4.00401832], [1.00170376, 2.00329739, 3.00485005, 4.00502225, 5.0051279 ], [2.00676375, 3.00810301, 4.00939988, 5.00954299, 6.00962855]])