JAL-1304 revamped annotation file documentation structure to make it more usable
authorJim Procter <jprocter@dundee.ac.uk>
Tue, 20 Jan 2015 14:31:36 +0000 (14:31 +0000)
committerJim Procter <jprocter@dundee.ac.uk>
Tue, 20 Jan 2015 14:31:36 +0000 (14:31 +0000)
help/html/features/annotationsFormat.html

index 141379f..5012124 100755 (executable)
@@ -30,8 +30,10 @@ version 2.08 of Jalview, via an annotations file. It is a simple ASCII
 text file consisting of tab delimited records similar to the <a
        href="featuresFormat.html">Sequence Features File</a>, and introduced
 primarily for use with the Jalview applet.</p>
-<p>Alignment annotations files are imported into Jalview in the
-following ways:<br>
+
+<p><strong>Importing annotation files</strong><br/>
+Alignment annotations files are imported into Jalview in the
+following ways:<br/>
 <ul>
        <li>from the command line<strong><pre>
  -annotations &lt;<em>Annotations filename</em>&gt;</pre></strong></li>
@@ -40,53 +42,140 @@ following ways:<br>
        menu of an alignment window.</li>
 </ul>
 </p>
-<p><h3><font face="Arial, Helvetica, sans-serif">Format of an Annotations File</font></h3>
-<p>The file consists of lines containing an instruction followed by
-tab delimited fields, and any lines starting with &quot;#&quot; are
-ignored. The first non-commented out line of a valid Annotations file
+<p>
+  <strong>Exporting annotation files</strong><br /> An annotation file
+  can be created for any alignment view from the &quot;Export
+  Annotations ...&quot; entry in the <strong>File</strong> menu of an
+  alignment window.
+</p>
+<p><strong>THE ANNOTATION FILE FORMAT</strong>
+<br/>An annotation file consists of lines containing an instruction followed by
+tab delimited fields. Any lines starting with &quot;#&quot; are considered comments, and
+ignored. The sections below describe the structure of an annotation file.
+</p><ul>
+<li><a href="#annheader">JALVIEW_ANNOTATION</a> mandatory header</li>
+<li><a href="#annrows">LINE_GRAPH, BAR_GRAPH and NO_GRAPH</a> to create annotation rows</li>
+<li><a href="#combine">COMBINE, COLOUR and GRAPHLINE</a> for thresholds and complex line graphs</li>
+<li><a href="#annrowprops">ROWPROPERTIES</a> control the display of individual annotation rows</li>
+<li><a href="#groupdefs">SEQUENCE_GROUP</a> to define groups of sequences for further annotation</li>
+<li><a href="#groupprops">PROPERTIES</a> to set visualisation properties for sequence groups</li>
+<li><a href="#seqgrprefs">SEQUENCE_REF and GROUP_REF</a> for attaching annotation to sequences and groups</li>
+<li><a href="#refsandviews">VIEW_DEF and HIDE_INSERTIONS</a> for creating new views and hiding regions based on gaps in a reference sequence</li>
+</ul>
+       <p>
+               At the end of this document, you can also find notes on <a
+                       href="#compatibility">compatibility</a> of annotation files across
+               different versions of Jalview. An <a href="#exampleann">example
+                       annotation file</a> is also provided along with instructions on how to
+               import it to Jalview.
+       </p>
+       <hr/>
+<p><strong><em><a name="annheader">Header line</a></em></strong><br/>The first non-commented out line of a valid Annotations file
 must begin with :<strong><pre>JALVIEW_ANNOTATION</pre></strong></p>
-<p>A row of annotation is added with a line like <strong><pre><em>GRAPH_TYPE</em>&#9;<em>Label</em>&#9;<em>Description</em> (optional)&#9;<em>Values</em></pre></strong></p>
+<hr/>
+<p><strong><em><a name="annrows">LINE_GRAPH, BAR_GRAPH and NO_GRAPH</a></em></strong><br/>
+Labels, secondary structure, histograms and line graphs are added with a line like <strong><pre><em>GRAPH_TYPE</em>&#9;<em>Label</em>&#9;<em>Description</em> (optional)&#9;<em>Values</em></pre></strong></p>
        <p>
-               The <em>GRAPH_TYPE</em> field, which appears first, defines the
+               Here, the <em>GRAPH_TYPE</em> field in the first column defines the
                appearance of the annotation row when rendered by Jalview. The next
                field is the row <em>label</em> for the annotation. This may be
                followed by a <em>description</em> for the row, which is shown in a
                tooltip when the user mouses over the annotation row's label. Since
-               Jalview 2.7, the description field may also contain html in the same
-               way as a <a href="featuresFile.html">sequence feature's</a> label,
-               providing the html is enclosed in an &lt;html/&gt; tag.
+               Jalview 2.7, the description field may also contain HTML tags (in the same
+               way as a <a href="featuresFile.html">sequence feature's</a> label),
+               providing the text is enclosed in an &lt;html/&gt; tag.
        
-       <ul><em>Please note: URL links embedded in HTML descriptions will
-                               be supported in a future release of Jalview</em>
+       <ul><em>Please note: URL links embedded in HTML descriptions are not yet supported.</em>
        </ul>
        </p>
                <p>The final <em>Values</em>
                field contains a series of &quot;|&quot; separated value fields. Each
                value field is itself a comma separated list of fields of a particular
-               type defined by the annotation row's GRAPH_TYPE. The allowed values of
-               GRAPH_TYPE and the format of their respective value fields (with the
-               trailing &quot;<strong>|</strong>&quot; symbol) are shown below:
+               type defined by the annotation row's <em>GRAPH_TYPE</em>. The allowed values of
+               <em>GRAPH_TYPE</em> and corresponding interpretation of each <em>Value</em> are shown below:
        
        <ul>
-               <li>BAR_GRAPH<br> Plots a histogram with labels below each
+               <li><strong>BAR_GRAPH</strong><br> Plots a histogram with labels below each
                        bar.<br> <em>number</em>,<em>text character</em>,<em>Tooltip
                                text</em>
                </li>
-               <li>LINE_GRAPH<br> Draws a line between values on the
+               <li><strong>LINE_GRAPH</strong><br> Draws a line between values on the
                        annotation row.<br> <em>number</em>
                </li>
-               <li>NO_GRAPH<br> For a row consisting of text labels and/or
-                       secondary structure symbols.<br> <em>{Secondary Structure
-                               Symbol}</em>,<em>text label</em>,<em>Tooltip text</em><br> Currently
-                       supported secondary structure structure symbols are <em>H</em> (for
-                       helix) and <em>E</em> (for strand)</li>
+               <li><strong>NO_GRAPH</strong><br>For a row consisting of text labels and/or
+                       secondary structure symbols.<br><em>{Secondary Structure
+                               Symbol}</em>,<em>text label</em>,<em>Tooltip text</em><br/><br/>The type of secondary structure symbol depends on the alignment being annotated being either Protein or RNA. <br/>For proteins, structure symbols are <em>H</em> (for
+                       helix) and <em>E</em> (for strand)<br/><br/>For RNA, VIENNA, WUSS or extended notation can be used to specify positions that are paired (e.g. &quot;(|(||)|)&quot; or &quot;|A|A|A|(|a|a|a|)&quot;)</li>
        </ul>
        Any or all value fields may be left empty, as well as the BAR_GRAPH's
 text character field, and either or both of the text-label and secondary
 structure symbol fields of the NO_GRAPH type annotation rows.</p>
 <p>Color strings can be embedded in a value field by enclosing an RGB triplet in square brackets to colour that position in an annotation row.  
 </p>
-<p><h3><font face="Arial, Helvetica, sans-serif">SEQUENCE_REF and GROUP_REF</font></h3>
+<hr/>
+<p><strong><a name="combine">COMBINE, COLOUR and GRAPHLINE</a> for line graphs</font></strong><br/>
+<em>LINE_GRAPH</em> type annotations can be given a colour
+(specified as 24 bit RGB triplet in hexadecimal or comma separated
+values), combined onto the same vertical axis, and have ordinate lines
+(horizontal lines at a particular vertical axis value) using the
+following commands (respectively): 
+<pre>COLOUR&#9;<em>graph_name</em>&#9;<em>colour</em>
+COMBINE&#9;<em>graph_1_name</em>&#9;<em>graph_2_name</em>
+GRAPHLINE&#9;<em>graph_name</em>&#9;<em>value</em>&#9;<em>label</em>&#9;<em>colour</em><strong><em>
+</em></strong></pre>
+</p>
+<hr/>
+<p><strong><a name="annrowprops">ROWPROPERTIES</a></strong><br/>
+The visual display properties for a set of annotation rows can be modified using the following tab-delimited line:</p>
+<pre>ROWPROPERTIES&#9;<em>Row label</em>&#9;<em>centrelabs=true( or false)</em>&#9;<em>showalllabs=true(default is false)</em>&#9;<em>scaletofit=true (default is false)</em></pre>
+<p>This sets the visual display properties according to the given values for all the annotation rows with labels matching <em>Row label</em>. The properties mostly affect the display of multi-character column labels, and are as follows:
+<ul><li><em>centrelabs</em> Centre each label on its column.</li>
+<li><em>showalllabs</em> Show every column label rather than only the first of a run of identical labels (setting this to true can have a drastic effect on secondary structure rows).</li>
+<li><em>scaletofit</em> Shrink each label's font size so that the label fits within the column. Useful when annotating an alignment with a specific column numbering system. (<em>Not available in Jalview applet due to AWT 1.1 limitations</em>)</li>
+</ul></p>
+<p><strong><a name="groupdefs">SEQUENCE_GROUP</a></strong><br/>
+Groups of sequences and column ranges can be defined using a tab delimited statement like:</p>
+<pre>SEQUENCE_GROUP&#9;Group_Name&#9;Group_Start&#9;Group_End&#9;<em>Sequences</em></pre>
+<p>The sequences can be defined by alignment index and a range of sequences can 
+  be defined in a comma delimited field such as</p>
+<p>2-5,8-15,20,22</p>
+<p>Enter * to select all groups. </p>
+<p><strong>Note:</strong> If the alignment indices are not known, enter -1, followed by a tab and then a tab delimited list 
+of sequence IDs. </p>
+<p>If a <a href="#seqgrprefs"><strong>SEQUENCE_REF</strong></a> has been defined, then <em>group_start</em> and <em>group_end</em> will be 
+  relative to the sequence residue numbering, otherwise the <em>group_start</em> and <em>group_end</em> 
+  will be alignment column indices. </p>
+<hr/>
+<p><strong><a name="groupprops">PROPERTIES</a></strong><br/>This statement allows various visualisation properties to be assigned to a named group. This takes a series of tab-delimited <em>key</em>=<em>value</em> pairs:</p>
+<pre>PROPERTIES&#9;Group_name&#9;tab_delimited_key_value_pairs
+</pre>
+<p>The currently supported set of sequence group key-value pairs that can be provided here are :</p>
+<table border="1">
+<tbody><tr><td width="50%">Key</td><td>Value</td></tr>
+<tr><td width="50%">description</td><td>Text - may include simple HTML tags</td></tr>
+<tr><td width="50%">colour</td><td>A string resolving to a valid Jalview colourscheme (e.g. Helix Propensity)</td></tr>
+<tr><td width="50%">pidThreshold</td><td>A number from 0-100 specifying the Percent Identity Threshold for colouring columns in the group or alignment</td></tr>
+<tr><td width="50%">consThreshold</td><td>A number from 0-100 specifying the degree of bleaching applied for conservation colouring</td></tr>
+<tr><td width="50%">outlineColour</td><td>Line colour used for outlining the group (default is red)</td></tr>
+<tr><td width="50%">displayBoxes</td><td>Boolean (default true) controlling display of shaded box for each alignment position</td></tr>
+<tr><td width="50%">displayText</td><td>Boolean (default true) controlling display of text for each alignment position</td></tr>
+<tr><td width="50%">colourText</td><td>Boolean (default false) specifying whether text should be shaded by applied colourscheme</td></tr>
+<tr><td width="50%">textCol1</td><td>Colour for text when shown on a light background</td></tr>
+<tr><td width="50%">textCol2</td><td>Colour for text when shown on a dark background</td></tr>
+<tr><td width="50%">textColThreshold</td><td>Number from 0-100 specifying switching threshold between light and dark background</td></tr>
+<tr><td width="50%">idColour</td><td>Colour for highlighting the Sequence ID labels for this group<br/>If <em>idColour</em> is given but <em>colour</em> is not, then idColor will also be used for the group background colour.</td></tr>
+<tr><td width="50%">showunconserved</td><td>Boolean (default false) indicating whether residues should only be shown that are different from current reference or consensus sequence</td></tr>
+<tr><td width="50%">hide</td><td>Boolean (default false) indicating whether the rows in this group should be marked as hidden.<br/><em>Note:</em> if the group is sequence associated (specified by SEQUENCE_REF), then all members will be hidden and marked as represented by the reference sequence.</td></tr>
+<tr><td width="50%">hidecols</td><td>Boolean (default false) indicating whether columns in this groushould be marked as hidden</td></tr></tbody>
+</table>
+
+<p><strong>Specifying colours in PROPERTIES key-value pairs</strong><br/>
+The <strong>colour</strong> property can take either a colour scheme name,
+ or a single colour specification (either a colour name like 'red' or an RGB
+ triplet like 'ff0066'). If a single colour is specified, then the group
+ will be coloured with that colour.</p>
+ <hr/>
+ <p><strong><a name="seqgrprefs">SEQUENCE_REF and GROUP_REF</a></strong><br/>
        By
                default, annotation is associated with the alignment as a whole.
                However, it is also possible to have an annotation row associated with
@@ -114,79 +203,19 @@ definitions by:
 Group association is turned off for subsequent annotation rows by: 
 <pre>GROUP_REF&#9;<em>ALIGNMENT</em></pre>
 </p>
-<h3><font face="Arial, Helvetica, sans-serif">LINE_GRAPH Grouping</font></h3>
-<p><em>LINE_GRAPH</em> type annotations can be given a colour
-(specified as 24 bit RGB triplet in hexadecimal or comma separated
-values), combined onto the same vertical axis, and have ordinate lines
-(horizontal lines at a particular vertical axis value) using the
-following commands (respectively): 
-<pre>COLOUR&#9;<em>graph_name</em>&#9;<em>colour</em>
-COMBINE&#9;<em>graph_1_name</em>&#9;<em>graph_2_name</em>
-GRAPHLINE&#9;<em>graph_name</em>&#9;<em>value</em>&#9;<em>label</em>&#9;<em>colour</em><strong><em>
-</em></strong></pre>
-</p>
-<h3><font face="Arial, Helvetica, sans-serif">(Since Jalview 2.5) ROWPROPERTIES</font></h3>
-<p>The visual display properties for a set of annotation rows can be modified using the following tab-delimited line:</p>
-<pre>ROWPROPERTIES&#9;<em>Row label</em>&#9;<em>centrelabs=true( or false)</em>&#9;<em>showalllabs=true(default is false)</em>&#9;<em>scaletofit=true (default is false)</em></pre>
-<p>This sets the visual display properties according to the given values for all the annotation rows with labels matching <em>Row label</em>. The properties mostly affect the display of multi-character column labels, and are as follows:
-<ul><li><em>centrelabs</em> Centre each label on its column.</li>
-<li><em>showalllabs</em> Show every column label rather than only the first of a run of identical labels (setting this to true can have a drastic effect on secondary structure rows).</li>
-<li><em>scaletofit</em> Shrink each label's font size so that the label fits within the column. Useful when annotating an alignment with a specific column numbering system. (<em>Not available in Jalview applet due to AWT 1.1 limitations</em>)</li>
-</ul></p>
-<h3><font face="Arial, Helvetica, sans-serif">(Since Jalview 2.2.1) SEQUENCE_GROUP</font></h3>
-<p>Groups of sequences can be defined using the tab delimited line</p>
-<pre>SEQUENCE_GROUP    Group_Name      Group_Start     Group_End       <em>Sequences</em></pre>
-<p>The sequences can be defined by alignment index and a range of sequences can 
-  be defined in a comma delimited field such as</p>
-<p>2-5,8-15,20,22</p>
-<p>Enter * to select all groups. </p>
-<p><strong>Note:</strong> If the alignment indices are not known, enter -1, followed by a tab and then a tab delimited list 
-specifying the sequence ids. </p>
-<p>If the SEQUENCE_REF has been defined, the group_start and group_end will be 
-  relative to the sequence residue numbering, otherwise the group_start and group_end 
-  will be the alignment column indices. </p>
-<p>The group can (optionally) be assigned various visualisation properties via 
-  another tab delimited line thus:</p>
-<pre>PROPERTIES        Group_name      tab_delimited_key_value_pairs
-</pre>
-<p>The key_value_pairs allow you to define a description and to colour the group 
-  in various ways. All, none or some of the following values could be used for 
-  a group:</p>
-<p>description=Text <br>
-  colour=Helix Propensity<br>
-  pidThreshold=0<br>
-  consThreshold=0<br>
-  outlineColour=red <br>
-  displayBoxes=true<br>
-  displayText=false<br>
-  colourText=false<br>
-  textCol1=black<br>
-  textCol2=black<br>
-  textColThreshold=0<br>
-  idColour=ff3322<br>
- <!-- Not yet implemented in 2.5 release 
-  hide=false<br>
-  hidecols=false<br> -->
-  showunconserved=false</p>
-<ul><li><em>New Features in 2.4:</em><br>if the <strong>idColour</strong> property
-is given without specifying a colour scheme with the <strong>colour</strong>
-property, then the idColour will also be used to colour the sequence.</li>
-<li>the <strong>colour</strong> property can take either a colour scheme name,
- or a single colour specification (either a colour name like 'red' or an RGB
- triplet like 'ff0066'). If a single colour is specified, then the group
- will be coloured with that colour.</li>
- <!--  <li><em>New Features in 2.5</em></li>
- <li>hide and hidecols instruct jalview to hide the sequences or columns covered by the group.</li> -->
-  <li>Sequence associated Groups<br>If a group is defined after a valid
- <em>SEQUENCE_REF</em> sequence reference statement, the sequence representative
- for the group will be set to the referenced sequence.<!-- <br><strong>Note:</strong> if the <em>hide</em> 
- property is set then only the representative sequence for the group will be shown in the alignment.--></li>
- <li>The interpretation of the COMBINE statement in <em>Version 2.8.1</em> was refined
+<hr/>
+<p><strong><a name="refsandviews">VIEW_DEF and HIDE_INSERTIONS</a></strong><br/>
+Since Jalview 2.9, the Annotations file has also supported the definition of views on the alignment, and definition of hidden regions.</p>
+
+<hr/>
+<p><strong><a name="compatibility">COMPATIBILITY NOTES</a></strong><br/>
+ The interpretation of the COMBINE statement in <em>Version 2.8.1</em> was refined
  so that only annotation line graphs with the given names ands the same 
- <strong>SEQUENCE_REF</strong> and <strong>GROUP_REF</strong> scope are grouped.</li>
-</ul>
-<p> </p>
-<p>An example Annotation file is given below:
+ <strong>SEQUENCE_REF</strong> and <strong>GROUP_REF</strong> scope are grouped.</p>
+ <hr/>
+
+<p><strong><a name="exampleann">EXAMPLES</a></strong><br/>
+An example Annotation file is given below. Copy and paste the contents into a text file and load it onto the Jalview example protein alignment.</p>
 <pre>#Comment lines follow the hash symbol
 JALVIEW_ANNOTATION
 SEQUENCE_REF&#9;FER1_MESCR&#9;5
@@ -211,6 +240,5 @@ PROPERTIES&#9;Group_B&#9;outlineColour=red
 PROPERTIES&#9;Group_C&#9;colour=Clustal
 </pre>
 </p>
-<p><em>Last updated for version 2.8.1</em></p>
 </body>
 </html>