Merge branch 'develop' into feature_29/JAL-1372_referenceseq
authorJim Procter <jprocter@dundee.ac.uk>
Fri, 23 Jan 2015 14:06:11 +0000 (14:06 +0000)
committerJim Procter <jprocter@dundee.ac.uk>
Fri, 23 Jan 2015 14:06:11 +0000 (14:06 +0000)
finessing between two branches where bugs are patched twice
Conflicts:
src/jalview/appletgui/ScalePanel.java
src/jalview/appletgui/SeqCanvas.java
src/jalview/datamodel/ColumnSelection.java

39 files changed:
examples/testdata/uniref50_seqref.jva [new file with mode: 0644]
help/html/features/annotationsFormat.html
resources/lang/Messages.properties
src/jalview/api/AlignViewportI.java
src/jalview/appletgui/APopupMenu.java
src/jalview/appletgui/AlignFrame.java
src/jalview/appletgui/AnnotationLabels.java
src/jalview/appletgui/CutAndPasteTransfer.java
src/jalview/appletgui/IdCanvas.java
src/jalview/appletgui/ScalePanel.java
src/jalview/appletgui/SeqCanvas.java
src/jalview/appletgui/SequenceRenderer.java
src/jalview/bin/JalviewLite.java
src/jalview/datamodel/Alignment.java
src/jalview/datamodel/CigarArray.java
src/jalview/datamodel/ColumnSelection.java
src/jalview/datamodel/Sequence.java
src/jalview/datamodel/SequenceCollectionI.java
src/jalview/datamodel/SequenceI.java
src/jalview/gui/AlignFrame.java
src/jalview/gui/AlignViewport.java
src/jalview/gui/AlignmentPanel.java
src/jalview/gui/AnnotationExporter.java
src/jalview/gui/AnnotationLabels.java
src/jalview/gui/IdCanvas.java
src/jalview/gui/Jalview2XML.java
src/jalview/gui/PopupMenu.java
src/jalview/gui/ScalePanel.java
src/jalview/gui/SeqCanvas.java
src/jalview/gui/SequenceRenderer.java
src/jalview/io/AnnotationFile.java
src/jalview/io/packed/ParsePackedSet.java
src/jalview/viewmodel/AlignmentViewport.java
src/jalview/ws/rest/params/AnnotationFile.java
test/jalview/datamodel/SequenceTest.java
test/jalview/io/AnnotationFileIOTest.java
test/jalview/ws/jabaws/DisorderAnnotExportImport.java
test/jalview/ws/jabaws/JpredJabaStructExportImport.java
test/jalview/ws/jabaws/RNAStructExportImport.java

diff --git a/examples/testdata/uniref50_seqref.jva b/examples/testdata/uniref50_seqref.jva
new file mode 100644 (file)
index 0000000..5e7d2da
--- /dev/null
@@ -0,0 +1,176 @@
+JALVIEW_ANNOTATION
+# Created: Fri Jun 21 13:44:50 BST 2013
+
+BAR_GRAPH      Conservation    Conservation of total alignment less than 25% gaps      1.0,1,1.0,[5d1500]|3.0,3,3.0,[7d3f00]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|1.0,1,1.0,[5d1500]|2.0,2,2.0,[6d2a00]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|2.0,2,2.0,[6d2a00]|1.0,1,1.0,[5d1500]|1.0,1,1.0,[5d1500]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,-,0.0,[4d0000]|2.0,2,2.0,[6d2a00]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|11.0,*,11.0,[ffe600]|7.0,7,7.0,[be9200]|11.0,*,11.0,[ffe600]|6.0,6,6.0,[ae7d00]|11.0,*,11.0,[ffe600]|6.0,6,6.0,[ae7d00]|8.0,8,8.0,[cea700]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|7.0,7,7.0,[be9200]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|6.0,6,6.0,[ae7d00]|11.0,*,11.0,[ffe600]|7.0,7,7.0,[be9200]|7.0,7,7.0,[be9200]|9.0,9,9.0,[dfbc00]|5.0,5,5.0,[9e6800]|6.0,6,6.0,[ae7d00]|8.0,8,8.0,[cea700]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|11.0,*,11.0,[ffe600]|5.0,5,5.0,[9e6800]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|9.0,9,9.0,[dfbc00]|3.0,3,3.0,[7d3f00]|7.0,7,7.0,[be9200]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|9.0,9,9.0,[dfbc00]|8.0,8,8.0,[cea700]|11.0,*,11.0,[ffe600]|6.0,6,6.0,[ae7d00]|11.0,*,11.0,[ffe600]|4.0,4,4.0,[8d5300]|5.0,5,5.0,[9e6800]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|8.0,8,8.0,[cea700]|9.0,9,9.0,[dfbc00]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|2.0,2,2.0,[6d2a00]|2.0,2,2.0,[6d2a00]|1.0,1,1.0,[5d1500]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|2.0,2,2.0,[6d2a00]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|4.0,4,4.0,[8d5300]|3.0,3,3.0,[7d3f00]|1.0,1,1.0,[5d1500]|2.0,2,2.0,[6d2a00]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|5.0,5,5.0,[9e6800]|3.0,3,3.0,[7d3f00]|3.0,3,3.0,[7d3f00]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|
+BAR_GRAPH      Quality Alignment Quality based on Blosum62 scores      29.151815,29.151815,[cba200]|30.574812,30.574812,[d1aa00]|14.400199,14.400199,[8b5000]|16.93248,16.93248,[965e00]|2.1220763,2.1220763,[560c00]|2.2049963,2.2049963,[560c00]|3.647952,3.647952,[5c1400]|4.814642,4.814642,[611b00]|18.351393,18.351393,[9c6600]|17.532412,17.532412,[996200]|7.5054855,7.5054855,[6d2a00]|15.490477,15.490477,[905600]|14.241707,14.241707,[8a4f00]|9.905579,9.905579,[773700]|20.354017,20.354017,[a57100]|26.870352,26.870352,[c19600]|24.969187,24.969187,[b98b00]|27.419409,27.419409,[c39900]|15.350427,15.350427,[8f5600]|21.116522,21.116522,[a87600]|9.34032,9.34032,[753400]|14.1895275,14.1895275,[8a4f00]|10.104505,10.104505,[783800]|8.587312,8.587312,[723000]|18.694708,18.694708,[9e6800]|11.420612,11.420612,[7e4000]|6.8467255,6.8467255,[6a2600]|17.449827,17.449827,[986100]|16.825909,16.825909,[955e00]|2.4334474,2.4334474,[570e00]|15.685622,15.685622,[915700]|9.836516,9.836516,[773700]|3.4712791,3.4712791,[5c1300]|4.531816,4.531816,[601900]|7.8744216,7.8744216,[6f2c00]|0.0,0.0,[4d0000]|9.01113,9.01113,[743200]|3.174218,3.174218,[5a1200]|2.0395048,2.0395048,[550b00]|2.1654668,2.1654668,[560c00]|21.517344,21.517344,[aa7800]|15.738462,15.738462,[915800]|14.844854,14.844854,[8d5300]|22.159096,22.159096,[ad7c00]|13.956608,13.956608,[894e00]|20.147892,20.147892,[a47000]|25.067545,25.067545,[b98c00]|2.0943506,2.0943506,[560c00]|20.30842,20.30842,[a57100]|10.254437,10.254437,[793900]|6.5836596,6.5836596,[692500]|19.446732,19.446732,[a16c00]|6.2202287,6.2202287,[672300]|9.796006,9.796006,[773700]|6.0385494,6.0385494,[672200]|13.963727,13.963727,[894e00]|13.838549,13.838549,[884d00]|18.48424,18.48424,[9d6700]|18.302633,18.302633,[9c6600]|41.172745,41.172745,[ffe600]|32.59908,32.59908,[dab600]|41.172745,41.172745,[ffe600]|34.495945,34.495945,[e2c000]|41.172745,41.172745,[ffe600]|33.501804,33.501804,[debb00]|27.034466,27.034466,[c29700]|40.020737,40.020737,[fadf00]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|29.252739,29.252739,[cba300]|41.172745,41.172745,[ffe600]|14.935498,14.935498,[8d5300]|0.88449144,0.88449144,[500500]|41.172745,41.172745,[ffe600]|20.81991,20.81991,[a77400]|31.73346,31.73346,[d6b100]|29.757969,29.757969,[cea600]|16.279755,16.279755,[935b00]|32.647984,32.647984,[dab600]|38.352337,38.352337,[f3d600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|39.6125,39.6125,[f8dd00]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|9.671661,9.671661,[763600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|11.17141,11.17141,[7d3e00]|41.172745,41.172745,[ffe600]|3.2054348,3.2054348,[5a1200]|38.569283,38.569283,[f4d700]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|39.707684,39.707684,[f9dd00]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|39.447525,39.447525,[f8dc00]|21.229778,21.229778,[a97600]|27.779364,27.779364,[c59b00]|41.172745,41.172745,[ffe600]|24.149143,24.149143,[b58700]|39.447525,39.447525,[f8dc00]|33.857655,33.857655,[dfbd00]|41.172745,41.172745,[ffe600]|28.69976,28.69976,[c9a000]|41.172745,41.172745,[ffe600]|14.611241,14.611241,[8c5100]|32.346375,32.346375,[d9b400]|39.24055,39.24055,[f7db00]|41.172745,41.172745,[ffe600]|38.352337,38.352337,[f3d600]|38.569283,38.569283,[f4d700]|22.374107,22.374107,[ae7d00]|36.98438,36.98438,[edce00]|12.34415,12.34415,[824500]|11.811655,11.811655,[804200]|14.798897,14.798897,[8d5200]|36.60138,36.60138,[ebcc00]|14.0762415,14.0762415,[8a4e00]|36.817875,36.817875,[eccd00]|36.53897,36.53897,[ebcc00]|37.583706,37.583706,[efd100]|35.536423,35.536423,[e7c600]|18.004925,18.004925,[9b6400]|37.633095,37.633095,[f0d200]|34.738743,34.738743,[e3c200]|36.451622,36.451622,[ebcb00]|19.948801,19.948801,[a36f00]|28.285,28.285,[c79e00]|35.93151,35.93151,[e8c800]|36.817875,36.817875,[eccd00]|26.762383,26.762383,[c19500]|36.37101,36.37101,[eacb00]|36.413998,36.413998,[eacb00]|37.583706,37.583706,[efd100]|36.282784,36.282784,[eaca00]|34.729824,34.729824,[e3c200]|36.413998,36.413998,[eacb00]|24.348654,24.348654,[b68800]|24.349539,24.349539,[b68800]|34.091675,34.091675,[e0be00]|21.114677,21.114677,[a87600]|13.676696,13.676696,[884c00]|2.1107035,2.1107035,[560c00]|
+BAR_GRAPH      Consensus       PID     80.0,M,M 80%|80.0,A,A 80%|20.0,+,[AST] 20%|53.333332,T,T 53%|0.0,-,- 0%|0.0,-,- 0%|13.333333,T,T 13%|20.0,P,P 20%|40.0,A,A 40%|40.0,L,L 40%|46.666668,S,S 46%|40.0,G,G 40%|33.333332,T,T 33%|20.0,+,[AIM] 20%|33.333332,V,V 33%|66.666664,S,S 66%|66.666664,T,T 66%|66.666664,S,S 66%|66.666664,F,F 66%|46.666668,L,L 46%|46.666668,R,R 46%|46.666668,R,R 46%|26.666666,Q,Q 26%|46.666668,P,P 46%|40.0,A,A 40%|60.0,P,P 60%|26.666666,T,T 26%|53.333332,S,S 53%|40.0,L,L 40%|20.0,R,R 20%|26.666666,S,S 26%|33.333332,L,L 33%|40.0,P,P 40%|26.666666,S,S 26%|33.333332,+,[AN] 33%|26.666666,V,V 26%|33.333332,G,G 33%|20.0,+,[EQ] 20%|0.0,-,- 0%|0.0,-,- 0%|33.333332,+,[AS] 33%|53.333332,L,L 53%|60.0,F,F 60%|73.333336,G,G 73%|66.666664,L,L 66%|66.666664,K,K 66%|53.333332,S,S 53%|0.0,-,- 0%|40.0,S,S 40%|26.666666,T,T 26%|20.0,A,A 20%|66.666664,R,R 66%|40.0,G,G 40%|53.333332,G,G 53%|46.666668,R,R 46%|33.333332,V,V 33%|46.666668,T,T 46%|53.333332,A,A 53%|66.666664,M,M 66%|100.0,A,A 100%|53.333332,T,T 53%|100.0,Y,Y 100%|86.666664,K,K 86%|100.0,V,V 100%|86.666664,K,K 86%|66.666664,L,L 66%|80.0,I,I 80%|100.0,T,T 100%|100.0,P,P 100%|66.666664,E,E 66%|100.0,G,G 100%|46.666668,E,E 46%|46.666668,Q,Q 46%|100.0,E,E 100%|46.666668,F,F 46%|60.0,E,E 60%|86.666664,C,C 86%|66.666664,P,P 66%|80.0,D,D 80%|93.333336,D,D 93%|100.0,V,V 100%|100.0,Y,Y 100%|66.666664,I,I 66%|100.0,L,L 100%|100.0,D,D 100%|46.666668,A,A 46%|100.0,A,A 100%|100.0,E,E 100%|100.0,E,E 100%|53.333332,A,A 53%|100.0,G,G 100%|60.0,I,I 60%|93.333336,D,D 93%|100.0,L,L 100%|100.0,P,P 100%|93.333336,Y,Y 93%|100.0,S,S 100%|100.0,C,C 100%|100.0,R,R 100%|100.0,A,A 100%|100.0,G,G 100%|100.0,S,S 100%|100.0,C,C 100%|100.0,S,S 100%|100.0,S,S 100%|100.0,C,C 100%|100.0,A,A 100%|100.0,G,G 100%|100.0,K,K 100%|80.0,V,V 80%|60.0,V,V 60%|53.333332,S,S 53%|100.0,G,G 100%|60.0,S,S 60%|80.0,V,V 80%|80.0,D,D 80%|100.0,Q,Q 100%|66.666664,S,S 66%|100.0,D,D 100%|46.666668,+,[GQ] 46%|73.333336,S,S 73%|93.333336,F,F 93%|100.0,L,L 100%|93.333336,D,D 93%|93.333336,D,D 93%|53.333332,D,D 53%|93.333336,Q,Q 93%|53.333332,I,I 53%|40.0,A,A 40%|53.333332,E,E 53%|93.333336,G,G 93%|46.666668,W,W 46%|93.333336,V,V 93%|93.333336,L,L 93%|93.333336,T,T 93%|93.333336,C,C 93%|53.333332,V,V 53%|93.333336,A,A 93%|86.666664,Y,Y 86%|93.333336,P,P 93%|60.0,T,T 60%|73.333336,S,S 73%|93.333336,D,D 93%|93.333336,V,V 93%|66.666664,T,T 66%|93.333336,I,I 93%|93.333336,E,E 93%|93.333336,T,T 93%|93.333336,H,H 93%|86.666664,K,K 86%|93.333336,E,E 93%|73.333336,E,E 73%|60.0,E,E 60%|73.333336,L,L 73%|46.666668,T,T 46%|40.0,A,A 40%|0.0,-,- 0%|
+
+SEQUENCE_REF   FER2_ARATH
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.1671,0.1671,[72144e]|0.2129,0.2129,[72144e]|0.247,0.247,[72144e]|0.1554,0.1554,[72144e]|0.1162,0.1162,[72144e]|0.1449,0.1449,[72144e]|0.1731,0.1731,[72144e]|0.2064,0.2064,[72144e]|0.2436,0.2436,[72144e]|0.2715,0.2715,[72144e]|0.3249,0.3249,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.2399,0.2399,[72144e]|0.2364,0.2364,[72144e]|0.2645,0.2645,[72144e]|0.2609,0.2609,[72144e]|0.2988,0.2988,[72144e]|0.2064,0.2064,[72144e]|0.2094,0.2094,[72144e]|0.2849,0.2849,[72144e]|0.3426,0.3426,[72144e]|0.3529,0.3529,[72144e]|0.3426,0.3426,[72144e]|0.2817,0.2817,[72144e]|0.2783,0.2783,[72144e]|0.3426,0.3426,[72144e]|0.2715,0.2715,[72144e]|0.2609,0.2609,[72144e]|0.2503,0.2503,[72144e]|0.2364,0.2364,[72144e]|0.2364,0.2364,[72144e]|0.1791,0.1791,[72144e]|0.247,0.247,[72144e]|0.2503,0.2503,[72144e]|0.3149,0.3149,[72144e]|0.3149,0.3149,[72144e]|0.2645,0.2645,[72144e]|0.3356,0.3356,[72144e]|0.2752,0.2752,[72144e]|0.346,0.346,[72144e]|0.346,0.346,[72144e]|0.3426,0.3426,[72144e]|0.2645,0.2645,[72144e]|0.247,0.247,[72144e]|0.1969,0.1969,[72144e]|0.2503,0.2503,[72144e]|0.2503,0.2503,[72144e]|0.1852,0.1852,[72144e]|0.2541,0.2541,[72144e]|0.2951,0.2951,[72144e]|0.3182,0.3182,[72144e]|0.3215,0.3215,[72144e]|0.3392,0.3392,[72144e]|0.374,0.374,[72144e]|0.3948,0.3948,[72144e]|0.3392,0.3392,[72144e]|0.3599,0.3599,[72144e]|0.268,0.268,[72144e]|0.3426,0.3426,[72144e]|0.3599,0.3599,[72144e]|0.4051,0.4051,[72144e]|0.374,0.374,[72144e]|0.3249,0.3249,[72144e]|0.268,0.268,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.3286,0.3286,[72144e]|0.3117,0.3117,[72144e]|0.4292,0.4292,[72144e]|0.5296,0.5296,[72144e]|0.4901,0.4901,[72144e]|0.4582,0.4582,[72144e]|0.3667,0.3667,[72144e]|0.384,0.384,[72144e]|0.2918,0.2918,[72144e]|0.3182,0.3182,[72144e]|0.2193,0.2193,[72144e]|0.2752,0.2752,[72144e]|0.1643,0.1643,[72144e]|0.2541,0.2541,[72144e]|0.2034,0.2034,[72144e]|0.1852,0.1852,[72144e]|0.1702,0.1702,[72144e]|0.1399,0.1399,[72144e]|0.2034,0.2034,[72144e]|0.2541,0.2541,[72144e]|0.2292,0.2292,[72144e]|0.1881,0.1881,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.1643,0.1643,[72144e]|0.107,0.107,[72144e]|0.1251,0.1251,[72144e]|0.1251,0.1251,[72144e]|0.1759,0.1759,[72144e]|0.1115,0.1115,[72144e]|0.1731,0.1731,[72144e]|0.1501,0.1501,[72144e]|0.2164,0.2164,[72144e]|0.2328,0.2328,[72144e]|0.3286,0.3286,[72144e]|0.3286,0.3286,[72144e]|0.2645,0.2645,[72144e]|0.2034,0.2034,[72144e]|0.2193,0.2193,[72144e]|0.3286,0.3286,[72144e]|0.3529,0.3529,[72144e]|0.3631,0.3631,[72144e]|0.4292,0.4292,[72144e]|0.4541,0.4541,[72144e]|0.4766,0.4766,[72144e]|0.4864,0.4864,[72144e]|0.4652,0.4652,[72144e]|0.4685,0.4685,[72144e]|0.4051,0.4051,[72144e]|0.4087,0.4087,[72144e]|0.3117,0.3117,[72144e]|0.3321,0.3321,[72144e]|0.2918,0.2918,[72144e]|0.2164,0.2164,[72144e]|0.2503,0.2503,[72144e]|0.2364,0.2364,[72144e]|0.2292,0.2292,[72144e]|0.2503,0.2503,[72144e]|0.2918,0.2918,[72144e]|0.3053,0.3053,[72144e]|0.2258,0.2258,[72144e]|0.2292,0.2292,[72144e]|0.2129,0.2129,[72144e]|0.2064,0.2064,[72144e]|0.2164,0.2164,[72144e]|0.2436,0.2436,[72144e]|0.2436,0.2436,[72144e]|0.2193,0.2193,[72144e]|0.2258,0.2258,[72144e]|0.2503,0.2503,[72144e]|0.3117,0.3117,[72144e]|0.2884,0.2884,[72144e]|0.374,0.374,[72144e]|0.4149,0.4149,[72144e]|0.4292,0.4292,[72144e]|0.5098,0.5098,[72144e]|0.4476,0.4476,[72144e]|0.422,0.422,[72144e]|0.4017,0.4017,[72144e]|0.3494,0.3494,[72144e]|0.4087,0.4087,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.82,0.82,[329440]|0.7147,0.7147,[329440]|0.6715,0.6715,[329440]|0.6334,0.6334,[329440]|0.59,0.59,[329440]|0.4513,0.4513,[329440]|0.3263,0.3263,[329440]|0.2963,0.2963,[329440]|0.2657,0.2657,[329440]|0.2292,0.2292,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2865,0.2865,[329440]|0.2122,0.2122,[329440]|0.2041,0.2041,[329440]|0.1667,0.1667,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2292,0.2292,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.2748,0.2748,[329440]|0.2865,0.2865,[329440]|0.3762,0.3762,[329440]|0.3847,0.3847,[329440]|0.2786,0.2786,[329440]|0.27,0.27,[329440]|0.1878,0.1878,[329440]|0.1805,0.1805,[329440]|0.1805,0.1805,[329440]|0.1532,0.1532,[329440]|0.2255,0.2255,[329440]|0.1958,0.1958,[329440]|0.2786,0.2786,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.3491,0.3491,[329440]|0.2531,0.2531,[329440]|0.3456,0.3456,[329440]|0.3491,0.3491,[329440]|0.3146,0.3146,[329440]|0.282,0.282,[329440]|0.27,0.27,[329440]|0.1998,0.1998,[329440]|0.2558,0.2558,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.2602,0.2602,[329440]|0.1878,0.1878,[329440]|0.1844,0.1844,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.282,0.282,[329440]|0.3005,0.3005,[329440]|0.2385,0.2385,[329440]|0.3184,0.3184,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.3225,0.3225,[329440]|0.3762,0.3762,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.2865,0.2865,[329440]|0.2865,0.2865,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4037,0.4037,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3578,0.3578,[329440]|0.3535,0.3535,[329440]|0.2748,0.2748,[329440]|0.2963,0.2963,[329440]|0.2167,0.2167,[329440]|0.3096,0.3096,[329440]|0.2255,0.2255,[329440]|0.3225,0.3225,[329440]|0.1732,0.1732,[329440]|0.1495,0.1495,[329440]|0.1088,0.1088,[329440]|0.1456,0.1456,[329440]|0.2041,0.2041,[329440]|0.1532,0.1532,[329440]|0.2041,0.2041,[329440]|0.1878,0.1878,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.1205,0.1205,[329440]|0.0965,0.0965,[329440]|0.0884,0.0884,[329440]|0.0643,0.0643,[329440]|0.0935,0.0935,[329440]|0.0771,0.0771,[329440]|0.1088,0.1088,[329440]|0.0587,0.0587,[329440]|0.0991,0.0991,[329440]|0.0991,0.0991,[329440]|0.1958,0.1958,[329440]|0.2255,0.2255,[329440]|0.2602,0.2602,[329440]|0.2657,0.2657,[329440]|0.1844,0.1844,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2657,0.2657,[329440]|0.3939,0.3939,[329440]|0.4245,0.4245,[329440]|0.4037,0.4037,[329440]|0.4203,0.4203,[329440]|0.4967,0.4967,[329440]|0.5473,0.5473,[329440]|0.4781,0.4781,[329440]|0.4282,0.4282,[329440]|0.3578,0.3578,[329440]|0.4203,0.4203,[329440]|0.3491,0.3491,[329440]|0.2913,0.2913,[329440]|0.2657,0.2657,[329440]|0.1805,0.1805,[329440]|0.2167,0.2167,[329440]|0.208,0.208,[329440]|0.2963,0.2963,[329440]|0.3806,0.3806,[329440]|0.2963,0.2963,[329440]|0.2255,0.2255,[329440]|0.1456,0.1456,[329440]|0.1635,0.1635,[329440]|0.1766,0.1766,[329440]|0.1698,0.1698,[329440]|0.1349,0.1349,[329440]|0.1532,0.1532,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2432,0.2432,[329440]|0.2041,0.2041,[329440]|0.3005,0.3005,[329440]|0.4037,0.4037,[329440]|0.4749,0.4749,[329440]|0.59,0.59,[329440]|0.5941,0.5941,[329440]|0.6442,0.6442,[329440]|0.6827,0.6827,[329440]|0.7034,0.7034,[329440]|0.8001,0.8001,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   Q93Z60_ARATH
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.1671,0.1671,[72144e]|0.2129,0.2129,[72144e]|0.247,0.247,[72144e]|0.1554,0.1554,[72144e]|0.1162,0.1162,[72144e]|0.1449,0.1449,[72144e]|0.1731,0.1731,[72144e]|0.2064,0.2064,[72144e]|0.2436,0.2436,[72144e]|0.2715,0.2715,[72144e]|0.3215,0.3215,[72144e]|0.2752,0.2752,[72144e]|0.2988,0.2988,[72144e]|0.2364,0.2364,[72144e]|0.2328,0.2328,[72144e]|0.2575,0.2575,[72144e]|0.2575,0.2575,[72144e]|0.2918,0.2918,[72144e]|0.2034,0.2034,[72144e]|0.2034,0.2034,[72144e]|0.2817,0.2817,[72144e]|0.3392,0.3392,[72144e]|0.3494,0.3494,[72144e]|0.3426,0.3426,[72144e]|0.2783,0.2783,[72144e]|0.2752,0.2752,[72144e]|0.3426,0.3426,[72144e]|0.2715,0.2715,[72144e]|0.2609,0.2609,[72144e]|0.247,0.247,[72144e]|0.2364,0.2364,[72144e]|0.2364,0.2364,[72144e]|0.1791,0.1791,[72144e]|0.247,0.247,[72144e]|0.2503,0.2503,[72144e]|0.3215,0.3215,[72144e]|0.3215,0.3215,[72144e]|0.2715,0.2715,[72144e]|0.3426,0.3426,[72144e]|0.2817,0.2817,[72144e]|0.3566,0.3566,[72144e]|0.3566,0.3566,[72144e]|0.3529,0.3529,[72144e]|0.2715,0.2715,[72144e]|0.2575,0.2575,[72144e]|0.2064,0.2064,[72144e]|0.2645,0.2645,[72144e]|0.2645,0.2645,[72144e]|0.1942,0.1942,[72144e]|0.2645,0.2645,[72144e]|0.3053,0.3053,[72144e]|0.3286,0.3286,[72144e]|0.3321,0.3321,[72144e]|0.3494,0.3494,[72144e]|0.384,0.384,[72144e]|0.4051,0.4051,[72144e]|0.3494,0.3494,[72144e]|0.3667,0.3667,[72144e]|0.2752,0.2752,[72144e]|0.346,0.346,[72144e]|0.3631,0.3631,[72144e]|0.4051,0.4051,[72144e]|0.3704,0.3704,[72144e]|0.3215,0.3215,[72144e]|0.268,0.268,[72144e]|0.2783,0.2783,[72144e]|0.2988,0.2988,[72144e]|0.3249,0.3249,[72144e]|0.3053,0.3053,[72144e]|0.422,0.422,[72144e]|0.5139,0.5139,[72144e]|0.4801,0.4801,[72144e]|0.4476,0.4476,[72144e]|0.3566,0.3566,[72144e]|0.374,0.374,[72144e]|0.2849,0.2849,[72144e]|0.3087,0.3087,[72144e]|0.2129,0.2129,[72144e]|0.2645,0.2645,[72144e]|0.1583,0.1583,[72144e]|0.247,0.247,[72144e]|0.2002,0.2002,[72144e]|0.1852,0.1852,[72144e]|0.1702,0.1702,[72144e]|0.1399,0.1399,[72144e]|0.2002,0.2002,[72144e]|0.247,0.247,[72144e]|0.2224,0.2224,[72144e]|0.1852,0.1852,[72144e]|0.2094,0.2094,[72144e]|0.2258,0.2258,[72144e]|0.1611,0.1611,[72144e]|0.1092,0.1092,[72144e]|0.1251,0.1251,[72144e]|0.1251,0.1251,[72144e]|0.1759,0.1759,[72144e]|0.1115,0.1115,[72144e]|0.1731,0.1731,[72144e]|0.1501,0.1501,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.3249,0.3249,[72144e]|0.3215,0.3215,[72144e]|0.2645,0.2645,[72144e]|0.2002,0.2002,[72144e]|0.2193,0.2193,[72144e]|0.3286,0.3286,[72144e]|0.3249,0.3249,[72144e]|0.3117,0.3117,[72144e]|0.391,0.391,[72144e]|0.4051,0.4051,[72144e]|0.384,0.384,[72144e]|0.3774,0.3774,[72144e]|0.4292,0.4292,[72144e]|0.4901,0.4901,[72144e]|0.4801,0.4801,[72144e]|0.4582,0.4582,[72144e]|0.4409,0.4409,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.82,0.82,[329440]|0.7147,0.7147,[329440]|0.6715,0.6715,[329440]|0.6334,0.6334,[329440]|0.59,0.59,[329440]|0.4513,0.4513,[329440]|0.3263,0.3263,[329440]|0.2963,0.2963,[329440]|0.2657,0.2657,[329440]|0.2292,0.2292,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2865,0.2865,[329440]|0.2122,0.2122,[329440]|0.2041,0.2041,[329440]|0.1667,0.1667,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2292,0.2292,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.2748,0.2748,[329440]|0.2865,0.2865,[329440]|0.3762,0.3762,[329440]|0.3847,0.3847,[329440]|0.2786,0.2786,[329440]|0.27,0.27,[329440]|0.1878,0.1878,[329440]|0.1805,0.1805,[329440]|0.1805,0.1805,[329440]|0.1532,0.1532,[329440]|0.2255,0.2255,[329440]|0.1958,0.1958,[329440]|0.2786,0.2786,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.3491,0.3491,[329440]|0.2531,0.2531,[329440]|0.3456,0.3456,[329440]|0.3491,0.3491,[329440]|0.3146,0.3146,[329440]|0.282,0.282,[329440]|0.27,0.27,[329440]|0.1998,0.1998,[329440]|0.2558,0.2558,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.2602,0.2602,[329440]|0.1878,0.1878,[329440]|0.1844,0.1844,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.282,0.282,[329440]|0.3005,0.3005,[329440]|0.2385,0.2385,[329440]|0.3184,0.3184,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.3225,0.3225,[329440]|0.3762,0.3762,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.2865,0.2865,[329440]|0.2865,0.2865,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4037,0.4037,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3578,0.3578,[329440]|0.3535,0.3535,[329440]|0.2748,0.2748,[329440]|0.2963,0.2963,[329440]|0.2167,0.2167,[329440]|0.3096,0.3096,[329440]|0.2255,0.2255,[329440]|0.3225,0.3225,[329440]|0.1732,0.1732,[329440]|0.1495,0.1495,[329440]|0.1088,0.1088,[329440]|0.1456,0.1456,[329440]|0.2041,0.2041,[329440]|0.1532,0.1532,[329440]|0.1998,0.1998,[329440]|0.1844,0.1844,[329440]|0.1205,0.1205,[329440]|0.124,0.124,[329440]|0.1088,0.1088,[329440]|0.0858,0.0858,[329440]|0.0789,0.0789,[329440]|0.0607,0.0607,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.1018,0.1018,[329440]|0.0567,0.0567,[329440]|0.0935,0.0935,[329440]|0.0965,0.0965,[329440]|0.1921,0.1921,[329440]|0.2167,0.2167,[329440]|0.2558,0.2558,[329440]|0.2602,0.2602,[329440]|0.1921,0.1921,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.2913,0.2913,[329440]|0.4556,0.4556,[329440]|0.5331,0.5331,[329440]|0.5802,0.5802,[329440]|0.6412,0.6412,[329440]|0.7232,0.7232,[329440]|0.8074,0.8074,[329440]|0.8457,0.8457,[329440]|0.8823,0.8823,[329440]|0.9141,0.9141,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER1_ARATH
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.1583,0.1583,[72144e]|0.2034,0.2034,[72144e]|0.2364,0.2364,[72144e]|0.1476,0.1476,[72144e]|0.1048,0.1048,[72144e]|0.1349,0.1349,[72144e]|0.1643,0.1643,[72144e]|0.1881,0.1881,[72144e]|0.247,0.247,[72144e]|0.2399,0.2399,[72144e]|0.2951,0.2951,[72144e]|0.2503,0.2503,[72144e]|0.2783,0.2783,[72144e]|0.2129,0.2129,[72144e]|0.2094,0.2094,[72144e]|0.2364,0.2364,[72144e]|0.2328,0.2328,[72144e]|0.2715,0.2715,[72144e]|0.2715,0.2715,[72144e]|0.2715,0.2715,[72144e]|0.346,0.346,[72144e]|0.4051,0.4051,[72144e]|0.4149,0.4149,[72144e]|0.4087,0.4087,[72144e]|0.3392,0.3392,[72144e]|0.3392,0.3392,[72144e]|0.4087,0.4087,[72144e]|0.3321,0.3321,[72144e]|0.3215,0.3215,[72144e]|0.3215,0.3215,[72144e]|0.2884,0.2884,[72144e]|0.3215,0.3215,[72144e]|0.2609,0.2609,[72144e]|0.3321,0.3321,[72144e]|0.3356,0.3356,[72144e]|0.4051,0.4051,[72144e]|0.4017,0.4017,[72144e]|0.3494,0.3494,[72144e]|0.4292,0.4292,[72144e]|0.3667,0.3667,[72144e]|0.346,0.346,[72144e]|0.3494,0.3494,[72144e]|0.346,0.346,[72144e]|0.268,0.268,[72144e]|0.247,0.247,[72144e]|0.1969,0.1969,[72144e]|0.2541,0.2541,[72144e]|0.2541,0.2541,[72144e]|0.1881,0.1881,[72144e]|0.2609,0.2609,[72144e]|0.3019,0.3019,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.346,0.346,[72144e]|0.3053,0.3053,[72144e]|0.3249,0.3249,[72144e]|0.2715,0.2715,[72144e]|0.2951,0.2951,[72144e]|0.2034,0.2034,[72144e]|0.2715,0.2715,[72144e]|0.2817,0.2817,[72144e]|0.3249,0.3249,[72144e]|0.2951,0.2951,[72144e]|0.247,0.247,[72144e]|0.1942,0.1942,[72144e]|0.2002,0.2002,[72144e]|0.2224,0.2224,[72144e]|0.2503,0.2503,[72144e]|0.2328,0.2328,[72144e]|0.346,0.346,[72144e]|0.4409,0.4409,[72144e]|0.4087,0.4087,[72144e]|0.3774,0.3774,[72144e]|0.2849,0.2849,[72144e]|0.2988,0.2988,[72144e]|0.2064,0.2064,[72144e]|0.3087,0.3087,[72144e]|0.2094,0.2094,[72144e]|0.2645,0.2645,[72144e]|0.1554,0.1554,[72144e]|0.2399,0.2399,[72144e]|0.1969,0.1969,[72144e]|0.1852,0.1852,[72144e]|0.1702,0.1702,[72144e]|0.1399,0.1399,[72144e]|0.2002,0.2002,[72144e]|0.2503,0.2503,[72144e]|0.2258,0.2258,[72144e]|0.1881,0.1881,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.1611,0.1611,[72144e]|0.107,0.107,[72144e]|0.1251,0.1251,[72144e]|0.1229,0.1229,[72144e]|0.1759,0.1759,[72144e]|0.1229,0.1229,[72144e]|0.1914,0.1914,[72144e]|0.1702,0.1702,[72144e]|0.2364,0.2364,[72144e]|0.2503,0.2503,[72144e]|0.3529,0.3529,[72144e]|0.3494,0.3494,[72144e]|0.2884,0.2884,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.3529,0.3529,[72144e]|0.3774,0.3774,[72144e]|0.3872,0.3872,[72144e]|0.4119,0.4119,[72144e]|0.4369,0.4369,[72144e]|0.4619,0.4619,[72144e]|0.4725,0.4725,[72144e]|0.433,0.433,[72144e]|0.4369,0.4369,[72144e]|0.374,0.374,[72144e]|0.3774,0.3774,[72144e]|0.2817,0.2817,[72144e]|0.3087,0.3087,[72144e]|0.2715,0.2715,[72144e]|0.1942,0.1942,[72144e]|0.2292,0.2292,[72144e]|0.2164,0.2164,[72144e]|0.2064,0.2064,[72144e]|0.2224,0.2224,[72144e]|0.2609,0.2609,[72144e]|0.3249,0.3249,[72144e]|0.2436,0.2436,[72144e]|0.2503,0.2503,[72144e]|0.2328,0.2328,[72144e]|0.2193,0.2193,[72144e]|0.2715,0.2715,[72144e]|0.2951,0.2951,[72144e]|0.2988,0.2988,[72144e]|0.3149,0.3149,[72144e]|0.3392,0.3392,[72144e]|0.3356,0.3356,[72144e]|0.3948,0.3948,[72144e]|0.3774,0.3774,[72144e]|0.4725,0.4725,[72144e]|0.4864,0.4864,[72144e]|0.5055,0.5055,[72144e]|0.6043,0.6043,[72144e]|0.5296,0.5296,[72144e]|0.5098,0.5098,[72144e]|0.4979,0.4979,[72144e]|0.4507,0.4507,[72144e]|0.5296,0.5296,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.8242,0.8242,[329440]|0.7275,0.7275,[329440]|0.6906,0.6906,[329440]|0.6516,0.6516,[329440]|0.6124,0.6124,[329440]|0.4781,0.4781,[329440]|0.3535,0.3535,[329440]|0.3225,0.3225,[329440]|0.2913,0.2913,[329440]|0.2432,0.2432,[329440]|0.2292,0.2292,[329440]|0.2209,0.2209,[329440]|0.2913,0.2913,[329440]|0.2167,0.2167,[329440]|0.208,0.208,[329440]|0.1766,0.1766,[329440]|0.2657,0.2657,[329440]|0.2657,0.2657,[329440]|0.1958,0.1958,[329440]|0.2558,0.2558,[329440]|0.3184,0.3184,[329440]|0.3456,0.3456,[329440]|0.3456,0.3456,[329440]|0.3399,0.3399,[329440]|0.3578,0.3578,[329440]|0.4458,0.4458,[329440]|0.46,0.46,[329440]|0.3578,0.3578,[329440]|0.3456,0.3456,[329440]|0.2786,0.2786,[329440]|0.2558,0.2558,[329440]|0.2913,0.2913,[329440]|0.2602,0.2602,[329440]|0.3399,0.3399,[329440]|0.3096,0.3096,[329440]|0.3885,0.3885,[329440]|0.3717,0.3717,[329440]|0.3762,0.3762,[329440]|0.4556,0.4556,[329440]|0.363,0.363,[329440]|0.3668,0.3668,[329440]|0.3668,0.3668,[329440]|0.3359,0.3359,[329440]|0.3005,0.3005,[329440]|0.282,0.282,[329440]|0.208,0.208,[329440]|0.2602,0.2602,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.2483,0.2483,[329440]|0.1732,0.1732,[329440]|0.1698,0.1698,[329440]|0.1998,0.1998,[329440]|0.2122,0.2122,[329440]|0.2432,0.2432,[329440]|0.2602,0.2602,[329440]|0.1878,0.1878,[329440]|0.208,0.208,[329440]|0.1532,0.1532,[329440]|0.2209,0.2209,[329440]|0.1456,0.1456,[329440]|0.1844,0.1844,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.2209,0.2209,[329440]|0.2255,0.2255,[329440]|0.1878,0.1878,[329440]|0.1844,0.1844,[329440]|0.2167,0.2167,[329440]|0.2657,0.2657,[329440]|0.3005,0.3005,[329440]|0.3225,0.3225,[329440]|0.3096,0.3096,[329440]|0.2483,0.2483,[329440]|0.2483,0.2483,[329440]|0.1698,0.1698,[329440]|0.2602,0.2602,[329440]|0.1805,0.1805,[329440]|0.27,0.27,[329440]|0.1878,0.1878,[329440]|0.2786,0.2786,[329440]|0.138,0.138,[329440]|0.1205,0.1205,[329440]|0.0884,0.0884,[329440]|0.1178,0.1178,[329440]|0.1732,0.1732,[329440]|0.1292,0.1292,[329440]|0.1805,0.1805,[329440]|0.1698,0.1698,[329440]|0.1178,0.1178,[329440]|0.124,0.124,[329440]|0.1088,0.1088,[329440]|0.0858,0.0858,[329440]|0.0771,0.0771,[329440]|0.0554,0.0554,[329440]|0.0832,0.0832,[329440]|0.0677,0.0677,[329440]|0.1018,0.1018,[329440]|0.0554,0.0554,[329440]|0.0965,0.0965,[329440]|0.0965,0.0965,[329440]|0.1921,0.1921,[329440]|0.2167,0.2167,[329440]|0.2558,0.2558,[329440]|0.2602,0.2602,[329440]|0.1844,0.1844,[329440]|0.2333,0.2333,[329440]|0.2531,0.2531,[329440]|0.2657,0.2657,[329440]|0.3992,0.3992,[329440]|0.4333,0.4333,[329440]|0.3762,0.3762,[329440]|0.3992,0.3992,[329440]|0.4781,0.4781,[329440]|0.5374,0.5374,[329440]|0.4651,0.4651,[329440]|0.4203,0.4203,[329440]|0.3535,0.3535,[329440]|0.4078,0.4078,[329440]|0.3311,0.3311,[329440]|0.3096,0.3096,[329440]|0.2865,0.2865,[329440]|0.208,0.208,[329440]|0.2531,0.2531,[329440]|0.2483,0.2483,[329440]|0.3263,0.3263,[329440]|0.4078,0.4078,[329440]|0.3225,0.3225,[329440]|0.3005,0.3005,[329440]|0.2041,0.2041,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.2602,0.2602,[329440]|0.208,0.208,[329440]|0.2292,0.2292,[329440]|0.3263,0.3263,[329440]|0.3885,0.3885,[329440]|0.3939,0.3939,[329440]|0.3456,0.3456,[329440]|0.4458,0.4458,[329440]|0.5173,0.5173,[329440]|0.5802,0.5802,[329440]|0.6789,0.6789,[329440]|0.6789,0.6789,[329440]|0.7275,0.7275,[329440]|0.7644,0.7644,[329440]|0.7912,0.7912,[329440]|0.8823,0.8823,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER_BRANA
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.1969,0.1969,[72144e]|0.2783,0.2783,[72144e]|0.3182,0.3182,[72144e]|0.384,0.384,[72144e]|0.3321,0.3321,[72144e]|0.3872,0.3872,[72144e]|0.2752,0.2752,[72144e]|0.3182,0.3182,[72144e]|0.3599,0.3599,[72144e]|0.3948,0.3948,[72144e]|0.3566,0.3566,[72144e]|0.3149,0.3149,[72144e]|0.2609,0.2609,[72144e]|0.268,0.268,[72144e]|0.3053,0.3053,[72144e]|0.3321,0.3321,[72144e]|0.3249,0.3249,[72144e]|0.4476,0.4476,[72144e]|0.5456,0.5456,[72144e]|0.5098,0.5098,[72144e]|0.4766,0.4766,[72144e]|0.384,0.384,[72144e]|0.4017,0.4017,[72144e]|0.3087,0.3087,[72144e]|0.3321,0.3321,[72144e]|0.2399,0.2399,[72144e]|0.2918,0.2918,[72144e]|0.1643,0.1643,[72144e]|0.2541,0.2541,[72144e]|0.2094,0.2094,[72144e]|0.1942,0.1942,[72144e]|0.1759,0.1759,[72144e]|0.1323,0.1323,[72144e]|0.1852,0.1852,[72144e]|0.2292,0.2292,[72144e]|0.1914,0.1914,[72144e]|0.1528,0.1528,[72144e]|0.1759,0.1759,[72144e]|0.1791,0.1791,[72144e]|0.1206,0.1206,[72144e]|0.0765,0.0765,[72144e]|0.0888,0.0888,[72144e]|0.0888,0.0888,[72144e]|0.0749,0.0749,[72144e]|0.0473,0.0473,[72144e]|0.0817,0.0817,[72144e]|0.0704,0.0704,[72144e]|0.1048,0.1048,[72144e]|0.1162,0.1162,[72144e]|0.2258,0.2258,[72144e]|0.2364,0.2364,[72144e]|0.1731,0.1731,[72144e]|0.1251,0.1251,[72144e]|0.1399,0.1399,[72144e]|0.2503,0.2503,[72144e]|0.2715,0.2715,[72144e]|0.2783,0.2783,[72144e]|0.3215,0.3215,[72144e]|0.3215,0.3215,[72144e]|0.346,0.346,[72144e]|0.3667,0.3667,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.2645,0.2645,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2817,0.2817,[72144e]|0.2399,0.2399,[72144e]|0.1702,0.1702,[72144e]|0.2034,0.2034,[72144e]|0.1914,0.1914,[72144e]|0.1643,0.1643,[72144e]|0.1823,0.1823,[72144e]|0.2164,0.2164,[72144e]|0.2849,0.2849,[72144e]|0.2002,0.2002,[72144e]|0.2064,0.2064,[72144e]|0.1942,0.1942,[72144e]|0.1823,0.1823,[72144e]|0.2224,0.2224,[72144e]|0.2752,0.2752,[72144e]|0.2752,0.2752,[72144e]|0.2988,0.2988,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.3872,0.3872,[72144e]|0.3667,0.3667,[72144e]|0.4685,0.4685,[72144e]|0.4864,0.4864,[72144e]|0.5017,0.5017,[72144e]|0.5951,0.5951,[72144e]|0.5296,0.5296,[72144e]|0.5055,0.5055,[72144e]|0.494,0.494,[72144e]|0.4441,0.4441,[72144e]|0.5254,0.5254,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.7605,0.7605,[329440]|0.7458,0.7458,[329440]|0.7079,0.7079,[329440]|0.6906,0.6906,[329440]|0.6557,0.6557,[329440]|0.6412,0.6412,[329440]|0.5374,0.5374,[329440]|0.5173,0.5173,[329440]|0.3806,0.3806,[329440]|0.3578,0.3578,[329440]|0.3311,0.3311,[329440]|0.3885,0.3885,[329440]|0.3456,0.3456,[329440]|0.3456,0.3456,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.4116,0.4116,[329440]|0.4379,0.4379,[329440]|0.4651,0.4651,[329440]|0.4458,0.4458,[329440]|0.3806,0.3806,[329440]|0.3762,0.3762,[329440]|0.2913,0.2913,[329440]|0.3096,0.3096,[329440]|0.2167,0.2167,[329440]|0.3146,0.3146,[329440]|0.2255,0.2255,[329440]|0.3184,0.3184,[329440]|0.1698,0.1698,[329440]|0.138,0.138,[329440]|0.1018,0.1018,[329440]|0.1322,0.1322,[329440]|0.1805,0.1805,[329440]|0.1322,0.1322,[329440]|0.1805,0.1805,[329440]|0.1667,0.1667,[329440]|0.1117,0.1117,[329440]|0.115,0.115,[329440]|0.1018,0.1018,[329440]|0.0771,0.0771,[329440]|0.066,0.066,[329440]|0.0478,0.0478,[329440]|0.0677,0.0677,[329440]|0.0554,0.0554,[329440]|0.0478,0.0478,[329440]|0.0268,0.0268,[329440]|0.0441,0.0441,[329440]|0.0455,0.0455,[329440]|0.1018,0.1018,[329440]|0.124,0.124,[329440]|0.1667,0.1667,[329440]|0.1698,0.1698,[329440]|0.1088,0.1088,[329440]|0.138,0.138,[329440]|0.1532,0.1532,[329440]|0.1667,0.1667,[329440]|0.2786,0.2786,[329440]|0.3184,0.3184,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.3399,0.3399,[329440]|0.4078,0.4078,[329440]|0.3263,0.3263,[329440]|0.2786,0.2786,[329440]|0.2913,0.2913,[329440]|0.3491,0.3491,[329440]|0.27,0.27,[329440]|0.2432,0.2432,[329440]|0.2209,0.2209,[329440]|0.1532,0.1532,[329440]|0.1732,0.1732,[329440]|0.1698,0.1698,[329440]|0.2483,0.2483,[329440]|0.3311,0.3311,[329440]|0.2483,0.2483,[329440]|0.2292,0.2292,[329440]|0.1495,0.1495,[329440]|0.1698,0.1698,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.1805,0.1805,[329440]|0.1998,0.1998,[329440]|0.3053,0.3053,[329440]|0.3806,0.3806,[329440]|0.3939,0.3939,[329440]|0.3399,0.3399,[329440]|0.4513,0.4513,[329440]|0.5173,0.5173,[329440]|0.5846,0.5846,[329440]|0.6827,0.6827,[329440]|0.6827,0.6827,[329440]|0.7317,0.7317,[329440]|0.7688,0.7688,[329440]|0.7951,0.7951,[329440]|0.8857,0.8857,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER3_RAPSA
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.2224,0.2224,[72144e]|0.3053,0.3053,[72144e]|0.346,0.346,[72144e]|0.4087,0.4087,[72144e]|0.3599,0.3599,[72144e]|0.4149,0.4149,[72144e]|0.2988,0.2988,[72144e]|0.3426,0.3426,[72144e]|0.384,0.384,[72144e]|0.4186,0.4186,[72144e]|0.384,0.384,[72144e]|0.3426,0.3426,[72144e]|0.2918,0.2918,[72144e]|0.2988,0.2988,[72144e]|0.3356,0.3356,[72144e]|0.3599,0.3599,[72144e]|0.3529,0.3529,[72144e]|0.4685,0.4685,[72144e]|0.5665,0.5665,[72144e]|0.5342,0.5342,[72144e]|0.4979,0.4979,[72144e]|0.4087,0.4087,[72144e]|0.4256,0.4256,[72144e]|0.3356,0.3356,[72144e]|0.3599,0.3599,[72144e]|0.268,0.268,[72144e]|0.3182,0.3182,[72144e]|0.1881,0.1881,[72144e]|0.2849,0.2849,[72144e]|0.2399,0.2399,[72144e]|0.2224,0.2224,[72144e]|0.2034,0.2034,[72144e]|0.1528,0.1528,[72144e]|0.2094,0.2094,[72144e]|0.2575,0.2575,[72144e]|0.2129,0.2129,[72144e]|0.1759,0.1759,[72144e]|0.1969,0.1969,[72144e]|0.2034,0.2034,[72144e]|0.1424,0.1424,[72144e]|0.0929,0.0929,[72144e]|0.107,0.107,[72144e]|0.107,0.107,[72144e]|0.1501,0.1501,[72144e]|0.1028,0.1028,[72144e]|0.1611,0.1611,[72144e]|0.1399,0.1399,[72144e]|0.1942,0.1942,[72144e]|0.2129,0.2129,[72144e]|0.3249,0.3249,[72144e]|0.3321,0.3321,[72144e]|0.2715,0.2715,[72144e]|0.2094,0.2094,[72144e]|0.2258,0.2258,[72144e]|0.3529,0.3529,[72144e]|0.374,0.374,[72144e]|0.3807,0.3807,[72144e]|0.4256,0.4256,[72144e]|0.4256,0.4256,[72144e]|0.4507,0.4507,[72144e]|0.4685,0.4685,[72144e]|0.4256,0.4256,[72144e]|0.4292,0.4292,[72144e]|0.3667,0.3667,[72144e]|0.3704,0.3704,[72144e]|0.2645,0.2645,[72144e]|0.2918,0.2918,[72144e]|0.2503,0.2503,[72144e]|0.1823,0.1823,[72144e]|0.2129,0.2129,[72144e]|0.2002,0.2002,[72144e]|0.1914,0.1914,[72144e]|0.2094,0.2094,[72144e]|0.247,0.247,[72144e]|0.3117,0.3117,[72144e]|0.2292,0.2292,[72144e]|0.2328,0.2328,[72144e]|0.2193,0.2193,[72144e]|0.2064,0.2064,[72144e]|0.2609,0.2609,[72144e]|0.3087,0.3087,[72144e]|0.3087,0.3087,[72144e]|0.3286,0.3286,[72144e]|0.3983,0.3983,[72144e]|0.3948,0.3948,[72144e]|0.4541,0.4541,[72144e]|0.4369,0.4369,[72144e]|0.5533,0.5533,[72144e]|0.5758,0.5758,[72144e]|0.5992,0.5992,[72144e]|0.708,0.708,[72144e]|0.6375,0.6375,[72144e]|0.6227,0.6227,[72144e]|0.6136,0.6136,[72144e]|0.5577,0.5577,[72144e]|0.6661,0.6661,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.7605,0.7605,[329440]|0.7458,0.7458,[329440]|0.7079,0.7079,[329440]|0.6906,0.6906,[329440]|0.6557,0.6557,[329440]|0.6412,0.6412,[329440]|0.5374,0.5374,[329440]|0.5173,0.5173,[329440]|0.3806,0.3806,[329440]|0.3578,0.3578,[329440]|0.3311,0.3311,[329440]|0.3885,0.3885,[329440]|0.3456,0.3456,[329440]|0.3456,0.3456,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.4116,0.4116,[329440]|0.4379,0.4379,[329440]|0.4651,0.4651,[329440]|0.4458,0.4458,[329440]|0.3806,0.3806,[329440]|0.3806,0.3806,[329440]|0.2963,0.2963,[329440]|0.3184,0.3184,[329440]|0.2292,0.2292,[329440]|0.3225,0.3225,[329440]|0.2385,0.2385,[329440]|0.3359,0.3359,[329440]|0.1844,0.1844,[329440]|0.1566,0.1566,[329440]|0.115,0.115,[329440]|0.1495,0.1495,[329440]|0.2041,0.2041,[329440]|0.1532,0.1532,[329440]|0.2041,0.2041,[329440]|0.1878,0.1878,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.1205,0.1205,[329440]|0.0965,0.0965,[329440]|0.0832,0.0832,[329440]|0.0607,0.0607,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.1018,0.1018,[329440]|0.0554,0.0554,[329440]|0.0909,0.0909,[329440]|0.0909,0.0909,[329440]|0.1844,0.1844,[329440]|0.208,0.208,[329440]|0.2483,0.2483,[329440]|0.2531,0.2531,[329440]|0.1732,0.1732,[329440]|0.2167,0.2167,[329440]|0.2333,0.2333,[329440]|0.2483,0.2483,[329440]|0.3717,0.3717,[329440]|0.4078,0.4078,[329440]|0.3535,0.3535,[329440]|0.3456,0.3456,[329440]|0.4282,0.4282,[329440]|0.4879,0.4879,[329440]|0.4116,0.4116,[329440]|0.3668,0.3668,[329440]|0.3005,0.3005,[329440]|0.3578,0.3578,[329440]|0.282,0.282,[329440]|0.2558,0.2558,[329440]|0.2385,0.2385,[329440]|0.1667,0.1667,[329440]|0.2041,0.2041,[329440]|0.1998,0.1998,[329440]|0.282,0.282,[329440]|0.363,0.363,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.1766,0.1766,[329440]|0.1998,0.1998,[329440]|0.2483,0.2483,[329440]|0.2657,0.2657,[329440]|0.2255,0.2255,[329440]|0.2531,0.2531,[329440]|0.3491,0.3491,[329440]|0.4116,0.4116,[329440]|0.4458,0.4458,[329440]|0.3992,0.3992,[329440]|0.5008,0.5008,[329440]|0.5623,0.5623,[329440]|0.6293,0.6293,[329440]|0.7275,0.7275,[329440]|0.7275,0.7275,[329440]|0.7724,0.7724,[329440]|0.8118,0.8118,[329440]|0.8391,0.8391,[329440]|0.9141,0.9141,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER1_MAIZE
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.422,0.422,[72144e]|0.2918,0.2918,[72144e]|0.1852,0.1852,[72144e]|0.1115,0.1115,[72144e]|0.1373,0.1373,[72144e]|0.1643,0.1643,[72144e]|0.1914,0.1914,[72144e]|0.2193,0.2193,[72144e]|0.1731,0.1731,[72144e]|0.2002,0.2002,[72144e]|0.1969,0.1969,[72144e]|0.1969,0.1969,[72144e]|0.2575,0.2575,[72144e]|0.2193,0.2193,[72144e]|0.3087,0.3087,[72144e]|0.384,0.384,[72144e]|0.3566,0.3566,[72144e]|0.3019,0.3019,[72144e]|0.2436,0.2436,[72144e]|0.1731,0.1731,[72144e]|0.2292,0.2292,[72144e]|0.1759,0.1759,[72144e]|0.1759,0.1759,[72144e]|0.2575,0.2575,[72144e]|0.2918,0.2918,[72144e]|0.384,0.384,[72144e]|0.3117,0.3117,[72144e]|0.2817,0.2817,[72144e]|0.2849,0.2849,[72144e]|0.2849,0.2849,[72144e]|0.3529,0.3529,[72144e]|0.3215,0.3215,[72144e]|0.3494,0.3494,[72144e]|0.374,0.374,[72144e]|0.3426,0.3426,[72144e]|0.374,0.374,[72144e]|0.3426,0.3426,[72144e]|0.268,0.268,[72144e]|0.2951,0.2951,[72144e]|0.3249,0.3249,[72144e]|0.3631,0.3631,[72144e]|0.4087,0.4087,[72144e]|0.384,0.384,[72144e]|0.3321,0.3321,[72144e]|0.3704,0.3704,[72144e]|0.3215,0.3215,[72144e]|0.3704,0.3704,[72144e]|0.3019,0.3019,[72144e]|0.3053,0.3053,[72144e]|0.3392,0.3392,[72144e]|0.3704,0.3704,[72144e]|0.3872,0.3872,[72144e]|0.391,0.391,[72144e]|0.4409,0.4409,[72144e]|0.3872,0.3872,[72144e]|0.4087,0.4087,[72144e]|0.3392,0.3392,[72144e]|0.3494,0.3494,[72144e]|0.2951,0.2951,[72144e]|0.3948,0.3948,[72144e]|0.4119,0.4119,[72144e]|0.4582,0.4582,[72144e]|0.391,0.391,[72144e]|0.3426,0.3426,[72144e]|0.2645,0.2645,[72144e]|0.2783,0.2783,[72144e]|0.2849,0.2849,[72144e]|0.3494,0.3494,[72144e]|0.3286,0.3286,[72144e]|0.4149,0.4149,[72144e]|0.5139,0.5139,[72144e]|0.5296,0.5296,[72144e]|0.494,0.494,[72144e]|0.3983,0.3983,[72144e]|0.4119,0.4119,[72144e]|0.3215,0.3215,[72144e]|0.4087,0.4087,[72144e]|0.3087,0.3087,[72144e]|0.3774,0.3774,[72144e]|0.2817,0.2817,[72144e]|0.3356,0.3356,[72144e]|0.2817,0.2817,[72144e]|0.2645,0.2645,[72144e]|0.247,0.247,[72144e]|0.2164,0.2164,[72144e]|0.2918,0.2918,[72144e]|0.3631,0.3631,[72144e]|0.346,0.346,[72144e]|0.3019,0.3019,[72144e]|0.2951,0.2951,[72144e]|0.3117,0.3117,[72144e]|0.2399,0.2399,[72144e]|0.1702,0.1702,[72144e]|0.1554,0.1554,[72144e]|0.1554,0.1554,[72144e]|0.2193,0.2193,[72144e]|0.1554,0.1554,[72144e]|0.2364,0.2364,[72144e]|0.2129,0.2129,[72144e]|0.2918,0.2918,[72144e]|0.3087,0.3087,[72144e]|0.4017,0.4017,[72144e]|0.4017,0.4017,[72144e]|0.3566,0.3566,[72144e]|0.2884,0.2884,[72144e]|0.3087,0.3087,[72144e]|0.4119,0.4119,[72144e]|0.4119,0.4119,[72144e]|0.422,0.422,[72144e]|0.4369,0.4369,[72144e]|0.4409,0.4409,[72144e]|0.4541,0.4541,[72144e]|0.4619,0.4619,[72144e]|0.4409,0.4409,[72144e]|0.4441,0.4441,[72144e]|0.374,0.374,[72144e]|0.3774,0.3774,[72144e]|0.2918,0.2918,[72144e]|0.3494,0.3494,[72144e]|0.3087,0.3087,[72144e]|0.2328,0.2328,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.247,0.247,[72144e]|0.2645,0.2645,[72144e]|0.2849,0.2849,[72144e]|0.3053,0.3053,[72144e]|0.2193,0.2193,[72144e]|0.2224,0.2224,[72144e]|0.2224,0.2224,[72144e]|0.2164,0.2164,[72144e]|0.2752,0.2752,[72144e]|0.3149,0.3149,[72144e]|0.3149,0.3149,[72144e]|0.3356,0.3356,[72144e]|0.346,0.346,[72144e]|0.4017,0.4017,[72144e]|0.4685,0.4685,[72144e]|0.4409,0.4409,[72144e]|0.5296,0.5296,[72144e]|0.5139,0.5139,[72144e]|0.5296,0.5296,[72144e]|0.6136,0.6136,[72144e]|0.5493,0.5493,[72144e]|0.5296,0.5296,[72144e]|0.5139,0.5139,[72144e]|0.4685,0.4685,[72144e]|0.5342,0.5342,[72144e]|0.6136,0.6136,[72144e]|0.7547,0.7547,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.865,0.865,[329440]|0.8488,0.8488,[329440]|0.7724,0.7724,[329440]|0.6557,0.6557,[329440]|0.5253,0.5253,[329440]|0.3847,0.3847,[329440]|0.3399,0.3399,[329440]|0.2913,0.2913,[329440]|0.2432,0.2432,[329440]|0.1958,0.1958,[329440]|0.106,0.106,[329440]|0.1456,0.1456,[329440]|0.1456,0.1456,[329440]|0.115,0.115,[329440]|0.1844,0.1844,[329440]|0.2122,0.2122,[329440]|0.2333,0.2333,[329440]|0.2531,0.2531,[329440]|0.1998,0.1998,[329440]|0.1322,0.1322,[329440]|0.1456,0.1456,[329440]|0.0858,0.0858,[329440]|0.1266,0.1266,[329440]|0.1667,0.1667,[329440]|0.2122,0.2122,[329440]|0.3225,0.3225,[329440]|0.2483,0.2483,[329440]|0.2483,0.2483,[329440]|0.1766,0.1766,[329440]|0.1602,0.1602,[329440]|0.2255,0.2255,[329440]|0.2209,0.2209,[329440]|0.2558,0.2558,[329440]|0.2657,0.2657,[329440]|0.2432,0.2432,[329440]|0.2865,0.2865,[329440]|0.27,0.27,[329440]|0.2748,0.2748,[329440]|0.3146,0.3146,[329440]|0.3184,0.3184,[329440]|0.3491,0.3491,[329440]|0.3847,0.3847,[329440]|0.3668,0.3668,[329440]|0.363,0.363,[329440]|0.4037,0.4037,[329440]|0.3184,0.3184,[329440]|0.4037,0.4037,[329440]|0.3359,0.3359,[329440]|0.4116,0.4116,[329440]|0.3717,0.3717,[329440]|0.3005,0.3005,[329440]|0.2865,0.2865,[329440]|0.3263,0.3263,[329440]|0.3668,0.3668,[329440]|0.3717,0.3717,[329440]|0.3806,0.3806,[329440]|0.3053,0.3053,[329440]|0.3146,0.3146,[329440]|0.2292,0.2292,[329440]|0.3096,0.3096,[329440]|0.2432,0.2432,[329440]|0.3146,0.3146,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.3184,0.3184,[329440]|0.3311,0.3311,[329440]|0.2657,0.2657,[329440]|0.2657,0.2657,[329440]|0.2913,0.2913,[329440]|0.3578,0.3578,[329440]|0.3939,0.3939,[329440]|0.4116,0.4116,[329440]|0.3885,0.3885,[329440]|0.4037,0.4037,[329440]|0.3939,0.3939,[329440]|0.3184,0.3184,[329440]|0.4116,0.4116,[329440]|0.3263,0.3263,[329440]|0.4379,0.4379,[329440]|0.363,0.363,[329440]|0.4282,0.4282,[329440]|0.2865,0.2865,[329440]|0.2602,0.2602,[329440]|0.2041,0.2041,[329440]|0.2558,0.2558,[329440]|0.3225,0.3225,[329440]|0.2748,0.2748,[329440]|0.3399,0.3399,[329440]|0.3225,0.3225,[329440]|0.2122,0.2122,[329440]|0.2209,0.2209,[329440]|0.1998,0.1998,[329440]|0.1698,0.1698,[329440]|0.1178,0.1178,[329440]|0.0909,0.0909,[329440]|0.1292,0.1292,[329440]|0.106,0.106,[329440]|0.1532,0.1532,[329440]|0.0935,0.0935,[329440]|0.138,0.138,[329440]|0.138,0.138,[329440]|0.2292,0.2292,[329440]|0.2531,0.2531,[329440]|0.2865,0.2865,[329440]|0.2865,0.2865,[329440]|0.2122,0.2122,[329440]|0.2558,0.2558,[329440]|0.27,0.27,[329440]|0.2786,0.2786,[329440]|0.3847,0.3847,[329440]|0.4203,0.4203,[329440]|0.363,0.363,[329440]|0.3535,0.3535,[329440]|0.4149,0.4149,[329440]|0.4703,0.4703,[329440]|0.3939,0.3939,[329440]|0.3535,0.3535,[329440]|0.2865,0.2865,[329440]|0.3359,0.3359,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.2333,0.2333,[329440]|0.1635,0.1635,[329440]|0.1958,0.1958,[329440]|0.1878,0.1878,[329440]|0.2657,0.2657,[329440]|0.3456,0.3456,[329440]|0.2748,0.2748,[329440]|0.2167,0.2167,[329440]|0.1602,0.1602,[329440]|0.1766,0.1766,[329440]|0.2255,0.2255,[329440]|0.2333,0.2333,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.3184,0.3184,[329440]|0.3847,0.3847,[329440]|0.3847,0.3847,[329440]|0.3847,0.3847,[329440]|0.4513,0.4513,[329440]|0.4282,0.4282,[329440]|0.4967,0.4967,[329440]|0.6079,0.6079,[329440]|0.6124,0.6124,[329440]|0.6604,0.6604,[329440]|0.6944,0.6944,[329440]|0.7232,0.7232,[329440]|0.8118,0.8118,[329440]|0.8857,0.8857,[329440]|0.9491,0.9491,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   O80429_MAIZE
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.1007,0.1007,[72144e]|0.1028,0.1028,[72144e]|0.1731,0.1731,[72144e]|0.2503,0.2503,[72144e]|0.3249,0.3249,[72144e]|0.2292,0.2292,[72144e]|0.1476,0.1476,[72144e]|0.1731,0.1731,[72144e]|0.1942,0.1942,[72144e]|0.2503,0.2503,[72144e]|0.1969,0.1969,[72144e]|0.2258,0.2258,[72144e]|0.1823,0.1823,[72144e]|0.2094,0.2094,[72144e]|0.1501,0.1501,[72144e]|0.1501,0.1501,[72144e]|0.1611,0.1611,[72144e]|0.1399,0.1399,[72144e]|0.1554,0.1554,[72144e]|0.1823,0.1823,[72144e]|0.1881,0.1881,[72144e]|0.2258,0.2258,[72144e]|0.1969,0.1969,[72144e]|0.2541,0.2541,[72144e]|0.1942,0.1942,[72144e]|0.1671,0.1671,[72144e]|0.1399,0.1399,[72144e]|0.2292,0.2292,[72144e]|0.2575,0.2575,[72144e]|0.1881,0.1881,[72144e]|0.1881,0.1881,[72144e]|0.1399,0.1399,[72144e]|0.2129,0.2129,[72144e]|0.1852,0.1852,[72144e]|0.2645,0.2645,[72144e]|0.1852,0.1852,[72144e]|0.2503,0.2503,[72144e]|0.2193,0.2193,[72144e]|0.2752,0.2752,[72144e]|0.2292,0.2292,[72144e]|0.1611,0.1611,[72144e]|0.1424,0.1424,[72144e]|0.2364,0.2364,[72144e]|0.2884,0.2884,[72144e]|0.3182,0.3182,[72144e]|0.3087,0.3087,[72144e]|0.2783,0.2783,[72144e]|0.2988,0.2988,[72144e]|0.2224,0.2224,[72144e]|0.2224,0.2224,[72144e]|0.2364,0.2364,[72144e]|0.3392,0.3392,[72144e]|0.3566,0.3566,[72144e]|0.4051,0.4051,[72144e]|0.3356,0.3356,[72144e]|0.2817,0.2817,[72144e]|0.1969,0.1969,[72144e]|0.2094,0.2094,[72144e]|0.2164,0.2164,[72144e]|0.1791,0.1791,[72144e]|0.1583,0.1583,[72144e]|0.2436,0.2436,[72144e]|0.3426,0.3426,[72144e]|0.3566,0.3566,[72144e]|0.3286,0.3286,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.1554,0.1554,[72144e]|0.2364,0.2364,[72144e]|0.1298,0.1298,[72144e]|0.1914,0.1914,[72144e]|0.1115,0.1115,[72144e]|0.1528,0.1528,[72144e]|0.1115,0.1115,[72144e]|0.1007,0.1007,[72144e]|0.0909,0.0909,[72144e]|0.0734,0.0734,[72144e]|0.1206,0.1206,[72144e]|0.1823,0.1823,[72144e]|0.1643,0.1643,[72144e]|0.1298,0.1298,[72144e]|0.2164,0.2164,[72144e]|0.2399,0.2399,[72144e]|0.1671,0.1671,[72144e]|0.1092,0.1092,[72144e]|0.0948,0.0948,[72144e]|0.0948,0.0948,[72144e]|0.1501,0.1501,[72144e]|0.0967,0.0967,[72144e]|0.1611,0.1611,[72144e]|0.1424,0.1424,[72144e]|0.2328,0.2328,[72144e]|0.2503,0.2503,[72144e]|0.3529,0.3529,[72144e]|0.3494,0.3494,[72144e]|0.2817,0.2817,[72144e]|0.2064,0.2064,[72144e]|0.2193,0.2193,[72144e]|0.3286,0.3286,[72144e]|0.3392,0.3392,[72144e]|0.3494,0.3494,[72144e]|0.384,0.384,[72144e]|0.3872,0.3872,[72144e]|0.4017,0.4017,[72144e]|0.4087,0.4087,[72144e]|0.3807,0.3807,[72144e]|0.384,0.384,[72144e]|0.3117,0.3117,[72144e]|0.3182,0.3182,[72144e]|0.2328,0.2328,[72144e]|0.268,0.268,[72144e]|0.2258,0.2258,[72144e]|0.1501,0.1501,[72144e]|0.1791,0.1791,[72144e]|0.1702,0.1702,[72144e]|0.1611,0.1611,[72144e]|0.1791,0.1791,[72144e]|0.2164,0.2164,[72144e]|0.2328,0.2328,[72144e]|0.1554,0.1554,[72144e]|0.1583,0.1583,[72144e]|0.1528,0.1528,[72144e]|0.1424,0.1424,[72144e]|0.1823,0.1823,[72144e]|0.2224,0.2224,[72144e]|0.2224,0.2224,[72144e]|0.2436,0.2436,[72144e]|0.2541,0.2541,[72144e]|0.2399,0.2399,[72144e]|0.3087,0.3087,[72144e]|0.2817,0.2817,[72144e]|0.3566,0.3566,[72144e]|0.3667,0.3667,[72144e]|0.3774,0.3774,[72144e]|0.4541,0.4541,[72144e]|0.391,0.391,[72144e]|0.3599,0.3599,[72144e]|0.3356,0.3356,[72144e]|0.2783,0.2783,[72144e]|0.3426,0.3426,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.7573,0.7573,[329440]|0.6516,0.6516,[329440]|0.6293,0.6293,[329440]|0.5412,0.5412,[329440]|0.5229,0.5229,[329440]|0.5008,0.5008,[329440]|0.4825,0.4825,[329440]|0.3806,0.3806,[329440]|0.2292,0.2292,[329440]|0.1921,0.1921,[329440]|0.1602,0.1602,[329440]|0.208,0.208,[329440]|0.1667,0.1667,[329440]|0.2167,0.2167,[329440]|0.1416,0.1416,[329440]|0.1878,0.1878,[329440]|0.1921,0.1921,[329440]|0.1635,0.1635,[329440]|0.1322,0.1322,[329440]|0.1088,0.1088,[329440]|0.1805,0.1805,[329440]|0.2748,0.2748,[329440]|0.1805,0.1805,[329440]|0.1921,0.1921,[329440]|0.1495,0.1495,[329440]|0.1495,0.1495,[329440]|0.1088,0.1088,[329440]|0.1532,0.1532,[329440]|0.2531,0.2531,[329440]|0.2531,0.2531,[329440]|0.1805,0.1805,[329440]|0.106,0.106,[329440]|0.1667,0.1667,[329440]|0.1292,0.1292,[329440]|0.1998,0.1998,[329440]|0.1566,0.1566,[329440]|0.2292,0.2292,[329440]|0.1844,0.1844,[329440]|0.27,0.27,[329440]|0.2255,0.2255,[329440]|0.2041,0.2041,[329440]|0.124,0.124,[329440]|0.1205,0.1205,[329440]|0.1416,0.1416,[329440]|0.1998,0.1998,[329440]|0.1958,0.1958,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.1732,0.1732,[329440]|0.1805,0.1805,[329440]|0.1667,0.1667,[329440]|0.2432,0.2432,[329440]|0.1732,0.1732,[329440]|0.2385,0.2385,[329440]|0.2531,0.2531,[329440]|0.3096,0.3096,[329440]|0.2385,0.2385,[329440]|0.2531,0.2531,[329440]|0.1844,0.1844,[329440]|0.1921,0.1921,[329440]|0.2167,0.2167,[329440]|0.208,0.208,[329440]|0.2558,0.2558,[329440]|0.27,0.27,[329440]|0.2558,0.2558,[329440]|0.2558,0.2558,[329440]|0.2531,0.2531,[329440]|0.1732,0.1732,[329440]|0.27,0.27,[329440]|0.1844,0.1844,[329440]|0.3005,0.3005,[329440]|0.208,0.208,[329440]|0.282,0.282,[329440]|0.1456,0.1456,[329440]|0.124,0.124,[329440]|0.0884,0.0884,[329440]|0.1292,0.1292,[329440]|0.1805,0.1805,[329440]|0.1416,0.1416,[329440]|0.1998,0.1998,[329440]|0.1844,0.1844,[329440]|0.1635,0.1635,[329440]|0.1667,0.1667,[329440]|0.1532,0.1532,[329440]|0.124,0.124,[329440]|0.0789,0.0789,[329440]|0.0554,0.0554,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.106,0.106,[329440]|0.0587,0.0587,[329440]|0.1088,0.1088,[329440]|0.1088,0.1088,[329440]|0.1878,0.1878,[329440]|0.2122,0.2122,[329440]|0.2483,0.2483,[329440]|0.2432,0.2432,[329440]|0.1667,0.1667,[329440]|0.208,0.208,[329440]|0.2041,0.2041,[329440]|0.2209,0.2209,[329440]|0.3311,0.3311,[329440]|0.3668,0.3668,[329440]|0.3184,0.3184,[329440]|0.3096,0.3096,[329440]|0.3762,0.3762,[329440]|0.4282,0.4282,[329440]|0.3578,0.3578,[329440]|0.3096,0.3096,[329440]|0.2385,0.2385,[329440]|0.2865,0.2865,[329440]|0.2167,0.2167,[329440]|0.1878,0.1878,[329440]|0.1732,0.1732,[329440]|0.115,0.115,[329440]|0.1416,0.1416,[329440]|0.1349,0.1349,[329440]|0.208,0.208,[329440]|0.2865,0.2865,[329440]|0.2255,0.2255,[329440]|0.1667,0.1667,[329440]|0.106,0.106,[329440]|0.1205,0.1205,[329440]|0.1456,0.1456,[329440]|0.1495,0.1495,[329440]|0.1266,0.1266,[329440]|0.1416,0.1416,[329440]|0.208,0.208,[329440]|0.27,0.27,[329440]|0.27,0.27,[329440]|0.208,0.208,[329440]|0.3146,0.3146,[329440]|0.3806,0.3806,[329440]|0.4513,0.4513,[329440]|0.5623,0.5623,[329440]|0.5623,0.5623,[329440]|0.6219,0.6219,[329440]|0.6604,0.6604,[329440]|0.6906,0.6906,[329440]|0.7817,0.7817,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   Q7XA98_TRIPR
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.2292,0.2292,[72144e]|0.2645,0.2645,[72144e]|0.3019,0.3019,[72144e]|0.3286,0.3286,[72144e]|0.2328,0.2328,[72144e]|0.2258,0.2258,[72144e]|0.2645,0.2645,[72144e]|0.2988,0.2988,[72144e]|0.3286,0.3286,[72144e]|0.3774,0.3774,[72144e]|0.346,0.346,[72144e]|0.4051,0.4051,[72144e]|0.4051,0.4051,[72144e]|0.4017,0.4017,[72144e]|0.3494,0.3494,[72144e]|0.2988,0.2988,[72144e]|0.3286,0.3286,[72144e]|0.3948,0.3948,[72144e]|0.4864,0.4864,[72144e]|0.494,0.494,[72144e]|0.494,0.494,[72144e]|0.5139,0.5139,[72144e]|0.5419,0.5419,[72144e]|0.4441,0.4441,[72144e]|0.4685,0.4685,[72144e]|0.4685,0.4685,[72144e]|0.5707,0.5707,[72144e]|0.4901,0.4901,[72144e]|0.4831,0.4831,[72144e]|0.4087,0.4087,[72144e]|0.3872,0.3872,[72144e]|0.3566,0.3566,[72144e]|0.3566,0.3566,[72144e]|0.3215,0.3215,[72144e]|0.3566,0.3566,[72144e]|0.346,0.346,[72144e]|0.3983,0.3983,[72144e]|0.4256,0.4256,[72144e]|0.4369,0.4369,[72144e]|0.3667,0.3667,[72144e]|0.3392,0.3392,[72144e]|0.2884,0.2884,[72144e]|0.2609,0.2609,[72144e]|0.2436,0.2436,[72144e]|0.2436,0.2436,[72144e]|0.3392,0.3392,[72144e]|0.2328,0.2328,[72144e]|0.2258,0.2258,[72144e]|0.1791,0.1791,[72144e]|0.2575,0.2575,[72144e]|0.1969,0.1969,[72144e]|0.1969,0.1969,[72144e]|0.2094,0.2094,[72144e]|0.2399,0.2399,[72144e]|0.3149,0.3149,[72144e]|0.3182,0.3182,[72144e]|0.3426,0.3426,[72144e]|0.3599,0.3599,[72144e]|0.3807,0.3807,[72144e]|0.2884,0.2884,[72144e]|0.2884,0.2884,[72144e]|0.2609,0.2609,[72144e]|0.3149,0.3149,[72144e]|0.3774,0.3774,[72144e]|0.4119,0.4119,[72144e]|0.391,0.391,[72144e]|0.3356,0.3356,[72144e]|0.268,0.268,[72144e]|0.2849,0.2849,[72144e]|0.3117,0.3117,[72144e]|0.3599,0.3599,[72144e]|0.346,0.346,[72144e]|0.4292,0.4292,[72144e]|0.5254,0.5254,[72144e]|0.4652,0.4652,[72144e]|0.4369,0.4369,[72144e]|0.346,0.346,[72144e]|0.3704,0.3704,[72144e]|0.2783,0.2783,[72144e]|0.2988,0.2988,[72144e]|0.1969,0.1969,[72144e]|0.2849,0.2849,[72144e]|0.1852,0.1852,[72144e]|0.2752,0.2752,[72144e]|0.2193,0.2193,[72144e]|0.2064,0.2064,[72144e]|0.1942,0.1942,[72144e]|0.1583,0.1583,[72144e]|0.2258,0.2258,[72144e]|0.2918,0.2918,[72144e]|0.2609,0.2609,[72144e]|0.2224,0.2224,[72144e]|0.2258,0.2258,[72144e]|0.2399,0.2399,[72144e]|0.1731,0.1731,[72144e]|0.1184,0.1184,[72144e]|0.1611,0.1611,[72144e]|0.1611,0.1611,[72144e]|0.2292,0.2292,[72144e]|0.1643,0.1643,[72144e]|0.2292,0.2292,[72144e]|0.2064,0.2064,[72144e]|0.3053,0.3053,[72144e]|0.3215,0.3215,[72144e]|0.4149,0.4149,[72144e]|0.4119,0.4119,[72144e]|0.3494,0.3494,[72144e]|0.2884,0.2884,[72144e]|0.3053,0.3053,[72144e]|0.4087,0.4087,[72144e]|0.433,0.433,[72144e]|0.4409,0.4409,[72144e]|0.4685,0.4685,[72144e]|0.5176,0.5176,[72144e]|0.5139,0.5139,[72144e]|0.5296,0.5296,[72144e]|0.5098,0.5098,[72144e]|0.5098,0.5098,[72144e]|0.433,0.433,[72144e]|0.4369,0.4369,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.2951,0.2951,[72144e]|0.1969,0.1969,[72144e]|0.2064,0.2064,[72144e]|0.2002,0.2002,[72144e]|0.1942,0.1942,[72144e]|0.2094,0.2094,[72144e]|0.2436,0.2436,[72144e]|0.3087,0.3087,[72144e]|0.2258,0.2258,[72144e]|0.2328,0.2328,[72144e]|0.2164,0.2164,[72144e]|0.2034,0.2034,[72144e]|0.2541,0.2541,[72144e]|0.2575,0.2575,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.3019,0.3019,[72144e]|0.3529,0.3529,[72144e]|0.3948,0.3948,[72144e]|0.384,0.384,[72144e]|0.4766,0.4766,[72144e]|0.5254,0.5254,[72144e]|0.5419,0.5419,[72144e]|0.6755,0.6755,[72144e]|0.6136,0.6136,[72144e]|0.5901,0.5901,[72144e]|0.5807,0.5807,[72144e]|0.5382,0.5382,[72144e]|0.6322,0.6322,[72144e]|0.6089,0.6089,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.892,0.892,[329440]|0.835,0.835,[329440]|0.7388,0.7388,[329440]|0.6944,0.6944,[329440]|0.6557,0.6557,[329440]|0.6124,0.6124,[329440]|0.4967,0.4967,[329440]|0.4149,0.4149,[329440]|0.3939,0.3939,[329440]|0.3717,0.3717,[329440]|0.3359,0.3359,[329440]|0.3939,0.3939,[329440]|0.363,0.363,[329440]|0.3847,0.3847,[329440]|0.3535,0.3535,[329440]|0.3311,0.3311,[329440]|0.3053,0.3053,[329440]|0.3225,0.3225,[329440]|0.3992,0.3992,[329440]|0.3939,0.3939,[329440]|0.3939,0.3939,[329440]|0.4203,0.4203,[329440]|0.4781,0.4781,[329440]|0.4825,0.4825,[329440]|0.4513,0.4513,[329440]|0.363,0.363,[329440]|0.4651,0.4651,[329440]|0.4967,0.4967,[329440]|0.4749,0.4749,[329440]|0.3535,0.3535,[329440]|0.3456,0.3456,[329440]|0.2558,0.2558,[329440]|0.3225,0.3225,[329440]|0.2963,0.2963,[329440]|0.2602,0.2602,[329440]|0.2657,0.2657,[329440]|0.3184,0.3184,[329440]|0.3359,0.3359,[329440]|0.3491,0.3491,[329440]|0.3491,0.3491,[329440]|0.3578,0.3578,[329440]|0.3096,0.3096,[329440]|0.2865,0.2865,[329440]|0.2292,0.2292,[329440]|0.2292,0.2292,[329440]|0.2865,0.2865,[329440]|0.2292,0.2292,[329440]|0.2255,0.2255,[329440]|0.1566,0.1566,[329440]|0.2333,0.2333,[329440]|0.1766,0.1766,[329440]|0.2209,0.2209,[329440]|0.1602,0.1602,[329440]|0.1088,0.1088,[329440]|0.1495,0.1495,[329440]|0.1766,0.1766,[329440]|0.1921,0.1921,[329440]|0.1998,0.1998,[329440]|0.2122,0.2122,[329440]|0.2255,0.2255,[329440]|0.2385,0.2385,[329440]|0.2041,0.2041,[329440]|0.2483,0.2483,[329440]|0.2122,0.2122,[329440]|0.27,0.27,[329440]|0.3225,0.3225,[329440]|0.3762,0.3762,[329440]|0.3225,0.3225,[329440]|0.3311,0.3311,[329440]|0.2865,0.2865,[329440]|0.282,0.282,[329440]|0.3184,0.3184,[329440]|0.3668,0.3668,[329440]|0.4037,0.4037,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3359,0.3359,[329440]|0.3311,0.3311,[329440]|0.2483,0.2483,[329440]|0.2558,0.2558,[329440]|0.1766,0.1766,[329440]|0.2913,0.2913,[329440]|0.2041,0.2041,[329440]|0.3005,0.3005,[329440]|0.1416,0.1416,[329440]|0.1205,0.1205,[329440]|0.0884,0.0884,[329440]|0.1205,0.1205,[329440]|0.1766,0.1766,[329440]|0.1266,0.1266,[329440]|0.1766,0.1766,[329440]|0.1667,0.1667,[329440]|0.0991,0.0991,[329440]|0.1041,0.1041,[329440]|0.0935,0.0935,[329440]|0.0723,0.0723,[329440]|0.0771,0.0771,[329440]|0.0554,0.0554,[329440]|0.0771,0.0771,[329440]|0.066,0.066,[329440]|0.0935,0.0935,[329440]|0.0526,0.0526,[329440]|0.0771,0.0771,[329440]|0.0744,0.0744,[329440]|0.1805,0.1805,[329440]|0.2041,0.2041,[329440]|0.2333,0.2333,[329440]|0.2385,0.2385,[329440]|0.1667,0.1667,[329440]|0.2167,0.2167,[329440]|0.2255,0.2255,[329440]|0.2333,0.2333,[329440]|0.3717,0.3717,[329440]|0.4037,0.4037,[329440]|0.3399,0.3399,[329440]|0.3806,0.3806,[329440]|0.4333,0.4333,[329440]|0.4918,0.4918,[329440]|0.442,0.442,[329440]|0.3992,0.3992,[329440]|0.3399,0.3399,[329440]|0.4037,0.4037,[329440]|0.3456,0.3456,[329440]|0.2963,0.2963,[329440]|0.2602,0.2602,[329440]|0.1805,0.1805,[329440]|0.2209,0.2209,[329440]|0.2167,0.2167,[329440]|0.2963,0.2963,[329440]|0.3717,0.3717,[329440]|0.2913,0.2913,[329440]|0.2786,0.2786,[329440]|0.1921,0.1921,[329440]|0.2122,0.2122,[329440]|0.27,0.27,[329440]|0.2292,0.2292,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2963,0.2963,[329440]|0.3717,0.3717,[329440]|0.363,0.363,[329440]|0.3578,0.3578,[329440]|0.3992,0.3992,[329440]|0.4967,0.4967,[329440]|0.5549,0.5549,[329440]|0.665,0.665,[329440]|0.6681,0.6681,[329440]|0.7111,0.7111,[329440]|0.7501,0.7501,[329440]|0.7772,0.7772,[329440]|0.8677,0.8677,[329440]|0.904,0.904,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER1_PEA
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.1914,0.1914,[72144e]|0.2258,0.2258,[72144e]|0.268,0.268,[72144e]|0.2951,0.2951,[72144e]|0.1914,0.1914,[72144e]|0.1476,0.1476,[72144e]|0.1823,0.1823,[72144e]|0.2094,0.2094,[72144e]|0.247,0.247,[72144e]|0.3019,0.3019,[72144e]|0.2918,0.2918,[72144e]|0.3566,0.3566,[72144e]|0.3566,0.3566,[72144e]|0.3529,0.3529,[72144e]|0.2988,0.2988,[72144e]|0.2752,0.2752,[72144e]|0.3087,0.3087,[72144e]|0.3774,0.3774,[72144e]|0.4541,0.4541,[72144e]|0.4256,0.4256,[72144e]|0.3215,0.3215,[72144e]|0.346,0.346,[72144e]|0.4087,0.4087,[72144e]|0.4087,0.4087,[72144e]|0.3087,0.3087,[72144e]|0.2436,0.2436,[72144e]|0.3392,0.3392,[72144e]|0.3321,0.3321,[72144e]|0.3182,0.3182,[72144e]|0.3182,0.3182,[72144e]|0.3053,0.3053,[72144e]|0.2064,0.2064,[72144e]|0.2258,0.2258,[72144e]|0.1969,0.1969,[72144e]|0.2258,0.2258,[72144e]|0.2399,0.2399,[72144e]|0.2292,0.2292,[72144e]|0.2002,0.2002,[72144e]|0.1501,0.1501,[72144e]|0.1275,0.1275,[72144e]|0.1162,0.1162,[72144e]|0.1162,0.1162,[72144e]|0.1942,0.1942,[72144e]|0.1298,0.1298,[72144e]|0.1162,0.1162,[72144e]|0.0851,0.0851,[72144e]|0.1424,0.1424,[72144e]|0.1424,0.1424,[72144e]|0.1048,0.1048,[72144e]|0.1554,0.1554,[72144e]|0.1914,0.1914,[72144e]|0.2002,0.2002,[72144e]|0.2034,0.2034,[72144e]|0.2752,0.2752,[72144e]|0.2918,0.2918,[72144e]|0.3117,0.3117,[72144e]|0.2164,0.2164,[72144e]|0.2258,0.2258,[72144e]|0.2002,0.2002,[72144e]|0.2575,0.2575,[72144e]|0.3087,0.3087,[72144e]|0.3494,0.3494,[72144e]|0.3249,0.3249,[72144e]|0.2752,0.2752,[72144e]|0.2064,0.2064,[72144e]|0.2193,0.2193,[72144e]|0.247,0.247,[72144e]|0.2988,0.2988,[72144e]|0.2817,0.2817,[72144e]|0.3704,0.3704,[72144e]|0.4476,0.4476,[72144e]|0.391,0.391,[72144e]|0.3599,0.3599,[72144e]|0.2752,0.2752,[72144e]|0.2884,0.2884,[72144e]|0.2164,0.2164,[72144e]|0.2399,0.2399,[72144e]|0.1476,0.1476,[72144e]|0.2328,0.2328,[72144e]|0.1323,0.1323,[72144e]|0.2129,0.2129,[72144e]|0.1583,0.1583,[72144e]|0.1611,0.1611,[72144e]|0.1476,0.1476,[72144e]|0.1206,0.1206,[72144e]|0.1791,0.1791,[72144e]|0.2436,0.2436,[72144e]|0.2164,0.2164,[72144e]|0.1791,0.1791,[72144e]|0.1823,0.1823,[72144e]|0.1969,0.1969,[72144e]|0.1349,0.1349,[72144e]|0.0851,0.0851,[72144e]|0.1184,0.1184,[72144e]|0.1162,0.1162,[72144e]|0.1914,0.1914,[72144e]|0.1373,0.1373,[72144e]|0.2034,0.2034,[72144e]|0.1823,0.1823,[72144e]|0.2575,0.2575,[72144e]|0.2715,0.2715,[72144e]|0.3631,0.3631,[72144e]|0.3599,0.3599,[72144e]|0.2918,0.2918,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.3494,0.3494,[72144e]|0.374,0.374,[72144e]|0.384,0.384,[72144e]|0.4051,0.4051,[72144e]|0.4541,0.4541,[72144e]|0.4256,0.4256,[72144e]|0.4369,0.4369,[72144e]|0.391,0.391,[72144e]|0.3948,0.3948,[72144e]|0.3249,0.3249,[72144e]|0.3286,0.3286,[72144e]|0.2064,0.2064,[72144e]|0.2034,0.2034,[72144e]|0.1702,0.1702,[72144e]|0.1092,0.1092,[72144e]|0.1323,0.1323,[72144e]|0.1251,0.1251,[72144e]|0.1251,0.1251,[72144e]|0.1373,0.1373,[72144e]|0.1702,0.1702,[72144e]|0.1852,0.1852,[72144e]|0.1184,0.1184,[72144e]|0.1251,0.1251,[72144e]|0.1115,0.1115,[72144e]|0.1028,0.1028,[72144e]|0.1424,0.1424,[72144e]|0.1449,0.1449,[72144e]|0.1881,0.1881,[72144e]|0.2064,0.2064,[72144e]|0.2328,0.2328,[72144e]|0.2849,0.2849,[72144e]|0.3249,0.3249,[72144e]|0.3182,0.3182,[72144e]|0.4051,0.4051,[72144e]|0.4541,0.4541,[72144e]|0.4725,0.4725,[72144e]|0.5577,0.5577,[72144e]|0.494,0.494,[72144e]|0.4766,0.4766,[72144e]|0.4619,0.4619,[72144e]|0.4149,0.4149,[72144e]|0.4831,0.4831,[72144e]|0.5665,0.5665,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.8781,0.8781,[329440]|0.82,0.82,[329440]|0.7192,0.7192,[329440]|0.6756,0.6756,[329440]|0.6374,0.6374,[329440]|0.59,0.59,[329440]|0.4651,0.4651,[329440]|0.3578,0.3578,[329440]|0.3359,0.3359,[329440]|0.2913,0.2913,[329440]|0.2531,0.2531,[329440]|0.3184,0.3184,[329440]|0.3184,0.3184,[329440]|0.3491,0.3491,[329440]|0.3184,0.3184,[329440]|0.2913,0.2913,[329440]|0.2531,0.2531,[329440]|0.2963,0.2963,[329440]|0.3806,0.3806,[329440]|0.3762,0.3762,[329440]|0.3806,0.3806,[329440]|0.3717,0.3717,[329440]|0.3399,0.3399,[329440]|0.3456,0.3456,[329440]|0.3535,0.3535,[329440]|0.3535,0.3535,[329440]|0.3359,0.3359,[329440]|0.3263,0.3263,[329440]|0.3053,0.3053,[329440]|0.2333,0.2333,[329440]|0.2255,0.2255,[329440]|0.1958,0.1958,[329440]|0.2292,0.2292,[329440]|0.1456,0.1456,[329440]|0.1698,0.1698,[329440]|0.1805,0.1805,[329440]|0.2385,0.2385,[329440]|0.2483,0.2483,[329440]|0.1878,0.1878,[329440]|0.1635,0.1635,[329440]|0.1178,0.1178,[329440]|0.1205,0.1205,[329440]|0.1667,0.1667,[329440]|0.138,0.138,[329440]|0.1322,0.1322,[329440]|0.0813,0.0813,[329440]|0.1416,0.1416,[329440]|0.1456,0.1456,[329440]|0.1349,0.1349,[329440]|0.1322,0.1322,[329440]|0.0909,0.0909,[329440]|0.0884,0.0884,[329440]|0.1088,0.1088,[329440]|0.1602,0.1602,[329440]|0.1635,0.1635,[329440]|0.1495,0.1495,[329440]|0.1635,0.1635,[329440]|0.1698,0.1698,[329440]|0.1456,0.1456,[329440]|0.1844,0.1844,[329440]|0.1602,0.1602,[329440]|0.2167,0.2167,[329440]|0.2483,0.2483,[329440]|0.3053,0.3053,[329440]|0.2483,0.2483,[329440]|0.2602,0.2602,[329440]|0.2122,0.2122,[329440]|0.2167,0.2167,[329440]|0.2432,0.2432,[329440]|0.3053,0.3053,[329440]|0.3263,0.3263,[329440]|0.3491,0.3491,[329440]|0.3359,0.3359,[329440]|0.2748,0.2748,[329440]|0.27,0.27,[329440]|0.2209,0.2209,[329440]|0.2292,0.2292,[329440]|0.1602,0.1602,[329440]|0.2748,0.2748,[329440]|0.1921,0.1921,[329440]|0.282,0.282,[329440]|0.1322,0.1322,[329440]|0.124,0.124,[329440]|0.0909,0.0909,[329440]|0.124,0.124,[329440]|0.1805,0.1805,[329440]|0.1322,0.1322,[329440]|0.1844,0.1844,[329440]|0.1732,0.1732,[329440]|0.1041,0.1041,[329440]|0.1088,0.1088,[329440]|0.0991,0.0991,[329440]|0.0771,0.0771,[329440]|0.0771,0.0771,[329440]|0.0554,0.0554,[329440]|0.0771,0.0771,[329440]|0.0643,0.0643,[329440]|0.1088,0.1088,[329440]|0.0607,0.0607,[329440]|0.1041,0.1041,[329440]|0.1041,0.1041,[329440]|0.208,0.208,[329440]|0.2385,0.2385,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.1878,0.1878,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2602,0.2602,[329440]|0.3992,0.3992,[329440]|0.4282,0.4282,[329440]|0.363,0.363,[329440]|0.4116,0.4116,[329440]|0.4333,0.4333,[329440]|0.4967,0.4967,[329440]|0.4203,0.4203,[329440]|0.3762,0.3762,[329440]|0.282,0.282,[329440]|0.3399,0.3399,[329440]|0.2558,0.2558,[329440]|0.1998,0.1998,[329440]|0.1844,0.1844,[329440]|0.1178,0.1178,[329440]|0.1566,0.1566,[329440]|0.1495,0.1495,[329440]|0.2209,0.2209,[329440]|0.3053,0.3053,[329440]|0.2209,0.2209,[329440]|0.1566,0.1566,[329440]|0.0884,0.0884,[329440]|0.1041,0.1041,[329440]|0.1416,0.1416,[329440]|0.1178,0.1178,[329440]|0.1205,0.1205,[329440]|0.1349,0.1349,[329440]|0.2209,0.2209,[329440]|0.282,0.282,[329440]|0.2748,0.2748,[329440]|0.27,0.27,[329440]|0.3005,0.3005,[329440]|0.3992,0.3992,[329440]|0.4703,0.4703,[329440]|0.5762,0.5762,[329440]|0.5762,0.5762,[329440]|0.6293,0.6293,[329440]|0.6715,0.6715,[329440]|0.6944,0.6944,[329440]|0.7951,0.7951,[329440]|0.8781,0.8781,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER1_SPIOL
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.3704,0.3704,[72144e]|0.4017,0.4017,[72144e]|0.4292,0.4292,[72144e]|0.3215,0.3215,[72144e]|0.2884,0.2884,[72144e]|0.3566,0.3566,[72144e]|0.3704,0.3704,[72144e]|0.4292,0.4292,[72144e]|0.4619,0.4619,[72144e]|0.4476,0.4476,[72144e]|0.4979,0.4979,[72144e]|0.5807,0.5807,[72144e]|0.5758,0.5758,[72144e]|0.5758,0.5758,[72144e]|0.5382,0.5382,[72144e]|0.5055,0.5055,[72144e]|0.4409,0.4409,[72144e]|0.4685,0.4685,[72144e]|0.5055,0.5055,[72144e]|0.5493,0.5493,[72144e]|0.5533,0.5533,[72144e]|0.5951,0.5951,[72144e]|0.6375,0.6375,[72144e]|0.6322,0.6322,[72144e]|0.5493,0.5493,[72144e]|0.5456,0.5456,[72144e]|0.6043,0.6043,[72144e]|0.4864,0.4864,[72144e]|0.4864,0.4864,[72144e]|0.4507,0.4507,[72144e]|0.4369,0.4369,[72144e]|0.4652,0.4652,[72144e]|0.433,0.433,[72144e]|0.3983,0.3983,[72144e]|0.4292,0.4292,[72144e]|0.4619,0.4619,[72144e]|0.4541,0.4541,[72144e]|0.4831,0.4831,[72144e]|0.5176,0.5176,[72144e]|0.4541,0.4541,[72144e]|0.433,0.433,[72144e]|0.3392,0.3392,[72144e]|0.3286,0.3286,[72144e]|0.2849,0.2849,[72144e]|0.2817,0.2817,[72144e]|0.2224,0.2224,[72144e]|0.2364,0.2364,[72144e]|0.3249,0.3249,[72144e]|0.3599,0.3599,[72144e]|0.422,0.422,[72144e]|0.433,0.433,[72144e]|0.4409,0.4409,[72144e]|0.391,0.391,[72144e]|0.4186,0.4186,[72144e]|0.3249,0.3249,[72144e]|0.3392,0.3392,[72144e]|0.247,0.247,[72144e]|0.2783,0.2783,[72144e]|0.3215,0.3215,[72144e]|0.3321,0.3321,[72144e]|0.3182,0.3182,[72144e]|0.2609,0.2609,[72144e]|0.2193,0.2193,[72144e]|0.247,0.247,[72144e]|0.268,0.268,[72144e]|0.2918,0.2918,[72144e]|0.2645,0.2645,[72144e]|0.3494,0.3494,[72144e]|0.422,0.422,[72144e]|0.4476,0.4476,[72144e]|0.4119,0.4119,[72144e]|0.346,0.346,[72144e]|0.3599,0.3599,[72144e]|0.2918,0.2918,[72144e]|0.3704,0.3704,[72144e]|0.2609,0.2609,[72144e]|0.3494,0.3494,[72144e]|0.2436,0.2436,[72144e]|0.3392,0.3392,[72144e]|0.2817,0.2817,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2094,0.2094,[72144e]|0.2951,0.2951,[72144e]|0.3566,0.3566,[72144e]|0.3215,0.3215,[72144e]|0.2849,0.2849,[72144e]|0.3117,0.3117,[72144e]|0.3249,0.3249,[72144e]|0.2399,0.2399,[72144e]|0.2064,0.2064,[72144e]|0.1852,0.1852,[72144e]|0.1852,0.1852,[72144e]|0.247,0.247,[72144e]|0.1759,0.1759,[72144e]|0.2399,0.2399,[72144e]|0.2193,0.2193,[72144e]|0.3182,0.3182,[72144e]|0.3321,0.3321,[72144e]|0.4369,0.4369,[72144e]|0.433,0.433,[72144e]|0.3704,0.3704,[72144e]|0.3087,0.3087,[72144e]|0.3249,0.3249,[72144e]|0.433,0.433,[72144e]|0.4476,0.4476,[72144e]|0.4582,0.4582,[72144e]|0.4864,0.4864,[72144e]|0.5296,0.5296,[72144e]|0.5533,0.5533,[72144e]|0.5665,0.5665,[72144e]|0.5456,0.5456,[72144e]|0.5017,0.5017,[72144e]|0.4369,0.4369,[72144e]|0.4369,0.4369,[72144e]|0.3356,0.3356,[72144e]|0.374,0.374,[72144e]|0.3426,0.3426,[72144e]|0.2609,0.2609,[72144e]|0.2817,0.2817,[72144e]|0.2164,0.2164,[72144e]|0.2034,0.2034,[72144e]|0.2164,0.2164,[72144e]|0.2541,0.2541,[72144e]|0.3117,0.3117,[72144e]|0.2328,0.2328,[72144e]|0.2399,0.2399,[72144e]|0.2224,0.2224,[72144e]|0.2064,0.2064,[72144e]|0.2575,0.2575,[72144e]|0.268,0.268,[72144e]|0.268,0.268,[72144e]|0.2918,0.2918,[72144e]|0.3019,0.3019,[72144e]|0.3494,0.3494,[72144e]|0.3872,0.3872,[72144e]|0.3807,0.3807,[72144e]|0.4685,0.4685,[72144e]|0.4831,0.4831,[72144e]|0.494,0.494,[72144e]|0.5854,0.5854,[72144e]|0.5176,0.5176,[72144e]|0.5807,0.5807,[72144e]|0.5707,0.5707,[72144e]|0.5296,0.5296,[72144e]|0.6183,0.6183,[72144e]|0.5992,0.5992,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.928,0.928,[329440]|0.8823,0.8823,[329440]|0.8283,0.8283,[329440]|0.7912,0.7912,[329440]|0.754,0.754,[329440]|0.6474,0.6474,[329440]|0.5473,0.5473,[329440]|0.5296,0.5296,[329440]|0.4918,0.4918,[329440]|0.4703,0.4703,[329440]|0.4379,0.4379,[329440]|0.442,0.442,[329440]|0.4967,0.4967,[329440]|0.5514,0.5514,[329440]|0.5229,0.5229,[329440]|0.4879,0.4879,[329440]|0.4556,0.4556,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.4651,0.4651,[329440]|0.4703,0.4703,[329440]|0.5008,0.5008,[329440]|0.5296,0.5296,[329440]|0.5229,0.5229,[329440]|0.5374,0.5374,[329440]|0.6174,0.6174,[329440]|0.6255,0.6255,[329440]|0.5253,0.5253,[329440]|0.5229,0.5229,[329440]|0.4458,0.4458,[329440]|0.442,0.442,[329440]|0.4781,0.4781,[329440]|0.4513,0.4513,[329440]|0.4282,0.4282,[329440]|0.4749,0.4749,[329440]|0.4967,0.4967,[329440]|0.5173,0.5173,[329440]|0.5549,0.5549,[329440]|0.5667,0.5667,[329440]|0.5412,0.5412,[329440]|0.5043,0.5043,[329440]|0.4703,0.4703,[329440]|0.4333,0.4333,[329440]|0.3578,0.3578,[329440]|0.3311,0.3311,[329440]|0.2657,0.2657,[329440]|0.3146,0.3146,[329440]|0.3263,0.3263,[329440]|0.27,0.27,[329440]|0.3184,0.3184,[329440]|0.3456,0.3456,[329440]|0.3311,0.3311,[329440]|0.3311,0.3311,[329440]|0.3311,0.3311,[329440]|0.2531,0.2531,[329440]|0.2748,0.2748,[329440]|0.1921,0.1921,[329440]|0.1921,0.1921,[329440]|0.1456,0.1456,[329440]|0.1698,0.1698,[329440]|0.2122,0.2122,[329440]|0.2657,0.2657,[329440]|0.2333,0.2333,[329440]|0.2385,0.2385,[329440]|0.1844,0.1844,[329440]|0.1844,0.1844,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2432,0.2432,[329440]|0.2657,0.2657,[329440]|0.2483,0.2483,[329440]|0.27,0.27,[329440]|0.2657,0.2657,[329440]|0.208,0.208,[329440]|0.282,0.282,[329440]|0.1998,0.1998,[329440]|0.3184,0.3184,[329440]|0.2432,0.2432,[329440]|0.3359,0.3359,[329440]|0.1732,0.1732,[329440]|0.1566,0.1566,[329440]|0.1205,0.1205,[329440]|0.1602,0.1602,[329440]|0.2255,0.2255,[329440]|0.1766,0.1766,[329440]|0.2385,0.2385,[329440]|0.2255,0.2255,[329440]|0.1635,0.1635,[329440]|0.1732,0.1732,[329440]|0.1602,0.1602,[329440]|0.1292,0.1292,[329440]|0.0771,0.0771,[329440]|0.0701,0.0701,[329440]|0.0965,0.0965,[329440]|0.0858,0.0858,[329440]|0.124,0.124,[329440]|0.0643,0.0643,[329440]|0.0935,0.0935,[329440]|0.0935,0.0935,[329440]|0.2041,0.2041,[329440]|0.2209,0.2209,[329440]|0.2602,0.2602,[329440]|0.2657,0.2657,[329440]|0.1878,0.1878,[329440]|0.2333,0.2333,[329440]|0.2432,0.2432,[329440]|0.2531,0.2531,[329440]|0.3668,0.3668,[329440]|0.3992,0.3992,[329440]|0.3359,0.3359,[329440]|0.3717,0.3717,[329440]|0.4556,0.4556,[329440]|0.4825,0.4825,[329440]|0.4245,0.4245,[329440]|0.3806,0.3806,[329440]|0.3146,0.3146,[329440]|0.3762,0.3762,[329440]|0.3263,0.3263,[329440]|0.3005,0.3005,[329440]|0.2748,0.2748,[329440]|0.1998,0.1998,[329440]|0.2432,0.2432,[329440]|0.1878,0.1878,[329440]|0.2657,0.2657,[329440]|0.3456,0.3456,[329440]|0.2748,0.2748,[329440]|0.2558,0.2558,[329440]|0.1766,0.1766,[329440]|0.1998,0.1998,[329440]|0.2483,0.2483,[329440]|0.2209,0.2209,[329440]|0.1732,0.1732,[329440]|0.1921,0.1921,[329440]|0.282,0.282,[329440]|0.3535,0.3535,[329440]|0.3456,0.3456,[329440]|0.3491,0.3491,[329440]|0.3806,0.3806,[329440]|0.4458,0.4458,[329440]|0.5084,0.5084,[329440]|0.6174,0.6174,[329440]|0.6174,0.6174,[329440]|0.7034,0.7034,[329440]|0.7418,0.7418,[329440]|0.7644,0.7644,[329440]|0.8595,0.8595,[329440]|0.8945,0.8945,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER1_MESCR
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.3117,0.3117,[72144e]|0.2951,0.2951,[72144e]|0.3249,0.3249,[72144e]|0.3566,0.3566,[72144e]|0.3426,0.3426,[72144e]|0.2503,0.2503,[72144e]|0.2436,0.2436,[72144e]|0.3053,0.3053,[72144e]|0.3182,0.3182,[72144e]|0.3426,0.3426,[72144e]|0.3948,0.3948,[72144e]|0.4619,0.4619,[72144e]|0.4619,0.4619,[72144e]|0.4979,0.4979,[72144e]|0.4652,0.4652,[72144e]|0.433,0.433,[72144e]|0.3983,0.3983,[72144e]|0.4619,0.4619,[72144e]|0.5296,0.5296,[72144e]|0.5419,0.5419,[72144e]|0.4864,0.4864,[72144e]|0.5176,0.5176,[72144e]|0.5176,0.5176,[72144e]|0.5176,0.5176,[72144e]|0.4541,0.4541,[72144e]|0.3599,0.3599,[72144e]|0.3872,0.3872,[72144e]|0.4119,0.4119,[72144e]|0.4292,0.4292,[72144e]|0.3948,0.3948,[72144e]|0.4017,0.4017,[72144e]|0.3704,0.3704,[72144e]|0.3356,0.3356,[72144e]|0.3053,0.3053,[72144e]|0.3286,0.3286,[72144e]|0.3286,0.3286,[72144e]|0.3087,0.3087,[72144e]|0.3392,0.3392,[72144e]|0.3774,0.3774,[72144e]|0.3182,0.3182,[72144e]|0.2918,0.2918,[72144e]|0.2609,0.2609,[72144e]|0.2292,0.2292,[72144e]|0.2224,0.2224,[72144e]|0.1731,0.1731,[72144e]|0.2002,0.2002,[72144e]|0.2002,0.2002,[72144e]|0.2436,0.2436,[72144e]|0.247,0.247,[72144e]|0.3426,0.3426,[72144e]|0.3774,0.3774,[72144e]|0.3774,0.3774,[72144e]|0.3704,0.3704,[72144e]|0.4087,0.4087,[72144e]|0.4369,0.4369,[72144e]|0.3704,0.3704,[72144e]|0.3948,0.3948,[72144e]|0.2988,0.2988,[72144e]|0.3807,0.3807,[72144e]|0.391,0.391,[72144e]|0.4292,0.4292,[72144e]|0.4087,0.4087,[72144e]|0.3529,0.3529,[72144e]|0.3149,0.3149,[72144e]|0.3356,0.3356,[72144e]|0.3566,0.3566,[72144e]|0.3807,0.3807,[72144e]|0.3529,0.3529,[72144e]|0.4369,0.4369,[72144e]|0.5139,0.5139,[72144e]|0.4831,0.4831,[72144e]|0.4507,0.4507,[72144e]|0.3566,0.3566,[72144e]|0.3704,0.3704,[72144e]|0.3182,0.3182,[72144e]|0.3392,0.3392,[72144e]|0.2328,0.2328,[72144e]|0.2951,0.2951,[72144e]|0.1791,0.1791,[72144e]|0.2715,0.2715,[72144e]|0.2164,0.2164,[72144e]|0.2002,0.2002,[72144e]|0.1881,0.1881,[72144e]|0.1501,0.1501,[72144e]|0.2164,0.2164,[72144e]|0.2817,0.2817,[72144e]|0.247,0.247,[72144e]|0.2094,0.2094,[72144e]|0.2328,0.2328,[72144e]|0.2503,0.2503,[72144e]|0.1823,0.1823,[72144e]|0.1643,0.1643,[72144e]|0.1852,0.1852,[72144e]|0.1852,0.1852,[72144e]|0.247,0.247,[72144e]|0.1881,0.1881,[72144e]|0.2541,0.2541,[72144e]|0.2328,0.2328,[72144e]|0.3249,0.3249,[72144e]|0.3426,0.3426,[72144e]|0.4369,0.4369,[72144e]|0.4292,0.4292,[72144e]|0.3704,0.3704,[72144e]|0.3117,0.3117,[72144e]|0.3249,0.3249,[72144e]|0.4369,0.4369,[72144e]|0.4507,0.4507,[72144e]|0.4619,0.4619,[72144e]|0.4901,0.4901,[72144e]|0.5055,0.5055,[72144e]|0.5342,0.5342,[72144e]|0.5419,0.5419,[72144e]|0.5176,0.5176,[72144e]|0.4619,0.4619,[72144e]|0.4017,0.4017,[72144e]|0.4051,0.4051,[72144e]|0.3053,0.3053,[72144e]|0.3053,0.3053,[72144e]|0.2783,0.2783,[72144e]|0.1942,0.1942,[72144e]|0.2129,0.2129,[72144e]|0.2002,0.2002,[72144e]|0.2002,0.2002,[72144e]|0.2129,0.2129,[72144e]|0.2503,0.2503,[72144e]|0.3117,0.3117,[72144e]|0.2328,0.2328,[72144e]|0.2399,0.2399,[72144e]|0.2258,0.2258,[72144e]|0.2129,0.2129,[72144e]|0.268,0.268,[72144e]|0.2988,0.2988,[72144e]|0.2988,0.2988,[72144e]|0.3215,0.3215,[72144e]|0.3249,0.3249,[72144e]|0.3774,0.3774,[72144e]|0.4149,0.4149,[72144e]|0.4051,0.4051,[72144e]|0.4979,0.4979,[72144e]|0.5456,0.5456,[72144e]|0.5665,0.5665,[72144e]|0.6755,0.6755,[72144e]|0.6089,0.6089,[72144e]|0.5901,0.5901,[72144e]|0.5807,0.5807,[72144e]|0.5382,0.5382,[72144e]|0.6227,0.6227,[72144e]|0.6043,0.6043,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.8857,0.8857,[329440]|0.8283,0.8283,[329440]|0.7912,0.7912,[329440]|0.7111,0.7111,[329440]|0.6681,0.6681,[329440]|0.6334,0.6334,[329440]|0.5549,0.5549,[329440]|0.4282,0.4282,[329440]|0.3491,0.3491,[329440]|0.3311,0.3311,[329440]|0.2913,0.2913,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.442,0.442,[329440]|0.4078,0.4078,[329440]|0.4078,0.4078,[329440]|0.4078,0.4078,[329440]|0.4037,0.4037,[329440]|0.3939,0.3939,[329440]|0.4203,0.4203,[329440]|0.4245,0.4245,[329440]|0.46,0.46,[329440]|0.3885,0.3885,[329440]|0.4282,0.4282,[329440]|0.4556,0.4556,[329440]|0.4149,0.4149,[329440]|0.3885,0.3885,[329440]|0.3847,0.3847,[329440]|0.4203,0.4203,[329440]|0.3263,0.3263,[329440]|0.3311,0.3311,[329440]|0.3263,0.3263,[329440]|0.3005,0.3005,[329440]|0.2432,0.2432,[329440]|0.2786,0.2786,[329440]|0.2865,0.2865,[329440]|0.3146,0.3146,[329440]|0.3578,0.3578,[329440]|0.3535,0.3535,[329440]|0.3263,0.3263,[329440]|0.2913,0.2913,[329440]|0.2558,0.2558,[329440]|0.2913,0.2913,[329440]|0.2657,0.2657,[329440]|0.1698,0.1698,[329440]|0.1958,0.1958,[329440]|0.1878,0.1878,[329440]|0.2748,0.2748,[329440]|0.2041,0.2041,[329440]|0.208,0.208,[329440]|0.1998,0.1998,[329440]|0.2333,0.2333,[329440]|0.2483,0.2483,[329440]|0.2748,0.2748,[329440]|0.2602,0.2602,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.1998,0.1998,[329440]|0.2748,0.2748,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2913,0.2913,[329440]|0.3456,0.3456,[329440]|0.3184,0.3184,[329440]|0.3225,0.3225,[329440]|0.27,0.27,[329440]|0.2748,0.2748,[329440]|0.2913,0.2913,[329440]|0.3225,0.3225,[329440]|0.3491,0.3491,[329440]|0.3717,0.3717,[329440]|0.3578,0.3578,[329440]|0.3053,0.3053,[329440]|0.3005,0.3005,[329440]|0.2602,0.2602,[329440]|0.2748,0.2748,[329440]|0.1958,0.1958,[329440]|0.3005,0.3005,[329440]|0.2209,0.2209,[329440]|0.3146,0.3146,[329440]|0.1602,0.1602,[329440]|0.138,0.138,[329440]|0.1041,0.1041,[329440]|0.1349,0.1349,[329440]|0.1958,0.1958,[329440]|0.1532,0.1532,[329440]|0.2041,0.2041,[329440]|0.1878,0.1878,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.124,0.124,[329440]|0.0991,0.0991,[329440]|0.0884,0.0884,[329440]|0.0858,0.0858,[329440]|0.1205,0.1205,[329440]|0.1018,0.1018,[329440]|0.138,0.138,[329440]|0.0832,0.0832,[329440]|0.1178,0.1178,[329440]|0.1178,0.1178,[329440]|0.2385,0.2385,[329440]|0.2602,0.2602,[329440]|0.2865,0.2865,[329440]|0.2963,0.2963,[329440]|0.2209,0.2209,[329440]|0.2748,0.2748,[329440]|0.2865,0.2865,[329440]|0.2963,0.2963,[329440]|0.4116,0.4116,[329440]|0.442,0.442,[329440]|0.3885,0.3885,[329440]|0.3885,0.3885,[329440]|0.4651,0.4651,[329440]|0.4749,0.4749,[329440]|0.4149,0.4149,[329440]|0.3762,0.3762,[329440]|0.3184,0.3184,[329440]|0.3668,0.3668,[329440]|0.3146,0.3146,[329440]|0.2657,0.2657,[329440]|0.2333,0.2333,[329440]|0.1667,0.1667,[329440]|0.208,0.208,[329440]|0.1998,0.1998,[329440]|0.2786,0.2786,[329440]|0.3456,0.3456,[329440]|0.2786,0.2786,[329440]|0.2602,0.2602,[329440]|0.1844,0.1844,[329440]|0.1998,0.1998,[329440]|0.2483,0.2483,[329440]|0.2531,0.2531,[329440]|0.2041,0.2041,[329440]|0.2209,0.2209,[329440]|0.2963,0.2963,[329440]|0.3578,0.3578,[329440]|0.3491,0.3491,[329440]|0.3491,0.3491,[329440]|0.3847,0.3847,[329440]|0.4781,0.4781,[329440]|0.5374,0.5374,[329440]|0.6442,0.6442,[329440]|0.6474,0.6474,[329440]|0.6944,0.6944,[329440]|0.7317,0.7317,[329440]|0.7605,0.7605,[329440]|0.8521,0.8521,[329440]|0.892,0.892,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER_CAPAN
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.2817,0.2817,[72144e]|0.1671,0.1671,[72144e]|0.1611,0.1611,[72144e]|0.2364,0.2364,[72144e]|0.2783,0.2783,[72144e]|0.2951,0.2951,[72144e]|0.3566,0.3566,[72144e]|0.3426,0.3426,[72144e]|0.3053,0.3053,[72144e]|0.3286,0.3286,[72144e]|0.346,0.346,[72144e]|0.3087,0.3087,[72144e]|0.3321,0.3321,[72144e]|0.3631,0.3631,[72144e]|0.346,0.346,[72144e]|0.3774,0.3774,[72144e]|0.4119,0.4119,[72144e]|0.3566,0.3566,[72144e]|0.384,0.384,[72144e]|0.4766,0.4766,[72144e]|0.4507,0.4507,[72144e]|0.3807,0.3807,[72144e]|0.2884,0.2884,[72144e]|0.3774,0.3774,[72144e]|0.3392,0.3392,[72144e]|0.3019,0.3019,[72144e]|0.2918,0.2918,[72144e]|0.2752,0.2752,[72144e]|0.2503,0.2503,[72144e]|0.2752,0.2752,[72144e]|0.3249,0.3249,[72144e]|0.3149,0.3149,[72144e]|0.2645,0.2645,[72144e]|0.3356,0.3356,[72144e]|0.2399,0.2399,[72144e]|0.1852,0.1852,[72144e]|0.2258,0.2258,[72144e]|0.1969,0.1969,[72144e]|0.1251,0.1251,[72144e]|0.1583,0.1583,[72144e]|0.1229,0.1229,[72144e]|0.1028,0.1028,[72144e]|0.0817,0.0817,[72144e]|0.0799,0.0799,[72144e]|0.1399,0.1399,[72144e]|0.1611,0.1611,[72144e]|0.2399,0.2399,[72144e]|0.247,0.247,[72144e]|0.2783,0.2783,[72144e]|0.2328,0.2328,[72144e]|0.2503,0.2503,[72144e]|0.1643,0.1643,[72144e]|0.1791,0.1791,[72144e]|0.1092,0.1092,[72144e]|0.1702,0.1702,[72144e]|0.1791,0.1791,[72144e]|0.2849,0.2849,[72144e]|0.2645,0.2645,[72144e]|0.2094,0.2094,[72144e]|0.1501,0.1501,[72144e]|0.1643,0.1643,[72144e]|0.1852,0.1852,[72144e]|0.247,0.247,[72144e]|0.2258,0.2258,[72144e]|0.3149,0.3149,[72144e]|0.4087,0.4087,[72144e]|0.3774,0.3774,[72144e]|0.346,0.346,[72144e]|0.3286,0.3286,[72144e]|0.3494,0.3494,[72144e]|0.2541,0.2541,[72144e]|0.3529,0.3529,[72144e]|0.247,0.247,[72144e]|0.3392,0.3392,[72144e]|0.2224,0.2224,[72144e]|0.3249,0.3249,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2436,0.2436,[72144e]|0.1969,0.1969,[72144e]|0.2752,0.2752,[72144e]|0.3426,0.3426,[72144e]|0.3053,0.3053,[72144e]|0.2645,0.2645,[72144e]|0.2503,0.2503,[72144e]|0.2715,0.2715,[72144e]|0.1823,0.1823,[72144e]|0.1424,0.1424,[72144e]|0.1611,0.1611,[72144e]|0.1611,0.1611,[72144e]|0.1424,0.1424,[72144e]|0.0967,0.0967,[72144e]|0.1528,0.1528,[72144e]|0.1399,0.1399,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.3286,0.3286,[72144e]|0.3356,0.3356,[72144e]|0.2752,0.2752,[72144e]|0.2094,0.2094,[72144e]|0.2292,0.2292,[72144e]|0.346,0.346,[72144e]|0.3631,0.3631,[72144e]|0.374,0.374,[72144e]|0.4119,0.4119,[72144e]|0.4619,0.4619,[72144e]|0.4864,0.4864,[72144e]|0.4901,0.4901,[72144e]|0.4979,0.4979,[72144e]|0.4725,0.4725,[72144e]|0.4051,0.4051,[72144e]|0.4087,0.4087,[72144e]|0.3182,0.3182,[72144e]|0.3215,0.3215,[72144e]|0.2817,0.2817,[72144e]|0.1969,0.1969,[72144e]|0.2224,0.2224,[72144e]|0.2164,0.2164,[72144e]|0.2129,0.2129,[72144e]|0.2193,0.2193,[72144e]|0.2575,0.2575,[72144e]|0.3215,0.3215,[72144e]|0.2399,0.2399,[72144e]|0.2436,0.2436,[72144e]|0.2292,0.2292,[72144e]|0.2164,0.2164,[72144e]|0.268,0.268,[72144e]|0.268,0.268,[72144e]|0.2193,0.2193,[72144e]|0.2436,0.2436,[72144e]|0.2436,0.2436,[72144e]|0.247,0.247,[72144e]|0.3087,0.3087,[72144e]|0.3019,0.3019,[72144e]|0.4017,0.4017,[72144e]|0.4441,0.4441,[72144e]|0.4541,0.4541,[72144e]|0.5419,0.5419,[72144e]|0.4831,0.4831,[72144e]|0.4507,0.4507,[72144e]|0.4369,0.4369,[72144e]|0.391,0.391,[72144e]|0.4541,0.4541,[72144e]|0.4292,0.4292,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.8424,0.8424,[329440]|0.8074,0.8074,[329440]|0.7644,0.7644,[329440]|0.6442,0.6442,[329440]|0.5762,0.5762,[329440]|0.5549,0.5549,[329440]|0.5253,0.5253,[329440]|0.4879,0.4879,[329440]|0.4651,0.4651,[329440]|0.3847,0.3847,[329440]|0.2748,0.2748,[329440]|0.2963,0.2963,[329440]|0.3311,0.3311,[329440]|0.2657,0.2657,[329440]|0.3311,0.3311,[329440]|0.3535,0.3535,[329440]|0.3146,0.3146,[329440]|0.3311,0.3311,[329440]|0.3578,0.3578,[329440]|0.363,0.363,[329440]|0.3578,0.3578,[329440]|0.363,0.363,[329440]|0.3225,0.3225,[329440]|0.3491,0.3491,[329440]|0.2913,0.2913,[329440]|0.2657,0.2657,[329440]|0.1878,0.1878,[329440]|0.1878,0.1878,[329440]|0.1732,0.1732,[329440]|0.1732,0.1732,[329440]|0.2292,0.2292,[329440]|0.2255,0.2255,[329440]|0.2255,0.2255,[329440]|0.282,0.282,[329440]|0.2209,0.2209,[329440]|0.1958,0.1958,[329440]|0.1844,0.1844,[329440]|0.138,0.138,[329440]|0.1088,0.1088,[329440]|0.1602,0.1602,[329440]|0.1041,0.1041,[329440]|0.0965,0.0965,[329440]|0.0813,0.0813,[329440]|0.1088,0.1088,[329440]|0.1205,0.1205,[329440]|0.0789,0.0789,[329440]|0.1117,0.1117,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.1602,0.1602,[329440]|0.1805,0.1805,[329440]|0.1322,0.1322,[329440]|0.1495,0.1495,[329440]|0.0965,0.0965,[329440]|0.1495,0.1495,[329440]|0.0771,0.0771,[329440]|0.1495,0.1495,[329440]|0.1921,0.1921,[329440]|0.2209,0.2209,[329440]|0.1698,0.1698,[329440]|0.1805,0.1805,[329440]|0.1456,0.1456,[329440]|0.1495,0.1495,[329440]|0.1732,0.1732,[329440]|0.2432,0.2432,[329440]|0.2786,0.2786,[329440]|0.3053,0.3053,[329440]|0.2913,0.2913,[329440]|0.2432,0.2432,[329440]|0.2432,0.2432,[329440]|0.1958,0.1958,[329440]|0.2865,0.2865,[329440]|0.2041,0.2041,[329440]|0.3225,0.3225,[329440]|0.2385,0.2385,[329440]|0.3578,0.3578,[329440]|0.1844,0.1844,[329440]|0.1698,0.1698,[329440]|0.1495,0.1495,[329440]|0.1844,0.1844,[329440]|0.2558,0.2558,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2385,0.2385,[329440]|0.1266,0.1266,[329440]|0.1322,0.1322,[329440]|0.1205,0.1205,[329440]|0.0965,0.0965,[329440]|0.0832,0.0832,[329440]|0.0744,0.0744,[329440]|0.0813,0.0813,[329440]|0.0677,0.0677,[329440]|0.0832,0.0832,[329440]|0.0478,0.0478,[329440]|0.0813,0.0813,[329440]|0.0813,0.0813,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2209,0.2209,[329440]|0.2255,0.2255,[329440]|0.1566,0.1566,[329440]|0.208,0.208,[329440]|0.2209,0.2209,[329440]|0.2292,0.2292,[329440]|0.3668,0.3668,[329440]|0.3939,0.3939,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4513,0.4513,[329440]|0.4825,0.4825,[329440]|0.4245,0.4245,[329440]|0.3762,0.3762,[329440]|0.3399,0.3399,[329440]|0.3885,0.3885,[329440]|0.3053,0.3053,[329440]|0.2531,0.2531,[329440]|0.2385,0.2385,[329440]|0.1635,0.1635,[329440]|0.2041,0.2041,[329440]|0.208,0.208,[329440]|0.2865,0.2865,[329440]|0.3668,0.3668,[329440]|0.2865,0.2865,[329440]|0.27,0.27,[329440]|0.1805,0.1805,[329440]|0.1998,0.1998,[329440]|0.2602,0.2602,[329440]|0.2209,0.2209,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2209,0.2209,[329440]|0.2913,0.2913,[329440]|0.2913,0.2913,[329440]|0.2385,0.2385,[329440]|0.3096,0.3096,[329440]|0.4078,0.4078,[329440]|0.4749,0.4749,[329440]|0.5846,0.5846,[329440]|0.59,0.59,[329440]|0.6334,0.6334,[329440]|0.6681,0.6681,[329440]|0.6906,0.6906,[329440]|0.7869,0.7869,[329440]|0.835,0.835,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER_CAPAA
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.247,0.247,[72144e]|0.3392,0.3392,[72144e]|0.2609,0.2609,[72144e]|0.3249,0.3249,[72144e]|0.2258,0.2258,[72144e]|0.2817,0.2817,[72144e]|0.1759,0.1759,[72144e]|0.2364,0.2364,[72144e]|0.2817,0.2817,[72144e]|0.3215,0.3215,[72144e]|0.2918,0.2918,[72144e]|0.2436,0.2436,[72144e]|0.1852,0.1852,[72144e]|0.1942,0.1942,[72144e]|0.2258,0.2258,[72144e]|0.2884,0.2884,[72144e]|0.2783,0.2783,[72144e]|0.3667,0.3667,[72144e]|0.4541,0.4541,[72144e]|0.4292,0.4292,[72144e]|0.3948,0.3948,[72144e]|0.3704,0.3704,[72144e]|0.391,0.391,[72144e]|0.2918,0.2918,[72144e]|0.3948,0.3948,[72144e]|0.2951,0.2951,[72144e]|0.3872,0.3872,[72144e]|0.2575,0.2575,[72144e]|0.3599,0.3599,[72144e]|0.3019,0.3019,[72144e]|0.2849,0.2849,[72144e]|0.2645,0.2645,[72144e]|0.2034,0.2034,[72144e]|0.2752,0.2752,[72144e]|0.3356,0.3356,[72144e]|0.2918,0.2918,[72144e]|0.247,0.247,[72144e]|0.2364,0.2364,[72144e]|0.247,0.247,[72144e]|0.1643,0.1643,[72144e]|0.1275,0.1275,[72144e]|0.1449,0.1449,[72144e]|0.1449,0.1449,[72144e]|0.1323,0.1323,[72144e]|0.0888,0.0888,[72144e]|0.1449,0.1449,[72144e]|0.1275,0.1275,[72144e]|0.1881,0.1881,[72144e]|0.2064,0.2064,[72144e]|0.3149,0.3149,[72144e]|0.3286,0.3286,[72144e]|0.268,0.268,[72144e]|0.2034,0.2034,[72144e]|0.2224,0.2224,[72144e]|0.3494,0.3494,[72144e]|0.3704,0.3704,[72144e]|0.3807,0.3807,[72144e]|0.422,0.422,[72144e]|0.4725,0.4725,[72144e]|0.5017,0.5017,[72144e]|0.5176,0.5176,[72144e]|0.5176,0.5176,[72144e]|0.4901,0.4901,[72144e]|0.422,0.422,[72144e]|0.422,0.422,[72144e]|0.3356,0.3356,[72144e]|0.3356,0.3356,[72144e]|0.2951,0.2951,[72144e]|0.2129,0.2129,[72144e]|0.2436,0.2436,[72144e]|0.2328,0.2328,[72144e]|0.2328,0.2328,[72144e]|0.247,0.247,[72144e]|0.2849,0.2849,[72144e]|0.3494,0.3494,[72144e]|0.2609,0.2609,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2328,0.2328,[72144e]|0.2849,0.2849,[72144e]|0.2884,0.2884,[72144e]|0.2364,0.2364,[72144e]|0.2609,0.2609,[72144e]|0.2645,0.2645,[72144e]|0.2645,0.2645,[72144e]|0.3286,0.3286,[72144e]|0.3215,0.3215,[72144e]|0.4186,0.4186,[72144e]|0.4582,0.4582,[72144e]|0.4725,0.4725,[72144e]|0.5533,0.5533,[72144e]|0.494,0.494,[72144e]|0.4652,0.4652,[72144e]|0.4476,0.4476,[72144e]|0.3983,0.3983,[72144e]|0.4619,0.4619,[72144e]|0.433,0.433,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.7724,0.7724,[329440]|0.7501,0.7501,[329440]|0.7111,0.7111,[329440]|0.6984,0.6984,[329440]|0.59,0.59,[329440]|0.5711,0.5711,[329440]|0.442,0.442,[329440]|0.4203,0.4203,[329440]|0.2786,0.2786,[329440]|0.27,0.27,[329440]|0.2385,0.2385,[329440]|0.3005,0.3005,[329440]|0.2385,0.2385,[329440]|0.2483,0.2483,[329440]|0.2167,0.2167,[329440]|0.2255,0.2255,[329440]|0.2657,0.2657,[329440]|0.3456,0.3456,[329440]|0.3717,0.3717,[329440]|0.3992,0.3992,[329440]|0.3847,0.3847,[329440]|0.3311,0.3311,[329440]|0.3225,0.3225,[329440]|0.27,0.27,[329440]|0.3668,0.3668,[329440]|0.2786,0.2786,[329440]|0.4037,0.4037,[329440]|0.3096,0.3096,[329440]|0.4116,0.4116,[329440]|0.2255,0.2255,[329440]|0.2041,0.2041,[329440]|0.1602,0.1602,[329440]|0.1998,0.1998,[329440]|0.2657,0.2657,[329440]|0.1921,0.1921,[329440]|0.2558,0.2558,[329440]|0.2483,0.2483,[329440]|0.1322,0.1322,[329440]|0.138,0.138,[329440]|0.124,0.124,[329440]|0.0991,0.0991,[329440]|0.0884,0.0884,[329440]|0.0771,0.0771,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.0858,0.0858,[329440]|0.049,0.049,[329440]|0.0813,0.0813,[329440]|0.0813,0.0813,[329440]|0.1766,0.1766,[329440]|0.1998,0.1998,[329440]|0.2255,0.2255,[329440]|0.2255,0.2255,[329440]|0.1566,0.1566,[329440]|0.208,0.208,[329440]|0.2209,0.2209,[329440]|0.2292,0.2292,[329440]|0.3668,0.3668,[329440]|0.3939,0.3939,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4513,0.4513,[329440]|0.4825,0.4825,[329440]|0.4245,0.4245,[329440]|0.3762,0.3762,[329440]|0.3399,0.3399,[329440]|0.3885,0.3885,[329440]|0.3053,0.3053,[329440]|0.2531,0.2531,[329440]|0.2385,0.2385,[329440]|0.1635,0.1635,[329440]|0.2041,0.2041,[329440]|0.208,0.208,[329440]|0.2865,0.2865,[329440]|0.3668,0.3668,[329440]|0.2865,0.2865,[329440]|0.27,0.27,[329440]|0.1805,0.1805,[329440]|0.1998,0.1998,[329440]|0.2602,0.2602,[329440]|0.2209,0.2209,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2209,0.2209,[329440]|0.2913,0.2913,[329440]|0.2913,0.2913,[329440]|0.2385,0.2385,[329440]|0.3096,0.3096,[329440]|0.4078,0.4078,[329440]|0.4749,0.4749,[329440]|0.5846,0.5846,[329440]|0.59,0.59,[329440]|0.6334,0.6334,[329440]|0.6681,0.6681,[329440]|0.6906,0.6906,[329440]|0.7869,0.7869,[329440]|0.835,0.835,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   Q93XJ9_SOLTU
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.3182,0.3182,[72144e]|0.2002,0.2002,[72144e]|0.1449,0.1449,[72144e]|0.2164,0.2164,[72144e]|0.2503,0.2503,[72144e]|0.268,0.268,[72144e]|0.3286,0.3286,[72144e]|0.2951,0.2951,[72144e]|0.2609,0.2609,[72144e]|0.2849,0.2849,[72144e]|0.3053,0.3053,[72144e]|0.2609,0.2609,[72144e]|0.2817,0.2817,[72144e]|0.2541,0.2541,[72144e]|0.2575,0.2575,[72144e]|0.2575,0.2575,[72144e]|0.2645,0.2645,[72144e]|0.2064,0.2064,[72144e]|0.2292,0.2292,[72144e]|0.3149,0.3149,[72144e]|0.2884,0.2884,[72144e]|0.2164,0.2164,[72144e]|0.1399,0.1399,[72144e]|0.2129,0.2129,[72144e]|0.2094,0.2094,[72144e]|0.1731,0.1731,[72144e]|0.1702,0.1702,[72144e]|0.1759,0.1759,[72144e]|0.1501,0.1501,[72144e]|0.2002,0.2002,[72144e]|0.247,0.247,[72144e]|0.2436,0.2436,[72144e]|0.1823,0.1823,[72144e]|0.2503,0.2503,[72144e]|0.1583,0.1583,[72144e]|0.1611,0.1611,[72144e]|0.2002,0.2002,[72144e]|0.2002,0.2002,[72144e]|0.1298,0.1298,[72144e]|0.1643,0.1643,[72144e]|0.1275,0.1275,[72144e]|0.107,0.107,[72144e]|0.087,0.087,[72144e]|0.087,0.087,[72144e]|0.1501,0.1501,[72144e]|0.1759,0.1759,[72144e]|0.2503,0.2503,[72144e]|0.2609,0.2609,[72144e]|0.2918,0.2918,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.1554,0.1554,[72144e]|0.1731,0.1731,[72144e]|0.0948,0.0948,[72144e]|0.1611,0.1611,[72144e]|0.1702,0.1702,[72144e]|0.2849,0.2849,[72144e]|0.2609,0.2609,[72144e]|0.2094,0.2094,[72144e]|0.1554,0.1554,[72144e]|0.1671,0.1671,[72144e]|0.1852,0.1852,[72144e]|0.2436,0.2436,[72144e]|0.2258,0.2258,[72144e]|0.3117,0.3117,[72144e]|0.3983,0.3983,[72144e]|0.4186,0.4186,[72144e]|0.3872,0.3872,[72144e]|0.374,0.374,[72144e]|0.3872,0.3872,[72144e]|0.2918,0.2918,[72144e]|0.391,0.391,[72144e]|0.2918,0.2918,[72144e]|0.384,0.384,[72144e]|0.2541,0.2541,[72144e]|0.3631,0.3631,[72144e]|0.3053,0.3053,[72144e]|0.2918,0.2918,[72144e]|0.2783,0.2783,[72144e]|0.2193,0.2193,[72144e]|0.2951,0.2951,[72144e]|0.3599,0.3599,[72144e]|0.3149,0.3149,[72144e]|0.2752,0.2752,[72144e]|0.2645,0.2645,[72144e]|0.2817,0.2817,[72144e]|0.2094,0.2094,[72144e]|0.1942,0.1942,[72144e]|0.1528,0.1528,[72144e]|0.1528,0.1528,[72144e]|0.1554,0.1554,[72144e]|0.1092,0.1092,[72144e]|0.1671,0.1671,[72144e]|0.1501,0.1501,[72144e]|0.2164,0.2164,[72144e]|0.2292,0.2292,[72144e]|0.3392,0.3392,[72144e]|0.3249,0.3249,[72144e]|0.2645,0.2645,[72144e]|0.2034,0.2034,[72144e]|0.2164,0.2164,[72144e]|0.3356,0.3356,[72144e]|0.3494,0.3494,[72144e]|0.3599,0.3599,[72144e]|0.494,0.494,[72144e]|0.494,0.494,[72144e]|0.4652,0.4652,[72144e]|0.4766,0.4766,[72144e]|0.4369,0.4369,[72144e]|0.3872,0.3872,[72144e]|0.3494,0.3494,[72144e]|0.3529,0.3529,[72144e]|0.2292,0.2292,[72144e]|0.2328,0.2328,[72144e]|0.2002,0.2002,[72144e]|0.1349,0.1349,[72144e]|0.1611,0.1611,[72144e]|0.1399,0.1399,[72144e]|0.0676,0.0676,[72144e]|0.078,0.078,[72144e]|0.1007,0.1007,[72144e]|0.1424,0.1424,[72144e]|0.0948,0.0948,[72144e]|0.0985,0.0985,[72144e]|0.0929,0.0929,[72144e]|0.0851,0.0851,[72144e]|0.0676,0.0676,[72144e]|0.0909,0.0909,[72144e]|0.1229,0.1229,[72144e]|0.1399,0.1399,[72144e]|0.1583,0.1583,[72144e]|0.1969,0.1969,[72144e]|0.2364,0.2364,[72144e]|0.2292,0.2292,[72144e]|0.3321,0.3321,[72144e]|0.3667,0.3667,[72144e]|0.3774,0.3774,[72144e]|0.4441,0.4441,[72144e]|0.3872,0.3872,[72144e]|0.384,0.384,[72144e]|0.5577,0.5577,[72144e]|0.5176,0.5176,[72144e]|0.6043,0.6043,[72144e]|0.5854,0.5854,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.8311,0.8311,[329440]|0.7912,0.7912,[329440]|0.7501,0.7501,[329440]|0.6255,0.6255,[329440]|0.5008,0.5008,[329440]|0.4825,0.4825,[329440]|0.4513,0.4513,[329440]|0.4078,0.4078,[329440]|0.3885,0.3885,[329440]|0.2786,0.2786,[329440]|0.1732,0.1732,[329440]|0.1921,0.1921,[329440]|0.2292,0.2292,[329440]|0.1635,0.1635,[329440]|0.2385,0.2385,[329440]|0.2041,0.2041,[329440]|0.138,0.138,[329440]|0.138,0.138,[329440]|0.1566,0.1566,[329440]|0.1698,0.1698,[329440]|0.1698,0.1698,[329440]|0.1698,0.1698,[329440]|0.138,0.138,[329440]|0.1566,0.1566,[329440]|0.1456,0.1456,[329440]|0.1266,0.1266,[329440]|0.0744,0.0744,[329440]|0.0744,0.0744,[329440]|0.0621,0.0621,[329440]|0.0965,0.0965,[329440]|0.1416,0.1416,[329440]|0.138,0.138,[329440]|0.1349,0.1349,[329440]|0.2041,0.2041,[329440]|0.138,0.138,[329440]|0.1667,0.1667,[329440]|0.1635,0.1635,[329440]|0.138,0.138,[329440]|0.1117,0.1117,[329440]|0.1635,0.1635,[329440]|0.1088,0.1088,[329440]|0.1041,0.1041,[329440]|0.0884,0.0884,[329440]|0.1266,0.1266,[329440]|0.1416,0.1416,[329440]|0.1018,0.1018,[329440]|0.1495,0.1495,[329440]|0.1732,0.1732,[329440]|0.1805,0.1805,[329440]|0.1805,0.1805,[329440]|0.2041,0.2041,[329440]|0.1566,0.1566,[329440]|0.1732,0.1732,[329440]|0.1117,0.1117,[329440]|0.1766,0.1766,[329440]|0.0991,0.0991,[329440]|0.1805,0.1805,[329440]|0.2292,0.2292,[329440]|0.2865,0.2865,[329440]|0.2292,0.2292,[329440]|0.2432,0.2432,[329440]|0.2041,0.2041,[329440]|0.2122,0.2122,[329440]|0.2432,0.2432,[329440]|0.3184,0.3184,[329440]|0.3535,0.3535,[329440]|0.3762,0.3762,[329440]|0.363,0.363,[329440]|0.3762,0.3762,[329440]|0.3717,0.3717,[329440]|0.3225,0.3225,[329440]|0.4078,0.4078,[329440]|0.3359,0.3359,[329440]|0.4458,0.4458,[329440]|0.3668,0.3668,[329440]|0.4879,0.4879,[329440]|0.3096,0.3096,[329440]|0.2865,0.2865,[329440]|0.2385,0.2385,[329440]|0.2865,0.2865,[329440]|0.3578,0.3578,[329440]|0.2865,0.2865,[329440]|0.3491,0.3491,[329440]|0.3359,0.3359,[329440]|0.208,0.208,[329440]|0.2167,0.2167,[329440]|0.1958,0.1958,[329440]|0.1635,0.1635,[329440]|0.1117,0.1117,[329440]|0.1088,0.1088,[329440]|0.1041,0.1041,[329440]|0.0858,0.0858,[329440]|0.1117,0.1117,[329440]|0.0643,0.0643,[329440]|0.1041,0.1041,[329440]|0.1041,0.1041,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2333,0.2333,[329440]|0.1602,0.1602,[329440]|0.208,0.208,[329440]|0.2167,0.2167,[329440]|0.2209,0.2209,[329440]|0.3491,0.3491,[329440]|0.3717,0.3717,[329440]|0.3885,0.3885,[329440]|0.3806,0.3806,[329440]|0.3992,0.3992,[329440]|0.4116,0.4116,[329440]|0.3668,0.3668,[329440]|0.3263,0.3263,[329440]|0.2748,0.2748,[329440]|0.3225,0.3225,[329440]|0.2122,0.2122,[329440]|0.1635,0.1635,[329440]|0.1495,0.1495,[329440]|0.0991,0.0991,[329440]|0.1322,0.1322,[329440]|0.1292,0.1292,[329440]|0.1117,0.1117,[329440]|0.1667,0.1667,[329440]|0.1117,0.1117,[329440]|0.1018,0.1018,[329440]|0.0607,0.0607,[329440]|0.0723,0.0723,[329440]|0.0587,0.0587,[329440]|0.0643,0.0643,[329440]|0.0643,0.0643,[329440]|0.0771,0.0771,[329440]|0.1292,0.1292,[329440]|0.1766,0.1766,[329440]|0.1667,0.1667,[329440]|0.1667,0.1667,[329440]|0.2255,0.2255,[329440]|0.3225,0.3225,[329440]|0.3885,0.3885,[329440]|0.5008,0.5008,[329440]|0.5008,0.5008,[329440]|0.5667,0.5667,[329440]|0.7079,0.7079,[329440]|0.7342,0.7342,[329440]|0.835,0.835,[329440]|0.8746,0.8746,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+SEQUENCE_REF   FER1_SOLLC
+LINE_GRAPH     IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.3286,0.3286,[72144e]|0.2094,0.2094,[72144e]|0.1528,0.1528,[72144e]|0.2258,0.2258,[72144e]|0.2609,0.2609,[72144e]|0.2752,0.2752,[72144e]|0.3356,0.3356,[72144e]|0.3249,0.3249,[72144e]|0.2918,0.2918,[72144e]|0.3149,0.3149,[72144e]|0.3321,0.3321,[72144e]|0.2884,0.2884,[72144e]|0.3087,0.3087,[72144e]|0.2849,0.2849,[72144e]|0.2849,0.2849,[72144e]|0.2849,0.2849,[72144e]|0.2951,0.2951,[72144e]|0.2364,0.2364,[72144e]|0.2575,0.2575,[72144e]|0.3426,0.3426,[72144e]|0.3149,0.3149,[72144e]|0.247,0.247,[72144e]|0.1643,0.1643,[72144e]|0.2436,0.2436,[72144e]|0.2399,0.2399,[72144e]|0.2034,0.2034,[72144e]|0.2002,0.2002,[72144e]|0.2064,0.2064,[72144e]|0.1823,0.1823,[72144e]|0.2094,0.2094,[72144e]|0.2609,0.2609,[72144e]|0.2575,0.2575,[72144e]|0.1942,0.1942,[72144e]|0.2645,0.2645,[72144e]|0.1759,0.1759,[72144e]|0.1791,0.1791,[72144e]|0.2193,0.2193,[72144e]|0.2193,0.2193,[72144e]|0.1476,0.1476,[72144e]|0.1852,0.1852,[72144e]|0.1424,0.1424,[72144e]|0.1206,0.1206,[72144e]|0.0985,0.0985,[72144e]|0.0985,0.0985,[72144e]|0.1671,0.1671,[72144e]|0.1942,0.1942,[72144e]|0.2817,0.2817,[72144e]|0.2918,0.2918,[72144e]|0.3215,0.3215,[72144e]|0.2575,0.2575,[72144e]|0.2752,0.2752,[72144e]|0.1823,0.1823,[72144e]|0.2034,0.2034,[72144e]|0.1206,0.1206,[72144e]|0.1969,0.1969,[72144e]|0.2034,0.2034,[72144e]|0.3182,0.3182,[72144e]|0.2951,0.2951,[72144e]|0.2436,0.2436,[72144e]|0.1852,0.1852,[72144e]|0.1969,0.1969,[72144e]|0.2193,0.2193,[72144e]|0.2817,0.2817,[72144e]|0.2645,0.2645,[72144e]|0.3494,0.3494,[72144e]|0.4369,0.4369,[72144e]|0.4541,0.4541,[72144e]|0.422,0.422,[72144e]|0.4017,0.4017,[72144e]|0.4186,0.4186,[72144e]|0.3215,0.3215,[72144e]|0.422,0.422,[72144e]|0.3215,0.3215,[72144e]|0.4119,0.4119,[72144e]|0.2884,0.2884,[72144e]|0.391,0.391,[72144e]|0.3321,0.3321,[72144e]|0.3182,0.3182,[72144e]|0.3053,0.3053,[72144e]|0.2541,0.2541,[72144e]|0.3286,0.3286,[72144e]|0.391,0.391,[72144e]|0.3529,0.3529,[72144e]|0.3117,0.3117,[72144e]|0.3019,0.3019,[72144e]|0.3182,0.3182,[72144e]|0.247,0.247,[72144e]|0.2292,0.2292,[72144e]|0.1852,0.1852,[72144e]|0.1852,0.1852,[72144e]|0.1823,0.1823,[72144e]|0.1298,0.1298,[72144e]|0.1942,0.1942,[72144e]|0.1759,0.1759,[72144e]|0.2436,0.2436,[72144e]|0.2609,0.2609,[72144e]|0.3631,0.3631,[72144e]|0.3667,0.3667,[72144e]|0.3087,0.3087,[72144e]|0.247,0.247,[72144e]|0.2609,0.2609,[72144e]|0.384,0.384,[72144e]|0.3983,0.3983,[72144e]|0.4087,0.4087,[72144e]|0.5419,0.5419,[72144e]|0.5419,0.5419,[72144e]|0.5139,0.5139,[72144e]|0.5211,0.5211,[72144e]|0.4831,0.4831,[72144e]|0.4292,0.4292,[72144e]|0.3948,0.3948,[72144e]|0.3983,0.3983,[72144e]|0.2884,0.2884,[72144e]|0.2884,0.2884,[72144e]|0.2541,0.2541,[72144e]|0.1791,0.1791,[72144e]|0.2094,0.2094,[72144e]|0.1823,0.1823,[72144e]|0.1823,0.1823,[72144e]|0.1881,0.1881,[72144e]|0.2224,0.2224,[72144e]|0.2884,0.2884,[72144e]|0.2164,0.2164,[72144e]|0.2164,0.2164,[72144e]|0.2064,0.2064,[72144e]|0.1942,0.1942,[72144e]|0.1643,0.1643,[72144e]|0.2064,0.2064,[72144e]|0.2541,0.2541,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.3494,0.3494,[72144e]|0.391,0.391,[72144e]|0.3807,0.3807,[72144e]|0.4864,0.4864,[72144e]|0.5342,0.5342,[72144e]|0.5533,0.5533,[72144e]|0.6576,0.6576,[72144e]|0.5901,0.5901,[72144e]|0.6043,0.6043,[72144e]|0.5951,0.5951,[72144e]|0.5493,0.5493,[72144e]|0.6427,0.6427,[72144e]|0.6227,0.6227,[72144e]|
+GRAPHLINE      IUPredWS (Long) 0.5     Above 0.5 indicates disorder    ff0000
+LINE_GRAPH     IUPredWS (Short)        <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html>       0.8391,0.8391,[329440]|0.8001,0.8001,[329440]|0.7573,0.7573,[329440]|0.6334,0.6334,[329440]|0.5173,0.5173,[329440]|0.5008,0.5008,[329440]|0.4703,0.4703,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3263,0.3263,[329440]|0.2167,0.2167,[329440]|0.2385,0.2385,[329440]|0.2786,0.2786,[329440]|0.2041,0.2041,[329440]|0.2865,0.2865,[329440]|0.2531,0.2531,[329440]|0.1805,0.1805,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2122,0.2122,[329440]|0.208,0.208,[329440]|0.2122,0.2122,[329440]|0.1766,0.1766,[329440]|0.1921,0.1921,[329440]|0.1844,0.1844,[329440]|0.1602,0.1602,[329440]|0.0991,0.0991,[329440]|0.1018,0.1018,[329440]|0.0858,0.0858,[329440]|0.1041,0.1041,[329440]|0.1566,0.1566,[329440]|0.1495,0.1495,[329440]|0.1495,0.1495,[329440]|0.2167,0.2167,[329440]|0.1495,0.1495,[329440]|0.1766,0.1766,[329440]|0.1732,0.1732,[329440]|0.1456,0.1456,[329440]|0.1205,0.1205,[329440]|0.1732,0.1732,[329440]|0.115,0.115,[329440]|0.1088,0.1088,[329440]|0.0935,0.0935,[329440]|0.1292,0.1292,[329440]|0.1456,0.1456,[329440]|0.1018,0.1018,[329440]|0.1532,0.1532,[329440]|0.1732,0.1732,[329440]|0.1878,0.1878,[329440]|0.1878,0.1878,[329440]|0.2122,0.2122,[329440]|0.1602,0.1602,[329440]|0.1766,0.1766,[329440]|0.1178,0.1178,[329440]|0.1844,0.1844,[329440]|0.1018,0.1018,[329440]|0.1844,0.1844,[329440]|0.2333,0.2333,[329440]|0.2913,0.2913,[329440]|0.2333,0.2333,[329440]|0.2483,0.2483,[329440]|0.208,0.208,[329440]|0.2167,0.2167,[329440]|0.2531,0.2531,[329440]|0.3263,0.3263,[329440]|0.3578,0.3578,[329440]|0.3806,0.3806,[329440]|0.3668,0.3668,[329440]|0.3762,0.3762,[329440]|0.3717,0.3717,[329440]|0.3225,0.3225,[329440]|0.4116,0.4116,[329440]|0.3399,0.3399,[329440]|0.4513,0.4513,[329440]|0.3717,0.3717,[329440]|0.4879,0.4879,[329440]|0.3146,0.3146,[329440]|0.2865,0.2865,[329440]|0.2385,0.2385,[329440]|0.2865,0.2865,[329440]|0.363,0.363,[329440]|0.2913,0.2913,[329440]|0.3535,0.3535,[329440]|0.3359,0.3359,[329440]|0.2122,0.2122,[329440]|0.2209,0.2209,[329440]|0.1998,0.1998,[329440]|0.1667,0.1667,[329440]|0.115,0.115,[329440]|0.115,0.115,[329440]|0.106,0.106,[329440]|0.0884,0.0884,[329440]|0.1205,0.1205,[329440]|0.0723,0.0723,[329440]|0.115,0.115,[329440]|0.115,0.115,[329440]|0.2292,0.2292,[329440]|0.2558,0.2558,[329440]|0.2786,0.2786,[329440]|0.2786,0.2786,[329440]|0.1958,0.1958,[329440]|0.2558,0.2558,[329440]|0.27,0.27,[329440]|0.2865,0.2865,[329440]|0.4149,0.4149,[329440]|0.442,0.442,[329440]|0.4651,0.4651,[329440]|0.46,0.46,[329440]|0.4781,0.4781,[329440]|0.4879,0.4879,[329440]|0.4513,0.4513,[329440]|0.4078,0.4078,[329440]|0.3491,0.3491,[329440]|0.3992,0.3992,[329440]|0.3146,0.3146,[329440]|0.2602,0.2602,[329440]|0.2385,0.2385,[329440]|0.1698,0.1698,[329440]|0.2167,0.2167,[329440]|0.1921,0.1921,[329440]|0.2748,0.2748,[329440]|0.3456,0.3456,[329440]|0.27,0.27,[329440]|0.2432,0.2432,[329440]|0.1667,0.1667,[329440]|0.1844,0.1844,[329440]|0.1635,0.1635,[329440]|0.1805,0.1805,[329440]|0.1844,0.1844,[329440]|0.2041,0.2041,[329440]|0.2913,0.2913,[329440]|0.3535,0.3535,[329440]|0.3399,0.3399,[329440]|0.3399,0.3399,[329440]|0.3806,0.3806,[329440]|0.4781,0.4781,[329440]|0.5374,0.5374,[329440]|0.6442,0.6442,[329440]|0.6442,0.6442,[329440]|0.7111,0.7111,[329440]|0.7458,0.7458,[329440]|0.7724,0.7724,[329440]|0.865,0.865,[329440]|0.9009,0.9009,[329440]|
+GRAPHLINE      IUPredWS (Short)        0.5     Above 0.5 indicates disorder    ff0000
+
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short)        329440
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   Q93XJ9_SOLTU
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER_CAPAA
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER_CAPAN
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER1_MESCR
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER1_SPIOL
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER1_PEA
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   Q7XA98_TRIPR
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   O80429_MAIZE
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER1_MAIZE
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER3_RAPSA
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER_BRANA
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER1_ARATH
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   Q93Z60_ARATH
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER2_ARATH
+COMBINE        IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF   FER1_SOLLC
+# takes the current reference sequence and makes it the reference for the view
+VIEW_SETREF
+# nominal name for new hide columns command
+HIDE_INSERTIONS
index 141379f..72691ce 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,142 @@ 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_SETREF, VIEW_HIDECOLS and HIDE_INSERTIONS</a>
+                       for defining a reference sequence on the alignment 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 +205,42 @@ 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_SETREF, VIEW_HIDECOL 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>
+<!--   <p>
+               <em>VIEW_DEF</em> allows the current view to be named according to the
+               first argument after the tab character. If a second argument is
+               provided, then a new view is created with the given name, and
+               properties.
+       </p> -->
+       <p>
+               <em>VIEW_SETREF</em> takes either a single sequence ID string, or a
+               numeric index (second argument), and attempts to assign a
+               corresponding sequence as the <a href="../features/refsequence.html">reference
+                       sequence</a> for the alignment.
+       </p>
+       <em>VIEW_HIDECOLS</em> takes either a single argument consisting of a
+       comma separated series of integer pairs like
+       <em>3-4</em>. These integer pairs define columns (starting from the
+       left-hand column 0) that should be marked as hidden in the alignment
+       view.
+       </p>
+       <p>
+               <em>HIDE_INSERTIONS</em> takes a either a single sequence ID or a
+               numeric index, or no arguments. This command marks all gapped
+               positions in a specified sequence (either the one located by the
+               arguments, the current SEQUENCE_REF, or the reference sequence for the
+               view).
+       <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 +265,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>
index 5c1de0b..d944b5b 100644 (file)
@@ -57,8 +57,10 @@ action.by_pairwise_id = by Pairwise Identity
 action.by_id = by Id
 action.by_length = by Length
 action.by_group = by Group
+action.unmark_as_reference = Unmark as Reference 
+action.set_as_reference = Set as Reference 
 action.remove = Remove
-action.remove_redundancy = Remove Redundancy
+action.remove_redundancy = Remove Redundancy...
 action.pairwise_alignment = Pairwise Alignments...
 action.by_rna_helixes = by RNA Helices
 action.user_defined = User Defined...
@@ -476,8 +478,8 @@ label.settings_for_type = Settings for {0}
 label.view_full_application = View in Full Application
 label.load_associated_tree = Load Associated Tree ...
 label.load_features_annotations = Load Features/Annotations ...
-label.export_features = Export Features
-label.export_annotations = Export Annotations
+label.export_features = Export Features ...
+label.export_annotations = Export Annotations ...
 label.jalview_copy = Copy (Jalview Only)
 label.jalview_cut = Cut (Jalview Only)
 label.to_upper_case = To Upper Case
@@ -595,7 +597,7 @@ label.figure_id_column_width = Figure ID column width
 label.use_modeller_output = Use Modeller Output
 label.wrap_alignment = Wrap Alignment
 label.right_align_ids = Right Align Ids
-label.sequence_name_italics = Seq Name Italics
+label.sequence_name_italics = Sequence Name Italics
 label.open_overview = Open Overview
 label.default_colour_scheme_for_alignment = Default Colour Scheme for alignment
 label.annotation_shading_default = Annotation Shading Default
index 24ff7a6..60ee8d5 100644 (file)
  */
 package jalview.api;
 
-import java.awt.Color;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-
 import jalview.analysis.Conservation;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
@@ -36,6 +31,11 @@ import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.schemes.ColourSchemeI;
 
+import java.awt.Color;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author jimp
  * 
@@ -163,6 +163,29 @@ public interface AlignViewportI
    */
   void updateGroupAnnotationSettings(boolean applyGlobalSettings,
           boolean preserveNewGroupSettings);
+  
+  /**
+   * @return true if a reference sequence is set and should be displayed
+   */
+  public boolean isDisplayReferenceSeq();
+
+  /**
+   * @return set the flag for displaying reference sequences when they are
+   *         available
+   */
+  public void setDisplayReferenceSeq(boolean displayReferenceSeq);
+
+  /**
+   * @return true if colourschemes should render according to reference sequence
+   *         rather than consensus if available
+   */
+  public boolean isColourByReferenceSeq();
+
+  /**
+   * @return true set flag for deciding if colourschemes should render according
+   *         to reference sequence rather than consensus if available
+   */
+  public void setColourByReferenceSeq(boolean colourByReferenceSeq);
 
   void setSequenceColour(SequenceI seq, Color col);
 
@@ -172,16 +195,58 @@ public interface AlignViewportI
 
   SequenceGroup getSelectionGroup();
 
+  /**
+   * get the currently selected sequence objects or all the sequences in the
+   * alignment. TODO: change to List<>
+   * 
+   * @return array of references to sequence objects
+   */
   SequenceI[] getSequenceSelection();
 
   void clearSequenceColours();
 
+  /**
+   * This method returns the visible alignment as text, as seen on the GUI, ie
+   * if columns are hidden they will not be returned in the result. Use this for
+   * calculating trees, PCA, redundancy etc on views which contain hidden
+   * columns.
+   * 
+   * @return String[]
+   */
   CigarArray getViewAsCigars(boolean selectedRegionOnly);
 
+  /**
+   * return a compact representation of the current alignment selection to pass
+   * to an analysis function
+   * 
+   * @param selectedOnly
+   *          boolean true to just return the selected view
+   * @return AlignmentView
+   */
   AlignmentView getAlignmentView(boolean selectedOnly);
 
+  /**
+   * return a compact representation of the current alignment selection to pass
+   * to an analysis function
+   * 
+   * @param selectedOnly
+   *          boolean true to just return the selected view
+   * @param markGroups
+   *          boolean true to annotate the alignment view with groups on the
+   *          alignment (and intersecting with selected region if selectedOnly
+   *          is true)
+   * @return AlignmentView
+   */
   AlignmentView getAlignmentView(boolean selectedOnly, boolean markGroups);
 
+  /**
+   * This method returns the visible alignment as text, as seen on the GUI, ie
+   * if columns are hidden they will not be returned in the result. Use this for
+   * calculating trees, PCA, redundancy etc on views which contain hidden
+   * columns.
+   * 
+   * @return String[]
+   */
   String[] getViewAsString(boolean selectedRegionOnly);
 
   void setSelectionGroup(SequenceGroup sg);
@@ -208,4 +273,83 @@ public interface AlignViewportI
 
   void setShowSequenceFeatures(boolean b);
 
+  /**
+   * 
+   * @param flag
+   *          indicating if annotation panel shown below alignment
+   * 
+   */
+  void setShowAnnotation(boolean b);
+
+  /**
+   * flag indicating if annotation panel shown below alignment
+   * 
+   * @return
+   */
+  boolean isShowAnnotation();
+
+  boolean isRightAlignIds();
+
+  void setRightAlignIds(boolean rightAlignIds);
+
+  boolean areFeaturesDisplayed();
+
+  void setShowSequenceFeaturesHeight(boolean selected);
+
+  boolean isShowSequenceFeaturesHeight();
+
+  void setFeaturesDisplayed(FeaturesDisplayedI featuresDisplayedI);
+
+  void alignmentChanged(AlignmentViewPanel ap);
+
+  /**
+   * @return the padGaps
+   */
+  boolean isPadGaps();
+
+  /**
+   * @param padGaps
+   *          the padGaps to set
+   */
+  void setPadGaps(boolean padGaps);
+
+  /**
+   * return visible region boundaries within given column range
+   * 
+   * @param min
+   *          first column (inclusive, from 0)
+   * @param max
+   *          last column (exclusive)
+   * @return int[][] range of {start,end} visible positions TODO: change to list
+   *         of int ranges
+   */
+  int[][] getVisibleRegionBoundaries(int min, int max);
+
+  /**
+   * This method returns an array of new SequenceI objects derived from the
+   * whole alignment or just the current selection with start and end points
+   * adjusted
+   * 
+   * @note if you need references to the actual SequenceI objects in the
+   *       alignment or currently selected then use getSequenceSelection()
+   * @return selection as new sequenceI objects
+   */
+  SequenceI[] getSelectionAsNewSequence();
+
+  void invertColumnSelection();
+
+  /**
+   * broadcast selection to any interested parties
+   */
+  void sendSelection();
+
+  /**
+   * calculate the row position for alignmentIndex if all hidden sequences were
+   * shown
+   * 
+   * @param alignmentIndex
+   * @return adjusted row position
+   */
+  int adjustForHiddenSeqs(int alignmentIndex);
+
 }
index aa1ab21..c58fc5b 100644 (file)
@@ -152,6 +152,8 @@ public class APopupMenu extends java.awt.PopupMenu implements
   MenuItem selSeqDetails = new MenuItem(
           MessageManager.getString("label.sequence_details") + "...");
 
+  MenuItem makeReferenceSeq = new MenuItem();
+  
   Sequence seq;
 
   MenuItem revealAll = new MenuItem();
@@ -347,6 +349,17 @@ public class APopupMenu extends java.awt.PopupMenu implements
     if (seq != null)
     {
       seqMenu.setLabel(seq.getName());
+      if (seq == ap.av.getAlignment().getSeqrep())
+      {
+        makeReferenceSeq.setLabel(MessageManager
+                .getString("action.unmark_as_reference"));// Unmark
+                                                          // representative");
+      }
+      else
+      {
+        makeReferenceSeq.setLabel(MessageManager
+                .getString("action.set_as_reference")); // );
+      }
       repGroup.setLabel(MessageManager.formatMessage(
               "label.represent_group_with", new String[]
               { seq.getName() }));
@@ -515,6 +528,10 @@ public class APopupMenu extends java.awt.PopupMenu implements
     {
       editName();
     }
+    else if (source == makeReferenceSeq)
+    {
+      makeReferenceSeq_actionPerformed();
+    }
     else if (source == sequenceDetails)
     {
       showSequenceDetails();
@@ -909,6 +926,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     toLower.addActionListener(this);
     editMenu.add(toggleCase);
     seqMenu.add(sequenceName);
+    seqMenu.add(makeReferenceSeq);
     // seqMenu.add(sequenceDetails);
 
     if (!ap.av.applet.useXtrnalSviewer)
@@ -928,6 +946,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     repGroup.addActionListener(this);
     revealAll.addActionListener(this);
     revealSeq.addActionListener(this);
+    makeReferenceSeq.addActionListener(this);
   }
 
   void refresh()
@@ -1117,6 +1136,28 @@ public class APopupMenu extends java.awt.PopupMenu implements
     getGroup().setDisplayText(showText.getState());
     refresh();
   }
+  public void makeReferenceSeq_actionPerformed()
+  {
+    if (!ap.av.getAlignment().hasSeqrep())
+    {
+      // initialise the display flags so the user sees something happen
+      ap.av.setDisplayReferenceSeq(true);
+      ap.av.setColourByReferenceSeq(true);
+      ap.av.getAlignment().setSeqrep(seq);
+    }
+    else
+    {
+      if (ap.av.getAlignment().getSeqrep() == seq)
+      {
+        ap.av.getAlignment().setSeqrep(null);
+      }
+      else
+      {
+        ap.av.getAlignment().setSeqrep(seq);
+      }
+    }
+    refresh();
+  }
 
   public void showNonconserved_itemStateChanged()
   {
index dbdc23f..5421050 100644 (file)
@@ -1202,11 +1202,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 
   public String outputAnnotations(boolean displayTextbox)
   {
-    String annotation = new AnnotationFile().printAnnotations(
-            viewport.showAnnotation ? viewport.getAlignment()
-                    .getAlignmentAnnotation() : null, viewport
-                    .getAlignment().getGroups(), ((Alignment) viewport
-                    .getAlignment()).alignmentProperties);
+    String annotation = new AnnotationFile()
+            .printAnnotationsForView(viewport);
 
     if (displayTextbox)
     {
@@ -1692,11 +1689,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     {
       copiedHiddenColumns = new Vector();
       int hiddenOffset = viewport.getSelectionGroup().getStartRes();
-      for (int i = 0; i < viewport.getColumnSelection().getHiddenColumns()
-              .size(); i++)
+      for (int[] region : viewport.getColumnSelection().getHiddenColumns())
       {
-        int[] region = (int[]) viewport.getColumnSelection()
-                .getHiddenColumns().elementAt(i);
 
         copiedHiddenColumns.addElement(new int[]
         { region[0] - hiddenOffset, region[1] - hiddenOffset });
index 3e81664..6aaa033 100755 (executable)
  */
 package jalview.appletgui;
 
-import java.util.*;
-import java.awt.*;
-import java.awt.event.*;
-
-import jalview.datamodel.*;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
 import jalview.util.MessageManager;
 import jalview.util.ParseHtmlBodyAndLinks;
 
+import java.awt.Checkbox;
+import java.awt.CheckboxMenuItem;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.FontMetrics;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.MenuItem;
+import java.awt.Panel;
+import java.awt.PopupMenu;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.util.Arrays;
+import java.util.Vector;
+
 public class AnnotationLabels extends Panel implements ActionListener,
         MouseListener, MouseMotionListener
 {
@@ -221,7 +243,9 @@ public class AnnotationLabels extends Panel implements ActionListener,
       return true;
     }
     else
+    {
       return false;
+    }
 
   }
 
@@ -713,11 +737,8 @@ public class AnnotationLabels extends Panel implements ActionListener,
     if (av.hasHiddenColumns())
     {
       jalview.appletgui.AlignFrame.copiedHiddenColumns = new Vector();
-      for (int i = 0; i < av.getColumnSelection().getHiddenColumns().size(); i++)
+      for (int[] region : av.getColumnSelection().getHiddenColumns())
       {
-        int[] region = (int[]) av.getColumnSelection().getHiddenColumns()
-                .elementAt(i);
-
         jalview.appletgui.AlignFrame.copiedHiddenColumns
                 .addElement(new int[]
                 { region[0], region[1] });
index 636dd7f..0a9ca56 100644 (file)
  */
 package jalview.appletgui;
 
-import java.awt.*;
-import java.awt.event.*;
-
-import jalview.datamodel.*;
-import jalview.io.*;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.Sequence;
+import jalview.io.AnnotationFile;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.IdentifyFile;
+import jalview.io.TCoffeeScoreFile;
 import jalview.schemes.TCoffeeColourScheme;
 import jalview.util.MessageManager;
 
+import java.awt.BorderLayout;
+import java.awt.Button;
+import java.awt.Dialog;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Panel;
+import java.awt.TextArea;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
 public class CutAndPasteTransfer extends Panel implements ActionListener,
         MouseListener
 {
@@ -132,12 +146,15 @@ public class CutAndPasteTransfer extends Panel implements ActionListener,
       pdb.setFile(text);
 
       if (alignFrame.alignPanel.av.applet.jmolAvailable)
+      {
         new jalview.appletgui.AppletJmol(pdb, new Sequence[]
         { seq }, null, alignFrame.alignPanel, AppletFormatAdapter.PASTE);
+      }
       else
-
+      {
         new MCview.AppletPDBViewer(pdb, new Sequence[]
         { seq }, null, alignFrame.alignPanel, AppletFormatAdapter.PASTE);
+      }
 
     }
     else if (treeImport)
@@ -203,8 +220,8 @@ public class CutAndPasteTransfer extends Panel implements ActionListener,
       }
       if (tcf == null)
       {
-        if (new AnnotationFile().readAnnotationFile(
-                alignFrame.viewport.getAlignment(), textarea.getText(),
+        if (new AnnotationFile().annotateAlignmentView(alignFrame.viewport,
+                textarea.getText(),
                 jalview.io.AppletFormatAdapter.PASTE))
         {
           alignFrame.alignPanel.fontChanged();
index 25aa315..0ac4e55 100755 (executable)
@@ -227,7 +227,7 @@ public class IdCanvas extends Panel
 
           SequenceI s = av.getAlignment().getSequenceAt(i);
           gg.setFont(italic);
-          if (av.hasHiddenRows())
+          if (av.isDisplayReferenceSeq() || av.hasHiddenRows())
           {
             setHiddenFont(s);
           }
@@ -257,7 +257,7 @@ public class IdCanvas extends Panel
         }
         gg.setFont(italic);
         // boolean isrep=false;
-        if (av.hasHiddenRows())
+        if (av.isDisplayReferenceSeq() || av.hasHiddenRows())
         {
           // isrep =
           setHiddenFont(seq);
@@ -366,8 +366,7 @@ public class IdCanvas extends Panel
     Font bold = new Font(av.getFont().getName(), Font.BOLD, av.getFont()
             .getSize());
 
-    if (av.getHiddenRepSequences() != null
-            && av.getHiddenRepSequences().containsKey(seq))
+    if (av.isHiddenRepSequence(seq))
     {
       gg.setFont(bold);
       return true;
index bc5b3e7..2b6f37a 100755 (executable)
@@ -108,7 +108,7 @@ public class ScalePanel extends Panel implements MouseMotionListener,
         });
         pop.add(item);
 
-        if (av.getColumnSelection().getHiddenColumns().size() > 1)
+        if (av.getColumnSelection().hasManyHiddenColumns())
         {
           item = new MenuItem(MessageManager.getString("action.reveal_all"));
           item.addActionListener(new ActionListener()
@@ -334,19 +334,14 @@ public class ScalePanel extends Panel implements MouseMotionListener,
     res = av.getColumnSelection().adjustForHiddenColumns(res);
 
     reveal = null;
-    if (av.getColumnSelection().getHiddenColumns() != null)
+    for (int[] region : av.getColumnSelection().getHiddenColumns())
     {
-    for (int i = 0; i < av.getColumnSelection().getHiddenColumns().size(); i++)
-    {
-      int[] region = (int[]) av.getColumnSelection().getHiddenColumns()
-              .elementAt(i);
       if (res + 1 == region[0] || res - 1 == region[1])
       {
         reveal = region;
         break;
       }
     }
-    }
 
     repaint();
   }
@@ -441,8 +436,7 @@ public class ScalePanel extends Panel implements MouseMotionListener,
     {
       gg.setColor(Color.blue);
       int res;
-      if (av.getColumnSelection().getHiddenColumns() != null
-              && av.getShowHiddenMarkers())
+      if (av.getShowHiddenMarkers())
       {
         for (int i = 0; i < av.getColumnSelection().getHiddenColumns()
                 .size(); i++)
index 4b3cd1c..8dd6290 100755 (executable)
-/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 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.
- */
-package jalview.appletgui;
-
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-
-import java.awt.Color;
-import java.awt.FontMetrics;
-import java.awt.Graphics;
-import java.awt.Image;
-import java.awt.Panel;
-
-public class SeqCanvas extends Panel
-{
-  FeatureRenderer fr;
-
-  SequenceRenderer sr;
-
-  Image img;
-
-  Graphics gg;
-
-  int imgWidth;
-
-  int imgHeight;
-
-  AlignViewport av;
-
-  SearchResults searchResults = null;
-
-  boolean fastPaint = false;
-
-  int cursorX = 0;
-
-  int cursorY = 0;
-
-  public SeqCanvas(AlignViewport av)
-  {
-    this.av = av;
-    fr = new FeatureRenderer(av);
-    sr = new SequenceRenderer(av);
-    PaintRefresher.Register(this, av.getSequenceSetId());
-  }
-
-  public AlignViewport getViewport()
-  {
-    return av;
-  }
-
-  public FeatureRenderer getFeatureRenderer()
-  {
-    return fr;
-  }
-
-  public SequenceRenderer getSequenceRenderer()
-  {
-    return sr;
-  }
-
-  void drawNorthScale(Graphics g, int startx, int endx, int ypos)
-  {
-    int scalestartx = startx - startx % 10 + 10;
-
-    g.setColor(Color.black);
-
-    // NORTH SCALE
-    for (int i = scalestartx; i < endx; i += 10)
-    {
-      int value = i;
-      if (av.hasHiddenColumns())
-      {
-        value = av.getColumnSelection().adjustForHiddenColumns(value);
-      }
-
-      g.drawString(String.valueOf(value), (i - startx - 1) * av.charWidth,
-              ypos - (av.charHeight / 2));
-
-      g.drawLine(((i - startx - 1) * av.charWidth) + (av.charWidth / 2),
-              (ypos + 2) - (av.charHeight / 2),
-              ((i - startx - 1) * av.charWidth) + (av.charWidth / 2),
-              ypos - 2);
-    }
-  }
-
-  void drawWestScale(Graphics g, int startx, int endx, int ypos)
-  {
-    FontMetrics fm = getFontMetrics(av.getFont());
-    ypos += av.charHeight;
-    if (av.hasHiddenColumns())
-    {
-      startx = av.getColumnSelection().adjustForHiddenColumns(startx);
-      endx = av.getColumnSelection().adjustForHiddenColumns(endx);
-    }
-
-    int maxwidth = av.getAlignment().getWidth();
-    if (av.hasHiddenColumns())
-    {
-      maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;
-    }
-
-    // WEST SCALE
-    for (int i = 0; i < av.getAlignment().getHeight(); i++)
-    {
-      SequenceI seq = av.getAlignment().getSequenceAt(i);
-      int index = startx;
-      int value = -1;
-
-      while (index < endx)
-      {
-        if (jalview.util.Comparison.isGap(seq.getCharAt(index)))
-        {
-          index++;
-
-          continue;
-        }
-
-        value = av.getAlignment().getSequenceAt(i).findPosition(index);
-
-        break;
-      }
-
-      if (value != -1)
-      {
-        int x = LABEL_WEST - fm.stringWidth(String.valueOf(value))
-                - av.charWidth / 2;
-        g.drawString(value + "", x, (ypos + (i * av.charHeight))
-                - (av.charHeight / 5));
-      }
-    }
-  }
-
-  void drawEastScale(Graphics g, int startx, int endx, int ypos)
-  {
-    ypos += av.charHeight;
-
-    if (av.hasHiddenColumns())
-    {
-      endx = av.getColumnSelection().adjustForHiddenColumns(endx);
-    }
-
-    SequenceI seq;
-    // EAST SCALE
-    for (int i = 0; i < av.getAlignment().getHeight(); i++)
-    {
-      seq = av.getAlignment().getSequenceAt(i);
-      int index = endx;
-      int value = -1;
-
-      while (index > startx)
-      {
-        if (jalview.util.Comparison.isGap(seq.getCharAt(index)))
-        {
-          index--;
-
-          continue;
-        }
-
-        value = seq.findPosition(index);
-
-        break;
-      }
-
-      if (value != -1)
-      {
-        g.drawString(String.valueOf(value), 0, (ypos + (i * av.charHeight))
-                - (av.charHeight / 5));
-      }
-    }
-  }
-
-  int lastsr = 0;
-
-  void fastPaint(int horizontal, int vertical)
-  {
-    if (fastPaint || gg == null)
-    {
-      return;
-    }
-
-    // Its possible on certain browsers that the call to fastpaint
-    // is faster than it can paint, so this check here catches
-    // this possibility
-    if (lastsr + horizontal != av.startRes)
-    {
-      horizontal = av.startRes - lastsr;
-    }
-
-    lastsr = av.startRes;
-
-    fastPaint = true;
-    gg.copyArea(horizontal * av.charWidth, vertical * av.charHeight,
-            imgWidth - horizontal * av.charWidth, imgHeight - vertical
-                    * av.charHeight, -horizontal * av.charWidth, -vertical
-                    * av.charHeight);
-
-    int sr = av.startRes, er = av.endRes, ss = av.startSeq, es = av.endSeq, transX = 0, transY = 0;
-
-    if (horizontal > 0) // scrollbar pulled right, image to the left
-    {
-      transX = (er - sr - horizontal) * av.charWidth;
-      sr = er - horizontal;
-    }
-    else if (horizontal < 0)
-    {
-      er = sr - horizontal;
-    }
-
-    else if (vertical > 0) // scroll down
-    {
-      ss = es - vertical;
-      if (ss < av.startSeq) // ie scrolling too fast, more than a page at a time
-      {
-        ss = av.startSeq;
-      }
-      else
-      {
-        transY = imgHeight - vertical * av.charHeight;
-      }
-    }
-    else if (vertical < 0)
-    {
-      es = ss - vertical;
-      if (es > av.endSeq)
-      {
-        es = av.endSeq;
-      }
-    }
-
-    gg.translate(transX, transY);
-
-    drawPanel(gg, sr, er, ss, es, 0);
-    gg.translate(-transX, -transY);
-
-    repaint();
-
-  }
-
-  /**
-   * Definitions of startx and endx (hopefully): SMJS This is what I'm working
-   * towards! startx is the first residue (starting at 0) to display. endx is
-   * the last residue to display (starting at 0). starty is the first sequence
-   * to display (starting at 0). endy is the last sequence to display (starting
-   * at 0). NOTE 1: The av limits are set in setFont in this class and in the
-   * adjustment listener in SeqPanel when the scrollbars move.
-   */
-  public void update(Graphics g)
-  {
-    paint(g);
-  }
-
-  public void paint(Graphics g)
-  {
-
-    if (img != null
-            && (fastPaint || (getSize().width != g.getClipBounds().width) || (getSize().height != g
-                    .getClipBounds().height)))
-    {
-      g.drawImage(img, 0, 0, this);
-      fastPaint = false;
-      return;
-    }
-
-    if (fastPaint)
-    {
-      g.drawImage(img, 0, 0, this);
-      fastPaint = false;
-      return;
-    }
-
-    // this draws the whole of the alignment
-    imgWidth = this.getSize().width;
-    imgHeight = this.getSize().height;
-
-    imgWidth -= imgWidth % av.charWidth;
-    imgHeight -= imgHeight % av.charHeight;
-
-    if (imgWidth < 1 || imgHeight < 1)
-    {
-      return;
-    }
-
-    if (img == null || imgWidth != img.getWidth(this)
-            || imgHeight != img.getHeight(this))
-    {
-      img = createImage(imgWidth, imgHeight);
-      gg = img.getGraphics();
-      gg.setFont(av.getFont());
-    }
-
-    gg.setColor(Color.white);
-    gg.fillRect(0, 0, imgWidth, imgHeight);
-
-    if (av.getWrapAlignment())
-    {
-      drawWrappedPanel(gg, imgWidth, imgHeight, av.startRes);
-    }
-    else
-    {
-      drawPanel(gg, av.startRes, av.endRes, av.startSeq, av.endSeq, 0);
-    }
-
-    g.drawImage(img, 0, 0, this);
-
-  }
-
-  int LABEL_WEST, LABEL_EAST;
-
-  public int getWrappedCanvasWidth(int cwidth)
-  {
-    cwidth -= cwidth % av.charWidth;
-
-    FontMetrics fm = getFontMetrics(av.getFont());
-
-    LABEL_EAST = 0;
-    LABEL_WEST = 0;
-
-    if (av.scaleRightWrapped)
-    {
-      LABEL_EAST = fm.stringWidth(getMask());
-    }
-
-    if (av.scaleLeftWrapped)
-    {
-      LABEL_WEST = fm.stringWidth(getMask());
-    }
-
-    return (cwidth - LABEL_EAST - LABEL_WEST) / av.charWidth;
-  }
-
-  /**
-   * Generates a string of zeroes.
-   * 
-   * @return String
-   */
-  String getMask()
-  {
-    String mask = "0";
-    int maxWidth = 0;
-    int tmp;
-    AlignmentI alignment = av.getAlignment();
-    for (int i = 0; i < alignment.getHeight(); i++)
-    {
-      tmp = alignment.getSequenceAt(i).getEnd();
-      if (tmp > maxWidth)
-      {
-        maxWidth = tmp;
-      }
-    }
-
-    for (int i = maxWidth; i > 0; i /= 10)
-    {
-      mask += "0";
-    }
-    return mask;
-  }
-
-  public void drawWrappedPanel(Graphics g, int canvasWidth,
-          int canvasHeight, int startRes)
-  {
-    AlignmentI al = av.getAlignment();
-
-    FontMetrics fm = getFontMetrics(av.getFont());
-
-    if (av.scaleRightWrapped)
-    {
-      LABEL_EAST = fm.stringWidth(getMask());
-    }
-
-    if (av.scaleLeftWrapped)
-    {
-      LABEL_WEST = fm.stringWidth(getMask());
-    }
-
-    int hgap = av.charHeight;
-    if (av.scaleAboveWrapped)
-    {
-      hgap += av.charHeight;
-    }
-
-    int cWidth = (canvasWidth - LABEL_EAST - LABEL_WEST) / av.charWidth;
-    int cHeight = av.getAlignment().getHeight() * av.charHeight;
-
-    av.setWrappedWidth(cWidth);
-
-    av.endRes = av.startRes + cWidth;
-
-    int endx;
-    int ypos = hgap;
-
-    int maxwidth = av.getAlignment().getWidth() - 1;
-
-    if (av.hasHiddenColumns())
-    {
-      maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;
-    }
-
-    while ((ypos <= canvasHeight) && (startRes < maxwidth))
-    {
-      endx = startRes + cWidth - 1;
-
-      if (endx > maxwidth)
-      {
-        endx = maxwidth;
-      }
-
-      g.setColor(Color.black);
-
-      if (av.scaleLeftWrapped)
-      {
-        drawWestScale(g, startRes, endx, ypos);
-      }
-
-      if (av.scaleRightWrapped)
-      {
-        g.translate(canvasWidth - LABEL_EAST, 0);
-        drawEastScale(g, startRes, endx, ypos);
-        g.translate(-(canvasWidth - LABEL_EAST), 0);
-      }
-
-      g.translate(LABEL_WEST, 0);
-
-      if (av.scaleAboveWrapped)
-      {
-        drawNorthScale(g, startRes, endx, ypos);
-      }
-      if (av.hasHiddenColumns() && av.showHiddenMarkers)
-      {
-        g.setColor(Color.blue);
-        int res;
-        for (int i = 0; i < av.getColumnSelection().getHiddenColumns()
-                .size(); i++)
-        {
-          res = av.getColumnSelection().findHiddenRegionPosition(i)
-                  - startRes;
-
-          if (res < 0 || res > endx - startRes)
-          {
-            continue;
-          }
-
-          gg.fillPolygon(new int[]
-          { res * av.charWidth - av.charHeight / 4,
-              res * av.charWidth + av.charHeight / 4, res * av.charWidth },
-                  new int[]
-                  { ypos - (av.charHeight / 2), ypos - (av.charHeight / 2),
-                      ypos - (av.charHeight / 2) + 8 }, 3);
-
-        }
-      }
-
-      if (g.getClip() == null)
-      {
-        g.setClip(0, 0, cWidth * av.charWidth, canvasHeight);
-      }
-
-      drawPanel(g, startRes, endx, 0, al.getHeight(), ypos);
-      g.setClip(null);
-
-      if (av.showAnnotation)
-      {
-        g.translate(0, cHeight + ypos + 4);
-        if (annotations == null)
-        {
-          annotations = new AnnotationPanel(av);
-        }
-
-        annotations.drawComponent(g, startRes, endx + 1);
-        g.translate(0, -cHeight - ypos - 4);
-      }
-      g.translate(-LABEL_WEST, 0);
-
-      ypos += cHeight + getAnnotationHeight() + hgap;
-
-      startRes += cWidth;
-    }
-
-  }
-
-  AnnotationPanel annotations;
-
-  int getAnnotationHeight()
-  {
-    if (!av.showAnnotation)
-    {
-      return 0;
-    }
-
-    if (annotations == null)
-    {
-      annotations = new AnnotationPanel(av);
-    }
-
-    return annotations.adjustPanelHeight();
-  }
-
-  void drawPanel(Graphics g1, int startRes, int endRes, int startSeq,
-          int endSeq, int offset)
-  {
-
-
-    if (!av.hasHiddenColumns())
-    {
-      draw(g1, startRes, endRes, startSeq, endSeq, offset);
-    }
-    else
-    {
-
-
-
-      int screenY = 0;
-      int blockStart = startRes;
-      int blockEnd = endRes;
-
-      if (av.getColumnSelection() != null
-              && av.getColumnSelection().getHiddenColumns() != null)
-      {
-        java.util.Vector regions = av.getColumnSelection()
-                .getHiddenColumns();
-
-      for (int i = 0; i < regions.size(); i++)
-      {
-        int[] region = (int[]) regions.elementAt(i);
-        int hideStart = region[0];
-        int hideEnd = region[1];
-
-        if (hideStart <= blockStart)
-        {
-          blockStart += (hideEnd - hideStart) + 1;
-          continue;
-        }
-
-        blockEnd = hideStart - 1;
-
-        g1.translate(screenY * av.charWidth, 0);
-
-        draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);
-
-        if (av.getShowHiddenMarkers())
-        {
-          g1.setColor(Color.blue);
-          g1.drawLine((blockEnd - blockStart + 1) * av.charWidth - 1,
-                  0 + offset, (blockEnd - blockStart + 1) * av.charWidth
-                          - 1, (endSeq - startSeq) * av.charHeight + offset);
-        }
-
-        g1.translate(-screenY * av.charWidth, 0);
-        screenY += blockEnd - blockStart + 1;
-        blockStart = hideEnd + 1;
-      }
-      }
-      if (screenY <= (endRes - startRes))
-      {
-        blockEnd = blockStart + (endRes - startRes) - screenY;
-        g1.translate(screenY * av.charWidth, 0);
-        draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);
-
-        g1.translate(-screenY * av.charWidth, 0);
-      }
-    }
-
-  }
-
-  // int startRes, int endRes, int startSeq, int endSeq, int x, int y,
-  // int x1, int x2, int y1, int y2, int startx, int starty,
-  void draw(Graphics g, int startRes, int endRes, int startSeq, int endSeq,
-          int offset)
-  {
-    g.setFont(av.getFont());
-    sr.prepare(g, av.renderGaps);
-
-    SequenceI nextSeq;
-
-    // / First draw the sequences
-    // ///////////////////////////
-    for (int i = startSeq; i < endSeq; i++)
-    {
-      nextSeq = av.getAlignment().getSequenceAt(i);
-
-      if (nextSeq == null)
-      {
-        continue;
-      }
-
-      sr.drawSequence(nextSeq, av.getAlignment().findAllGroups(nextSeq),
-              startRes, endRes, offset + ((i - startSeq) * av.charHeight));
-
-      if (av.isShowSequenceFeatures())
-      {
-        fr.drawSequence(g, nextSeq, startRes, endRes, offset
-                + ((i - startSeq) * av.charHeight));
-      }
-
-      // / Highlight search Results once all sequences have been drawn
-      // ////////////////////////////////////////////////////////
-      if (searchResults != null)
-      {
-        int[] visibleResults = searchResults.getResults(nextSeq, startRes,
-                endRes);
-        if (visibleResults != null)
-        {
-          for (int r = 0; r < visibleResults.length; r += 2)
-          {
-            sr.drawHighlightedText(nextSeq, visibleResults[r],
-                    visibleResults[r + 1], (visibleResults[r] - startRes)
-                            * av.charWidth, offset
-                            + ((i - startSeq) * av.charHeight));
-          }
-        }
-      }
-
-      if (av.cursorMode && cursorY == i && cursorX >= startRes
-              && cursorX <= endRes)
-      {
-        sr.drawCursor(nextSeq, cursorX,
-                (cursorX - startRes) * av.charWidth, offset
-                        + ((i - startSeq) * av.charHeight));
-      }
-    }
-
-    if (av.getSelectionGroup() != null
-            || av.getAlignment().getGroups().size() > 0)
-    {
-      drawGroupsBoundaries(g, startRes, endRes, startSeq, endSeq, offset);
-    }
-
-  }
-
-  void drawGroupsBoundaries(Graphics g, int startRes, int endRes,
-          int startSeq, int endSeq, int offset)
-  {
-    //
-    // ///////////////////////////////////
-    // Now outline any areas if necessary
-    // ///////////////////////////////////
-    SequenceGroup group = av.getSelectionGroup();
-
-    int sx = -1;
-    int sy = -1;
-    int ex = -1;
-    int groupIndex = -1;
-
-    if ((group == null) && (av.getAlignment().getGroups().size() > 0))
-    {
-      group = av.getAlignment().getGroups().get(0);
-      groupIndex = 0;
-    }
-
-    if (group != null)
-    {
-      do
-      {
-        int oldY = -1;
-        int i = 0;
-        boolean inGroup = false;
-        int top = -1;
-        int bottom = -1;
-        int alHeight = av.getAlignment().getHeight() - 1;
-
-        for (i = startSeq; i < endSeq; i++)
-        {
-          sx = (group.getStartRes() - startRes) * av.charWidth;
-          sy = offset + ((i - startSeq) * av.charHeight);
-          ex = (((group.getEndRes() + 1) - group.getStartRes()) * av.charWidth) - 1;
-
-          if (sx + ex < 0 || sx > imgWidth)
-          {
-            continue;
-          }
-
-          if ((sx <= (endRes - startRes) * av.charWidth)
-                  && group.getSequences(null).contains(
-                          av.getAlignment().getSequenceAt(i)))
-          {
-            if ((bottom == -1)
-                    && (i >= alHeight || !group.getSequences(null)
-                            .contains(
-                                    av.getAlignment().getSequenceAt(i + 1))))
-            {
-              bottom = sy + av.charHeight;
-            }
-
-            if (!inGroup)
-            {
-              if (((top == -1) && (i == 0))
-                      || !group.getSequences(null).contains(
-                              av.getAlignment().getSequenceAt(i - 1)))
-              {
-                top = sy;
-              }
-
-              oldY = sy;
-              inGroup = true;
-
-              if (group == av.getSelectionGroup())
-              {
-                g.setColor(Color.red);
-              }
-              else
-              {
-                g.setColor(group.getOutlineColour());
-              }
-            }
-          }
-          else
-          {
-            if (inGroup)
-            {
-              if (sx >= 0 && sx < imgWidth)
-              {
-                g.drawLine(sx, oldY, sx, sy);
-              }
-
-              if (sx + ex < imgWidth)
-              {
-                g.drawLine(sx + ex, oldY, sx + ex, sy);
-              }
-
-              if (sx < 0)
-              {
-                ex += sx;
-                sx = 0;
-              }
-
-              if (sx + ex > imgWidth)
-              {
-                ex = imgWidth;
-              }
-
-              else if (sx + ex >= (endRes - startRes + 1) * av.charWidth)
-              {
-                ex = (endRes - startRes + 1) * av.charWidth;
-              }
-
-              if (top != -1)
-              {
-                g.drawLine(sx, top, sx + ex, top);
-                top = -1;
-              }
-
-              if (bottom != -1)
-              {
-                g.drawLine(sx, bottom, sx + ex, bottom);
-                bottom = -1;
-              }
-
-              inGroup = false;
-            }
-          }
-        }
-
-        if (inGroup)
-        {
-          sy = offset + ((i - startSeq) * av.charHeight);
-          if (sx >= 0 && sx < imgWidth)
-          {
-            g.drawLine(sx, oldY, sx, sy);
-          }
-
-          if (sx + ex < imgWidth)
-          {
-            g.drawLine(sx + ex, oldY, sx + ex, sy);
-          }
-
-          if (sx < 0)
-          {
-            ex += sx;
-            sx = 0;
-          }
-
-          if (sx + ex > imgWidth)
-          {
-            ex = imgWidth;
-          }
-          else if (sx + ex >= (endRes - startRes + 1) * av.charWidth)
-          {
-            ex = (endRes - startRes + 1) * av.charWidth;
-          }
-
-          if (top != -1)
-          {
-            g.drawLine(sx, top, sx + ex, top);
-            top = -1;
-          }
-
-          if (bottom != -1)
-          {
-            g.drawLine(sx, bottom - 1, sx + ex, bottom - 1);
-            bottom = -1;
-          }
-
-          inGroup = false;
-        }
-
-        groupIndex++;
-
-        if (groupIndex >= av.getAlignment().getGroups().size())
-        {
-          break;
-        }
-
-        group = av.getAlignment().getGroups()
-                .get(groupIndex);
-      } while (groupIndex < av.getAlignment().getGroups().size());
-
-    }
-  }
-
-  public void highlightSearchResults(SearchResults results)
-  {
-    searchResults = results;
-
-    repaint();
-  }
-
-}
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)\r
+ * Copyright (C) 2014 The Jalview Authors\r
+ * \r
+ * This file is part of Jalview.\r
+ * \r
+ * Jalview is free software: you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License \r
+ * as published by the Free Software Foundation, either version 3\r
+ * of the License, or (at your option) any later version.\r
+ *  \r
+ * Jalview is distributed in the hope that it will be useful, but \r
+ * WITHOUT ANY WARRANTY; without even the implied warranty \r
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
+ * PURPOSE.  See the GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.\r
+ * The Jalview Authors are detailed in the 'AUTHORS' file.\r
+ */\r
+package jalview.appletgui;\r
+\r
+import jalview.datamodel.AlignmentI;\r
+import jalview.datamodel.SearchResults;\r
+import jalview.datamodel.SequenceGroup;\r
+import jalview.datamodel.SequenceI;\r
+\r
+import java.awt.Color;\r
+import java.awt.FontMetrics;\r
+import java.awt.Graphics;\r
+import java.awt.Image;\r
+import java.awt.Panel;\r
+\r
+public class SeqCanvas extends Panel\r
+{\r
+  FeatureRenderer fr;\r
+\r
+  SequenceRenderer sr;\r
+\r
+  Image img;\r
+\r
+  Graphics gg;\r
+\r
+  int imgWidth;\r
+\r
+  int imgHeight;\r
+\r
+  AlignViewport av;\r
+\r
+  SearchResults searchResults = null;\r
+\r
+  boolean fastPaint = false;\r
+\r
+  int cursorX = 0;\r
+\r
+  int cursorY = 0;\r
+\r
+  public SeqCanvas(AlignViewport av)\r
+  {\r
+    this.av = av;\r
+    fr = new FeatureRenderer(av);\r
+    sr = new SequenceRenderer(av);\r
+    PaintRefresher.Register(this, av.getSequenceSetId());\r
+  }\r
+\r
+  public AlignViewport getViewport()\r
+  {\r
+    return av;\r
+  }\r
+\r
+  public FeatureRenderer getFeatureRenderer()\r
+  {\r
+    return fr;\r
+  }\r
+\r
+  public SequenceRenderer getSequenceRenderer()\r
+  {\r
+    return sr;\r
+  }\r
+\r
+  void drawNorthScale(Graphics g, int startx, int endx, int ypos)\r
+  {\r
+    int scalestartx = startx - startx % 10 + 10;\r
+\r
+    g.setColor(Color.black);\r
+\r
+    // NORTH SCALE\r
+    for (int i = scalestartx; i < endx; i += 10)\r
+    {\r
+      int value = i;\r
+      if (av.hasHiddenColumns())\r
+      {\r
+        value = av.getColumnSelection().adjustForHiddenColumns(value);\r
+      }\r
+\r
+      g.drawString(String.valueOf(value), (i - startx - 1) * av.charWidth,\r
+              ypos - (av.charHeight / 2));\r
+\r
+      g.drawLine(((i - startx - 1) * av.charWidth) + (av.charWidth / 2),\r
+              (ypos + 2) - (av.charHeight / 2),\r
+              ((i - startx - 1) * av.charWidth) + (av.charWidth / 2),\r
+              ypos - 2);\r
+    }\r
+  }\r
+\r
+  void drawWestScale(Graphics g, int startx, int endx, int ypos)\r
+  {\r
+    FontMetrics fm = getFontMetrics(av.getFont());\r
+    ypos += av.charHeight;\r
+    if (av.hasHiddenColumns())\r
+    {\r
+      startx = av.getColumnSelection().adjustForHiddenColumns(startx);\r
+      endx = av.getColumnSelection().adjustForHiddenColumns(endx);\r
+    }\r
+\r
+    int maxwidth = av.getAlignment().getWidth();\r
+    if (av.hasHiddenColumns())\r
+    {\r
+      maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;\r
+    }\r
+\r
+    // WEST SCALE\r
+    for (int i = 0; i < av.getAlignment().getHeight(); i++)\r
+    {\r
+      SequenceI seq = av.getAlignment().getSequenceAt(i);\r
+      int index = startx;\r
+      int value = -1;\r
+\r
+      while (index < endx)\r
+      {\r
+        if (jalview.util.Comparison.isGap(seq.getCharAt(index)))\r
+        {\r
+          index++;\r
+\r
+          continue;\r
+        }\r
+\r
+        value = av.getAlignment().getSequenceAt(i).findPosition(index);\r
+\r
+        break;\r
+      }\r
+\r
+      if (value != -1)\r
+      {\r
+        int x = LABEL_WEST - fm.stringWidth(String.valueOf(value))\r
+                - av.charWidth / 2;\r
+        g.drawString(value + "", x, (ypos + (i * av.charHeight))\r
+                - (av.charHeight / 5));\r
+      }\r
+    }\r
+  }\r
+\r
+  void drawEastScale(Graphics g, int startx, int endx, int ypos)\r
+  {\r
+    ypos += av.charHeight;\r
+\r
+    if (av.hasHiddenColumns())\r
+    {\r
+      endx = av.getColumnSelection().adjustForHiddenColumns(endx);\r
+    }\r
+\r
+    SequenceI seq;\r
+    // EAST SCALE\r
+    for (int i = 0; i < av.getAlignment().getHeight(); i++)\r
+    {\r
+      seq = av.getAlignment().getSequenceAt(i);\r
+      int index = endx;\r
+      int value = -1;\r
+\r
+      while (index > startx)\r
+      {\r
+        if (jalview.util.Comparison.isGap(seq.getCharAt(index)))\r
+        {\r
+          index--;\r
+\r
+          continue;\r
+        }\r
+\r
+        value = seq.findPosition(index);\r
+\r
+        break;\r
+      }\r
+\r
+      if (value != -1)\r
+      {\r
+        g.drawString(String.valueOf(value), 0, (ypos + (i * av.charHeight))\r
+                - (av.charHeight / 5));\r
+      }\r
+    }\r
+  }\r
+\r
+  int lastsr = 0;\r
+\r
+  void fastPaint(int horizontal, int vertical)\r
+  {\r
+    if (fastPaint || gg == null)\r
+    {\r
+      return;\r
+    }\r
+\r
+    // Its possible on certain browsers that the call to fastpaint\r
+    // is faster than it can paint, so this check here catches\r
+    // this possibility\r
+    if (lastsr + horizontal != av.startRes)\r
+    {\r
+      horizontal = av.startRes - lastsr;\r
+    }\r
+\r
+    lastsr = av.startRes;\r
+\r
+    fastPaint = true;\r
+    gg.copyArea(horizontal * av.charWidth, vertical * av.charHeight,\r
+            imgWidth - horizontal * av.charWidth, imgHeight - vertical\r
+                    * av.charHeight, -horizontal * av.charWidth, -vertical\r
+                    * av.charHeight);\r
+\r
+    int sr = av.startRes, er = av.endRes, ss = av.startSeq, es = av.endSeq, transX = 0, transY = 0;\r
+\r
+    if (horizontal > 0) // scrollbar pulled right, image to the left\r
+    {\r
+      transX = (er - sr - horizontal) * av.charWidth;\r
+      sr = er - horizontal;\r
+    }\r
+    else if (horizontal < 0)\r
+    {\r
+      er = sr - horizontal;\r
+    }\r
+\r
+    else if (vertical > 0) // scroll down\r
+    {\r
+      ss = es - vertical;\r
+      if (ss < av.startSeq) // ie scrolling too fast, more than a page at a time\r
+      {\r
+        ss = av.startSeq;\r
+      }\r
+      else\r
+      {\r
+        transY = imgHeight - vertical * av.charHeight;\r
+      }\r
+    }\r
+    else if (vertical < 0)\r
+    {\r
+      es = ss - vertical;\r
+      if (es > av.endSeq)\r
+      {\r
+        es = av.endSeq;\r
+      }\r
+    }\r
+\r
+    gg.translate(transX, transY);\r
+\r
+    drawPanel(gg, sr, er, ss, es, 0);\r
+    gg.translate(-transX, -transY);\r
+\r
+    repaint();\r
+\r
+  }\r
+\r
+  /**\r
+   * Definitions of startx and endx (hopefully): SMJS This is what I'm working\r
+   * towards! startx is the first residue (starting at 0) to display. endx is\r
+   * the last residue to display (starting at 0). starty is the first sequence\r
+   * to display (starting at 0). endy is the last sequence to display (starting\r
+   * at 0). NOTE 1: The av limits are set in setFont in this class and in the\r
+   * adjustment listener in SeqPanel when the scrollbars move.\r
+   */\r
+  public void update(Graphics g)\r
+  {\r
+    paint(g);\r
+  }\r
+\r
+  public void paint(Graphics g)\r
+  {\r
+\r
+    if (img != null\r
+            && (fastPaint || (getSize().width != g.getClipBounds().width) || (getSize().height != g\r
+                    .getClipBounds().height)))\r
+    {\r
+      g.drawImage(img, 0, 0, this);\r
+      fastPaint = false;\r
+      return;\r
+    }\r
+\r
+    if (fastPaint)\r
+    {\r
+      g.drawImage(img, 0, 0, this);\r
+      fastPaint = false;\r
+      return;\r
+    }\r
+\r
+    // this draws the whole of the alignment\r
+    imgWidth = this.getSize().width;\r
+    imgHeight = this.getSize().height;\r
+\r
+    imgWidth -= imgWidth % av.charWidth;\r
+    imgHeight -= imgHeight % av.charHeight;\r
+\r
+    if (imgWidth < 1 || imgHeight < 1)\r
+    {\r
+      return;\r
+    }\r
+\r
+    if (img == null || imgWidth != img.getWidth(this)\r
+            || imgHeight != img.getHeight(this))\r
+    {\r
+      img = createImage(imgWidth, imgHeight);\r
+      gg = img.getGraphics();\r
+      gg.setFont(av.getFont());\r
+    }\r
+\r
+    gg.setColor(Color.white);\r
+    gg.fillRect(0, 0, imgWidth, imgHeight);\r
+\r
+    if (av.getWrapAlignment())\r
+    {\r
+      drawWrappedPanel(gg, imgWidth, imgHeight, av.startRes);\r
+    }\r
+    else\r
+    {\r
+      drawPanel(gg, av.startRes, av.endRes, av.startSeq, av.endSeq, 0);\r
+    }\r
+\r
+    g.drawImage(img, 0, 0, this);\r
+\r
+  }\r
+\r
+  int LABEL_WEST, LABEL_EAST;\r
+\r
+  public int getWrappedCanvasWidth(int cwidth)\r
+  {\r
+    cwidth -= cwidth % av.charWidth;\r
+\r
+    FontMetrics fm = getFontMetrics(av.getFont());\r
+\r
+    LABEL_EAST = 0;\r
+    LABEL_WEST = 0;\r
+\r
+    if (av.scaleRightWrapped)\r
+    {\r
+      LABEL_EAST = fm.stringWidth(getMask());\r
+    }\r
+\r
+    if (av.scaleLeftWrapped)\r
+    {\r
+      LABEL_WEST = fm.stringWidth(getMask());\r
+    }\r
+\r
+    return (cwidth - LABEL_EAST - LABEL_WEST) / av.charWidth;\r
+  }\r
+\r
+  /**\r
+   * Generates a string of zeroes.\r
+   * \r
+   * @return String\r
+   */\r
+  String getMask()\r
+  {\r
+    String mask = "0";\r
+    int maxWidth = 0;\r
+    int tmp;\r
+    AlignmentI alignment = av.getAlignment();\r
+    for (int i = 0; i < alignment.getHeight(); i++)\r
+    {\r
+      tmp = alignment.getSequenceAt(i).getEnd();\r
+      if (tmp > maxWidth)\r
+      {\r
+        maxWidth = tmp;\r
+      }\r
+    }\r
+\r
+    for (int i = maxWidth; i > 0; i /= 10)\r
+    {\r
+      mask += "0";\r
+    }\r
+    return mask;\r
+  }\r
+\r
+  public void drawWrappedPanel(Graphics g, int canvasWidth,\r
+          int canvasHeight, int startRes)\r
+  {\r
+    AlignmentI al = av.getAlignment();\r
+\r
+    FontMetrics fm = getFontMetrics(av.getFont());\r
+\r
+    if (av.scaleRightWrapped)\r
+    {\r
+      LABEL_EAST = fm.stringWidth(getMask());\r
+    }\r
+\r
+    if (av.scaleLeftWrapped)\r
+    {\r
+      LABEL_WEST = fm.stringWidth(getMask());\r
+    }\r
+\r
+    int hgap = av.charHeight;\r
+    if (av.scaleAboveWrapped)\r
+    {\r
+      hgap += av.charHeight;\r
+    }\r
+\r
+    int cWidth = (canvasWidth - LABEL_EAST - LABEL_WEST) / av.charWidth;\r
+    int cHeight = av.getAlignment().getHeight() * av.charHeight;\r
+\r
+    av.setWrappedWidth(cWidth);\r
+\r
+    av.endRes = av.startRes + cWidth;\r
+\r
+    int endx;\r
+    int ypos = hgap;\r
+\r
+    int maxwidth = av.getAlignment().getWidth() - 1;\r
+\r
+    if (av.hasHiddenColumns())\r
+    {\r
+      maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;\r
+    }\r
+\r
+    while ((ypos <= canvasHeight) && (startRes < maxwidth))\r
+    {\r
+      endx = startRes + cWidth - 1;\r
+\r
+      if (endx > maxwidth)\r
+      {\r
+        endx = maxwidth;\r
+      }\r
+\r
+      g.setColor(Color.black);\r
+\r
+      if (av.scaleLeftWrapped)\r
+      {\r
+        drawWestScale(g, startRes, endx, ypos);\r
+      }\r
+\r
+      if (av.scaleRightWrapped)\r
+      {\r
+        g.translate(canvasWidth - LABEL_EAST, 0);\r
+        drawEastScale(g, startRes, endx, ypos);\r
+        g.translate(-(canvasWidth - LABEL_EAST), 0);\r
+      }\r
+\r
+      g.translate(LABEL_WEST, 0);\r
+\r
+      if (av.scaleAboveWrapped)\r
+      {\r
+        drawNorthScale(g, startRes, endx, ypos);\r
+      }\r
+      if (av.hasHiddenColumns() && av.showHiddenMarkers)\r
+      {\r
+        g.setColor(Color.blue);\r
+        int res;\r
+        for (int i = 0; i < av.getColumnSelection().getHiddenColumns()\r
+                .size(); i++)\r
+        {\r
+          res = av.getColumnSelection().findHiddenRegionPosition(i)\r
+                  - startRes;\r
+\r
+          if (res < 0 || res > endx - startRes)\r
+          {\r
+            continue;\r
+          }\r
+\r
+          gg.fillPolygon(new int[]\r
+          { res * av.charWidth - av.charHeight / 4,\r
+              res * av.charWidth + av.charHeight / 4, res * av.charWidth },\r
+                  new int[]\r
+                  { ypos - (av.charHeight / 2), ypos - (av.charHeight / 2),\r
+                      ypos - (av.charHeight / 2) + 8 }, 3);\r
+\r
+        }\r
+      }\r
+\r
+      if (g.getClip() == null)\r
+      {\r
+        g.setClip(0, 0, cWidth * av.charWidth, canvasHeight);\r
+      }\r
+\r
+      drawPanel(g, startRes, endx, 0, al.getHeight(), ypos);\r
+      g.setClip(null);\r
+\r
+      if (av.showAnnotation)\r
+      {\r
+        g.translate(0, cHeight + ypos + 4);\r
+        if (annotations == null)\r
+        {\r
+          annotations = new AnnotationPanel(av);\r
+        }\r
+\r
+        annotations.drawComponent(g, startRes, endx + 1);\r
+        g.translate(0, -cHeight - ypos - 4);\r
+      }\r
+      g.translate(-LABEL_WEST, 0);\r
+\r
+      ypos += cHeight + getAnnotationHeight() + hgap;\r
+\r
+      startRes += cWidth;\r
+    }\r
+\r
+  }\r
+\r
+  AnnotationPanel annotations;\r
+\r
+  int getAnnotationHeight()\r
+  {\r
+    if (!av.showAnnotation)\r
+    {\r
+      return 0;\r
+    }\r
+\r
+    if (annotations == null)\r
+    {\r
+      annotations = new AnnotationPanel(av);\r
+    }\r
+\r
+    return annotations.adjustPanelHeight();\r
+  }\r
+\r
+  void drawPanel(Graphics g1, int startRes, int endRes, int startSeq,\r
+          int endSeq, int offset)\r
+  {\r
+\r
+\r
+    if (!av.hasHiddenColumns())\r
+    {\r
+      draw(g1, startRes, endRes, startSeq, endSeq, offset);\r
+    }\r
+    else\r
+    {\r
+\r
+      int screenY = 0;\r
+      int blockStart = startRes;\r
+      int blockEnd = endRes;\r
+\r
+      if (av.hasHiddenColumns())\r
+      {\r
+        for (int[] region : av.getColumnSelection().getHiddenColumns())\r
+        {\r
+          int hideStart = region[0];\r
+          int hideEnd = region[1];\r
+\r
+          if (hideStart <= blockStart)\r
+          {\r
+            blockStart += (hideEnd - hideStart) + 1;\r
+            continue;\r
+          }\r
+\r
+          blockEnd = hideStart - 1;\r
+\r
+          g1.translate(screenY * av.charWidth, 0);\r
+\r
+          draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);\r
+\r
+          if (av.getShowHiddenMarkers())\r
+          {\r
+            g1.setColor(Color.blue);\r
+            g1.drawLine((blockEnd - blockStart + 1) * av.charWidth - 1,\r
+                    0 + offset, (blockEnd - blockStart + 1) * av.charWidth\r
+                            - 1, (endSeq - startSeq) * av.charHeight\r
+                            + offset);\r
+          }\r
+\r
+          g1.translate(-screenY * av.charWidth, 0);\r
+          screenY += blockEnd - blockStart + 1;\r
+          blockStart = hideEnd + 1;\r
+        }\r
+      }\r
+      if (screenY <= (endRes - startRes))\r
+      {\r
+        blockEnd = blockStart + (endRes - startRes) - screenY;\r
+        g1.translate(screenY * av.charWidth, 0);\r
+        draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);\r
+\r
+        g1.translate(-screenY * av.charWidth, 0);\r
+      }\r
+    }\r
+\r
+  }\r
+\r
+  // int startRes, int endRes, int startSeq, int endSeq, int x, int y,\r
+  // int x1, int x2, int y1, int y2, int startx, int starty,\r
+  void draw(Graphics g, int startRes, int endRes, int startSeq, int endSeq,\r
+          int offset)\r
+  {\r
+    g.setFont(av.getFont());\r
+    sr.prepare(g, av.renderGaps);\r
+\r
+    SequenceI nextSeq;\r
+\r
+    // / First draw the sequences\r
+    // ///////////////////////////\r
+    for (int i = startSeq; i < endSeq; i++)\r
+    {\r
+      nextSeq = av.getAlignment().getSequenceAt(i);\r
+\r
+      if (nextSeq == null)\r
+      {\r
+        continue;\r
+      }\r
+\r
+      sr.drawSequence(nextSeq, av.getAlignment().findAllGroups(nextSeq),\r
+              startRes, endRes, offset + ((i - startSeq) * av.charHeight));\r
+\r
+      if (av.isShowSequenceFeatures())\r
+      {\r
+        fr.drawSequence(g, nextSeq, startRes, endRes, offset\r
+                + ((i - startSeq) * av.charHeight));\r
+      }\r
+\r
+      // / Highlight search Results once all sequences have been drawn\r
+      // ////////////////////////////////////////////////////////\r
+      if (searchResults != null)\r
+      {\r
+        int[] visibleResults = searchResults.getResults(nextSeq, startRes,\r
+                endRes);\r
+        if (visibleResults != null)\r
+        {\r
+          for (int r = 0; r < visibleResults.length; r += 2)\r
+          {\r
+            sr.drawHighlightedText(nextSeq, visibleResults[r],\r
+                    visibleResults[r + 1], (visibleResults[r] - startRes)\r
+                            * av.charWidth, offset\r
+                            + ((i - startSeq) * av.charHeight));\r
+          }\r
+        }\r
+      }\r
+\r
+      if (av.cursorMode && cursorY == i && cursorX >= startRes\r
+              && cursorX <= endRes)\r
+      {\r
+        sr.drawCursor(nextSeq, cursorX,\r
+                (cursorX - startRes) * av.charWidth, offset\r
+                        + ((i - startSeq) * av.charHeight));\r
+      }\r
+    }\r
+\r
+    if (av.getSelectionGroup() != null\r
+            || av.getAlignment().getGroups().size() > 0)\r
+    {\r
+      drawGroupsBoundaries(g, startRes, endRes, startSeq, endSeq, offset);\r
+    }\r
+\r
+  }\r
+\r
+  void drawGroupsBoundaries(Graphics g, int startRes, int endRes,\r
+          int startSeq, int endSeq, int offset)\r
+  {\r
+    //\r
+    // ///////////////////////////////////\r
+    // Now outline any areas if necessary\r
+    // ///////////////////////////////////\r
+    SequenceGroup group = av.getSelectionGroup();\r
+\r
+    int sx = -1;\r
+    int sy = -1;\r
+    int ex = -1;\r
+    int groupIndex = -1;\r
+\r
+    if ((group == null) && (av.getAlignment().getGroups().size() > 0))\r
+    {\r
+      group = av.getAlignment().getGroups().get(0);\r
+      groupIndex = 0;\r
+    }\r
+\r
+    if (group != null)\r
+    {\r
+      do\r
+      {\r
+        int oldY = -1;\r
+        int i = 0;\r
+        boolean inGroup = false;\r
+        int top = -1;\r
+        int bottom = -1;\r
+        int alHeight = av.getAlignment().getHeight() - 1;\r
+\r
+        for (i = startSeq; i < endSeq; i++)\r
+        {\r
+          sx = (group.getStartRes() - startRes) * av.charWidth;\r
+          sy = offset + ((i - startSeq) * av.charHeight);\r
+          ex = (((group.getEndRes() + 1) - group.getStartRes()) * av.charWidth) - 1;\r
+\r
+          if (sx + ex < 0 || sx > imgWidth)\r
+          {\r
+            continue;\r
+          }\r
+\r
+          if ((sx <= (endRes - startRes) * av.charWidth)\r
+                  && group.getSequences(null).contains(\r
+                          av.getAlignment().getSequenceAt(i)))\r
+          {\r
+            if ((bottom == -1)\r
+                    && (i >= alHeight || !group.getSequences(null)\r
+                            .contains(\r
+                                    av.getAlignment().getSequenceAt(i + 1))))\r
+            {\r
+              bottom = sy + av.charHeight;\r
+            }\r
+\r
+            if (!inGroup)\r
+            {\r
+              if (((top == -1) && (i == 0))\r
+                      || !group.getSequences(null).contains(\r
+                              av.getAlignment().getSequenceAt(i - 1)))\r
+              {\r
+                top = sy;\r
+              }\r
+\r
+              oldY = sy;\r
+              inGroup = true;\r
+\r
+              if (group == av.getSelectionGroup())\r
+              {\r
+                g.setColor(Color.red);\r
+              }\r
+              else\r
+              {\r
+                g.setColor(group.getOutlineColour());\r
+              }\r
+            }\r
+          }\r
+          else\r
+          {\r
+            if (inGroup)\r
+            {\r
+              if (sx >= 0 && sx < imgWidth)\r
+              {\r
+                g.drawLine(sx, oldY, sx, sy);\r
+              }\r
+\r
+              if (sx + ex < imgWidth)\r
+              {\r
+                g.drawLine(sx + ex, oldY, sx + ex, sy);\r
+              }\r
+\r
+              if (sx < 0)\r
+              {\r
+                ex += sx;\r
+                sx = 0;\r
+              }\r
+\r
+              if (sx + ex > imgWidth)\r
+              {\r
+                ex = imgWidth;\r
+              }\r
+\r
+              else if (sx + ex >= (endRes - startRes + 1) * av.charWidth)\r
+              {\r
+                ex = (endRes - startRes + 1) * av.charWidth;\r
+              }\r
+\r
+              if (top != -1)\r
+              {\r
+                g.drawLine(sx, top, sx + ex, top);\r
+                top = -1;\r
+              }\r
+\r
+              if (bottom != -1)\r
+              {\r
+                g.drawLine(sx, bottom, sx + ex, bottom);\r
+                bottom = -1;\r
+              }\r
+\r
+              inGroup = false;\r
+            }\r
+          }\r
+        }\r
+\r
+        if (inGroup)\r
+        {\r
+          sy = offset + ((i - startSeq) * av.charHeight);\r
+          if (sx >= 0 && sx < imgWidth)\r
+          {\r
+            g.drawLine(sx, oldY, sx, sy);\r
+          }\r
+\r
+          if (sx + ex < imgWidth)\r
+          {\r
+            g.drawLine(sx + ex, oldY, sx + ex, sy);\r
+          }\r
+\r
+          if (sx < 0)\r
+          {\r
+            ex += sx;\r
+            sx = 0;\r
+          }\r
+\r
+          if (sx + ex > imgWidth)\r
+          {\r
+            ex = imgWidth;\r
+          }\r
+          else if (sx + ex >= (endRes - startRes + 1) * av.charWidth)\r
+          {\r
+            ex = (endRes - startRes + 1) * av.charWidth;\r
+          }\r
+\r
+          if (top != -1)\r
+          {\r
+            g.drawLine(sx, top, sx + ex, top);\r
+            top = -1;\r
+          }\r
+\r
+          if (bottom != -1)\r
+          {\r
+            g.drawLine(sx, bottom - 1, sx + ex, bottom - 1);\r
+            bottom = -1;\r
+          }\r
+\r
+          inGroup = false;\r
+        }\r
+\r
+        groupIndex++;\r
+\r
+        if (groupIndex >= av.getAlignment().getGroups().size())\r
+        {\r
+          break;\r
+        }\r
+\r
+        group = av.getAlignment().getGroups()\r
+                .get(groupIndex);\r
+      } while (groupIndex < av.getAlignment().getGroups().size());\r
+\r
+    }\r
+  }\r
+\r
+  public void highlightSearchResults(SearchResults results)\r
+  {\r
+    searchResults = results;\r
+\r
+    repaint();\r
+  }\r
+\r
+}\r
index 92d5beb..9badf43 100755 (executable)
@@ -230,7 +230,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
     }
 
     char s = ' ';
-
+    boolean srep = av.isDisplayReferenceSeq();
     for (int i = start; i <= end; i++)
     {
       graphics.setColor(Color.black);
@@ -255,9 +255,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
         }
         if (currentSequenceGroup.getShowNonconserved())
         {
-          // cheat - use this if we have a consensus for each group: s =
-          // getDisplayChar(currentSequenceGroup.getConsensus(), i, s, '.');
-          s = getDisplayChar(av.getAlignmentConsensusAnnotation(), i, s,
+          s = getDisplayChar(srep, i, s,
                   '.');
         }
       }
@@ -282,7 +280,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
         }
         if (av.getShowUnconserved())
         {
-          s = getDisplayChar(av.getAlignmentConsensusAnnotation(), i, s,
+          s = getDisplayChar(srep, i, s,
                   '.');
 
         }
@@ -315,10 +313,12 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
 
   }
 
-  private char getDisplayChar(AlignmentAnnotation consensus, int position,
+  private char getDisplayChar(final boolean usesrep, int position,
           char s, char c)
   {
-    char conschar = consensus.annotations[position].displayCharacter
+    // TODO - use currentSequenceGroup rather than alignemnt 
+    // currentSequenceGroup.getConsensus()
+    char conschar = (usesrep) ? av.getAlignment().getSeqrep().getCharAt(position) : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
             .charAt(0);
     if (conschar != '-' && s == conschar)
     {
index 833dd7e..dab649e 100644 (file)
@@ -709,8 +709,8 @@ public class JalviewLite extends Applet implements
    */
   public void loadAnnotationFrom(AlignFrame alf, String annotation)
   {
-    if (new AnnotationFile().readAnnotationFile(alf.getAlignViewport()
-            .getAlignment(), annotation, AppletFormatAdapter.PASTE))
+    if (new AnnotationFile().annotateAlignmentView(alf.getAlignViewport(),
+            annotation, AppletFormatAdapter.PASTE))
     {
       alf.alignPanel.fontChanged();
       alf.alignPanel.setScrollValues(0, 0);
@@ -1999,8 +1999,8 @@ public class JalviewLite extends Applet implements
         {
           param = setProtocolState(param);
 
-          if (new AnnotationFile().readAnnotationFile(
-                  newAlignFrame.viewport.getAlignment(), param, protocol))
+          if (new AnnotationFile().annotateAlignmentView(
+                  newAlignFrame.viewport, param, protocol))
           {
             newAlignFrame.alignPanel.fontChanged();
             newAlignFrame.alignPanel.setScrollValues(0, 0);
index 9c5914f..01d3d8d 100755 (executable)
@@ -1571,6 +1571,39 @@ public class Alignment implements AlignmentI
     }
   }
 
+
+ private SequenceI seqrep=null;
+
+ /**
+  * 
+  * @return the representative sequence for this group
+  */
+ public SequenceI getSeqrep()
+ {
+   return seqrep;
+ }
+
+ /**
+  * set the representative sequence for this group. Note - this affects the
+  * interpretation of the Hidereps attribute.
+  * 
+  * @param seqrep
+  *          the seqrep to set (null means no sequence representative)
+  */
+ public void setSeqrep(SequenceI seqrep)
+ {
+   this.seqrep = seqrep;
+ }
+
+ /**
+  * 
+  * @return true if group has a sequence representative
+  */
+ public boolean hasSeqrep()
+ {
+   return seqrep != null;
+ }
+
   @Override
   public int getEndRes()
   {
index 529891f..a55f676 100644 (file)
@@ -20,7 +20,7 @@
  */
 package jalview.datamodel;
 
-import java.util.Vector;
+import java.util.List;
 
 public class CigarArray extends CigarBase
 {
@@ -148,25 +148,25 @@ public class CigarArray extends CigarBase
    * internal constructor function - called by CigarArray(AlignmentI, ...);
    * 
    * @param alignment
-   * @param columnSelection
+   * @param list
    *          - vector of visible regions as returned from
    *          columnSelection.getHiddenColumns()
    * @param selectionGroup
    */
   private void constructFromAlignment(AlignmentI alignment,
-          Vector columnSelection, SequenceGroup selectionGroup)
+          List<int[]> list, SequenceGroup selectionGroup)
   {
     int[] _startend = _calcStartEndBounds(alignment, selectionGroup);
     int start = _startend[1], end = _startend[2];
     // now construct the CigarArray operations
-    if (columnSelection != null)
+    if (list != null)
     {
       int[] region;
       int hideStart, hideEnd;
       int last = start;
-      for (int j = 0; last < end & j < columnSelection.size(); j++)
+      for (int j = 0; last < end & j < list.size(); j++)
       {
-        region = (int[]) columnSelection.elementAt(j);
+        region = list.get(j);
         hideStart = region[0];
         hideEnd = region[1];
         // edit hidden regions to selection range
index 93e03d1..6acca32 100644 (file)
@@ -25,6 +25,7 @@ import jalview.viewmodel.annotationfilter.AnnotationFilterParameter;
 import jalview.viewmodel.annotationfilter.AnnotationFilterParameter.SearchableAnnotationField;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Vector;
@@ -37,7 +38,7 @@ public class ColumnSelection
   Vector selected = new Vector();
 
   // Vector of int [] {startCol, endCol}
-  Vector hiddenColumns;
+  Vector<int[]> hiddenColumns;
 
   /**
    * Add a column to the selection
@@ -210,7 +211,7 @@ public class ColumnSelection
       int hSize = hiddenColumns.size();
       for (int i = 0; i < hSize; i++)
       {
-        int[] region = (int[]) hiddenColumns.elementAt(i);
+        int[] region = hiddenColumns.elementAt(i);
         if (region[0] > start && start + change > region[1])
         {
           deletedHiddenColumns.add(region);
@@ -265,7 +266,7 @@ public class ColumnSelection
     {
       for (int i = 0; i < hiddenColumns.size(); i++)
       {
-        int[] region = (int[]) hiddenColumns.elementAt(i);
+        int[] region = hiddenColumns.elementAt(i);
         if (region[0] >= start)
         {
           region[0] -= change;
@@ -479,16 +480,13 @@ public class ColumnSelection
   }
 
   /**
-   * This Method is used to return all the HiddenColumn regions less than the
-   * given index.
-   * 
-   * @param end
-   *          int
-   * @return Vector
+   * This Method is used to return all the HiddenColumn regions
+   * @return empty list or List of hidden column intervals
    */
-  public Vector getHiddenColumns()
+  public List<int[]> getHiddenColumns()
   {
-    return hiddenColumns;
+    return hiddenColumns == null ? Arrays.asList(new int[]
+    {}) : hiddenColumns;
   }
 
   /**
@@ -505,7 +503,7 @@ public class ColumnSelection
     {
       for (int i = 0; i < hiddenColumns.size(); i++)
       {
-        int[] region = (int[]) hiddenColumns.elementAt(i);
+        int[] region = hiddenColumns.elementAt(i);
         if (result >= region[0])
         {
           result += region[1] - region[0] + 1;
@@ -533,7 +531,7 @@ public class ColumnSelection
       int[] region;
       do
       {
-        region = (int[]) hiddenColumns.elementAt(index++);
+        region = hiddenColumns.elementAt(index++);
         if (hiddenColumn > region[1])
         {
           result -= region[1] + 1 - region[0];
@@ -559,7 +557,7 @@ public class ColumnSelection
       int gaps = 0;
       do
       {
-        int[] region = (int[]) hiddenColumns.elementAt(index);
+        int[] region = hiddenColumns.elementAt(index);
         if (hiddenRegion == 0)
         {
           return region[0];
@@ -590,7 +588,7 @@ public class ColumnSelection
       int index = 0;
       do
       {
-        int[] region = (int[]) hiddenColumns.elementAt(index);
+        int[] region = hiddenColumns.elementAt(index);
         if (alPos < region[0])
         {
           return region[0];
@@ -618,7 +616,7 @@ public class ColumnSelection
       int index = hiddenColumns.size() - 1;
       do
       {
-        int[] region = (int[]) hiddenColumns.elementAt(index);
+        int[] region = hiddenColumns.elementAt(index);
         if (alPos > region[1])
         {
           return region[1];
@@ -654,7 +652,7 @@ public class ColumnSelection
 
     for (int i = 0; i < hiddenColumns.size(); i++)
     {
-      int[] region = (int[]) hiddenColumns.elementAt(i);
+      int[] region = hiddenColumns.elementAt(i);
       if (start <= region[1] && end >= region[0])
       {
         hiddenColumns.removeElementAt(i);
@@ -721,7 +719,7 @@ public class ColumnSelection
     {
       for (int i = 0; i < hiddenColumns.size(); i++)
       {
-        int[] region = (int[]) hiddenColumns.elementAt(i);
+        int[] region = hiddenColumns.elementAt(i);
         for (int j = region[0]; j < region[1] + 1; j++)
         {
           addElement(j);
@@ -736,7 +734,7 @@ public class ColumnSelection
   {
     for (int i = 0; i < hiddenColumns.size(); i++)
     {
-      int[] region = (int[]) hiddenColumns.elementAt(i);
+      int[] region = hiddenColumns.elementAt(i);
       if (res == region[0])
       {
         for (int j = region[0]; j < region[1] + 1; j++)
@@ -760,7 +758,7 @@ public class ColumnSelection
     {
       for (int i = 0; i < hiddenColumns.size(); i++)
       {
-        int[] region = (int[]) hiddenColumns.elementAt(i);
+        int[] region = hiddenColumns.elementAt(i);
         if (column >= region[0] && column <= region[1])
         {
           return false;
@@ -794,7 +792,7 @@ public class ColumnSelection
         for (int i = 0, j = copy.hiddenColumns.size(); i < j; i++)
         {
           int[] rh, cp;
-          rh = (int[]) copy.hiddenColumns.elementAt(i);
+          rh = copy.hiddenColumns.elementAt(i);
           if (rh != null)
           {
             cp = new int[rh.length];
@@ -823,7 +821,7 @@ public class ColumnSelection
       for (i = 0; i < iSize; i++)
       {
         StringBuffer visibleSeq = new StringBuffer();
-        Vector regions = getHiddenColumns();
+        List<int[]> regions = getHiddenColumns();
 
         int blockStart = start, blockEnd = end;
         int[] region;
@@ -831,7 +829,7 @@ public class ColumnSelection
 
         for (int j = 0; j < regions.size(); j++)
         {
-          region = (int[]) regions.elementAt(j);
+          region = regions.get(j);
           hideStart = region[0];
           hideEnd = region[1];
 
@@ -888,7 +886,7 @@ public class ColumnSelection
     if (hiddenColumns != null && hiddenColumns.size() > 0)
     {
       Vector visiblecontigs = new Vector();
-      Vector regions = getHiddenColumns();
+      List<int[]> regions = getHiddenColumns();
 
       int vstart = start;
       int[] region;
@@ -896,7 +894,7 @@ public class ColumnSelection
 
       for (int j = 0; vstart < end && j < regions.size(); j++)
       {
-        region = (int[]) regions.elementAt(j);
+        region = regions.get(j);
         hideStart = region[0];
         hideEnd = region[1];
 
@@ -974,14 +972,14 @@ public class ColumnSelection
       // then mangle the alignmentAnnotation annotation array
       Vector annels = new Vector();
       Annotation[] els = null;
-      Vector regions = getHiddenColumns();
+      List<int[]> regions = getHiddenColumns();
       int blockStart = start, blockEnd = end;
       int[] region;
       int hideStart, hideEnd, w = 0;
 
       for (int j = 0; j < regions.size(); j++)
       {
-        region = (int[]) regions.elementAt(j);
+        region = regions.get(j);
         hideStart = region[0];
         hideEnd = region[1];
 
@@ -1268,6 +1266,48 @@ public class ColumnSelection
     }
   }
 
+  /**
+   * 
+   * @return true if there are columns marked
+   */
+  public boolean hasSelectedColumns()
+  {
+    return (selected != null && selected.size() > 0);
+  }
+
+  /**
+   * 
+   * @return true if there are columns hidden
+   */
+  public boolean hasHiddenColumns()
+  {
+    return hiddenColumns != null && hiddenColumns.size() > 0;
+  }
+  
+  /**
+   * 
+   * @return true if there are more than one set of columns hidden
+   */
+  public boolean hasManyHiddenColumns()
+  {
+    return hiddenColumns != null && hiddenColumns.size() > 1;
+  }
+
+  /**
+   * mark the columns corresponding to gap characters as hidden in the column
+   * selection
+   * 
+   * @param sr
+   */
+  public void hideInsertionsFor(SequenceI sr)
+  {
+    List<int[]> inserts = sr.getInsertions();
+    for (int[] r : inserts)
+    {
+      hideColumns(r[0], r[1]);
+    }
+  }
+  
   public boolean filterAnnotations(Annotation[] annotations,
           AnnotationFilterParameter filterParams)
   {
index 0652fb5..96e469a 100755 (executable)
@@ -661,11 +661,7 @@ public class Sequence implements SequenceI
     return map;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see jalview.datamodel.SequenceI#findPositionMap()
-   */
+  @Override
   public int[] findPositionMap()
   {
     int map[] = new int[sequence.length];
@@ -685,11 +681,43 @@ public class Sequence implements SequenceI
     return map;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see jalview.datamodel.SequenceI#deleteChars(int, int)
-   */
+  @Override
+  public List<int[]> getInsertions()
+  {
+    ArrayList<int[]> map = new ArrayList<int[]>();
+    int lastj = -1, j = 0;
+    int pos = start;
+    int seqlen = sequence.length;
+    while ((j < seqlen))
+    {
+      if (jalview.util.Comparison.isGap(sequence[j]))
+      {
+        if (lastj == -1)
+        {
+          lastj = j;
+        }
+      }
+      else
+      {
+        if (lastj != -1)
+        {
+          map.add(new int[]
+          { lastj, j - 1 });
+          lastj = -1;
+        }
+      }
+      j++;
+    }
+    if (lastj != -1)
+    {
+      map.add(new int[]
+      { lastj, j - 1 });
+      lastj = -1;
+    }
+    return map;
+  }
+
+  @Override
   public void deleteChars(int i, int j)
   {
     int newstart = start, newend = end;
@@ -768,16 +796,7 @@ public class Sequence implements SequenceI
     sequence = tmp;
   }
 
-  /**
-   * DOCUMENT ME!
-   * 
-   * @param i
-   *          DOCUMENT ME!
-   * @param c
-   *          DOCUMENT ME!
-   * @param chop
-   *          DOCUMENT ME!
-   */
+  @Override
   public void insertCharAt(int i, int length, char c)
   {
     char[] tmp = new char[sequence.length + length];
@@ -807,26 +826,31 @@ public class Sequence implements SequenceI
     sequence = tmp;
   }
 
+  @Override
   public void insertCharAt(int i, char c)
   {
     insertCharAt(i, 1, c);
   }
 
+  @Override
   public String getVamsasId()
   {
     return vamsasId;
   }
 
+  @Override
   public void setVamsasId(String id)
   {
     vamsasId = id;
   }
 
+  @Override
   public void setDBRef(DBRefEntry[] dbref)
   {
     dbrefs = dbref;
   }
 
+  @Override
   public DBRefEntry[] getDBRef()
   {
     if (dbrefs == null && datasetSequence != null
@@ -837,6 +861,7 @@ public class Sequence implements SequenceI
     return dbrefs;
   }
 
+  @Override
   public void addDBRef(DBRefEntry entry)
   {
     if (dbrefs == null)
@@ -869,40 +894,33 @@ public class Sequence implements SequenceI
     dbrefs = temp;
   }
 
+  @Override
   public void setDatasetSequence(SequenceI seq)
   {
     datasetSequence = seq;
   }
 
+  @Override
   public SequenceI getDatasetSequence()
   {
     return datasetSequence;
   }
 
-  /**
-   * Returns a new array containing this sequence's annotations, or null.
-   */
+  @Override
   public AlignmentAnnotation[] getAnnotation()
   {
     return annotation == null ? null : annotation
             .toArray(new AlignmentAnnotation[annotation.size()]);
   }
 
-  /**
-   * Returns true if this sequence has the given annotation (by object
-   * identity).
-   */
+
   @Override
   public boolean hasAnnotation(AlignmentAnnotation ann)
   {
     return annotation == null ? false : annotation.contains(ann);
   }
 
-  /**
-   * Add the given annotation, if not already added, and set its sequence ref to
-   * be this sequence. Does nothing if this sequence's annotations already
-   * include this annotation (by identical object reference).
-   */
+  @Override
   public void addAlignmentAnnotation(AlignmentAnnotation annotation)
   {
     if (this.annotation == null)
@@ -948,11 +966,7 @@ public class Sequence implements SequenceI
     return true;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see jalview.datamodel.SequenceI#deriveSequence()
-   */
+  @Override
   public SequenceI deriveSequence()
   {
     SequenceI seq = new Sequence(this);
@@ -1043,11 +1057,7 @@ public class Sequence implements SequenceI
     }
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see jalview.datamodel.SequenceI#getAnnotation(java.lang.String)
-   */
+  @Override
   public AlignmentAnnotation[] getAnnotation(String label)
   {
     if (annotation == null || annotation.size() == 0)
@@ -1080,6 +1090,7 @@ public class Sequence implements SequenceI
     return anns;
   }
 
+  @Override
   public boolean updatePDBIds()
   {
     if (datasetSequence != null)
@@ -1133,13 +1144,7 @@ public class Sequence implements SequenceI
     return false;
   }
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * jalview.datamodel.SequenceI#transferAnnotation(jalview.datamodel.SequenceI,
-   * jalview.datamodel.Mapping)
-   */
+  @Override
   public void transferAnnotation(SequenceI entry, Mapping mp)
   {
     if (datasetSequence != null)
@@ -1235,13 +1240,6 @@ public class Sequence implements SequenceI
     return rna;
   }
 
-  /**
-   * Returns a (possibly empty) list of any annotations that match on given
-   * calcId (source) and label (type). Null values do not match.
-   * 
-   * @param calcId
-   * @param label
-   */
   @Override
   public List<AlignmentAnnotation> getAlignmentAnnotations(String calcId,
           String label)
index 3af441b..ee216a4 100644 (file)
@@ -29,8 +29,23 @@ public interface SequenceCollectionI
 
   List<SequenceI> getSequences(
           Map<SequenceI, SequenceCollectionI> hiddenReps);
-
   int getWidth();
+  /**
+   * 
+   * @return true if getSeqrep doesn't return null
+   */
+  boolean hasSeqrep();
+  /**
+   * get the reference or representative sequence within this collection
+   * @return null or the current reference sequence
+   */
+  SequenceI getSeqrep();
+  /**
+   * set the reference or representative sequence for this collection. 
+   * Reference is assumed to be present within the collection.
+   * @return
+   */
+  void setSeqrep(SequenceI refseq);
 
   /**
    * @return the first column included in this collection. Runs from 0<=i<N_cols
index fc67efd..e8c1d71 100755 (executable)
@@ -315,10 +315,22 @@ public interface SequenceI
 
   public SequenceI getDatasetSequence();
 
+  /**
+   * Returns a new array containing this sequence's annotations, or null.
+   */
   public AlignmentAnnotation[] getAnnotation();
 
+  /**
+   * Returns true if this sequence has the given annotation (by object
+   * identity).
+   */
   public boolean hasAnnotation(AlignmentAnnotation ann);
 
+  /**
+   * Add the given annotation, if not already added, and set its sequence ref to
+   * be this sequence. Does nothing if this sequence's annotations already
+   * include this annotation (by identical object reference).
+   */
   public void addAlignmentAnnotation(AlignmentAnnotation annotation);
 
   public void removeAlignmentAnnotation(AlignmentAnnotation annotation);
@@ -347,12 +359,11 @@ public interface SequenceI
   public AlignmentAnnotation[] getAnnotation(String label);
 
   /**
-   * Return a list of any annotations which match the given calcId (source) and
-   * label (type). Null values do not match.
+   * Returns a (possibly empty) list of any annotations that match on given
+   * calcId (source) and label (type). Null values do not match.
    * 
    * @param calcId
    * @param label
-   * @return
    */
   public List<AlignmentAnnotation> getAlignmentAnnotations(String calcId,
           String label);
@@ -403,4 +414,10 @@ public interface SequenceI
    */
   public void setRNA(RNA rna);
 
+  /**
+   * 
+   * @return list of insertions (gap characters) in sequence
+   */
+  public List<int[]> getInsertions();
+
 }
index 4c45aad..235deda 100644 (file)
@@ -1305,11 +1305,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   @Override
   public void exportAnnotations_actionPerformed(ActionEvent e)
   {
-    new AnnotationExporter().exportAnnotations(alignPanel,
-            viewport.isShowAnnotation() ? viewport.getAlignment()
-                    .getAlignmentAnnotation() : null, viewport
-                    .getAlignment().getGroups(), ((Alignment) viewport
-                    .getAlignment()).alignmentProperties);
+    new AnnotationExporter().exportAnnotations(alignPanel);
   }
 
   @Override
@@ -1771,20 +1767,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       return;
     }
 
-    Vector hiddenColumns = null;
+    ArrayList<int[]> hiddenColumns = null;
     if (viewport.hasHiddenColumns())
     {
-      hiddenColumns = new Vector();
+      hiddenColumns = new ArrayList<int[]>();
       int hiddenOffset = viewport.getSelectionGroup().getStartRes(), hiddenCutoff = viewport
               .getSelectionGroup().getEndRes();
-      for (int i = 0; i < viewport.getColumnSelection().getHiddenColumns()
-              .size(); i++)
+      for (int[] region : viewport.getColumnSelection().getHiddenColumns())
       {
-        int[] region = (int[]) viewport.getColumnSelection()
-                .getHiddenColumns().elementAt(i);
         if (region[0] >= hiddenOffset && region[1] <= hiddenCutoff)
         {
-          hiddenColumns.addElement(new int[]
+          hiddenColumns.add(new int[]
           { region[0] - hiddenOffset, region[1] - hiddenOffset });
         }
       }
@@ -2111,10 +2104,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         if (Desktop.jalviewClipboard != null
                 && Desktop.jalviewClipboard[2] != null)
         {
-          Vector hc = (Vector) Desktop.jalviewClipboard[2];
-          for (int i = 0; i < hc.size(); i++)
+          List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
+          for (int[] region : hc)
           {
-            int[] region = (int[]) hc.elementAt(i);
             af.viewport.hideColumns(region[0], region[1]);
           }
         }
@@ -2171,10 +2163,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       if (Desktop.jalviewClipboard != null
               && Desktop.jalviewClipboard[2] != null)
       {
-        Vector hc = (Vector) Desktop.jalviewClipboard[2];
-        for (int i = 0; i < hc.size(); i++)
+        List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
+        for (int region[] : hc)
         {
-          int[] region = (int[]) hc.elementAt(i);
           af.viewport.hideColumns(region[0], region[1]);
         }
       }
@@ -5154,7 +5145,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       // try to parse as annotation.
       boolean isAnnotation = (format == null || format
               .equalsIgnoreCase("PFAM")) ? new AnnotationFile()
-              .readAnnotationFile(viewport.getAlignment(), file, protocol)
+              .annotateAlignmentView(viewport, file, protocol)
               : false;
 
       if (!isAnnotation)
@@ -5759,6 +5750,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       alignPanel.paintAlignment(true);
     }
   }
+  public void clearAlignmentSeqRep()
+  {
+    // TODO refactor alignmentseqrep to controller
+    if (viewport.getAlignment().hasSeqrep()) {
+      viewport.getAlignment().setSeqrep(null);
+      PaintRefresher.Refresh(this, viewport.getSequenceSetId());
+      alignPanel.updateAnnotation();
+      alignPanel.paintAlignment(true);
+    }
+  }
 
   @Override
   protected void createGroup_actionPerformed(ActionEvent e)
index b8f575f..4df9a62 100644 (file)
@@ -138,7 +138,6 @@ public class AlignViewport extends AlignmentViewport implements
   Color textColour = Color.black;
 
   Color textColour2 = Color.white;
-  private boolean rightAlignIds = false;
 
   private AnnotationColumnChooser annotationColumnSelectionState;
   /**
@@ -1235,22 +1234,6 @@ public class AlignViewport extends AlignmentViewport implements
     this.showAutocalculatedAbove = showAutocalculatedAbove;
   }
 
-
-  public boolean isShowAnnotation()
-  {
-    return super.isShowAnnotation();
-  }
-
-  public boolean isRightAlignIds()
-  {
-    return rightAlignIds;
-  }
-
-  public void setRightAlignIds(boolean rightAlignIds)
-  {
-    this.rightAlignIds = rightAlignIds;
-  }
-
   public AnnotationColumnChooser getAnnotationColumnSelectionState()
   {
     return annotationColumnSelectionState;
index e859fb1..6517e70 100644 (file)
@@ -122,7 +122,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
 
     setScrollValues(0, 0);
 
-    setAnnotationVisible(av.getShowAnnotation());
+    setAnnotationVisible(av.isShowAnnotation());
 
     hscroll.addAdjustmentListener(this);
     vscroll.addAdjustmentListener(this);
@@ -729,7 +729,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
         getSeqPanel().seqCanvas.fastPaint(scrollX, scrollY);
         getScalePanel().repaint();
 
-        if (av.getShowAnnotation() && scrollX != 0)
+        if (av.isShowAnnotation() && scrollX != 0)
         {
           getAnnotationPanel().fastPaint(scrollX);
         }
@@ -1249,7 +1249,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
       }
 
     }
-    else if (av.getShowAnnotation())
+    else if (av.isShowAnnotation())
     {
       height += getAnnotationPanel().adjustPanelHeight() + 3;
     }
index e43c06b..df6f9eb 100644 (file)
@@ -21,7 +21,6 @@
 package jalview.gui;
 
 import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.SequenceGroup;
 import jalview.io.AnnotationFile;
 import jalview.io.FeaturesFile;
 import jalview.io.JalviewFileChooser;
@@ -33,8 +32,6 @@ import java.awt.Color;
 import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.Hashtable;
-import java.util.List;
 
 import javax.swing.BorderFactory;
 import javax.swing.ButtonGroup;
@@ -62,11 +59,9 @@ public class AnnotationExporter extends JPanel
 
   boolean features = true;
 
-  AlignmentAnnotation[] annotations;
+  private AlignmentAnnotation[] annotations;
 
-  List<SequenceGroup> sequenceGroups;
-
-  Hashtable alignmentProperties;
+  private boolean wholeView;
 
   public AnnotationExporter()
   {
@@ -93,17 +88,29 @@ public class AnnotationExporter extends JPanel
     frame.setTitle(MessageManager.getString("label.export_features"));
   }
 
-  public void exportAnnotations(AlignmentPanel ap,
-          AlignmentAnnotation[] annotations, List<SequenceGroup> list,
-          Hashtable alProperties)
+  public void exportAnnotations(AlignmentPanel ap)
   {
     this.ap = ap;
+    annotations = ap.av.isShowAnnotation() ? null : ap.av.getAlignment()
+            .getAlignmentAnnotation();
+    wholeView = true;
+    startExportAnnotation();
+  }
+
+  public void exportAnnotations(AlignmentPanel alp,
+          AlignmentAnnotation[] toExport)
+  {
+    ap = alp;
+    annotations = toExport;
+    wholeView = false;
+    startExportAnnotation();
+  }
+
+  private void startExportAnnotation()
+  {
     features = false;
     GFFFormat.setVisible(false);
     CSVFormat.setVisible(true);
-    this.annotations = annotations;
-    this.sequenceGroups = list;
-    this.alignmentProperties = alProperties;
     frame.setTitle(MessageManager.getString("label.export_annotations"));
   }
 
@@ -121,36 +128,7 @@ public class AnnotationExporter extends JPanel
 
     if (value == JalviewFileChooser.APPROVE_OPTION)
     {
-      String text = MessageManager.getString("label.no_features_on_alignment");
-      if (features)
-      {
-        if (GFFFormat.isSelected())
-        {
-          text = new FeaturesFile().printGFFFormat(ap.av.getAlignment()
-                  .getDataset().getSequencesArray(), ap
-                  .getFeatureRenderer().getDisplayedFeatureCols(), true,
-                  ap.av.isShowNpFeats());// ap.av.featuresDisplayed//);
-        }
-        else
-        {
-          text = new FeaturesFile().printJalviewFormat(ap.av.getAlignment()
-                  .getDataset().getSequencesArray(), ap
-                  .getFeatureRenderer().getDisplayedFeatureCols(), true,
-                  ap.av.isShowNpFeats()); // ap.av.featuresDisplayed);
-        }
-      }
-      else
-      {
-        if (CSVFormat.isSelected())
-        {
-          text = new AnnotationFile().printCSVAnnotations(annotations);
-        }
-        else
-        {
-          text = new AnnotationFile().printAnnotations(annotations,
-                  sequenceGroups, alignmentProperties);
-        }
-      }
+      String text = getFileContents();
 
       try
       {
@@ -168,25 +146,26 @@ public class AnnotationExporter extends JPanel
     close_actionPerformed(null);
   }
 
-  public void toTextbox_actionPerformed(ActionEvent e)
+  private String getFileContents()
   {
-    String text = MessageManager.getString("label.no_features_on_alignment");
+    String text = MessageManager
+            .getString("label.no_features_on_alignment");
     if (features)
     {
       if (GFFFormat.isSelected())
       {
         text = new FeaturesFile().printGFFFormat(ap.av.getAlignment()
                 .getDataset().getSequencesArray(), ap.getFeatureRenderer()
-                .getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());
+                .getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());// ap.av.featuresDisplayed//);
       }
       else
       {
         text = new FeaturesFile().printJalviewFormat(ap.av.getAlignment()
                 .getDataset().getSequencesArray(), ap.getFeatureRenderer()
-                .getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());
+                .getDisplayedFeatureCols(), true, ap.av.isShowNpFeats()); // ap.av.featuresDisplayed);
       }
     }
-    else if (!features)
+    else
     {
       if (CSVFormat.isSelected())
       {
@@ -194,14 +173,26 @@ public class AnnotationExporter extends JPanel
       }
       else
       {
-        text = new AnnotationFile().printAnnotations(annotations,
-                sequenceGroups, alignmentProperties);
+        if (wholeView)
+        {
+          text = new AnnotationFile().printAnnotationsForView(ap.av);
+        }
+        else
+        {
+          text = new AnnotationFile().printAnnotations(annotations, null,
+                  null);
+        }
       }
     }
-
+    return text;
+  }
+  public void toTextbox_actionPerformed(ActionEvent e)
+  {
     CutAndPasteTransfer cap = new CutAndPasteTransfer();
+
     try
     {
+      String text = getFileContents();
       cap.setText(text);
       Desktop.addInternalFrame(
               cap,
@@ -309,5 +300,4 @@ public class AnnotationExporter extends JPanel
   JPanel jPanel3 = new JPanel();
 
   FlowLayout flowLayout1 = new FlowLayout();
-
 }
index 501df8a..f732a36 100755 (executable)
@@ -47,8 +47,8 @@ import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
 import java.awt.geom.AffineTransform;
 import java.awt.image.BufferedImage;
+import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Vector;
 import java.util.regex.Pattern;
 
 import javax.swing.JCheckBoxMenuItem;
@@ -249,7 +249,7 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     {
       new AnnotationExporter().exportAnnotations(ap,
               new AlignmentAnnotation[]
-              { aa[selectedRow] }, null, null);
+      { aa[selectedRow] });
     }
     else if (evt.getActionCommand().equals(COPYCONS_SEQ))
     {
@@ -872,16 +872,13 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     Toolkit.getDefaultToolkit().getSystemClipboard()
             .setContents(new StringSelection(output), Desktop.instance);
 
-    Vector hiddenColumns = null;
+    ArrayList<int[]> hiddenColumns = null;
     if (av.hasHiddenColumns())
     {
-      hiddenColumns = new Vector();
-      for (int i = 0; i < av.getColumnSelection().getHiddenColumns().size(); i++)
+      hiddenColumns = new ArrayList<int[]>();
+      for (int[] region : av.getColumnSelection().getHiddenColumns())
       {
-        int[] region = (int[]) av.getColumnSelection().getHiddenColumns()
-                .elementAt(i);
-
-        hiddenColumns.addElement(new int[]
+        hiddenColumns.add(new int[]
         { region[0], region[1] });
       }
     }
index 6810fed..3bc3168 100755 (executable)
@@ -310,7 +310,7 @@ public class IdCanvas extends JPanel
         for (int i = starty; i < alheight; i++)
         {
           SequenceI s = av.getAlignment().getSequenceAt(i);
-          if (av.hasHiddenRows())
+          if (av.isDisplayReferenceSeq() || av.hasHiddenRows())
           {
             setHiddenFont(s);
           }
@@ -350,7 +350,7 @@ public class IdCanvas extends JPanel
           continue;
         }
 
-        if (av.hasHiddenRows())
+        if (av.isDisplayReferenceSeq() || av.hasHiddenRows())
         {
           setHiddenFont(sequence);
         }
index 5d11901..9bb27ed 100644 (file)
@@ -1125,7 +1125,7 @@ public class Jalview2XML
       view.setFontSize(av.font.getSize());
       view.setFontStyle(av.font.getStyle());
       view.setRenderGaps(av.renderGaps);
-      view.setShowAnnotation(av.getShowAnnotation());
+      view.setShowAnnotation(av.isShowAnnotation());
       view.setShowBoxes(av.getShowBoxes());
       view.setShowColourText(av.getColourText());
       view.setShowFullId(av.getShowJVSuffix());
@@ -1257,8 +1257,8 @@ public class Jalview2XML
           for (int c = 0; c < av.getColumnSelection().getHiddenColumns()
                   .size(); c++)
           {
-            int[] region = (int[]) av.getColumnSelection()
-                    .getHiddenColumns().elementAt(c);
+            int[] region = av.getColumnSelection()
+                    .getHiddenColumns().get(c);
             HiddenColumns hc = new HiddenColumns();
             hc.setStart(region[0]);
             hc.setEnd(region[1]);
index 3ea689f..8565f9f 100644 (file)
@@ -29,6 +29,7 @@ import jalview.commands.EditCommand.Action;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
+import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.Sequence;
@@ -140,6 +141,8 @@ public class PopupMenu extends JPopupMenu
   JMenuItem sequenceDetails = new JMenuItem();
 
   JMenuItem sequenceSelDetails = new JMenuItem();
+  
+  JMenuItem makeReferenceSeq = new JMenuItem();
 
   JMenuItem chooseAnnotations = new JMenuItem();
 
@@ -220,6 +223,8 @@ public class PopupMenu extends JPopupMenu
 
   JMenu groupLinksMenu;
 
+  JMenuItem hideInsertions = new JMenuItem();
+
   /**
    * Creates a new PopupMenu object.
    * 
@@ -322,6 +327,12 @@ public class PopupMenu extends JPopupMenu
     if (seq != null)
     {
       sequenceMenu.setText(sequence.getName());
+      if (seq == ap.av.getAlignment().getSeqrep())
+      {
+        makeReferenceSeq.setText("Unmark representative");
+      } else {
+        makeReferenceSeq.setText("Mark as representative");
+      }
 
       if (seq.getDatasetSequence().getPDBId() != null
               && seq.getDatasetSequence().getPDBId().size() > 0)
@@ -369,7 +380,6 @@ public class PopupMenu extends JPopupMenu
         }
         // structureMenu.remove(colStructureMenu);
       }
-
       if (ap.av.getAlignment().isNucleotide() == true)
       {
         AlignmentAnnotation[] aa = ap.av.getAlignment()
@@ -441,7 +451,6 @@ public class PopupMenu extends JPopupMenu
             }
           }
         }
-
       }
 
       menuItem = new JMenuItem(
@@ -1507,7 +1516,28 @@ public class PopupMenu extends JPopupMenu
         editSequence_actionPerformed(actionEvent);
       }
     });
+    makeReferenceSeq.setText(MessageManager
+            .getString("label.mark_as_representative"));
+    makeReferenceSeq.addActionListener(new ActionListener()
+    {
+      
+      @Override
+      public void actionPerformed(ActionEvent actionEvent)
+      {
+        makeReferenceSeq_actionPerformed(actionEvent);
+        
+      }
+    });
+    hideInsertions.setText(MessageManager.getString("label.hide_insertions"));
+    hideInsertions.addActionListener(new ActionListener()
+    {
 
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        hideInsertions_actionPerformed(e);
+      }
+    });
     /*
      * annotationMenuItem.setText("By Annotation");
      * annotationMenuItem.addActionListener(new ActionListener() { public void
@@ -1517,7 +1547,11 @@ public class PopupMenu extends JPopupMenu
     groupMenu.add(sequenceSelDetails);
     add(groupMenu);
     add(sequenceMenu);
-    this.add(structureMenu);
+    add(structureMenu);
+    if (sequence!=null)
+    {
+      add(hideInsertions);
+    }
     // annotations configuration panel suppressed for now
     // groupMenu.add(chooseAnnotations);
 
@@ -1539,6 +1573,7 @@ public class PopupMenu extends JPopupMenu
     groupMenu.add(jMenu1);
     sequenceMenu.add(sequenceName);
     sequenceMenu.add(sequenceDetails);
+    sequenceMenu.add(makeReferenceSeq);
     colourMenu.add(textColour);
     colourMenu.add(noColourmenuItem);
     colourMenu.add(clustalColour);
@@ -1913,6 +1948,43 @@ public class PopupMenu extends JPopupMenu
     refresh();
   }
 
+  protected void makeReferenceSeq_actionPerformed(ActionEvent actionEvent)
+  {
+    if (!ap.av.getAlignment().hasSeqrep())
+    {
+      // initialise the display flags so the user sees something happen
+      ap.av.setDisplayReferenceSeq(true);
+      ap.av.setColourByReferenceSeq(true);
+      ap.av.getAlignment().setSeqrep(sequence);
+    }
+    else
+    {
+      if (ap.av.getAlignment().getSeqrep() == sequence)
+      {
+        ap.av.getAlignment().setSeqrep(null);
+      }
+      else
+      {
+        ap.av.getAlignment().setSeqrep(sequence);
+      }
+    }
+    refresh();
+  }
+
+  protected void hideInsertions_actionPerformed(ActionEvent actionEvent)
+  {
+    if (sequence != null)
+    {
+      ColumnSelection cs = ap.av.getColumnSelection();
+      if (cs == null)
+      {
+        cs = new ColumnSelection();
+      }
+      cs.hideInsertionsFor(sequence);
+      ap.av.setColumnSelection(cs);
+    }
+    refresh();
+  }
   protected void sequenceSelectionDetails_actionPerformed()
   {
     createSequenceDetailsReport(ap.av.getSequenceSelection());
index 01e4284..32773b9 100755 (executable)
@@ -128,7 +128,7 @@ public class ScalePanel extends JPanel implements MouseMotionListener,
         });
         pop.add(item);
 
-        if (av.getColumnSelection().getHiddenColumns().size() > 1)
+        if (av.getColumnSelection().hasHiddenColumns())
         {
           item = new JMenuItem(
                   MessageManager.getString("action.reveal_all"));
@@ -371,24 +371,21 @@ public class ScalePanel extends JPanel implements MouseMotionListener,
     reveal = null;
     if (av.getColumnSelection().getHiddenColumns() != null)
     {
-    for (int i = 0; i < av.getColumnSelection().getHiddenColumns().size(); i++)
-    {
-      int[] region = (int[]) av.getColumnSelection().getHiddenColumns()
-              .elementAt(i);
-      if (res + 1 == region[0] || res - 1 == region[1])
-      {
-        reveal = region;
-        ToolTipManager.sharedInstance().registerComponent(this);
-        this.setToolTipText(MessageManager
-                .getString("label.reveal_hidden_columns"));
-        break;
-      }
-      else
+      for (int[] region : av.getColumnSelection().getHiddenColumns())
       {
-        this.setToolTipText(null);
+        if (res + 1 == region[0] || res - 1 == region[1])
+        {
+          reveal = region;
+          ToolTipManager.sharedInstance().registerComponent(this);
+          this.setToolTipText(MessageManager
+                  .getString("label.reveal_hidden_columns"));
+          break;
+        }
+        else
+        {
+          this.setToolTipText(null);
+        }
       }
-
-    }
     }
     repaint();
   }
index 4d1546b..5032f69 100755 (executable)
@@ -34,6 +34,7 @@ import java.awt.Graphics2D;
 import java.awt.RenderingHints;
 import java.awt.Shape;
 import java.awt.image.BufferedImage;
+import java.util.List;
 
 import javax.swing.JComponent;
 
@@ -637,7 +638,7 @@ public class SeqCanvas extends JComponent
     }
     else
     {
-      java.util.Vector regions = av.getColumnSelection().getHiddenColumns();
+      List<int[]> regions = av.getColumnSelection().getHiddenColumns();
 
       int screenY = 0;
       int blockStart = startRes;
@@ -645,7 +646,7 @@ public class SeqCanvas extends JComponent
 
       for (int i = 0; regions != null && i < regions.size(); i++)
       {
-        int[] region = (int[]) regions.elementAt(i);
+        int[] region = regions.get(i);
         int hideStart = region[0];
         int hideEnd = region[1];
 
index 177fc83..438ef00 100755 (executable)
@@ -319,6 +319,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
     }
     else
     {
+      boolean srep = av.isDisplayReferenceSeq();
       boolean getboxColour = false;
       for (int i = start; i <= end; i++)
       {
@@ -364,7 +365,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
           if (currentSequenceGroup.getShowNonconserved()) // todo optimize
           {
             // todo - use sequence group consensus
-            s = getDisplayChar(av.getAlignmentConsensusAnnotation(), i, s,
+            s = getDisplayChar(srep, i, s,
                     '.');
 
           }
@@ -407,7 +408,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
           }
           if (av.getShowUnconserved())
           {
-            s = getDisplayChar(av.getAlignmentConsensusAnnotation(), i, s,
+            s = getDisplayChar(srep, i, s,
                     '.');
 
           }
@@ -422,10 +423,12 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
     }
   }
 
-  private char getDisplayChar(AlignmentAnnotation consensus, int position,
+  private char getDisplayChar(final boolean usesrep, int position,
           char s, char c)
   {
-    char conschar = consensus.annotations[position].displayCharacter
+    // TODO - use currentSequenceGroup rather than alignemnt 
+    // currentSequenceGroup.getConsensus()
+    char conschar = (usesrep) ? av.getAlignment().getSeqrep().getCharAt(position) : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
             .charAt(0);
     if (conschar != '-' && s == conschar)
     {
index 7736332..8dc84b8 100755 (executable)
  */
 package jalview.io;
 
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import jalview.analysis.*;
-import jalview.datamodel.*;
-import jalview.schemes.*;
+import jalview.analysis.Conservation;
+import jalview.api.AlignViewportI;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.GraphLine;
+import jalview.datamodel.HiddenSequences;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.ColourSchemeProperty;
+import jalview.schemes.ResidueProperties;
+import jalview.schemes.UserColourScheme;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.Vector;
 
 public class AnnotationFile
 {
@@ -67,18 +88,18 @@ public class AnnotationFile
   }
 
   /**
-   * convenience method for pre-2.4 feature files which have no view, hidden
+   * convenience method for pre-2.9 annotation files which have no view, hidden
    * columns or hidden row keywords.
    * 
    * @param annotations
    * @param list
    * @param properties
-   * @return feature file as a string.
+   * @return annotation file as a string.
    */
   public String printAnnotations(AlignmentAnnotation[] annotations,
           List<SequenceGroup> list, Hashtable properties)
   {
-    return printAnnotations(annotations, list, properties, null);
+    return printAnnotations(annotations, list, properties, null, null, null);
 
   }
 
@@ -119,10 +140,56 @@ public class AnnotationFile
    * @return annotation file
    */
   public String printAnnotations(AlignmentAnnotation[] annotations,
-          List<SequenceGroup> list, Hashtable properties, ViewDef[] views)
+          List<SequenceGroup> list, Hashtable properties,
+          ColumnSelection cs, AlignmentI al, ViewDef view)
   {
-    // TODO: resolve views issue : annotationFile could contain visible region,
-    // or full data + hidden region specifications for a view.
+    if (view != null)
+    {
+      if (view.viewname != null)
+      {
+        text.append("VIEW_DEF\t" + view.viewname + "\n");
+      }
+      if (list == null)
+      {
+        list = view.visibleGroups;
+      }
+      if (cs == null)
+      {
+        cs = view.hiddencols;
+      }
+      if (al == null)
+      {
+        // add hidden rep sequences.
+      }
+    }
+    // first target - store and restore all settings for a view.
+    if (al != null && al.hasSeqrep())
+    {
+      text.append("VIEW_SETREF\t" + al.getSeqrep().getName() + "\n");
+    }
+    if (cs != null && cs.hasHiddenColumns())
+    {
+      text.append("VIEW_HIDECOLS\t");
+      List<int[]> hc = cs.getHiddenColumns();
+      boolean comma = false;
+      for (int[] r : hc)
+      {
+        if (!comma)
+        {
+          comma = true;
+        }
+        else
+        {
+          text.append(",");
+        }
+        text.append(r[0]);
+        text.append("-");
+        text.append(r[1]);
+      }
+      text.append("\n");
+    }
+    // TODO: allow efficient recovery of annotation data shown in several
+    // different views
     if (annotations != null)
     {
       boolean oneColour = true;
@@ -320,7 +387,9 @@ public class AnnotationFile
         }
 
         if (row.hasScore())
+        {
           text.append("\t" + row.score);
+        }
 
         text.append(newline);
 
@@ -403,7 +472,8 @@ public class AnnotationFile
         text.append(properties.get(key));
       }
       // TODO: output alignment visualization settings here if required
-
+      // iterate through one or more views, defining, marking columns and rows as visible/hidden, and emmitting view properties.
+      // View specific annotation is 
     }
 
     return text.toString();
@@ -590,9 +660,33 @@ public class AnnotationFile
 
   String refSeqId = null;
 
+  public boolean annotateAlignmentView(AlignViewportI viewport,
+          String file, String protocol)
+  {
+    ColumnSelection colSel = viewport.getColumnSelection();
+    if (colSel == null)
+    {
+      colSel = new ColumnSelection();
+    }
+    boolean rslt = readAnnotationFile(viewport.getAlignment(), colSel,
+            file, protocol);
+    if (rslt
+            && (colSel.hasSelectedColumns() || colSel.hasHiddenColumns()))
+    {
+      viewport.setColumnSelection(colSel);
+    }
+
+    return rslt;
+  }
   public boolean readAnnotationFile(AlignmentI al, String file,
           String protocol)
   {
+    return readAnnotationFile(al, null, file, protocol);
+  }
+
+  public boolean readAnnotationFile(AlignmentI al, ColumnSelection colSel,
+          String file, String protocol)
+  {
     BufferedReader in = null;
     try
     {
@@ -619,7 +713,7 @@ public class AnnotationFile
       }
       if (in != null)
       {
-        return parseAnnotationFrom(al, in);
+        return parseAnnotationFrom(al, colSel, in);
       }
 
     } catch (Exception ex)
@@ -642,7 +736,8 @@ public class AnnotationFile
 
   private static String GRAPHLINE = "GRAPHLINE", COMBINE = "COMBINE";
 
-  public boolean parseAnnotationFrom(AlignmentI al, BufferedReader in)
+  public boolean parseAnnotationFrom(AlignmentI al, ColumnSelection colSel,
+          BufferedReader in)
           throws Exception
   {
     nlinesread = 0;
@@ -834,6 +929,58 @@ public class AnnotationFile
           modified = true;
           continue;
         }
+        // else if (token.equalsIgnoreCase("VIEW_DEF"))
+        // {
+        // addOrSetView(al,st);
+        // modified = true;
+        // continue;
+        // }
+        else if (token.equalsIgnoreCase("VIEW_SETREF"))
+        {
+          if (refSeq != null)
+          {
+            al.setSeqrep(refSeq);
+          }
+          modified = true;
+          continue;
+        }
+        else if (token.equalsIgnoreCase("VIEW_HIDECOLS"))
+        {
+          if (st.hasMoreTokens())
+          {
+            if (colSel == null)
+            {
+              colSel = new ColumnSelection();
+            }
+            parseHideCols(colSel, st.nextToken());
+          }
+          modified = true;
+          continue;
+        }
+        else if (token.equalsIgnoreCase("HIDE_INSERTIONS"))
+        {
+          SequenceI sr = refSeq == null ? al.getSeqrep() : refSeq;
+          if (sr == null)
+          {
+            sr = al.getSequenceAt(0);
+          }
+          if (sr != null)
+          {
+            if (colSel == null)
+            {
+              System.err
+                      .println("Cannot process HIDE_INSERTIONS without an alignment view: Ignoring line: "
+                              + line);
+            }
+            else
+            {
+              // consider deferring this till after the file has been parsed ?
+              colSel.hideInsertionsFor(sr);
+            }
+          }
+          modified = true;
+          continue;
+        }
 
         // Parse out the annotation row
         graphStyle = AlignmentAnnotation.getGraphValueFromString(token);
@@ -852,7 +999,9 @@ public class AnnotationFile
           {
             description = line;
             if (st.hasMoreTokens())
+            {
               line = st.nextToken();
+            }
           }
 
           if (st.hasMoreTokens())
@@ -1004,7 +1153,7 @@ public class AnnotationFile
                   (StringTokenizer) _deferred_args[1], // st
                   (SequenceI) _deferred_args[2], // refSeq
                   (_deferred_args[3] == null) ? null : groupRefLookup
-                          .get((String) _deferred_args[3]) // the reference
+                          .get(_deferred_args[3]) // the reference
                                                            // group, or null
           );
         }
@@ -1024,7 +1173,7 @@ public class AnnotationFile
                 (StringTokenizer) _combine_args[0], // st
                 (SequenceI) _combine_args[1], // refSeq
                 (_combine_args[2] == null) ? null : groupRefLookup
-                        .get((String) _combine_args[2]) // the reference group,
+                        .get(_combine_args[2]) // the reference group,
                                                         // or null
         );
       }
@@ -1032,6 +1181,40 @@ public class AnnotationFile
     return modified;
   }
 
+  private void parseHideCols(ColumnSelection colSel, String nextToken)
+  {
+    StringTokenizer inval = new StringTokenizer(nextToken,",");
+    while (inval.hasMoreTokens())
+    {
+      String range = inval.nextToken().trim();
+      int from, to = range.indexOf("-");
+      if (to == -1)
+      {
+        from = to = Integer.parseInt(range);
+        if (from >= 0)
+        {
+          colSel.hideColumns(from, to);
+        }
+      }
+      else
+      {
+        from = Integer.parseInt(range.substring(0, to));
+        if (to < range.length() - 1)
+        {
+          to = Integer.parseInt(range.substring(to + 1));
+        }
+        else
+        {
+          to = from;
+        }
+        if (from > 0 && to >= from)
+        {
+          colSel.hideColumns(from, to);
+        }
+      }
+    }
+  }
+
   private Object autoAnnotsKey(AlignmentAnnotation annotation,
           SequenceI refSeq, String groupRef)
   {
@@ -1602,4 +1785,19 @@ public class AnnotationFile
     }
     return sp.toString();
   }
+
+  public String printAnnotationsForView(AlignViewportI viewport)
+  {
+    return printAnnotations(viewport.isShowAnnotation() ? viewport
+            .getAlignment().getAlignmentAnnotation() : null, viewport
+            .getAlignment().getGroups(), viewport.getAlignment()
+            .getProperties(), viewport.getColumnSelection(),
+            viewport.getAlignment(), null);
+  }
+
+  public String printAnnotationsForAlignment(AlignmentI al)
+  {
+    return printAnnotations(al.getAlignmentAnnotation(), al.getGroups(),
+            al.getProperties(), null, al, null);
+  }
 }
index df1acf1..8980e2c 100644 (file)
@@ -123,8 +123,9 @@ public class ParsePackedSet
           {
             br = new BufferedReader(src.getReader());
           }
+          // TODO: add columnSelection to context
           if (new jalview.io.AnnotationFile().parseAnnotationFrom(
-                  context.getLastAlignment(), br))
+                  context.getLastAlignment(), null, br))
           {
             context.updateSetModified(true);
           }
index a2da591..a48c910 100644 (file)
@@ -649,9 +649,14 @@ public abstract class AlignmentViewport implements AlignViewportI
     return colSel;
   }
 
+  @Override
   public void setColumnSelection(ColumnSelection colSel)
   {
     this.colSel = colSel;
+    if (colSel != null)
+    {
+      updateHiddenColumns();
+    }
   }
 
   /**
@@ -675,7 +680,7 @@ public abstract class AlignmentViewport implements AlignViewportI
 
   public void updateHiddenColumns()
   {
-    hasHiddenColumns = colSel.getHiddenColumns() != null;
+    hasHiddenColumns = colSel.hasHiddenColumns();
   }
 
   protected boolean hasHiddenRows = false;
@@ -1031,8 +1036,8 @@ public abstract class AlignmentViewport implements AlignViewportI
 
   public boolean isHiddenRepSequence(SequenceI seq)
   {
-    return hiddenRepSequences != null
-            && hiddenRepSequences.containsKey(seq);
+    return alignment.getSeqrep()==seq || (hiddenRepSequences != null
+            && hiddenRepSequences.containsKey(seq));
   }
 
   public SequenceGroup getRepresentedSequences(SequenceI seq)
@@ -1041,32 +1046,24 @@ public abstract class AlignmentViewport implements AlignViewportI
             : hiddenRepSequences.get(seq));
   }
 
+  @Override
   public int adjustForHiddenSeqs(int alignmentIndex)
   {
     return alignment.getHiddenSequences().adjustForHiddenSeqs(
             alignmentIndex);
   }
 
-  // Selection manipulation
-  /**
-   * broadcast selection to any interested parties
-   */
+  @Override
   public abstract void sendSelection();
 
+  @Override
   public void invertColumnSelection()
   {
     colSel.invertColumnSelection(0, alignment.getWidth());
   }
 
-  /**
-   * This method returns an array of new SequenceI objects derived from the
-   * whole alignment or just the current selection with start and end points
-   * adjusted
-   * 
-   * @note if you need references to the actual SequenceI objects in the
-   *       alignment or currently selected then use getSequenceSelection()
-   * @return selection as new sequenceI objects
-   */
+
+  @Override
   public SequenceI[] getSelectionAsNewSequence()
   {
     SequenceI[] sequences;
@@ -1095,12 +1092,7 @@ public abstract class AlignmentViewport implements AlignViewportI
     return sequences;
   }
 
-  /**
-   * get the currently selected sequence objects or all the sequences in the
-   * alignment.
-   * 
-   * @return array of references to sequence objects
-   */
+
   @Override
   public SequenceI[] getSequenceSelection()
   {
@@ -1116,14 +1108,7 @@ public abstract class AlignmentViewport implements AlignViewportI
     return sequences;
   }
 
-  /**
-   * This method returns the visible alignment as text, as seen on the GUI, ie
-   * if columns are hidden they will not be returned in the result. Use this for
-   * calculating trees, PCA, redundancy etc on views which contain hidden
-   * columns.
-   * 
-   * @return String[]
-   */
+
   @Override
   public jalview.datamodel.CigarArray getViewAsCigars(
           boolean selectedRegionOnly)
@@ -1133,14 +1118,7 @@ public abstract class AlignmentViewport implements AlignViewportI
             (selectedRegionOnly ? selectionGroup : null));
   }
 
-  /**
-   * return a compact representation of the current alignment selection to pass
-   * to an analysis function
-   * 
-   * @param selectedOnly
-   *          boolean true to just return the selected view
-   * @return AlignmentView
-   */
+
   @Override
   public jalview.datamodel.AlignmentView getAlignmentView(
           boolean selectedOnly)
@@ -1148,18 +1126,7 @@ public abstract class AlignmentViewport implements AlignViewportI
     return getAlignmentView(selectedOnly, false);
   }
 
-  /**
-   * return a compact representation of the current alignment selection to pass
-   * to an analysis function
-   * 
-   * @param selectedOnly
-   *          boolean true to just return the selected view
-   * @param markGroups
-   *          boolean true to annotate the alignment view with groups on the
-   *          alignment (and intersecting with selected region if selectedOnly
-   *          is true)
-   * @return AlignmentView
-   */
+
   @Override
   public jalview.datamodel.AlignmentView getAlignmentView(
           boolean selectedOnly, boolean markGroups)
@@ -1168,14 +1135,7 @@ public abstract class AlignmentViewport implements AlignViewportI
             hasHiddenColumns, selectedOnly, markGroups);
   }
 
-  /**
-   * This method returns the visible alignment as text, as seen on the GUI, ie
-   * if columns are hidden they will not be returned in the result. Use this for
-   * calculating trees, PCA, redundancy etc on views which contain hidden
-   * columns.
-   * 
-   * @return String[]
-   */
+
   @Override
   public String[] getViewAsString(boolean selectedRegionOnly)
   {
@@ -1213,15 +1173,8 @@ public abstract class AlignmentViewport implements AlignViewportI
     return selection;
   }
 
-  /**
-   * return visible region boundaries within given column range
-   * 
-   * @param min
-   *          first column (inclusive, from 0)
-   * @param max
-   *          last column (exclusive)
-   * @return int[][] range of {start,end} visible positions
-   */
+
+  @Override
   public int[][] getVisibleRegionBoundaries(int min, int max)
   {
     Vector regions = new Vector();
@@ -1288,18 +1241,15 @@ public abstract class AlignmentViewport implements AlignViewportI
     return ala;
   }
 
-  /**
-   * @return the padGaps
-   */
+
+  @Override
   public boolean isPadGaps()
   {
     return padGaps;
   }
 
-  /**
-   * @param padGaps
-   *          the padGaps to set
-   */
+
+  @Override
   public void setPadGaps(boolean padGaps)
   {
     this.padGaps = padGaps;
@@ -1311,6 +1261,7 @@ public abstract class AlignmentViewport implements AlignViewportI
    * 
    * @param ap
    */
+  @Override
   public void alignmentChanged(AlignmentViewPanel ap)
   {
     if (isPadGaps())
@@ -1472,6 +1423,7 @@ public abstract class AlignmentViewport implements AlignViewportI
    * 
    * @see jalview.api.AlignViewportI#calcPanelHeight()
    */
+  @Override
   public int calcPanelHeight()
   {
     // setHeight of panels
@@ -1603,6 +1555,36 @@ public abstract class AlignmentViewport implements AlignViewportI
     }
     oldrfs.clear();
   }
+  /**
+   * show the reference sequence in the alignment view
+   */
+  private boolean displayReferenceSeq=false;
+  /**
+   * colour according to the reference sequence defined on the alignment
+   */
+  private boolean colourByReferenceSeq=false;
+
+  @Override
+  public boolean isDisplayReferenceSeq()
+  {
+    return alignment.hasSeqrep() && displayReferenceSeq;
+  }
+
+  @Override
+  public void setDisplayReferenceSeq(boolean displayReferenceSeq)
+  {
+    this.displayReferenceSeq = displayReferenceSeq;
+  }
+
+  public boolean isColourByReferenceSeq()
+  {
+    return alignment.hasSeqrep() && colourByReferenceSeq;
+  }
+
+  public void setColourByReferenceSeq(boolean colourByReferenceSeq)
+  {
+    this.colourByReferenceSeq = colourByReferenceSeq;
+  }
 
   @Override
   public Color getSequenceColour(SequenceI seq)
@@ -1670,11 +1652,13 @@ public abstract class AlignmentViewport implements AlignViewportI
     return featuresDisplayed;
   }
 
+  @Override
   public void setFeaturesDisplayed(FeaturesDisplayedI featuresDisplayedI)
   {
     featuresDisplayed = featuresDisplayedI;
   }
 
+  @Override
   public boolean areFeaturesDisplayed()
   {
     return featuresDisplayed != null && featuresDisplayed.getRegisterdFeaturesCount()>0;
@@ -1704,11 +1688,13 @@ public abstract class AlignmentViewport implements AlignViewportI
 
   boolean showSeqFeaturesHeight;
 
+  @Override
   public void setShowSequenceFeaturesHeight(boolean selected)
   {
     showSeqFeaturesHeight = selected;
   }
 
+  @Override
   public boolean isShowSequenceFeaturesHeight()
   {
     return showSeqFeaturesHeight;
@@ -1718,37 +1704,26 @@ public abstract class AlignmentViewport implements AlignViewportI
 
   private boolean rightAlignIds = false;
 
-  /**
-   * DOCUMENT ME!
-   * 
-   * @return DOCUMENT ME!
-   */
-  public boolean getShowAnnotation()
-  {
-    return isShowAnnotation();
-  }
 
-  /**
-   * DOCUMENT ME!
-   * 
-   * @param b
-   *          DOCUMENT ME!
-   */
+  @Override
   public void setShowAnnotation(boolean b)
   {
     showAnnotation = b;
   }
 
+  @Override
   public boolean isShowAnnotation()
   {
     return showAnnotation;
   }
 
+  @Override
   public boolean isRightAlignIds()
   {
     return rightAlignIds;
   }
 
+  @Override
   public void setRightAlignIds(boolean rightAlignIds)
   {
     this.rightAlignIds = rightAlignIds;
index 0268c35..1820182 100644 (file)
@@ -73,9 +73,8 @@ public class AnnotationFile extends InputType
     if (format.equals(JVANNOT))
     {
       return new StringBody(
-              new jalview.io.AnnotationFile().printAnnotations(
-                      al.getAlignmentAnnotation(), al.getGroups(),
-                      al.getProperties()));
+              new jalview.io.AnnotationFile()
+                      .printAnnotationsForAlignment(al));
     }
     else
     {
index 3f91710..40476a0 100644 (file)
@@ -12,7 +12,7 @@ import org.junit.Test;
 
 public class SequenceTest
 {
-  Sequence seq;
+  SequenceI seq;
 
   @Before
   public void setUp()
@@ -20,6 +20,21 @@ public class SequenceTest
     seq = new Sequence("FER1", "AKPNGVL");
   }
   @Test
+  public void testInsertGapsAndGapmaps()
+  {
+    SequenceI aseq = seq.deriveSequence();
+    aseq.insertCharAt(2, 3, '-');
+    aseq.insertCharAt(6, 3, '-');
+    assertEquals("Gap insertions not correct", "AK---P---NGVL",
+            aseq.getSequenceAsString());
+    List<int[]> gapInt = aseq.getInsertions();
+    assertEquals("Gap interval 1 start wrong", 2, gapInt.get(0)[0]);
+    assertEquals("Gap interval 1 end wrong", 4, gapInt.get(0)[1]);
+    assertEquals("Gap interval 2 start wrong", 6, gapInt.get(1)[0]);
+    assertEquals("Gap interval 2 end wrong", 8, gapInt.get(1)[1]);
+  }
+
+  @Test
   public void testGetAnnotation()
   {
     // initial state returns null not an empty array
@@ -94,7 +109,7 @@ public class SequenceTest
   @Test
   public void testAddAlignmentAnnotation()
   {
-    assertNull(seq.annotation);
+    assertNull(seq.getAnnotation());
     final AlignmentAnnotation annotation = new AlignmentAnnotation("a",
             "b", 2d);
     assertNull(annotation.sequenceRef);
index 18e008e..56e6cda 100644 (file)
@@ -24,8 +24,11 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.io.AnnotationFile.ViewDef;
 
 import java.io.File;
+import java.util.Hashtable;
 
 import org.junit.Test;
 
@@ -44,7 +47,9 @@ public class AnnotationFileIOTest
           "examples/uniref50.fa", "examples/testdata/uniref50_iupred.jva" },
       {
           "Test group only annotation file parsing results in parser indicating annotation was parsed",
-          "examples/uniref50.fa", "examples/testdata/test_grpannot.jva" } };
+          "examples/uniref50.fa", "examples/testdata/test_grpannot.jva" },
+      { "Test hiding/showing of insertions on sequence_ref",
+          "examples/uniref50.fa", "examples/testdata/uniref50_seqref.jva" } };
 
   @Test
   public void exampleAnnotationFileIO() throws Exception
@@ -102,17 +107,20 @@ public class AnnotationFileIOTest
     try
     {
       AlignmentI al = readAlignmentFile(f);
-
+      ColumnSelection cs = new ColumnSelection();
       assertTrue(
               "Test "
                       + testname
                       + "\nAlignment was not annotated - annotation file not imported.",
-              new AnnotationFile().readAnnotationFile(al, af,
+              new AnnotationFile().readAnnotationFile(al, cs, af,
                       FormatAdapter.FILE));
 
+      AnnotationFile aff = new AnnotationFile();
+      ViewDef v = aff.new ViewDef(null, al.getHiddenSequences(), cs,
+              new Hashtable());
       String anfileout = new AnnotationFile().printAnnotations(
               al.getAlignmentAnnotation(), al.getGroups(),
-              al.getProperties());
+              al.getProperties(), null, al, v);
       assertTrue(
               "Test "
                       + testname
index db7d505..1e47800 100644 (file)
  */
 package jalview.ws.jabaws;
 
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.List;
-
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.io.AnnotationFile;
@@ -34,6 +32,9 @@ import jalview.ws.jws2.AADisorderClient;
 import jalview.ws.jws2.Jws2Discoverer;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -124,9 +125,8 @@ public class DisorderAnnotExportImport
     {
       String aligfileout = new FormatAdapter().formatSequences("PFAM",
               al.getSequencesArray());
-      String anfileout = new AnnotationFile().printAnnotations(
-              al.getAlignmentAnnotation(), al.getGroups(),
-              al.getProperties());
+      String anfileout = new AnnotationFile()
+              .printAnnotationsForAlignment(al);
       assertTrue(
               "Test "
                       + testname
index f0b8f99..baf0654 100644 (file)
@@ -33,7 +33,6 @@ import jalview.ws.jws2.JabaParamStore;
 import jalview.ws.jws2.Jws2Discoverer;
 import jalview.ws.jws2.SequenceAnnotationWSClient;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
-import jalview.ws.params.ArgumentI;
 import jalview.ws.params.AutoCalcSetting;
 
 import java.awt.Component;
@@ -81,7 +80,9 @@ public class JpredJabaStructExportImport
     System.out.println("State of jpredws: " + jpredws);
 
     if (jpredws == null)
+    {
       System.exit(0);
+    }
 
     jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
 
@@ -186,9 +187,8 @@ public class JpredJabaStructExportImport
       String aligfileout = new FormatAdapter().formatSequences("PFAM",
               al.getSequencesArray());
 
-      String anfileout = new AnnotationFile().printAnnotations(
-              al.getAlignmentAnnotation(), al.getGroups(),
-              al.getProperties());
+      String anfileout = new AnnotationFile()
+              .printAnnotationsForAlignment(al);
       assertTrue(
               "Test "
                       + testname
index 9a723ca..90997b1 100644 (file)
  */
 package jalview.ws.jabaws;
 
-import static org.junit.Assert.*;
-
-import java.awt.Component;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Vector;
-
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-
-import jalview.api.AlignCalcManagerI;
-import jalview.datamodel.AlignmentAnnotation;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import jalview.datamodel.AlignmentI;
-import jalview.datamodel.Annotation;
 import jalview.gui.Jalview2XML;
 import jalview.io.AnnotationFile;
 import jalview.io.FormatAdapter;
 import jalview.io.StockholmFileTest;
-import jalview.ws.jws2.AADisorderClient;
 import jalview.ws.jws2.Jws2Discoverer;
 import jalview.ws.jws2.RNAalifoldClient;
 import jalview.ws.jws2.SequenceAnnotationWSClient;
-import jalview.ws.jws2.dm.JabaOption;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.AutoCalcSetting;
 
+import java.awt.Component;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -84,7 +78,9 @@ public class RNAStructExportImport
     System.out.println("State of rnaalifoldws: " + rnaalifoldws);
 
     if (rnaalifoldws == null)
+    {
       System.exit(0);
+    }
 
     jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
 
@@ -137,9 +133,8 @@ public class RNAStructExportImport
       String aligfileout = new FormatAdapter().formatSequences("PFAM",
               al.getSequencesArray());
 
-      String anfileout = new AnnotationFile().printAnnotations(
-              al.getAlignmentAnnotation(), al.getGroups(),
-              al.getProperties());
+      String anfileout = new AnnotationFile()
+              .printAnnotationsForAlignment(al);
       assertTrue(
               "Test "
                       + testname