allpy
changeset 666:d9a3e99ae19b
blocks3d/www: mark conservative columns inside blocks
Previously letters were marked if column is conservative over all
sequences of alignment. Currently it was changed to conservatism
over block including this letter.
Additional attribute storing conservatism of columns inside block
was added to block. This caused all colors of blocks to be changed.
author | boris <bnagaev@gmail.com> |
---|---|
date | Fri, 01 Jul 2011 03:21:08 +0400 |
parents | 731015ce0d24 |
children | 78e1700f589d |
files | blocks3d/www/input/blocks.js |
diffstat | 1 files changed, 14 insertions(+), 2 deletions(-) [+] |
line diff
1.1 --- a/blocks3d/www/input/blocks.js Fri Jul 01 03:01:17 2011 +0400 1.2 +++ b/blocks3d/www/input/blocks.js Fri Jul 01 03:21:08 2011 +0400 1.3 @@ -6,6 +6,7 @@ 1.4 int end; (inclusive) 1.5 IDs: list of IDs 1.6 cores: [] 1.7 + is_conservative: list, mapping pos to bool 1.8 } 1.9 */ 1.10 1.11 @@ -139,6 +140,16 @@ 1.12 is_conservative[j] = is_conservative_column(j, all_sequences); 1.13 } 1.14 1.15 + for (i = 0; i < blocks.length; i++) 1.16 + { 1.17 + block = blocks[i]; 1.18 + block.is_conservative = []; 1.19 + for (j = block.start; j <= block.end; j++) 1.20 + { 1.21 + block.is_conservative[j] = is_conservative_column(j, block.IDs); 1.22 + } 1.23 + } 1.24 + 1.25 // pre-calculate strings for <pre> 1.26 alignment_strings = {}; 1.27 var block_i; 1.28 @@ -149,11 +160,12 @@ 1.29 for (j = 0; j < seq_length; j++) 1.30 { 1.31 block_i = useful_positions[ID][j]; 1.32 + block = blocks[block_i]; 1.33 if (block_i || block_i === 0) 1.34 { 1.35 // current element is a part of block 1.36 - var dark = is_conservative[j] && seq.charAt(j) != '-'; 1.37 - var color = crc32_color(json(blocks[block_i]), dark); 1.38 + var dark = block.is_conservative[j] && seq.charAt(j) != '-'; 1.39 + var color = crc32_color(json(block), dark); 1.40 t += '<font '; 1.41 t += ' style="background:' + color + '; cursor:pointer;" ' ; 1.42 t += ' onclick=letter_click("' + ID + '",' + j + ') ' ;