Отримати точну ймовірність конкретної сукупності можна, використовуючи ланцюгове представлення Маркова проблеми. Специфіка того, як побудувати ланцюг, залежить від конкретної послідовності інтересів, але я наведу пару прикладів, як це зробити.
Точна ймовірність через ланцюг Маркова: Розглянемо дискретну послідовність результатів А , Т, С, Г де результати в послідовності є обмінними, і припустимо, нас цікавить деяка підрядка довжиною к . Для будь-якого заданого значення н , нехай W бути подія , яка відбувається подстроку інтерес, і нехай Ha бути подією , що останні a результати є першим < K символів подстроки інтересів (але не більше , ніж це) . Ми використовуємо ці події, щоб дати наступний розділ k + 1a<kk+1 можливі стани інтересу:
State 0State 1State 2State 3⋮State k−1State kW¯∩H0, W¯∩H1, W¯∩H2, W¯∩H3, ⋮W¯∩Hk−1,W.
Оскільки послідовність результатів вважається замінною, ми маємо незалежні результати, що залежать від їх відповідних ймовірностей θA+θT+θC+θG=1 . Ваш інтересний процес може бути представлений як дискретні часові ланцюги Маркова, які починаються в State 0 при n=0 і переходять відповідно до матриці ймовірностей, що залежить від конкретного підрядка, що цікавить. Матриця переходу завжди буде a (k+1)×(k+1)матриця, що представляє ймовірності переходу з використанням вищезазначених станів. Якщо підрядка, що цікавить, не була досягнута, то кожен перехід може або наблизити вас на крок до підрядки, або може повернути вас до попереднього стану, що залежить від конкретної підрядки. Після досягнення підстрочки це стан поглинання ланцюга, що представляє факт, що відбулася подія, що цікавить.
Наприклад, якщо інтерес підрядок AAAAAA то матриця переходу:
P=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢1−θA1−θA1−θA1−θA1−θA1−θA0θA0000000θA0000000θA0000000θA0000000θA0000000θA1.⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
Навпаки, якщо підрядок, що цікавить, є ACTAGC то матриця переходу:
P=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢1−θA1−θA−θC1−θA−θT1−θA1−θA−θC−θG1−θA−θC0θAθAθA0θAθA00θC00θC0000θT0000000θA0000000θG000000θC1.⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
nP(W|n)={Pn}0,kn<k
R
n
#Create function to give n-step transition matrix for n = 1...N
#We will use the example of the substring of interest "AAAAAA"
#a is the probability of A
#t is the probability of T
#c is the probability of C
#g is the probability of G
#N is the last value of n
PROB <- function(N,a,t,c,g) { TOT <- a+t+c+g;
a <- a/TOT;
t <- t/TOT;
c <- c/TOT;
g <- g/TOT;
P <- matrix(c(1-a, a, 0, 0, 0, 0, 0,
1-a, 0, a, 0, 0, 0, 0,
1-a, 0, 0, a, 0, 0, 0,
1-a, 0, 0, 0, a, 0, 0,
1-a, 0, 0, 0, 0, a, 0,
1-a, 0, 0, 0, 0, 0, a,
0, 0, 0, 0, 0, 0, 1),
nrow = 7, ncol = 7,
byrow = TRUE);
PPP <- array(0, dim = c(7,7,N));
PPP[,,1] <- P;
for (n in 2:N) { PPP[,,n] <- PPP[,,n-1] %*% P; }
PPP }
#Calculate probability for N = 100 for equiprobable outcomes
N <- 100;
a <- 1/4;
t <- 1/4;
c <- 1/4;
g <- 1/4;
PROB(N,a,t,c,g)[1,7,N];
[1] 0.01732435
AAAAAAn=1000.01732435