##
# Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
# Copyright (C) $$Year-Rel$$ The Jalview Authors
# 
# This file is part of Jalview.
# 
# Jalview is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License 
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#  
# Jalview is distributed in the hope that it will be useful, but 
# WITHOUT ANY WARRANTY; without even the implied warranty 
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
# PURPOSE.  See the GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
# The Jalview Authors are detailed in the 'AUTHORS' file.
##
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 }
 
 
