Init. optimise rendering - use same model as alignment but with vertical binary sweep to select range of annotation to render: Vertical interval list . run length compress the sizes -> n_i * v_height_i -> label each node - total and accumulated total vertical pos (under current visibility settings ?) --> ins/delete/hide/show of one or more contiguous individual rows causes local -> global update of position sums. -- . indexOf(VPosition in annotation display window), VPositionOf(AnnotationI) 0. i. Hide/show by whole annotation set id ii. move to top/bottom iii. 1. Summarising annotation { Annotation Class ID |_ { Type string } } -> Simple modal : - Proportion of sequences with most frequent symbol - symbol logo [ option to drill down and subselect based on particular symbol or subdivide by all symbols ] 3. Clustering based on annotation A few routes: use built in PCA calculation to do scalar product based analysis of one or many annotation vectors. Sliding window over alignment doing pca at each point. Analyse trajectories through PCA ? (see maximum/minimum and stretches of local similarity) * ''' ACCESS ALL MENUS ''' -> allow context popup to show all window submenus { local relevant } { Parent window -> file,edit,etc } { Desktop -> File, Tools, ... } { other areas more distant - e.g. sequence/annotation ID popup from middle of alignment/annotation area }