- 論壇徽章:
- 145
|
本帖最后由 jason680 于 2015-09-06 13:34 編輯
回復(fù) 1# substr函數(shù)
有想法/算法,才有代碼...
dna = 'ACGUAGCU'
AU,CG分組
AU => AUAU
CG => CGGC
簡單(AU,CG)組合匹配是容易的......
AUAU => AUAU, AUAU
CGGC => CGGC, CGGC(交叉匹配)
要 優(yōu)化 符合(不可交叉)條件匹配...
就要費心找出想法/算法...
設(shè)權(quán)數(shù) A = +1(記號: p), U = -1(記號: n)
AUAU
pnpn <==權(quán)數(shù)(p=+1, n=-1)
NNNN <==使用(Y=Yes/Used, N=No/No Use)
設(shè)權(quán)數(shù) C = +1(記號:p), G = -1(記號: n)
CGGC
pnnp <==權(quán)數(shù)(p=+1, n=-1)
NNNN <==使用(Y=Yes/Used, N=No/No Use)
遞歸 匹配
a: 找到第一個 未使用AU(或CG)
記錄 使用(Y),且設(shè)該位置為S點(start開始點)
例:
AUAU
pnpn <==權(quán)數(shù)(p=+1, n=-1)
YNNN <==使用(Y=Yes/Used, N=No/No Use)
S
b: 向后(向右) 找AU(或CG)匹配 E點(結(jié)束點)
AU匹配條件: S到E權(quán)數(shù)和= 0, 且S,E為匹配AU或UA(權(quán)數(shù)和=0) 不可為AA(權(quán)數(shù)和+2)或UU(權(quán)數(shù)和-2)
CG匹配條件: S到E權(quán)數(shù)和= 0, 且S,E為匹配GC或CG(權(quán)數(shù)和=0) 不可為CC(權(quán)數(shù)和+2)或GG(權(quán)數(shù)和-2)
S到E權(quán)數(shù)和= 0, 為 算法 優(yōu)化 重點...
匹配成功, 例: -------------------------------------------------
AUAU
pnpn <==權(quán)數(shù)(p=+1, n=-1)
YYNN <==使用(Y=Yes/Used, N=No/No Use)
SE
AU匹配(權(quán)數(shù)匹配p,n = +1,-1 = 0)
S到E權(quán)數(shù)和 = p,n = +1,-1 = 0,
匹配(一組)完成,設(shè)定 E點為使用(Y)
調(diào)用下一個遞歸......直到全部(未使用N)匹配成功
匹配失敗,例: -------------------------------------------
CGGC => CGGC, CGGC(交叉匹配)
第一次CG匹配成功
CGGC
pnnp <==權(quán)數(shù)(p=+1, n=-1)
YYNN <==使用(Y=Yes/Used, N=No/No Use)
SE
CG匹配(權(quán)數(shù)匹配p,n = +1,-1 = 0)
S到E權(quán)數(shù)和 = p,n = +1,-1 = 0,
匹配(一組)完成,設(shè)定 E點為使用(Y)
調(diào)用下一個遞歸......直到全部(未使用N)匹配成功
第二次CG匹配失。優(yōu)化重點 - 排除交叉匹配)
CGGC
pnnp <==權(quán)數(shù)(p=+1, n=-1)
YNNN <==使用(Y=Yes/Used, N=No/No Use)
S_E
CG(權(quán)數(shù)和 0)雖是匹配....
S到E權(quán)數(shù)和 = p,n,n = +1,-1,-1 = -1 (非交叉匹配檢查:失敗)
第三次CG匹配失。–C匹配)
CGGC
pnnp <==權(quán)數(shù)(p=+1, n=-1)
YNNN <==使用(Y=Yes/Used, N=No/No Use)
S__E
CC(權(quán)數(shù)和+2) 匹配檢查:失敗
S到E權(quán)數(shù)和 = p,n,n,p = +1,-1,-1,+1 = 0
CGGC匹配結(jié)束(只有一次匹配成功)
---------------------------------------------------------------------------------------
- --- 0000000001111111
- --- 1234567890123456
- in: ACGUAGCUACGUAGCU
- AU: A UA UA UA U
- CG: CG GC CG GC
- Pos: A(1) U(4) A(5) U(8) A(9) U(12) A(13) U(16)
- Pos: C(2) G(3) G(6) C(7) C(10) G(11) G(14) C(15)
- 1: [ [1,4], [5,8], [9,12], [13,16] ]
- 2: [ [1,4], [5,8], [9,16], [12,13] ]
- 3: [ [1,4], [5,12], [8,9], [13,16] ]
- 4: [ [1,4], [5,16], [8,9], [12,13] ]
- 5: [ [1,4], [5,16], [8,13], [9,12] ]
- 6: [ [1,8], [4,5], [9,12], [13,16] ]
- 7: [ [1,8], [4,5], [9,16], [12,13] ]
- 8: [ [1,12], [4,5], [8,9], [13,16] ]
- 9: [ [1,12], [4,9], [5,8], [13,16] ]
- 10: [ [1,16], [4,5], [8,9], [12,13] ]
- 11: [ [1,16], [4,5], [8,13], [9,12] ]
- 12: [ [1,16], [4,9], [5,8], [12,13] ]
- 13: [ [1,16], [4,13], [5,8], [9,12] ]
- 14: [ [1,16], [4,13], [5,12], [8,9] ]
- AU count: 14
- 1: [ [2,3], [6,7], [10,11], [14,15] ]
- 2: [ [2,3], [6,15], [7,14], [10,11] ]
- 3: [ [2,11], [3,10], [6,7], [14,15] ]
- CG count: 3
- Total count: 42
復(fù)制代碼
|
|