給定一個字符串,例如01001010101001101011
,我們可以隨機切分多個子字符串。假設在切片過程中,由於一些意想不到的噪音,某些字符可能會翻轉(0->1
或1->0
)。例如:從位置1如何使用此字符串的切片來計算字符串中給定字符的概率?
Position:.........
String: 01001010101001101011
slice1: 1001110101000
slice2: 1010111001111
slice3: 10101
slice4: 1101011
slice1
開始(假設字符串的索引從0開始),從位置4開始slice2
,由4- slice3
開始,並且從13 slice4
開始在slice1
,0
翻轉到1
在5位和1
翻轉到0
在位置13
對於原始串的一個特定位置,如果是1
,然後在切片翻到0
的概率爲0.1;反之亦然(即Prob(0->1)=0.1
)。
問題是:如果我們只有多個切片(每個切片的長度可能會有所不同)及其在字符串中的起始位置,並且我們不知道原始字符串,因爲原始字符串中的任意位置,我們如何計算位置爲1
的概率?
假設大部分職位將在切片至少一次覆蓋,我們有以下參數:
p01=0.1; // Probability a ‘0’ in string but flipped to a ‘1’ in a slice
p10=0.1; // Probability a ‘1’ in string but flipped to a ‘0’ in a slice
p1=0.5; // Prior probability that any given position in string is a ‘1’
我們也可以假設字符串是0和1的隨機字符串,並在切割時,每個位置都是獨立採樣的。
對於上面的例子字符串和四片,我們已經爲每個位置以下的概率:
Pos Prob
0 0.500
1 0.900
2 0.100
3 0.100
4 0.999
5 0.100
6 0.999
7 0.001
8 0.999
9 0.500
10 0.988
11 0.012
12 0.012
13 0.900
14 0.988
15 0.500
16 0.988
17 0.100
18 0.900
19 0.900
我花了幾個小時試圖找出如何讓上面的答案,我可以算的0
號碼s和1
s在所有切片中爲每個位置添加一個程序。然而,我仍然無法找到一個式或模型或算法來計算概率,特別是對於位置4(1,1,1
),5(1,0,0
),9(0,1
),13(0,1,1
)。
問http://www.biostars.org/? – Pierre
@Pierre在我看來,這個問題更多的是關於統計建模而不是關於生物學或編程。一旦找到合適的模型,算法或公式將會很簡單。 – cel
是的,我同意cel。雖然這個問題是一個簡化的深度排序方法,但我也認爲這是一個純粹的概率問題。 – boyang