From 86e85aa5eaf27310d84ad693fe38adcdf8a87ca9 Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 18 Jul 2008 12:32:02 +0000 Subject: [PATCH] annotation file format updated to take idColour and specify single colour groups with rgb triplets and names --- help/html/features/annotationsFormat.html | 259 +++++++++++++++-------------- src/jalview/io/AnnotationFile.java | 15 +- 2 files changed, 148 insertions(+), 126 deletions(-) diff --git a/help/html/features/annotationsFormat.html b/help/html/features/annotationsFormat.html index 5a289c9..b029e96 100755 --- a/help/html/features/annotationsFormat.html +++ b/help/html/features/annotationsFormat.html @@ -1,125 +1,134 @@ - - - -The Alignment Annotations File - - - -

The Alignment Annotations File

-

Alignment annotations can be imported onto an alignment since -version 2.08 of Jalview, via an annotations file. It is a simple ASCII -text file consisting of tab delimited records similar to the Sequence Features File, and introduced -primarily for use with the Jalview applet.

-

Alignment annotations files are imported into Jalview in the -following ways:
-

-

-

Annotations File Format

-

The File consists of lines containing an instruction followed by -tab delimited fields, and any lines starting with "#" are -ignored. The first non-commented out line of a valid Annotations file -must begin with :

JALVIEW_ANNOTATION

-

A row of annotation is added with a line like

GRAPH_TYPE	Label	Values

-

The GRAPH_TYPE field, which appears first, defines the -appearance of the annotation row when rendered by Jalview. The next field is the row label for the annotation. The final Values field contains a series of "|" -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 "|" symbol) are shown below:

-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. -

-

You can associate an annotation with a sequence by preceding its -definition with the line: -

SEQUENCE_REF	seq_name	[startIndex]
-All Annotations defined after a SEQUENCE_REF command will then be -associated with that sequence, and the first field in the Value field -list will (optionally) be placed at the startIndex'th column.

-

Sequence associations are turned off for subsequent annotation -definitions by: -

SEQUENCE_REF	ALIGNMENT
-

-

LINE_GRAPH 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): -

COLOUR	graph_name	colour
-COMBINE	graph_1_name	graph_2_name
-GRAPHLINE	graph_name	value	label	colour
-
-

(Since Jalview 2.2.1) SEQUENCE_GROUP

-

Groups of sequences can be defined using the tab delimited line

-
SEQUENCE_GROUP	Group_Name	Group_Start	Group_End	Sequences
-

The sequences can be defined by alignment index and a range of sequences can - be defined in a comma delimited field such as

-

2-5,8-15,20,22

-

Enter * to select all groups.

-

If the alignment indices are not known, enter -1 then a tab delimited list - of sequence ids.

-

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.

-

The group can (optionally) be assigned various visualisation properties via - another tab delimited line thus:

-
PROPERTIES	Group_name	tab_delimited_key_value_pairs
-
-

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:

-

description=Text
- colour=Helix Propensity
- pidThreshold=0
- consThreshold=0
- outlineColour=red
- displayBoxes=true
- displayText=false
- colourText=false
- textCol1=black
- textCol2=black
- textColThreshold=0

-

-

An example Annotation file is given below: -

#Comment lines follow the hash symbol
-JALVIEW_ANNOTATION
-SEQUENCE_REF	FER1_MESCR	5
-BAR_GRAPH	Bar Graph 1	||-100,-|-200,-|-300,-|-400,-|200,+|300,+|150,+
-LINE_GRAPH	Green Values	1.1|2.2|1.3|3.4|0.7|1.4|3.3|2.2|2.1|-1.1|3.2
-LINE_GRAPH	Red Values	2.1|3.2|1.3|-1.4|5.5|1.4|1.3|4.2|-1.1|1.1|3.2
-BAR_GRAPH	Bar Graph	2 1,.|2,*|3,:|4,.|5,*|4,:|3,.|2|1|1|2|3|4|5|4
-NO_GRAPH	Icons 	||||E,Sheet1|E|E||||H,Sheet 2|H|H|H||||||
-NO_GRAPH	Purple Letters	m|y|p|r|o|t|e|i|n
-COLOUR	Bar Graph 2	blue
-COLOUR	Red Values	255,0,0
-COLOUR	Green Values	green
-COLOUR	Purple Letters	151,52,228
-COMBINE	Green Values	Red Values
-GRAPHLINE	Red Values	2.6	threshold	black
-
-SEQUENCE_GROUP Group_A 30 50 *
-SEQUENCE_GROUP Group_B 1 351 2-5
-SEQUENCE_GROUP Group_C 12 14 -1 seq1	seq2	seq3
-PROPERTIES Group_A description=This is the description colour=Helix Propensity pidThreshold=0 outlineColour=red displayBoxes=true displayText=false	colourText=false textCol1=black textCol2=black textColThreshold=0
-PROPERTIES Group_B outlineColour=red
-PROPERTIES Group_C colour=Clustal
-
-

- - + + + +The Alignment Annotations File + + + +

The Alignment Annotations File

+

Alignment annotations can be imported onto an alignment since +version 2.08 of Jalview, via an annotations file. It is a simple ASCII +text file consisting of tab delimited records similar to the Sequence Features File, and introduced +primarily for use with the Jalview applet.

+

Alignment annotations files are imported into Jalview in the +following ways:
+

+

+

Annotations File Format

+

The File consists of lines containing an instruction followed by +tab delimited fields, and any lines starting with "#" are +ignored. The first non-commented out line of a valid Annotations file +must begin with :

JALVIEW_ANNOTATION

+

A row of annotation is added with a line like

GRAPH_TYPE	Label	Values

+

The GRAPH_TYPE field, which appears first, defines the +appearance of the annotation row when rendered by Jalview. The next field is the row label for the annotation. The final Values field contains a series of "|" +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 "|" symbol) are shown below:

+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. +

+

You can associate an annotation with a sequence by preceding its +definition with the line: +

SEQUENCE_REF	seq_name	[startIndex]
+All Annotations defined after a SEQUENCE_REF command will then be +associated with that sequence, and the first field in the Value field +list will (optionally) be placed at the startIndex'th column.

+

Sequence associations are turned off for subsequent annotation +definitions by: +

SEQUENCE_REF	ALIGNMENT
+

+

LINE_GRAPH 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): +

COLOUR	graph_name	colour
+COMBINE	graph_1_name	graph_2_name
+GRAPHLINE	graph_name	value	label	colour
+
+

(Since Jalview 2.2.1) SEQUENCE_GROUP

+

Groups of sequences can be defined using the tab delimited line

+
SEQUENCE_GROUP	Group_Name	Group_Start	Group_End	Sequences
+

The sequences can be defined by alignment index and a range of sequences can + be defined in a comma delimited field such as

+

2-5,8-15,20,22

+

Enter * to select all groups.

+

If the alignment indices are not known, enter -1 then a tab delimited list + of sequence ids.

+

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.

+

The group can (optionally) be assigned various visualisation properties via + another tab delimited line thus:

+
PROPERTIES	Group_name	tab_delimited_key_value_pairs
+
+

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:

+

description=Text
+ colour=Helix Propensity
+ pidThreshold=0
+ consThreshold=0
+ outlineColour=red
+ displayBoxes=true
+ displayText=false
+ colourText=false
+ textCol1=black
+ textCol2=black
+ textColThreshold=0
+ idColour=ff3322

+New Features in 2.4: +

+

An example Annotation file is given below: +

#Comment lines follow the hash symbol
+JALVIEW_ANNOTATION
+SEQUENCE_REF	FER1_MESCR	5
+BAR_GRAPH	Bar Graph 1	||-100,-|-200,-|-300,-|-400,-|200,+|300,+|150,+
+LINE_GRAPH	Green Values	1.1|2.2|1.3|3.4|0.7|1.4|3.3|2.2|2.1|-1.1|3.2
+LINE_GRAPH	Red Values	2.1|3.2|1.3|-1.4|5.5|1.4|1.3|4.2|-1.1|1.1|3.2
+BAR_GRAPH	Bar Graph	2 1,.|2,*|3,:|4,.|5,*|4,:|3,.|2|1|1|2|3|4|5|4
+NO_GRAPH	Icons 	||||E,Sheet1|E|E||||H,Sheet 2|H|H|H||||||
+NO_GRAPH	Purple Letters	m|y|p|r|o|t|e|i|n
+COLOUR	Bar Graph 2	blue
+COLOUR	Red Values	255,0,0
+COLOUR	Green Values	green
+COLOUR	Purple Letters	151,52,228
+COMBINE	Green Values	Red Values
+GRAPHLINE	Red Values	2.6	threshold	black
+
+SEQUENCE_GROUP Group_A 30 50 *
+SEQUENCE_GROUP Group_B 1 351 2-5
+SEQUENCE_GROUP Group_C 12 14 -1 seq1	seq2	seq3
+PROPERTIES Group_A description=This is the description colour=Helix Propensity pidThreshold=0 outlineColour=red displayBoxes=true displayText=false	colourText=false textCol1=black textCol2=black textColThreshold=0
+PROPERTIES Group_B outlineColour=red
+PROPERTIES Group_C colour=Clustal
+
+

+ + diff --git a/src/jalview/io/AnnotationFile.java b/src/jalview/io/AnnotationFile.java index 6285cf1..d5039de 100755 --- a/src/jalview/io/AnnotationFile.java +++ b/src/jalview/io/AnnotationFile.java @@ -312,6 +312,10 @@ public class AnnotationFile { text.append("textColThreshold=" + sg.thresholdTextColour); } + if (sg.idColour!=null) + { + text.append("idColour="+jalview.util.Format.getHexString(sg.idColour)+"\t"); + } text.append("\n\n"); @@ -816,6 +820,8 @@ public class AnnotationFile if (sg != null) { String keyValue, key, value; + ColourSchemeI def = sg.cs; + sg.cs = null; while (st.hasMoreTokens()) { keyValue = st.nextToken(); @@ -878,9 +884,16 @@ public class AnnotationFile { sg.thresholdTextColour = Integer.parseInt(value); } - + else if (key.equalsIgnoreCase("idColour")) + { + sg.setIdColour((def = new UserColourScheme(value)).findColour('A')); + } sg.recalcConservation(); } + if (sg.cs==null) + { + sg.cs = def; + } } } -- 1.7.10.2