240 likes | 257 Views
This paper explores different methods for computing Δ-points efficiently and with minimal space usage. The methods range from O(MN) time and space complexity to O(1/εMN) time and space complexity. Bonus points are given for achieving better time and space complexity.
E N D
Space-Saving Strategies for Computing Δ-points Kun-Mao Chao (趙坤茂) Department of Computer Science and Information Engineering National Taiwan University, Taiwan http://www.csie.ntu.edu.tw/~kmchao
Δ-points • S-(i, j): the best score of a path from (0, 0) to (i, j). • S+(i, j): the best score of a path from (i, j) to (M, N). • Δ-points: S-(i, j) + S+(i, j) >= Δ S - S +
Match: 8 Mismatch: -5 Gap symbol: -3 C G G A T C A T CTTAACT optimal score
C T T A A C – TC G G A T C A T 8 – 5 –5 +8 -5 +8 -3 +8 = 14 C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 S- Matrix C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 S+ Matrix C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 S+ Matrix C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 S- + S+ Matrix C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 S- + S+ Matrix Δ=14 C G G A T C A T CTTAACT
Match: 8 Mismatch: -5 Gap symbol: -3 S- + S+ Matrix Δ=13 C G G A T C A T CTTAACT
Method 1: O(MN) time; O(MN) space S - S + N M
Method 2: O(M2N) time; O(N) space N S - Each row takes O(MN) time.In total, O(M) x O(MN) = O(M2N) S + M
Method 3: O(MN) time; O(N) space N S - S + M
Method 4: O(MN log M) time; O(N log M) space N S - S + M
Method 4: O(MN log M) time; O(N log M) space (cont’d) N … O(log M) layers M O(N) O(N) O(N) O(N) O(N)
The computation of S-(i, j) and S+(i, j) inside a block S - S - S + S +
Method 6: O(MN log log min {M, N}) time; O(M+N) space Real Size 1/25 1/23 N 1/210 1/25 1/22 M 1/29 1/219
Method 7: O(1/ε MN) time; O(1/εMεN) spaceHere we use ε= 1/2 to illustrate the idea. N Solve each M1/2N problem M1/2 S - S + M
Method 8: O(1/εMN) time; O(1/εM1+ε+ N) spaceHere we use ε= 1/2 to illustrate the idea. M 2M 3M N M O(N) M Solve each M1/2M problem M1/2 S - S + M
Methods Method 1: O(MN) time; O(MN) space Method 2: O(M2N) time; O(M) space Method 3: O(MN) time; O(M) space Method 4: O(MN log M) time; O(N log M) space Method 5: O(MN log min {M, N}) time; O(M+N) space Method 6: O(MN log log min {M, N}) time; O(M+N) space Method 7: O(1/εMN) time; O(1/ εMεN) space Method 8: O(1/εMN) time; O(1/εM1+ε+ N) space
Bonus points • O(MN) time; O(M+N) space • o(MN log log min {M, N}) time; O(M+N) space • O(1/εMN) time; o(1/εM1+ε+N) space