JAL-1551 spotless
authorJim Procter <jprocter@dundee.ac.uk>
Thu, 15 Aug 2024 07:47:12 +0000 (08:47 +0100)
committerJim Procter <jprocter@dundee.ac.uk>
Thu, 15 Aug 2024 07:47:12 +0000 (08:47 +0100)
113 files changed:
src/jalview/analysis/AAFrequency.java
src/jalview/analysis/AlignSeq.java
src/jalview/analysis/AlignmentAnnotationUtils.java
src/jalview/analysis/AlignmentUtils.java
src/jalview/analysis/ConnectivityException.java
src/jalview/analysis/Finder.java
src/jalview/analysis/PaSiMap.java
src/jalview/analysis/TreeBuilder.java
src/jalview/analysis/TreeModel.java
src/jalview/analysis/ccAnalysis.java
src/jalview/analysis/scoremodels/DistanceScoreModel.java
src/jalview/analysis/scoremodels/FeatureDistanceModel.java
src/jalview/analysis/scoremodels/ScoreModels.java
src/jalview/analysis/scoremodels/SecondaryStructureDistanceModel.java
src/jalview/analysis/scoremodels/SimilarityParams.java
src/jalview/api/AlignViewControllerI.java
src/jalview/api/AlignViewportI.java
src/jalview/api/ViewStyleI.java
src/jalview/api/analysis/ScoreModelI.java
src/jalview/api/analysis/SimilarityParamsI.java
src/jalview/appletgui/AlignFrame.java
src/jalview/bin/Cache.java
src/jalview/bin/JalviewLite.java
src/jalview/commands/JustifyLeftOrRightCommand.java
src/jalview/controller/AlignViewController.java
src/jalview/datamodel/Alignment.java
src/jalview/datamodel/AlignmentAnnotation.java
src/jalview/datamodel/BinaryNode.java
src/jalview/datamodel/PDBEntry.java
src/jalview/datamodel/Profile.java
src/jalview/datamodel/ProfileI.java
src/jalview/datamodel/SecondaryStructureCount.java
src/jalview/datamodel/SequenceGroup.java
src/jalview/ext/jmol/JalviewJmolBinding.java
src/jalview/gui/AlignFrame.java
src/jalview/gui/AlignViewport.java
src/jalview/gui/AnnotationLabels.java
src/jalview/gui/AppJmol.java
src/jalview/gui/CalculationChooser.java
src/jalview/gui/CutAndPasteTransfer.java
src/jalview/gui/Desktop.java
src/jalview/gui/FontChooser.java
src/jalview/gui/PCAPanel.java
src/jalview/gui/PaSiMapPanel.java
src/jalview/gui/PairwiseAlignPanel.java
src/jalview/gui/PopupMenu.java
src/jalview/gui/ProgressBar.java
src/jalview/gui/RotatableCanvas.java
src/jalview/gui/SeqPanel.java
src/jalview/gui/SliderPanel.java
src/jalview/gui/StructureChooser.java
src/jalview/gui/TreeCanvas.java
src/jalview/gui/TreePanel.java
src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java
src/jalview/io/AnnotationFile.java
src/jalview/jbgui/GAlignFrame.java
src/jalview/jbgui/GCutAndPasteTransfer.java
src/jalview/jbgui/GPCAPanel.java
src/jalview/jbgui/GPaSiMapPanel.java
src/jalview/jbgui/GPreferences.java
src/jalview/math/Matrix.java
src/jalview/math/MatrixI.java
src/jalview/math/MiscMath.java
src/jalview/project/Jalview2XML.java
src/jalview/renderer/AnnotationRenderer.java
src/jalview/renderer/ResidueShader.java
src/jalview/renderer/ResidueShaderI.java
src/jalview/schemes/ClustalxColourScheme.java
src/jalview/schemes/ResidueProperties.java
src/jalview/structure/StructureSelectionManager.java
src/jalview/util/Constants.java
src/jalview/viewmodel/AlignmentViewport.java
src/jalview/viewmodel/PaSiMapModel.java
src/jalview/viewmodel/styles/ViewStyle.java
src/jalview/workers/SecondaryStructureConsensusThread.java
src/jalview/xml/binding/jalview/AlcodonFrame.java
src/jalview/xml/binding/jalview/Annotation.java
src/jalview/xml/binding/jalview/AnnotationColourScheme.java
src/jalview/xml/binding/jalview/AnnotationElement.java
src/jalview/xml/binding/jalview/DoubleMatrix.java
src/jalview/xml/binding/jalview/DoubleVector.java
src/jalview/xml/binding/jalview/Feature.java
src/jalview/xml/binding/jalview/FeatureMatcher.java
src/jalview/xml/binding/jalview/FeatureMatcherSet.java
src/jalview/xml/binding/jalview/FilterBy.java
src/jalview/xml/binding/jalview/JalviewModel.java
src/jalview/xml/binding/jalview/JalviewUserColours.java
src/jalview/xml/binding/jalview/MapListType.java
src/jalview/xml/binding/jalview/MapOnAMatrixType.java
src/jalview/xml/binding/jalview/Mapping.java
src/jalview/xml/binding/jalview/MatrixType.java
src/jalview/xml/binding/jalview/NoValueColour.java
src/jalview/xml/binding/jalview/ObjectFactory.java
src/jalview/xml/binding/jalview/PcaDataType.java
src/jalview/xml/binding/jalview/Pdbentry.java
src/jalview/xml/binding/jalview/Property.java
src/jalview/xml/binding/jalview/Sequence.java
src/jalview/xml/binding/jalview/SequenceSet.java
src/jalview/xml/binding/jalview/SequenceType.java
src/jalview/xml/binding/jalview/ThresholdType.java
src/jalview/xml/binding/jalview/VAMSAS.java
src/jalview/xml/binding/jalview/WebServiceParameterSet.java
src/jalview/xml/binding/jalview/package-info.java
test/jalview/analysis/AlignSeqTest.java
test/jalview/analysis/AlignmentUtilsTests.java
test/jalview/analysis/scoremodels/ScoreModelsTest.java
test/jalview/analysis/scoremodels/SecondaryStructureDistanceModelTest.java
test/jalview/commands/EditCommandTest.java
test/jalview/gui/AssociatePDBFileTest.java
test/jalview/gui/CalculationChooserTest.java
test/jalview/project/Jalview2xmlTests.java
test/jalview/renderer/ResidueShaderTest.java
test/jalview/schemes/ClustalxColourSchemeTest.java

index 7278a80..ca619f9 100755 (executable)
@@ -192,13 +192,12 @@ public class AAFrequency
     // jalview.bin.Console.outPrintln(elapsed);
   }
 
-  
   public static final ProfilesI calculateSS(List<SequenceI> list, int start,
           int end, String source)
   {
     return calculateSS(list, start, end, false, source);
   }
-  
+
   public static final ProfilesI calculateSS(List<SequenceI> sequences,
           int start, int end, boolean profile, String source)
   {
@@ -220,28 +219,29 @@ public class AAFrequency
       {
         end = width;
       }
-      
 
-      ProfilesI reply = calculateSS(seqs, width, start, end, profile, source);
+      ProfilesI reply = calculateSS(seqs, width, start, end, profile,
+              source);
       return reply;
     }
   }
-  
+
   public static final ProfilesI calculateSS(final SequenceI[] sequences,
-          int width, int start, int end, boolean saveFullProfile, String source)
+          int width, int start, int end, boolean saveFullProfile,
+          String source)
   {
 
     int seqCount = sequences.length;
-    
+
     int seqWithSSCount = 0;
-    
+
     ProfileI[] result = new ProfileI[width];
 
     for (int column = start; column < end; column++)
     {
-      
+
       int ssCount = 0;
-    
+
       SecondaryStructureCount ssCounts = new SecondaryStructureCount();
 
       for (int row = 0; row < seqCount; row++)
@@ -252,29 +252,36 @@ public class AAFrequency
                   "WARNING: Consensus skipping null sequence - possible race condition.");
           continue;
         }
-        
+
         char c = sequences[row].getCharAt(column);
-        List<AlignmentAnnotation> annots = AlignmentUtils.getAlignmentAnnotationForSource(sequences[row], source);
-        if(annots!=null) {
+        List<AlignmentAnnotation> annots = AlignmentUtils
+                .getAlignmentAnnotationForSource(sequences[row], source);
+        if (annots != null)
+        {
           seqWithSSCount++;
-          for(AlignmentAnnotation aa:annots) {
-            if(aa!=null) {
+          for (AlignmentAnnotation aa : annots)
+          {
+            if (aa != null)
+            {
               ssCount++;
             }
-            
-            if (sequences[row].getLength() > column && !Comparison.isGap(c) && aa !=null)
+
+            if (sequences[row].getLength() > column && !Comparison.isGap(c)
+                    && aa != null)
             {
-              
+
               int seqPosition = sequences[row].findPosition(column);
-              
-              char ss = AlignmentUtils.findSSAnnotationForGivenSeqposition(
-                      aa, seqPosition); 
-              if(ss == '*') {
+
+              char ss = AlignmentUtils
+                      .findSSAnnotationForGivenSeqposition(aa, seqPosition);
+              if (ss == '*')
+              {
                 continue;
-              }        
-              ssCounts.add(ss);                    
+              }
+              ssCounts.add(ss);
             }
-            else if(Comparison.isGap(c) && aa!=null) {
+            else if (Comparison.isGap(c) && aa != null)
+            {
               ssCounts.addGap();
             }
           }
@@ -284,9 +291,8 @@ public class AAFrequency
       int maxSSCount = ssCounts.getModalCount();
       String maxSS = ssCounts.getSSForCount(maxSSCount);
       int gapCount = ssCounts.getGapCount();
-      ProfileI profile = new Profile(maxSS, ssCount, gapCount, 
-              maxSSCount, seqWithSSCount);
-
+      ProfileI profile = new Profile(maxSS, ssCount, gapCount, maxSSCount,
+              seqWithSSCount);
 
       if (saveFullProfile)
       {
@@ -394,67 +400,67 @@ public class AAFrequency
     // long elapsed = System.currentTimeMillis() - now;
     // jalview.bin.Console.outPrintln(-elapsed);
   }
-  
- public static void completeSSConsensus(AlignmentAnnotation ssConsensus,
-         ProfilesI profiles, int startCol, int endCol, boolean ignoreGaps,
-         boolean showSequenceLogo, long nseq)
- {
-   // long now = System.currentTimeMillis();
-   if (ssConsensus == null || ssConsensus.annotations == null
-           || ssConsensus.annotations.length < endCol)
-   {
-     /*
+
+  public static void completeSSConsensus(AlignmentAnnotation ssConsensus,
+          ProfilesI profiles, int startCol, int endCol, boolean ignoreGaps,
+          boolean showSequenceLogo, long nseq)
+  {
+    // long now = System.currentTimeMillis();
+    if (ssConsensus == null || ssConsensus.annotations == null
+            || ssConsensus.annotations.length < endCol)
+    {
+      /*
       * called with a bad alignment annotation row 
       * wait for it to be initialised properly
       */
-     return;
-   }
-
-   for (int i = startCol; i < endCol; i++)
-   {
-     ProfileI profile = profiles.get(i);
-     if (profile == null)
-     {
-       /*
+      return;
+    }
+
+    for (int i = startCol; i < endCol; i++)
+    {
+      ProfileI profile = profiles.get(i);
+      if (profile == null)
+      {
+        /*
         * happens if sequences calculated over were 
         * shorter than alignment width
         */
-       ssConsensus.annotations[i] = null;
-       return;
-     }
-     
-     if(ssConsensus.getNoOfSequencesIncluded()<0) {
-       ssConsensus.setNoOfSequencesIncluded(profile.getSeqWithSSCount());
-     }
-     
-     final int dp = getPercentageDp(nseq);
-
-     float value = profile.getSSPercentageIdentity(ignoreGaps);
-
-     String description = getSSTooltip(profile, value, showSequenceLogo,
-             ignoreGaps, dp);
-
-     String modalSS = profile.getModalSS();
-     if ("".equals(modalSS))
-     {
-       modalSS = "-";
-     }
-     else if (modalSS.length() > 1)
-     {
-       modalSS = "+";
-     }
-     ssConsensus.annotations[i] = new Annotation(modalSS, description,
-             ' ', value);
-   }
-   
-   //Hide consensus with no data to display
-   if(ssConsensus.getNoOfSequencesIncluded()<1)
-     ssConsensus.visible = false;
-
-   // long elapsed = System.currentTimeMillis() - now;
-   // jalview.bin.Console.outPrintln(-elapsed);
- }
+        ssConsensus.annotations[i] = null;
+        return;
+      }
+
+      if (ssConsensus.getNoOfSequencesIncluded() < 0)
+      {
+        ssConsensus.setNoOfSequencesIncluded(profile.getSeqWithSSCount());
+      }
+
+      final int dp = getPercentageDp(nseq);
+
+      float value = profile.getSSPercentageIdentity(ignoreGaps);
+
+      String description = getSSTooltip(profile, value, showSequenceLogo,
+              ignoreGaps, dp);
+
+      String modalSS = profile.getModalSS();
+      if ("".equals(modalSS))
+      {
+        modalSS = "-";
+      }
+      else if (modalSS.length() > 1)
+      {
+        modalSS = "+";
+      }
+      ssConsensus.annotations[i] = new Annotation(modalSS, description, ' ',
+              value);
+    }
+
+    // Hide consensus with no data to display
+    if (ssConsensus.getNoOfSequencesIncluded() < 1)
+      ssConsensus.visible = false;
+
+    // long elapsed = System.currentTimeMillis() - now;
+    // jalview.bin.Console.outPrintln(-elapsed);
+  }
 
   /**
    * Derive the gap count annotation row.
@@ -560,7 +566,7 @@ public class AAFrequency
     }
     return description;
   }
-  
+
   static String getSSTooltip(ProfileI profile, float pid,
           boolean showSequenceLogo, boolean ignoreGaps, int dp)
   {
@@ -616,27 +622,28 @@ public class AAFrequency
   {
     char[] symbols;
     int[] values;
-    
+
     if (profile.getCounts() != null)
     {
       ResidueCount counts = profile.getCounts();
       SymbolCounts symbolCounts = counts.getSymbolCounts();
       symbols = symbolCounts.symbols;
       values = symbolCounts.values;
-      
+
     }
-    else if(profile.getSSCounts() != null) 
+    else if (profile.getSSCounts() != null)
     {
       SecondaryStructureCount counts = profile.getSSCounts();
       // to do
-      SecondaryStructureCount.SymbolCounts symbolCounts = counts.getSymbolCounts();
+      SecondaryStructureCount.SymbolCounts symbolCounts = counts
+              .getSymbolCounts();
       symbols = symbolCounts.symbols;
       values = symbolCounts.values;
     }
-    else {
+    else
+    {
       return null;
     }
-    
 
     QuickSort.sort(values, symbols);
     int totalPercentage = 0;
index e806d2b..1a12681 100755 (executable)
@@ -58,10 +58,10 @@ public class AlignSeq
   private static final int DEFAULT_OPENCOST = 120;
 
   private static final int DEFAULT_EXTENDCOST = 20;
-  
-  private int GAP_OPEN_COST=DEFAULT_OPENCOST;
 
-  private int GAP_EXTEND_COST=DEFAULT_EXTENDCOST;
+  private int GAP_OPEN_COST = DEFAULT_OPENCOST;
+
+  private int GAP_EXTEND_COST = DEFAULT_EXTENDCOST;
 
   private static final int GAP_INDEX = -1;
 
@@ -100,11 +100,11 @@ public class AlignSeq
   int[] aseq1;
 
   int[] aseq2;
-  
+
   /*
    * matches in alignment
    */
-  int match=-1;
+  int match = -1;
 
   public String astr1 = "";
 
@@ -129,9 +129,9 @@ public class AlignSeq
 
   public float maxscore;
 
-  public float meanScore;      //needed for PaSiMap
+  public float meanScore; // needed for PaSiMap
 
-  public int hypotheticMaxScore;       // needed for PaSiMap
+  public int hypotheticMaxScore; // needed for PaSiMap
 
   int prev = 0;
 
@@ -156,6 +156,7 @@ public class AlignSeq
     GAP_OPEN_COST = opencost;
     GAP_EXTEND_COST = extcost;
   }
+
   public AlignSeq(SequenceI s1, SequenceI s2, String type)
   {
     seqInit(s1, s1.getSequenceAsString(), s2, s2.getSequenceAsString(),
@@ -182,18 +183,18 @@ public class AlignSeq
   public AlignSeq(SequenceI s1, SequenceI s2, String type, int opencost,
           int extcost)
   {
-    this(s1,s2,type);
-    GAP_OPEN_COST=opencost;
-    GAP_EXTEND_COST=extcost;
+    this(s1, s2, type);
+    GAP_OPEN_COST = opencost;
+    GAP_EXTEND_COST = extcost;
   }
 
   public AlignSeq(SequenceI s12, String string1, SequenceI s22,
           String string2, String type2, int defaultOpencost,
           int defaultExtendcost)
   {
-    this(s12,string1,s22,string2,type2);
-    GAP_OPEN_COST=defaultOpencost;
-    GAP_EXTEND_COST=defaultExtendcost;
+    this(s12, string1, s22, string2, type2);
+    GAP_OPEN_COST = defaultOpencost;
+    GAP_EXTEND_COST = defaultExtendcost;
   }
 
   /**
@@ -207,10 +208,10 @@ public class AlignSeq
   }
 
   /**
-  * returns the overall score of the alignment
-  *
-  * @return
-  */
+   * returns the overall score of the alignment
+   *
+   * @return
+   */
   public float getAlignmentScore()
   {
     return alignmentScore;
@@ -333,27 +334,31 @@ public class AlignSeq
             s2.getDatasetSequence() == null ? s2 : s2.getDatasetSequence());
     return alSeq2;
   }
+
   /**
    * fraction of seq2 matched in the alignment
+   * 
    * @return NaN or [0..1]
    */
   public double getS2Coverage()
   {
-    if (match>=0)
+    if (match >= 0)
     {
-      return ((double)match)/((double)s2.getEnd()-s2.getStart()+1);
+      return ((double) match) / ((double) s2.getEnd() - s2.getStart() + 1);
     }
     return Double.NaN;
   }
+
   /**
    * fraction of seq1 matched in the alignment
+   * 
    * @return NaN or [0..1]
    */
   public double getS1Coverage()
   {
-    if (match>=0)
+    if (match >= 0)
     {
-      return ((double)match)/((double)s1.getEnd()-s1.getStart()+1);
+      return ((double) match) / ((double) s1.getEnd() - s1.getStart() + 1);
     }
     return Double.NaN;
   }
@@ -375,13 +380,14 @@ public class AlignSeq
   public void seqInit(SequenceI s1, String string1, SequenceI s2,
           String string2, String type)
   {
-    seqInit(s1,string1,s2,string2,type,GAP_OPEN_COST,GAP_EXTEND_COST);
+    seqInit(s1, string1, s2, string2, type, GAP_OPEN_COST, GAP_EXTEND_COST);
   }
+
   public void seqInit(SequenceI s1, String string1, SequenceI s2,
-          String string2, String type, int opening,int extension)
+          String string2, String type, int opening, int extension)
   {
-    GAP_OPEN_COST=opening;
-    GAP_EXTEND_COST=extension;
+    GAP_OPEN_COST = opening;
+    GAP_EXTEND_COST = extension;
     this.s1 = s1;
     this.s2 = s2;
     setDefaultParams(type);
@@ -473,13 +479,12 @@ public class AlignSeq
 
     aseq1 = new int[seq1.length + seq2.length];
     aseq2 = new int[seq1.length + seq2.length];
-    match=0;
+    match = 0;
     StringBuilder sb1 = new StringBuilder(aseq1.length);
     StringBuilder sb2 = new StringBuilder(aseq2.length);
 
     count = (seq1.length + seq2.length) - 1;
 
-
     while (i > 0 && j > 0)
     {
       aseq1[count] = seq1[i];
@@ -523,12 +528,12 @@ public class AlignSeq
     {
       aseq2[count] = seq2[j];
       sb2.append(s2str.charAt(j));
-      if (aseq1[count]!=GAP_INDEX) {
+      if (aseq1[count] != GAP_INDEX)
+      {
         match++;
       }
     }
 
-
     /*
      * we built the character strings backwards, so now
      * reverse them to convert to sequence strings
@@ -570,7 +575,7 @@ public class AlignSeq
     int trace;
     maxscore = score[i][j] / 10f;
 
-    //prepare trailing gaps
+    // prepare trailing gaps
     while ((i < seq1.length - 1) || (j < seq2.length - 1))
     {
       i++;
@@ -587,20 +592,22 @@ public class AlignSeq
 
     count = (seq1.length + seq2.length) - 1;
 
-    //get trailing gaps
+    // get trailing gaps
     while ((i >= seq1.length) || (j >= seq2.length))
     {
       if (i >= seq1.length)
       {
-       aseq1[count] = GAP_INDEX;
-       sb1.append("-");
-       aseq2[count] = seq2[j];
-       sb2.append(s2str.charAt(j));
-      } else if (j >= seq2.length) {
-       aseq1[count] = seq1[i];
-       sb1.append(s1str.charAt(i));
-       aseq2[count] = GAP_INDEX;
-       sb2.append("-");
+        aseq1[count] = GAP_INDEX;
+        sb1.append("-");
+        aseq2[count] = seq2[j];
+        sb2.append(s2str.charAt(j));
+      }
+      else if (j >= seq2.length)
+      {
+        aseq1[count] = seq1[i];
+        sb1.append(s1str.charAt(i));
+        aseq2[count] = GAP_INDEX;
+        sb2.append("-");
       }
       i--;
       j--;
@@ -644,18 +651,20 @@ public class AlignSeq
     aseq2[count] = seq2[j];
     sb2.append(s2str.charAt(j));
 
-    //get initial gaps
+    // get initial gaps
     while (j > 0 || i > 0)
     {
       if (j > 0)
       {
-       j--;
-       sb1.append("-");
-       sb2.append(s2str.charAt(j));
-      } else if (i > 0) {
-       i--;
-       sb1.append(s1str.charAt(i));
-       sb2.append("-");
+        j--;
+        sb1.append("-");
+        sb2.append(s2str.charAt(j));
+      }
+      else if (i > 0)
+      {
+        i--;
+        sb1.append(s1str.charAt(i));
+        sb2.append("-");
       }
     }
 
@@ -853,7 +862,7 @@ public class AlignSeq
   {
     int n = seq1.length;
     int m = seq2.length;
-    final int GAP_EX_COST=GAP_EXTEND_COST;
+    final int GAP_EX_COST = GAP_EXTEND_COST;
     final int GAP_OP_COST = GAP_OPEN_COST;
     // top left hand element
     score[0][0] = scoreMatrix.getPairwiseScore(s1str.charAt(0),
@@ -871,8 +880,7 @@ public class AlignSeq
 
       float pairwiseScore = scoreMatrix.getPairwiseScore(s1str.charAt(0),
               s2str.charAt(j));
-      score[0][j] = max(pairwiseScore * 10, -GAP_OP_COST,
-              -GAP_EX_COST);
+      score[0][j] = max(pairwiseScore * 10, -GAP_OP_COST, -GAP_EX_COST);
 
       traceback[0][j] = 1;
     }
@@ -1076,13 +1084,15 @@ public class AlignSeq
   public static AlignSeq doGlobalNWAlignment(SequenceI s1, SequenceI s2,
           String type)
   {
-    return doGlobalNWAlignment(s1, s2, type, DEFAULT_OPENCOST,DEFAULT_EXTENDCOST);
+    return doGlobalNWAlignment(s1, s2, type, DEFAULT_OPENCOST,
+            DEFAULT_EXTENDCOST);
   }
+
   public static AlignSeq doGlobalNWAlignment(SequenceI s1, SequenceI s2,
-          String type, int opencost,int extcost)
+          String type, int opencost, int extcost)
   {
-  
-    AlignSeq as = new AlignSeq(s1, s2, type,opencost,extcost);
+
+    AlignSeq as = new AlignSeq(s1, s2, type, opencost, extcost);
 
     as.calcScoreMatrix();
     as.traceAlignment();
@@ -1359,42 +1369,45 @@ public class AlignSeq
   }
 
   /**
-  * calculate the mean score of the alignment
-  * mean score is equal to the score of an alignmenet of two sequences with randomly shuffled AA sequence composited of the same AA as the two original sequences
-  *
-  */
+   * calculate the mean score of the alignment mean score is equal to the score
+   * of an alignmenet of two sequences with randomly shuffled AA sequence
+   * composited of the same AA as the two original sequences
+   *
+   */
   public void meanScore()
   {
-    int length = indelfreeAstr1.length();      //both have the same length
-    //create HashMap for counting residues in each sequence
+    int length = indelfreeAstr1.length(); // both have the same length
+    // create HashMap for counting residues in each sequence
     HashMap<Character, Integer> seq1ResCount = new HashMap<Character, Integer>();
     HashMap<Character, Integer> seq2ResCount = new HashMap<Character, Integer>();
 
-    // for both sequences (String indelfreeAstr1 or 2) create a key for the residue and add 1 each time its encountered
-    for (char residue: indelfreeAstr1.toCharArray())
+    // for both sequences (String indelfreeAstr1 or 2) create a key for the
+    // residue and add 1 each time its encountered
+    for (char residue : indelfreeAstr1.toCharArray())
     {
       seq1ResCount.putIfAbsent(residue, 0);
       seq1ResCount.replace(residue, seq1ResCount.get(residue) + 1);
     }
-    for (char residue: indelfreeAstr2.toCharArray())
+    for (char residue : indelfreeAstr2.toCharArray())
     {
       seq2ResCount.putIfAbsent(residue, 0);
       seq2ResCount.replace(residue, seq2ResCount.get(residue) + 1);
     }
 
-    // meanscore = for each residue pair get the number of appearance and add (countA * countB * pairwiseScore(AB))
+    // meanscore = for each residue pair get the number of appearance and add
+    // (countA * countB * pairwiseScore(AB))
     // divide the meanscore by the sequence length afterwards
     float _meanscore = 0;
     for (char resA : seq1ResCount.keySet())
     {
       for (char resB : seq2ResCount.keySet())
       {
-       int countA = seq1ResCount.get(resA);
-       int countB = seq2ResCount.get(resB);
+        int countA = seq1ResCount.get(resA);
+        int countB = seq2ResCount.get(resB);
 
         float scoreAB = scoreMatrix.getPairwiseScore(resA, resB);
 
-       _meanscore += countA *  countB * scoreAB;
+        _meanscore += countA * countB * scoreAB;
       }
     }
     _meanscore /= length;
@@ -1407,21 +1420,23 @@ public class AlignSeq
   }
 
   /**
-  * calculate the hypothetic max score using the self-alignment of the sequences
-  */
+   * calculate the hypothetic max score using the self-alignment of the
+   * sequences
+   */
   public void hypotheticMaxScore()
   {
     int _hmsA = 0;
     int _hmsB = 0;
-    for (char residue: indelfreeAstr1.toCharArray())
+    for (char residue : indelfreeAstr1.toCharArray())
     {
       _hmsA += scoreMatrix.getPairwiseScore(residue, residue);
     }
-    for (char residue: indelfreeAstr2.toCharArray())
+    for (char residue : indelfreeAstr2.toCharArray())
     {
       _hmsB += scoreMatrix.getPairwiseScore(residue, residue);
     }
-    this.hypotheticMaxScore = (_hmsA < _hmsB) ? _hmsA : _hmsB; // take the lower self alignment
+    this.hypotheticMaxScore = (_hmsA < _hmsB) ? _hmsA : _hmsB; // take the lower
+                                                               // self alignment
 
   }
 
@@ -1431,27 +1446,30 @@ public class AlignSeq
   }
 
   /**
-  * create strings based of astr1 and astr2 but without gaps
-  */
+   * create strings based of astr1 and astr2 but without gaps
+   */
   public void getIndelfreeAstr()
   {
-    int n = astr1.length();    // both have the same length
+    int n = astr1.length(); // both have the same length
     for (int i = 0; i < n; i++)
     {
-      if (Character.isLetter(astr1.charAt(i)) && Character.isLetter(astr2.charAt(i)))  // if both sequences dont have a gap -> add to indelfreeAstr
+      if (Character.isLetter(astr1.charAt(i))
+              && Character.isLetter(astr2.charAt(i))) // if both sequences dont
+                                                      // have a gap -> add to
+                                                      // indelfreeAstr
       {
-       this.indelfreeAstr1 += astr1.charAt(i);
-       this.indelfreeAstr2 += astr2.charAt(i);
+        this.indelfreeAstr1 += astr1.charAt(i);
+        this.indelfreeAstr2 += astr2.charAt(i);
       }
     }
   }
 
   /**
-  * calculates the overall score of the alignment
-  * preprescore = sum of all scores - all penalties
-  * if preprescore < 1 ~ alignmentScore = Float.NaN    >
-  * alignmentScore = ((preprescore - meanScore) / (hypotheticMaxScore - meanScore)) * coverage
-  */
+   * calculates the overall score of the alignment preprescore = sum of all
+   * scores - all penalties if preprescore < 1 ~ alignmentScore = Float.NaN >
+   * alignmentScore = ((preprescore - meanScore) / (hypotheticMaxScore -
+   * meanScore)) * coverage
+   */
   public void scoreAlignment()
   {
 
@@ -1475,36 +1493,51 @@ public class AlignSeq
       char char2 = indelfreeAstr2.charAt(i);
       boolean aIsLetter = Character.isLetter(char1);
       boolean bIsLetter = Character.isLetter(char2);
-      if (aIsLetter && bIsLetter)      // if pair -> get score
+      if (aIsLetter && bIsLetter) // if pair -> get score
       {
         score += scoreMatrix.getPairwiseScore(char1, char2);
-      } else if (!aIsLetter && !bIsLetter) {   // both are gap -> skip
-      } else if ((!aIsLetter && aGapOpen) || (!bIsLetter && bGapOpen)) {       // one side gapopen -> score - gap_extend
-       score -= GAP_EXTEND_COST;
-      } else {         // no gap open -> score - gap_open
-       score -= GAP_OPEN_COST;
+      }
+      else if (!aIsLetter && !bIsLetter)
+      { // both are gap -> skip
+      }
+      else if ((!aIsLetter && aGapOpen) || (!bIsLetter && bGapOpen))
+      { // one side gapopen -> score - gap_extend
+        score -= GAP_EXTEND_COST;
+      }
+      else
+      { // no gap open -> score - gap_open
+        score -= GAP_OPEN_COST;
       }
       // adjust GapOpen status in both sequences
       aGapOpen = (!aIsLetter) ? true : false;
       bGapOpen = (!bIsLetter) ? true : false;
     }
 
-    float preprescore = score; // if this score < 1 --> alignment score = Float.NaN
-    score = (score - this.meanScore) / (this.hypotheticMaxScore - this.meanScore);
-    int[] _max = MiscMath.findMax(new int[]{astr1.replace("-","").length(), astr2.replace("-","").length()});  // {index of max, max}
-    float coverage = (float) n / (float) _max[1];      // indelfreeAstr length / longest sequence length
-    float prescore = score;    // only debug
+    float preprescore = score; // if this score < 1 --> alignment score =
+                               // Float.NaN
+    score = (score - this.meanScore)
+            / (this.hypotheticMaxScore - this.meanScore);
+    int[] _max = MiscMath
+            .findMax(new int[]
+            { astr1.replace("-", "").length(),
+                astr2.replace("-", "").length() }); // {index of max, max}
+    float coverage = (float) n / (float) _max[1]; // indelfreeAstr length /
+                                                  // longest sequence length
+    float prescore = score; // only debug
     score *= coverage;
 
-    //System.out.println(String.format("prepre-score: %f, pre-score: %f, longlength: %d\nscore: %1.16f, mean: %f, max: %d", preprescore, prescore, _max[1], score, this.meanScore, this.hypotheticMaxScore));
+    // System.out.println(String.format("prepre-score: %f, pre-score: %f,
+    // longlength: %d\nscore: %1.16f, mean: %f, max: %d", preprescore, prescore,
+    // _max[1], score, this.meanScore, this.hypotheticMaxScore));
     float minScore = 0f;
     this.alignmentScore = (score <= minScore) ? Float.NaN : score;
   }
 
   public void setScoreMatrix(ScoreMatrix sm)
   {
-       if (sm != null) {
-               scoreMatrix = sm;
-       }
+    if (sm != null)
+    {
+      scoreMatrix = sm;
+    }
   }
 }
index cf2f5bb..15514ef 100644 (file)
@@ -273,8 +273,7 @@ public class AlignmentAnnotationUtils
       });
     }
   }
-  
-  
+
   /**
    * Returns a BitSet (possibly empty) of those graphGroups for line graph
    * annotations, which have at least one member annotation row marked visible.
index f5927ab..31670fd 100644 (file)
@@ -84,7 +84,7 @@ public class AlignmentUtils
 {
   private static final int CODON_LENGTH = 3;
 
-  private static final String SEQUENCE_VARIANT = "sequence_variant:"; 
+  private static final String SEQUENCE_VARIANT = "sequence_variant:";
 
   /*
    * the 'id' attribute is provided for variant features fetched from
@@ -1542,13 +1542,15 @@ public class AlignmentUtils
       }
     }
   }
-  
-  
-  public static boolean isSSAnnotationPresent( Map<SequenceI, List<AlignmentAnnotation>> annotations) {
-    
+
+  public static boolean isSSAnnotationPresent(
+          Map<SequenceI, List<AlignmentAnnotation>> annotations)
+  {
+
     for (SequenceI seq : annotations.keySet())
     {
-      if(isSecondaryStructurePresent(annotations.get(seq).toArray(new AlignmentAnnotation[0])))
+      if (isSecondaryStructurePresent(
+              annotations.get(seq).toArray(new AlignmentAnnotation[0])))
       {
         return true;
       }
@@ -1645,7 +1647,7 @@ public class AlignmentUtils
       }
     }
   }
-  
+
   /**
    * Shows or hides auto calculated annotations for a sequence group.
    *
@@ -1689,8 +1691,7 @@ public class AlignmentUtils
       }
     }
   }
-  
-  
+
   public static AlignmentAnnotation getFirstSequenceAnnotationOfType(
           AlignmentI al, int graphType)
   {
@@ -2898,8 +2899,9 @@ public class AlignmentUtils
     }
     return true;
   }
-    
-  public static boolean isSecondaryStructurePresent(AlignmentAnnotation[] annotations)
+
+  public static boolean isSecondaryStructurePresent(
+          AlignmentAnnotation[] annotations)
   {
     boolean ssPresent = false;
 
@@ -2920,7 +2922,7 @@ public class AlignmentUtils
     return ssPresent;
 
   }
-  
+
   public static Color getSecondaryStructureAnnotationColour(char symbol)
   {
 
@@ -2940,8 +2942,8 @@ public class AlignmentUtils
     return Color.white;
   }
 
-  public static char findSSAnnotationForGivenSeqposition(AlignmentAnnotation aa,
-          int seqPosition)
+  public static char findSSAnnotationForGivenSeqposition(
+          AlignmentAnnotation aa, int seqPosition)
   {
     char ss = '*';
 
@@ -2966,8 +2968,7 @@ public class AlignmentUtils
 
     return ss;
   }
-  
+
   public static List<String> extractSSSourceInAlignmentAnnotation(
           AlignmentAnnotation[] annotations)
   {
@@ -2998,7 +2999,7 @@ public class AlignmentUtils
     return ssSources;
 
   }
-  
+
   public static String extractSSSourceFromAnnotationDescription(
           AlignmentAnnotation aa)
   {
@@ -3009,13 +3010,13 @@ public class AlignmentUtils
       if (label.equals(aa.label))
       {
 
-        if (aa.getProperty(Constants.SS_PROVIDER_PROPERTY) != null) 
+        if (aa.getProperty(Constants.SS_PROVIDER_PROPERTY) != null)
         {
-          
+
           return aa.getProperty(Constants.SS_PROVIDER_PROPERTY);
-          
+
         }
-        
+
         // For JPred
         if (Constants.SS_ANNOTATION_FROM_JPRED_LABEL.equals(aa.label))
         {
@@ -3026,7 +3027,8 @@ public class AlignmentUtils
 
         // For input with secondary structure
         if (Constants.SS_ANNOTATION_LABEL.equals(aa.label)
-                && aa.description != null && Constants.SS_ANNOTATION_LABEL.equals(aa.description))
+                && aa.description != null
+                && Constants.SS_ANNOTATION_LABEL.equals(aa.description))
         {
 
           return (Constants.SECONDARY_STRUCTURE_LABELS.get(aa.label));
@@ -3052,11 +3054,13 @@ public class AlignmentUtils
           String entryProvider = entry.getProvider();
           if (entryProvider == null)
           {
-            // No provider - so this is either an old Jalview project, or not retrieved from recognised source
+            // No provider - so this is either an old Jalview project, or not
+            // retrieved from recognised source
             entryProvider = "PDB";
           }
 
-          // Should (re)use a standard mechanism for extracting the PDB ID as it is written 1QWXTUV:CHAIN 
+          // Should (re)use a standard mechanism for extracting the PDB ID as it
+          // is written 1QWXTUV:CHAIN
           // Trim the string from first occurrence of colon
           String entryID = entry.getId();
           int index = entryID.indexOf(':');
@@ -3070,7 +3074,8 @@ public class AlignmentUtils
 
           }
 
-          // TODO: shouldn't need to extract from description what the originating ID is for this annotation!
+          // TODO: shouldn't need to extract from description what the
+          // originating ID is for this annotation!
           if (entryProvider == "PDB" && aa.description.toLowerCase()
                   .contains("secondary structure for "
                           + entryID.toLowerCase()))
@@ -3095,8 +3100,8 @@ public class AlignmentUtils
     return null;
 
   }
-  
-  //to do set priority for labels
+
+  // to do set priority for labels
   public static List<AlignmentAnnotation> getAlignmentAnnotationForSource(
           SequenceI seq, String ssSource)
   {
@@ -3118,9 +3123,9 @@ public class AlignmentUtils
         for (AlignmentAnnotation annot : aa)
         {
 
-          String ssSourceForAnnot = extractSSSourceFromAnnotationDescription(annot);
-          if (ssSourceForAnnot != null && ssSource
-                  .equals(ssSourceForAnnot))
+          String ssSourceForAnnot = extractSSSourceFromAnnotationDescription(
+                  annot);
+          if (ssSourceForAnnot != null && ssSource.equals(ssSourceForAnnot))
           {
             ssAnnots.add(annot);
           }
@@ -3170,7 +3175,8 @@ public class AlignmentUtils
    * 
    * @param selectedSSSource
    * @param aa
-   * @return true if aa is from a provider or all providers as specified by selectedSSSource
+   * @return true if aa is from a provider or all providers as specified by
+   *         selectedSSSource
    */
   public static boolean isSecondaryStructureFrom(String selectedSSSource,
           AlignmentAnnotation aa)
index 9915f2a..5f371c8 100644 (file)
@@ -23,7 +23,9 @@ package jalview.analysis;
 public class ConnectivityException extends RuntimeException
 {
   private String sequence;
+
   private int connection;
+
   private byte dim;
 
   public ConnectivityException(String sequence, int connection, byte dim)
@@ -31,9 +33,11 @@ public class ConnectivityException extends RuntimeException
     this("Insufficient number of connections", sequence, connection, dim);
   }
 
-  public ConnectivityException(String message, String sequence, int connection, byte dim)
+  public ConnectivityException(String message, String sequence,
+          int connection, byte dim)
   {
-    super(String.format("%s for %s (%d, should be %d or more)", message, sequence, connection, dim));
+    super(String.format("%s for %s (%d, should be %d or more)", message,
+            sequence, connection, dim));
     this.sequence = sequence;
     this.connection = connection;
     this.dim = dim;
index c84c69a..32d4cf3 100644 (file)
@@ -606,7 +606,7 @@ public class Finder implements FinderI
     }
     else
     {
-      //allFeatures = sf.getAllFeatures(null);
+      // allFeatures = sf.getAllFeatures(null);
       allFeatures = sf.getAllFeatures();
     }
     // so we can check we are advancing when debugging
index 48ec899..295bb89 100755 (executable)
@@ -38,7 +38,8 @@ import java.util.Hashtable;
 
 /**
  * Performs Principal Component Analysis on given sequences
- * @AUTHOR MorellThomas 
+ * 
+ * @AUTHOR MorellThomas
  */
 public class PaSiMap implements Runnable
 {
@@ -72,14 +73,17 @@ public class PaSiMap implements Runnable
    * @param sm
    * @param options
    */
-  public PaSiMap(AlignmentViewport sequences, ScoreModelI sm, PairwiseAlignPanel pap)
+  public PaSiMap(AlignmentViewport sequences, ScoreModelI sm,
+          PairwiseAlignPanel pap)
   {
     this.seqs = sequences;
 
-    if (sm!=null && sm instanceof ScoreMatrix)
+    if (sm != null && sm instanceof ScoreMatrix)
     {
       this.scoreMatrix = ((ScoreMatrix) sm);
-    } else {
+    }
+    else
+    {
       this.scoreMatrix = null;
     }
 
@@ -108,7 +112,8 @@ public class PaSiMap implements Runnable
    *          DOCUMENT ME!
    * @param mm
    *          DOCUMENT ME!
-   * @param factor ~ is 1
+   * @param factor
+   *          ~ is 1
    * 
    * @return DOCUMENT ME!
    */
@@ -164,8 +169,8 @@ public class PaSiMap implements Runnable
   }
 
   /**
-   * Answers a formatted text report of the PaSiMap calculation results (matrices
-   * and eigenvalues) suitable for display
+   * Answers a formatted text report of the PaSiMap calculation results
+   * (matrices and eigenvalues) suitable for display
    * 
    * @return
    */
@@ -197,23 +202,27 @@ public class PaSiMap implements Runnable
   /**
    * Performs the PaSiMap calculation
    *
-   * creates a new gui/PairwiseAlignPanel with the input sequences (AlignmentViewport)
-   * uses analysis/AlignSeq to creatue the pairwise alignments and calculate the AlignmentScores (float for each pair)
-   * gets all float[][] scores from the gui/PairwiseAlignPanel
-   * checks the connections for each sequence with AlignmentViewport seqs.calculateConnectivity(float[][] scores, int dim) (from analysis/Connectivity) -- throws an Exception if insufficient
-   * creates a math/MatrixI pairwiseScores of the float[][] scores
-   * copys the scores and fills the diagonal to create a symmetric matrix using math/Matrix.fillDiagonal()
-   * performs the analysis/ccAnalysis with the symmetric matrix
-   * gets the eigenmatrix and the eigenvalues using math/Matrix.tqli()
+   * creates a new gui/PairwiseAlignPanel with the input sequences
+   * (AlignmentViewport) uses analysis/AlignSeq to creatue the pairwise
+   * alignments and calculate the AlignmentScores (float for each pair) gets all
+   * float[][] scores from the gui/PairwiseAlignPanel checks the connections for
+   * each sequence with AlignmentViewport seqs.calculateConnectivity(float[][]
+   * scores, int dim) (from analysis/Connectivity) -- throws an Exception if
+   * insufficient creates a math/MatrixI pairwiseScores of the float[][] scores
+   * copys the scores and fills the diagonal to create a symmetric matrix using
+   * math/Matrix.fillDiagonal() performs the analysis/ccAnalysis with the
+   * symmetric matrix gets the eigenmatrix and the eigenvalues using
+   * math/Matrix.tqli()
    */
   @Override
   public void run()
   {
     try
     {
-      //alignment = new PairwiseAlignPanel(seqs, true, 100, 5);
+      // alignment = new PairwiseAlignPanel(seqs, true, 100, 5);
       alignment.calculate(scoreMatrix);
-      float[][] scores = alignment.getAlignmentScores();       //bigger index first -- eg scores[14][13]
+      float[][] scores = alignment.getAlignmentScores(); // bigger index first
+                                                         // -- eg scores[14][13]
       SequenceI[] iseqs = alignment.getInputSequences();
       Connectivity.getConnectivity(iseqs, scores, dim);
 
index e713525..156657a 100644 (file)
@@ -43,6 +43,7 @@ public abstract class TreeBuilder extends TreeEngine
   public static final String NEIGHBOUR_JOINING = "NJ";
 
   protected SequenceI[] sequences;
+
   protected List<String> labels;
 
   public AlignmentView seqData;
@@ -78,7 +79,7 @@ public abstract class TreeBuilder extends TreeEngine
     }
 
     init(seqStrings, start, end);
-    
+
     computeTree(sm, scoreParameters);
   }
 
@@ -87,7 +88,6 @@ public abstract class TreeBuilder extends TreeEngine
     return sequences;
   }
 
-  
   /**
    * 
    * @return true if tree has real distances
@@ -129,7 +129,7 @@ public abstract class TreeBuilder extends TreeEngine
     labels = new ArrayList<String>();
     sequences = sm.expandSeqData(sequences, seqData, scoreOptions, labels);
     noseqs = sequences.length;
-    
+
     distances = sm.findDistances(seqData, scoreOptions);
 
     makeLeaves();
@@ -186,14 +186,14 @@ public abstract class TreeBuilder extends TreeEngine
       SequenceNode sn = new SequenceNode();
 
       sn.setElement(sequences[i]);
-      
-      if (labels.size()==noseqs)
+
+      if (labels.size() == noseqs)
       {
         sn.setLabel(labels.get(i));
       }
-      
+
       sn.setName(sequences[i].getName());
-      
+
       node.addElement(sn);
       BitSet bs = new BitSet();
       bs.set(i);
index e29eb95..2d2248d 100644 (file)
@@ -87,11 +87,15 @@ public class TreeModel
     if (leafAnnotations != null)
     {
       // leaf names are seuqence ID + annotation for display
-      // leaf links are annotationId <> annotation object for import from project
+      // leaf links are annotationId <> annotation object for import from
+      // project
       // --> need to resolve before passing for display
       // ==> do leafs need to be renamed after import ?
-      // ==> implies the 'nodeLabel' business needs to be callable independently of score function
-    } else {
+      // ==> implies the 'nodeLabel' business needs to be callable independently
+      // of score function
+    }
+    else
+    {
       associateLeavesToSequences(seqs);
     }
   }
index 4922a54..265a3f4 100755 (executable)
@@ -55,11 +55,11 @@ import org.apache.commons.math3.linear.SingularValueDecomposition;
 /**
  * A class to model rectangular matrices of double values and operations on them
  */
-public class ccAnalysis 
+public class ccAnalysis
 {
-  private byte dim = 0;                //dimensions
+  private byte dim = 0; // dimensions
 
-  private MatrixI scoresOld;   //input scores
+  private MatrixI scoresOld; // input scores
 
   public ccAnalysis(MatrixI scores, byte dim)
   {
@@ -68,29 +68,33 @@ public class ccAnalysis
     {
       for (int j = 0; j < scores.width(); j++)
       {
-       if (!Double.isNaN(scores.getValue(i,j)))
-       {
-         scores.setValue(i, j, (double) Math.round(scores.getValue(i,j) * (int) 10000) / 10000);
-       }
+        if (!Double.isNaN(scores.getValue(i, j)))
+        {
+          scores.setValue(i, j,
+                  (double) Math.round(scores.getValue(i, j) * (int) 10000)
+                          / 10000);
+        }
       }
     }
     this.scoresOld = scores;
     this.dim = dim;
   }
 
-  /** 
-  * Initialise a distrust-score for each hypothesis (h) of hSigns
-  * distrust = conHypNum - proHypNum
-  *
-  * @param hSigns ~ hypothesis signs (+/-) for each sequence
-  * @param scores ~ input score matrix
-  *
-  * @return distrustScores
-  */
+  /**
+   * Initialise a distrust-score for each hypothesis (h) of hSigns distrust =
+   * conHypNum - proHypNum
+   *
+   * @param hSigns
+   *          ~ hypothesis signs (+/-) for each sequence
+   * @param scores
+   *          ~ input score matrix
+   *
+   * @return distrustScores
+   */
   private int[] initialiseDistrusts(byte[] hSigns, MatrixI scores)
   {
     int[] distrustScores = new int[scores.width()];
-    
+
     // loop over symmetric matrix
     for (int i = 0; i < scores.width(); i++)
     {
@@ -100,34 +104,43 @@ public class ccAnalysis
 
       for (int j = 0; j < scores.width(); j++)
       {
-       double cell = scores.getRow(i)[j];      // value at [i][j] in scores
-       byte hBSign = hSigns[j];
-       if (!Double.isNaN(cell))
-       {
-         byte cellSign = (byte) Math.signum(cell);     //check if sign of matrix value fits hyptohesis
-         if (cellSign == hASign * hBSign)
-         {
-           proHypNum++;
-         } else {
-           conHypNum++;
-         }
-       }
+        double cell = scores.getRow(i)[j]; // value at [i][j] in scores
+        byte hBSign = hSigns[j];
+        if (!Double.isNaN(cell))
+        {
+          byte cellSign = (byte) Math.signum(cell); // check if sign of matrix
+                                                    // value fits hyptohesis
+          if (cellSign == hASign * hBSign)
+          {
+            proHypNum++;
+          }
+          else
+          {
+            conHypNum++;
+          }
+        }
       }
-      distrustScores[i] = conHypNum - proHypNum;       //create distrust score for each sequence
+      distrustScores[i] = conHypNum - proHypNum; // create distrust score for
+                                                 // each sequence
     }
     return distrustScores;
   }
 
   /**
-  * Optemise hypothesis concerning the sign of the hypothetical value for each hSigns by interpreting the pairwise correlation coefficients as scalar products
-  *
-  * @param hSigns ~ hypothesis signs (+/-)
-  * @param distrustScores
-  * @param scores ~ input score matrix
-  *
-  * @return hSigns
-  */
-  private byte[] optimiseHypothesis(byte[] hSigns, int[] distrustScores, MatrixI scores)
+   * Optemise hypothesis concerning the sign of the hypothetical value for each
+   * hSigns by interpreting the pairwise correlation coefficients as scalar
+   * products
+   *
+   * @param hSigns
+   *          ~ hypothesis signs (+/-)
+   * @param distrustScores
+   * @param scores
+   *          ~ input score matrix
+   *
+   * @return hSigns
+   */
+  private byte[] optimiseHypothesis(byte[] hSigns, int[] distrustScores,
+          MatrixI scores)
   {
     // get maximum distrust score
     int[] maxes = MiscMath.findMax(distrustScores);
@@ -137,7 +150,7 @@ public class ccAnalysis
     // if hypothesis is not optimal yet
     if (maxDistrust > 0)
     {
-      //toggle sign for hI with maximum distrust
+      // toggle sign for hI with maximum distrust
       hSigns[maxDistrustIndex] *= -1;
       // update distrust at same position
       distrustScores[maxDistrustIndex] *= -1;
@@ -146,299 +159,325 @@ public class ccAnalysis
       byte hASign = hSigns[maxDistrustIndex];
       for (int NOTmaxDistrustIndex = 0; NOTmaxDistrustIndex < distrustScores.length; NOTmaxDistrustIndex++)
       {
-       if (NOTmaxDistrustIndex != maxDistrustIndex)
-       {
-         byte hBSign = hSigns[NOTmaxDistrustIndex];
-         double cell = scores.getValue(maxDistrustIndex, NOTmaxDistrustIndex);
-
-         // distrust only changed if not NaN
-         if (!Double.isNaN(cell))
-         {
-           byte cellSign = (byte) Math.signum(cell);
-           // if sign of cell matches hypothesis decrease distrust by 2 because 1 more value supporting and 1 less contradicting
-           // else increase by 2
-           if (cellSign == hASign * hBSign)
-           {
-             distrustScores[NOTmaxDistrustIndex] -= 2;
-           } else {
-             distrustScores[NOTmaxDistrustIndex] += 2;
-           }
-         }
-       }
+        if (NOTmaxDistrustIndex != maxDistrustIndex)
+        {
+          byte hBSign = hSigns[NOTmaxDistrustIndex];
+          double cell = scores.getValue(maxDistrustIndex,
+                  NOTmaxDistrustIndex);
+
+          // distrust only changed if not NaN
+          if (!Double.isNaN(cell))
+          {
+            byte cellSign = (byte) Math.signum(cell);
+            // if sign of cell matches hypothesis decrease distrust by 2 because
+            // 1 more value supporting and 1 less contradicting
+            // else increase by 2
+            if (cellSign == hASign * hBSign)
+            {
+              distrustScores[NOTmaxDistrustIndex] -= 2;
+            }
+            else
+            {
+              distrustScores[NOTmaxDistrustIndex] += 2;
+            }
+          }
+        }
       }
-      //further optimisation necessary
+      // further optimisation necessary
       return optimiseHypothesis(hSigns, distrustScores, scores);
 
-    } else {
+    }
+    else
+    {
       return hSigns;
     }
   }
 
-  /** 
-  * takes the a symmetric MatrixI as input scores which may contain Double.NaN 
-  * approximate the missing values using hypothesis optimisation 
-  *
-  * runs analysis
-  *
-  * @param scores ~ score matrix
-  *
-  * @return
-  */
-  public MatrixI run () throws Exception
+  /**
+   * takes the a symmetric MatrixI as input scores which may contain Double.NaN
+   * approximate the missing values using hypothesis optimisation
+   *
+   * runs analysis
+   *
+   * @param scores
+   *          ~ score matrix
+   *
+   * @return
+   */
+  public MatrixI run() throws Exception
   {
-    //initialse eigenMatrix and repMatrix
+    // initialse eigenMatrix and repMatrix
     MatrixI eigenMatrix = scoresOld.copy();
     MatrixI repMatrix = scoresOld.copy();
     try
     {
-    /*
-    * Calculate correction factor for 2nd and higher eigenvalue(s).
-    * This correction is NOT needed for the 1st eigenvalue, because the
-    * unknown (=NaN) values of the matrix are approximated by presuming
-    * 1-dimensional vectors as the basis of the matrix interpretation as dot
-    * products.
-    */
-        
-    System.out.println("Input correlation matrix:");
-    eigenMatrix.print(System.out, "%1.4f ");
-
-    int matrixWidth = eigenMatrix.width(); // square matrix, so width == height
-    int matrixElementsTotal = (int) Math.pow(matrixWidth, 2);  //total number of elemts
-
-    float correctionFactor = (float) (matrixElementsTotal - eigenMatrix.countNaN()) / (float) matrixElementsTotal;
-    
-    /*
-    * Calculate hypothetical value (1-dimensional vector) h_i for each
-    * dataset by interpreting the given correlation coefficients as scalar
-    * products.
-    */
-
-    /*
-    * Memory for current hypothesis concerning sign of each h_i.
-    * List of signs for all h_i in the encoding:
+      /*
+      * Calculate correction factor for 2nd and higher eigenvalue(s).
+      * This correction is NOT needed for the 1st eigenvalue, because the
+      * unknown (=NaN) values of the matrix are approximated by presuming
+      * 1-dimensional vectors as the basis of the matrix interpretation as dot
+      * products.
+      */
+
+      System.out.println("Input correlation matrix:");
+      eigenMatrix.print(System.out, "%1.4f ");
+
+      int matrixWidth = eigenMatrix.width(); // square matrix, so width ==
+                                             // height
+      int matrixElementsTotal = (int) Math.pow(matrixWidth, 2); // total number
+                                                                // of elemts
+
+      float correctionFactor = (float) (matrixElementsTotal
+              - eigenMatrix.countNaN()) / (float) matrixElementsTotal;
+
+      /*
+      * Calculate hypothetical value (1-dimensional vector) h_i for each
+      * dataset by interpreting the given correlation coefficients as scalar
+      * products.
+      */
+
+      /*
+      * Memory for current hypothesis concerning sign of each h_i.
+      * List of signs for all h_i in the encoding:
       * *  1: positive
       * *  0: zero
       * * -1: negative
-    * Initial hypothesis: all signs are positive.
-    */
-    byte[] hSigns = new byte[matrixWidth];
-    Arrays.fill(hSigns, (byte) 1);
-
-    //Estimate signs for each h_i by refining hypothesis on signs.
-    hSigns = optimiseHypothesis(hSigns, initialiseDistrusts(hSigns, eigenMatrix), eigenMatrix);
-
-
-    //Estimate absolute values for each h_i by determining sqrt of mean of
-    //non-NaN absolute values for every row.
-    double[] hAbs = MiscMath.sqrt(eigenMatrix.absolute().meanRow());
-
-    //Combine estimated signs with absolute values in obtain total value for
-    //each h_i.
-    double[] hValues = MiscMath.elementwiseMultiply(hSigns, hAbs);
-
-    /*Complement symmetric matrix by using the scalar products of estimated
-    *values of h_i to replace NaN-cells.
-    *Matrix positions that have estimated values
-    *(only for diagonal and upper off-diagonal values, due to the symmetry
-    *the positions of the lower-diagonal values can be inferred).
-    List of tuples (row_idx, column_idx).*/
-
-    ArrayList<int[]> estimatedPositions = new ArrayList<int[]>();
-
-    // for off-diagonal cells
-    for (int rowIndex = 0; rowIndex < matrixWidth - 1; rowIndex++)
-    {
-      for (int columnIndex = rowIndex + 1; columnIndex < matrixWidth; columnIndex++)
+      * Initial hypothesis: all signs are positive.
+      */
+      byte[] hSigns = new byte[matrixWidth];
+      Arrays.fill(hSigns, (byte) 1);
+
+      // Estimate signs for each h_i by refining hypothesis on signs.
+      hSigns = optimiseHypothesis(hSigns,
+              initialiseDistrusts(hSigns, eigenMatrix), eigenMatrix);
+
+      // Estimate absolute values for each h_i by determining sqrt of mean of
+      // non-NaN absolute values for every row.
+      double[] hAbs = MiscMath.sqrt(eigenMatrix.absolute().meanRow());
+
+      // Combine estimated signs with absolute values in obtain total value for
+      // each h_i.
+      double[] hValues = MiscMath.elementwiseMultiply(hSigns, hAbs);
+
+      /*Complement symmetric matrix by using the scalar products of estimated
+      *values of h_i to replace NaN-cells.
+      *Matrix positions that have estimated values
+      *(only for diagonal and upper off-diagonal values, due to the symmetry
+      *the positions of the lower-diagonal values can be inferred).
+      List of tuples (row_idx, column_idx).*/
+
+      ArrayList<int[]> estimatedPositions = new ArrayList<int[]>();
+
+      // for off-diagonal cells
+      for (int rowIndex = 0; rowIndex < matrixWidth - 1; rowIndex++)
       {
-       double cell = eigenMatrix.getValue(rowIndex, columnIndex);
-       if (Double.isNaN(cell))
-       {
-         //calculate scalar product as new cell value
-         cell = hValues[rowIndex] * hValues[columnIndex];
-          //fill in new value in cell and symmetric partner
-         eigenMatrix.setValue(rowIndex, columnIndex, cell);
-         eigenMatrix.setValue(columnIndex, rowIndex, cell);
-         //save positions of estimated values
-         estimatedPositions.add(new int[]{rowIndex, columnIndex});
-       }
+        for (int columnIndex = rowIndex
+                + 1; columnIndex < matrixWidth; columnIndex++)
+        {
+          double cell = eigenMatrix.getValue(rowIndex, columnIndex);
+          if (Double.isNaN(cell))
+          {
+            // calculate scalar product as new cell value
+            cell = hValues[rowIndex] * hValues[columnIndex];
+            // fill in new value in cell and symmetric partner
+            eigenMatrix.setValue(rowIndex, columnIndex, cell);
+            eigenMatrix.setValue(columnIndex, rowIndex, cell);
+            // save positions of estimated values
+            estimatedPositions.add(new int[] { rowIndex, columnIndex });
+          }
+        }
       }
-    }
 
-    // for diagonal cells
-    for (int diagonalIndex = 0; diagonalIndex < matrixWidth; diagonalIndex++)
+      // for diagonal cells
+      for (int diagonalIndex = 0; diagonalIndex < matrixWidth; diagonalIndex++)
       {
         double cell = Math.pow(hValues[diagonalIndex], 2);
-       eigenMatrix.setValue(diagonalIndex, diagonalIndex, cell);
-       estimatedPositions.add(new int[]{diagonalIndex, diagonalIndex});
+        eigenMatrix.setValue(diagonalIndex, diagonalIndex, cell);
+        estimatedPositions.add(new int[] { diagonalIndex, diagonalIndex });
       }
 
-    /*Refine total values of each h_i:
-    *Initialise h_values of the hypothetical non-existant previous iteration
-    *with the correct format but with impossible values.
-     Needed for exit condition of otherwise endless loop.*/
-    System.out.print("initial values: [ ");
-    for (double h : hValues)
-    {
-      System.out.print(String.format("%1.4f, ", h));
-    }
-    System.out.println(" ]");
-
-
-    double[] hValuesOld = new double[matrixWidth];
-
-    int iterationCount = 0;
-
-    // repeat unitl values of h do not significantly change anymore
-    while (true)
-    {
-      for (int hIndex = 0; hIndex < matrixWidth; hIndex++)
-      {
-       double newH = Arrays.stream(MiscMath.elementwiseMultiply(hValues, eigenMatrix.getRow(hIndex))).sum() / Arrays.stream(MiscMath.elementwiseMultiply(hValues, hValues)).sum();
-       hValues[hIndex] = newH;
-      }
-
-      System.out.print(String.format("iteration %d: [ ", iterationCount));
+      /*Refine total values of each h_i:
+      *Initialise h_values of the hypothetical non-existant previous iteration
+      *with the correct format but with impossible values.
+       Needed for exit condition of otherwise endless loop.*/
+      System.out.print("initial values: [ ");
       for (double h : hValues)
       {
-       System.out.print(String.format("%1.4f, ", h));
+        System.out.print(String.format("%1.4f, ", h));
       }
       System.out.println(" ]");
 
-      //update values of estimated positions
-      for (int[] pair : estimatedPositions)    // pair ~ row, col
-      {
-        double newVal = hValues[pair[0]] * hValues[pair[1]];
-       eigenMatrix.setValue(pair[0], pair[1], newVal);
-       eigenMatrix.setValue(pair[1], pair[0], newVal);
-      }
+      double[] hValuesOld = new double[matrixWidth];
 
-      iterationCount++;
+      int iterationCount = 0;
 
-      //exit loop as soon as new values are similar to the last iteration
-      if (MiscMath.allClose(hValues, hValuesOld, 0d, 1e-05d, false))
+      // repeat unitl values of h do not significantly change anymore
+      while (true)
       {
-        break;
+        for (int hIndex = 0; hIndex < matrixWidth; hIndex++)
+        {
+          double newH = Arrays
+                  .stream(MiscMath.elementwiseMultiply(hValues,
+                          eigenMatrix.getRow(hIndex)))
+                  .sum()
+                  / Arrays.stream(
+                          MiscMath.elementwiseMultiply(hValues, hValues))
+                          .sum();
+          hValues[hIndex] = newH;
+        }
+
+        System.out.print(String.format("iteration %d: [ ", iterationCount));
+        for (double h : hValues)
+        {
+          System.out.print(String.format("%1.4f, ", h));
+        }
+        System.out.println(" ]");
+
+        // update values of estimated positions
+        for (int[] pair : estimatedPositions) // pair ~ row, col
+        {
+          double newVal = hValues[pair[0]] * hValues[pair[1]];
+          eigenMatrix.setValue(pair[0], pair[1], newVal);
+          eigenMatrix.setValue(pair[1], pair[0], newVal);
+        }
+
+        iterationCount++;
+
+        // exit loop as soon as new values are similar to the last iteration
+        if (MiscMath.allClose(hValues, hValuesOld, 0d, 1e-05d, false))
+        {
+          break;
+        }
+
+        // save hValues for comparison in the next iteration
+        System.arraycopy(hValues, 0, hValuesOld, 0, hValues.length);
       }
 
-      //save hValues for comparison in the next iteration
-      System.arraycopy(hValues, 0, hValuesOld, 0, hValues.length);
-    }
-
-    //-----------------------------
-    //Use complemented symmetric matrix to calculate final representative
-    //vectors.
-
-    //Eigendecomposition.
-    eigenMatrix.tred();
-    eigenMatrix.tqli();
+      // -----------------------------
+      // Use complemented symmetric matrix to calculate final representative
+      // vectors.
 
-    System.out.println("eigenmatrix");
-    eigenMatrix.print(System.out, "%8.2f");
-    System.out.println();
-    System.out.println("uncorrected eigenvalues");
-    eigenMatrix.printD(System.out, "%2.4f ");
-    System.out.println();
+      // Eigendecomposition.
+      eigenMatrix.tred();
+      eigenMatrix.tqli();
 
-    double[] eigenVals = eigenMatrix.getD();
+      System.out.println("eigenmatrix");
+      eigenMatrix.print(System.out, "%8.2f");
+      System.out.println();
+      System.out.println("uncorrected eigenvalues");
+      eigenMatrix.printD(System.out, "%2.4f ");
+      System.out.println();
 
-    TreeMap<Double, Integer> eigenPairs = new TreeMap<>(Comparator.reverseOrder());
-    for (int i = 0; i < eigenVals.length; i++)
-    {
-      eigenPairs.put(eigenVals[i], i);
-    }
+      double[] eigenVals = eigenMatrix.getD();
 
-    // matrix of representative eigenvectors (each row is a vector)
-    double[][] _repMatrix = new double[eigenVals.length][dim];
-    double[][] _oldMatrix = new double[eigenVals.length][dim];
-    double[] correctedEigenValues = new double[dim];   
-
-    int l = 0;
-    for (Entry<Double, Integer> pair : eigenPairs.entrySet())
-    {
-      double eigenValue = pair.getKey();
-      int column = pair.getValue();
-      double[] eigenVector = eigenMatrix.getColumn(column);
-      //for 2nd and higher eigenvalues
-      if (l >= 1)
+      TreeMap<Double, Integer> eigenPairs = new TreeMap<>(
+              Comparator.reverseOrder());
+      for (int i = 0; i < eigenVals.length; i++)
       {
-        eigenValue /= correctionFactor;
+        eigenPairs.put(eigenVals[i], i);
       }
-      correctedEigenValues[l] = eigenValue;
-      for (int j = 0; j < eigenVector.length; j++)
-      {
-       _repMatrix[j][l] = (eigenValue < 0) ? 0.0 : - Math.sqrt(eigenValue) * eigenVector[j];
-       double tmpOldScore = scoresOld.getColumn(column)[j];
-       _oldMatrix[j][dim - l - 1] = (Double.isNaN(tmpOldScore)) ? 0.0 : tmpOldScore;
-      }
-      l++;
-      if (l >= dim)
-      {
-       break;
-      }
-    }
 
-    System.out.println("correctedEigenValues");
-    MiscMath.print(correctedEigenValues, "%2.4f ");
-
-    repMatrix = new Matrix(_repMatrix);
-    repMatrix.setD(correctedEigenValues);
-    MatrixI oldMatrix = new Matrix(_oldMatrix);
-
-    MatrixI dotMatrix = repMatrix.postMultiply(repMatrix.transpose());
-    
-    double rmsd = scoresOld.rmsd(dotMatrix);
-
-    System.out.println("iteration, rmsd, maxDiff, rmsdDiff");
-    System.out.println(String.format("0, %8.5f, -, -", rmsd));
-    // Refine representative vectors by minimising sum-of-squared deviates between dotMatrix and original  score matrix
-    for (int iteration = 1; iteration < 21; iteration++)       // arbitrarily set to 20
-    {
-      MatrixI repMatrixOLD = repMatrix.copy();
-      MatrixI dotMatrixOLD = dotMatrix.copy();
+      // matrix of representative eigenvectors (each row is a vector)
+      double[][] _repMatrix = new double[eigenVals.length][dim];
+      double[][] _oldMatrix = new double[eigenVals.length][dim];
+      double[] correctedEigenValues = new double[dim];
 
-      // for all rows/hA in the original matrix
-      for (int hAIndex = 0; hAIndex < oldMatrix.height(); hAIndex++)
+      int l = 0;
+      for (Entry<Double, Integer> pair : eigenPairs.entrySet())
       {
-       double[] row = oldMatrix.getRow(hAIndex);
-       double[] hA = repMatrix.getRow(hAIndex);
-       hAIndex = hAIndex;
-       //find least-squares-solution fo rdifferences between original scores and representative vectors
-       double[] hAlsm = leastSquaresOptimisation(repMatrix, scoresOld, hAIndex);
-        // update repMatrix with new hAlsm
-       for (int j = 0; j < repMatrix.width(); j++)
-       {
-         repMatrix.setValue(hAIndex, j, hAlsm[j]);
-       }
-      }
-      
-      // dot product of representative vecotrs yields a matrix with values approximating the correlation matrix
-      dotMatrix = repMatrix.postMultiply(repMatrix.transpose());
-      // calculate rmsd between approximation and correlation matrix
-      rmsd = scoresOld.rmsd(dotMatrix);
-
-      // calculate maximum change of representative vectors of current iteration
-      MatrixI diff = repMatrix.subtract(repMatrixOLD).absolute();
-      double maxDiff = 0.0;
-      for (int i = 0; i < diff.height(); i++)
-      {
-       for (int j = 0; j < diff.width(); j++)
-       {
-         maxDiff = (diff.getValue(i, j) > maxDiff) ? diff.getValue(i, j) : maxDiff;
-       }
+        double eigenValue = pair.getKey();
+        int column = pair.getValue();
+        double[] eigenVector = eigenMatrix.getColumn(column);
+        // for 2nd and higher eigenvalues
+        if (l >= 1)
+        {
+          eigenValue /= correctionFactor;
+        }
+        correctedEigenValues[l] = eigenValue;
+        for (int j = 0; j < eigenVector.length; j++)
+        {
+          _repMatrix[j][l] = (eigenValue < 0) ? 0.0
+                  : -Math.sqrt(eigenValue) * eigenVector[j];
+          double tmpOldScore = scoresOld.getColumn(column)[j];
+          _oldMatrix[j][dim - l - 1] = (Double.isNaN(tmpOldScore)) ? 0.0
+                  : tmpOldScore;
+        }
+        l++;
+        if (l >= dim)
+        {
+          break;
+        }
       }
 
-      // calculate rmsd between current and previous estimation
-      double rmsdDiff = dotMatrix.rmsd(dotMatrixOLD);
+      System.out.println("correctedEigenValues");
+      MiscMath.print(correctedEigenValues, "%2.4f ");
+
+      repMatrix = new Matrix(_repMatrix);
+      repMatrix.setD(correctedEigenValues);
+      MatrixI oldMatrix = new Matrix(_oldMatrix);
 
-      System.out.println(String.format("%d, %8.5f, %8.5f, %8.5f", iteration, rmsd, maxDiff, rmsdDiff));
+      MatrixI dotMatrix = repMatrix.postMultiply(repMatrix.transpose());
 
-      if (!(Math.abs(maxDiff) > 1e-06))
+      double rmsd = scoresOld.rmsd(dotMatrix);
+
+      System.out.println("iteration, rmsd, maxDiff, rmsdDiff");
+      System.out.println(String.format("0, %8.5f, -, -", rmsd));
+      // Refine representative vectors by minimising sum-of-squared deviates
+      // between dotMatrix and original score matrix
+      for (int iteration = 1; iteration < 21; iteration++) // arbitrarily set to
+                                                           // 20
       {
-       repMatrix = repMatrixOLD.copy();
-       break;
+        MatrixI repMatrixOLD = repMatrix.copy();
+        MatrixI dotMatrixOLD = dotMatrix.copy();
+
+        // for all rows/hA in the original matrix
+        for (int hAIndex = 0; hAIndex < oldMatrix.height(); hAIndex++)
+        {
+          double[] row = oldMatrix.getRow(hAIndex);
+          double[] hA = repMatrix.getRow(hAIndex);
+          hAIndex = hAIndex;
+          // find least-squares-solution fo rdifferences between original scores
+          // and representative vectors
+          double[] hAlsm = leastSquaresOptimisation(repMatrix, scoresOld,
+                  hAIndex);
+          // update repMatrix with new hAlsm
+          for (int j = 0; j < repMatrix.width(); j++)
+          {
+            repMatrix.setValue(hAIndex, j, hAlsm[j]);
+          }
+        }
+
+        // dot product of representative vecotrs yields a matrix with values
+        // approximating the correlation matrix
+        dotMatrix = repMatrix.postMultiply(repMatrix.transpose());
+        // calculate rmsd between approximation and correlation matrix
+        rmsd = scoresOld.rmsd(dotMatrix);
+
+        // calculate maximum change of representative vectors of current
+        // iteration
+        MatrixI diff = repMatrix.subtract(repMatrixOLD).absolute();
+        double maxDiff = 0.0;
+        for (int i = 0; i < diff.height(); i++)
+        {
+          for (int j = 0; j < diff.width(); j++)
+          {
+            maxDiff = (diff.getValue(i, j) > maxDiff) ? diff.getValue(i, j)
+                    : maxDiff;
+          }
+        }
+
+        // calculate rmsd between current and previous estimation
+        double rmsdDiff = dotMatrix.rmsd(dotMatrixOLD);
+
+        System.out.println(String.format("%d, %8.5f, %8.5f, %8.5f",
+                iteration, rmsd, maxDiff, rmsdDiff));
+
+        if (!(Math.abs(maxDiff) > 1e-06))
+        {
+          repMatrix = repMatrixOLD.copy();
+          break;
+        }
       }
-    }
-    
 
     } catch (Exception q)
     {
@@ -451,35 +490,38 @@ public class ccAnalysis
   }
 
   /**
-  * Create equations system using information on originally known
-  * pairwise correlation coefficients (parsed from infile) and the
-  * representative result vectors
-  *
-  * Each equation has the format:
-  * hA * hA - pairwiseCC = 0
-  * with:
-  * hA: unknown variable
-  * hB: known representative vector
-  * pairwiseCC: known pairwise correlation coefficien
-  * 
-  * The resulting equations system is overdetermined, if there are more
-  * equations than unknown elements
-  *
-  * @param x ~ unknown n-dimensional column-vector
-  * (needed for generating equations system, NOT to be specified by user).
-  * @param hAIndex ~ index of currently optimised representative result vector.
-  * @param h ~ matrix with row-wise listing of representative result vectors.
-  * @param originalRow ~ matrix-row of originally parsed pairwise correlation coefficients.
-  *
-  * @return
-  */
-  private double[] originalToEquasionSystem(double[] hA, MatrixI repMatrix, MatrixI scoresOld, int hAIndex)
+   * Create equations system using information on originally known pairwise
+   * correlation coefficients (parsed from infile) and the representative result
+   * vectors
+   *
+   * Each equation has the format: hA * hA - pairwiseCC = 0 with: hA: unknown
+   * variable hB: known representative vector pairwiseCC: known pairwise
+   * correlation coefficien
+   * 
+   * The resulting equations system is overdetermined, if there are more
+   * equations than unknown elements
+   *
+   * @param x
+   *          ~ unknown n-dimensional column-vector (needed for generating
+   *          equations system, NOT to be specified by user).
+   * @param hAIndex
+   *          ~ index of currently optimised representative result vector.
+   * @param h
+   *          ~ matrix with row-wise listing of representative result vectors.
+   * @param originalRow
+   *          ~ matrix-row of originally parsed pairwise correlation
+   *          coefficients.
+   *
+   * @return
+   */
+  private double[] originalToEquasionSystem(double[] hA, MatrixI repMatrix,
+          MatrixI scoresOld, int hAIndex)
   {
     double[] originalRow = scoresOld.getRow(hAIndex);
     int nans = MiscMath.countNaN(originalRow);
     double[] result = new double[originalRow.length - nans];
 
-    //for all pairwiseCC in originalRow
+    // for all pairwiseCC in originalRow
     int resultIndex = 0;
     for (int hBIndex = 0; hBIndex < originalRow.length; hBIndex++)
     {
@@ -488,40 +530,48 @@ public class ccAnalysis
       if (!Double.isNaN(pairwiseCC))
       {
         double[] hB = repMatrix.getRow(hBIndex);
-        result[resultIndex++] = MiscMath.sum(MiscMath.elementwiseMultiply(hA, hB)) - pairwiseCC;
-      } else {
+        result[resultIndex++] = MiscMath
+                .sum(MiscMath.elementwiseMultiply(hA, hB)) - pairwiseCC;
+      }
+      else
+      {
       }
     }
     return result;
   }
 
   /**
-  * returns the jacobian matrix
-  * @param repMatrix ~ matrix of representative vectors
-  * @param hAIndex ~ current row index
-  *
-  * @return
-  */
-  private MatrixI approximateDerivative(MatrixI repMatrix, MatrixI scoresOld, int hAIndex)
+   * returns the jacobian matrix
+   * 
+   * @param repMatrix
+   *          ~ matrix of representative vectors
+   * @param hAIndex
+   *          ~ current row index
+   *
+   * @return
+   */
+  private MatrixI approximateDerivative(MatrixI repMatrix,
+          MatrixI scoresOld, int hAIndex)
   {
-    //hA = x0
+    // hA = x0
     double[] hA = repMatrix.getRow(hAIndex);
-    double[] f0 = originalToEquasionSystem(hA, repMatrix, scoresOld, hAIndex);
+    double[] f0 = originalToEquasionSystem(hA, repMatrix, scoresOld,
+            hAIndex);
     double[] signX0 = new double[hA.length];
     double[] xAbs = new double[hA.length];
     for (int i = 0; i < hA.length; i++)
     {
       signX0[i] = (hA[i] >= 0) ? 1 : -1;
       xAbs[i] = (Math.abs(hA[i]) >= 1.0) ? Math.abs(hA[i]) : 1.0;
-      }
+    }
     double rstep = Math.pow(Math.ulp(1.0), 0.5);
 
-    double[] h = new double [hA.length];
+    double[] h = new double[hA.length];
     for (int i = 0; i < hA.length; i++)
     {
       h[i] = rstep * signX0[i] * xAbs[i];
     }
-      
+
     int m = f0.length;
     int n = hA.length;
     double[][] jTransposed = new double[n][m];
@@ -531,11 +581,12 @@ public class ccAnalysis
       System.arraycopy(hA, 0, x, 0, h.length);
       x[i] += h[i];
       double dx = x[i] - hA[i];
-      double[] df = originalToEquasionSystem(x, repMatrix, scoresOld, hAIndex);
+      double[] df = originalToEquasionSystem(x, repMatrix, scoresOld,
+              hAIndex);
       for (int j = 0; j < df.length; j++)
       {
-       df[j] -= f0[j];
-       jTransposed[i][j] = df[j] / dx;
+        df[j] -= f0[j];
+        jTransposed[i][j] = df[j] / dx;
       }
     }
     MatrixI J = new Matrix(jTransposed).transpose();
@@ -543,31 +594,40 @@ public class ccAnalysis
   }
 
   /**
-  * norm of regularized (by alpha) least-squares solution minus Delta
-  * @param alpha
-  * @param suf
-  * @param s
-  * @param Delta
-  *
-  * @return
-  */
-  private double[] phiAndDerivative(double alpha, double[] suf, double[] s, double Delta)
+   * norm of regularized (by alpha) least-squares solution minus Delta
+   * 
+   * @param alpha
+   * @param suf
+   * @param s
+   * @param Delta
+   *
+   * @return
+   */
+  private double[] phiAndDerivative(double alpha, double[] suf, double[] s,
+          double Delta)
   {
-    double[] denom = MiscMath.elementwiseAdd(MiscMath.elementwiseMultiply(s, s), alpha);
+    double[] denom = MiscMath
+            .elementwiseAdd(MiscMath.elementwiseMultiply(s, s), alpha);
     double pNorm = MiscMath.norm(MiscMath.elementwiseDivide(suf, denom));
     double phi = pNorm - Delta;
     // - sum ( suf**2 / denom**3) / pNorm
-    double phiPrime = - MiscMath.sum(MiscMath.elementwiseDivide(MiscMath.elementwiseMultiply(suf, suf), MiscMath.elementwiseMultiply(MiscMath.elementwiseMultiply(denom, denom), denom))) / pNorm;
-    return new double[]{phi, phiPrime};
+    double phiPrime = -MiscMath.sum(MiscMath.elementwiseDivide(
+            MiscMath.elementwiseMultiply(suf, suf),
+            MiscMath.elementwiseMultiply(
+                    MiscMath.elementwiseMultiply(denom, denom), denom)))
+            / pNorm;
+    return new double[] { phi, phiPrime };
   }
 
   /**
-  * class holding the result of solveLsqTrustRegion
-  */
+   * class holding the result of solveLsqTrustRegion
+   */
   private class TrustRegion
   {
     private double[] step;
+
     private double alpha;
+
     private int iteration;
 
     public TrustRegion(double[] step, double alpha, int iteration)
@@ -586,7 +646,7 @@ public class ccAnalysis
     {
       return this.alpha;
     }
-  
+
     public int getIteration()
     {
       return this.iteration;
@@ -594,22 +654,30 @@ public class ccAnalysis
   }
 
   /**
-  * solve a trust-region problem arising in least-squares optimisation
-  * @param n ~ number of variables
-  * @param m ~ number of residuals
-  * @param uf
-  * @param s ~ singular values of J
-  * @param V ~ transpose of VT
-  * @param Delta ~ radius of a trust region
-  * @param alpha ~ initial guess for alpha
-  *
-  * @return
-  */
-  private TrustRegion solveLsqTrustRegion(int n, int m, double[] uf, double[] s, MatrixI V, double Delta, double alpha)
+   * solve a trust-region problem arising in least-squares optimisation
+   * 
+   * @param n
+   *          ~ number of variables
+   * @param m
+   *          ~ number of residuals
+   * @param uf
+   * @param s
+   *          ~ singular values of J
+   * @param V
+   *          ~ transpose of VT
+   * @param Delta
+   *          ~ radius of a trust region
+   * @param alpha
+   *          ~ initial guess for alpha
+   *
+   * @return
+   */
+  private TrustRegion solveLsqTrustRegion(int n, int m, double[] uf,
+          double[] s, MatrixI V, double Delta, double alpha)
   {
     double[] suf = MiscMath.elementwiseMultiply(s, uf);
 
-    //check if J has full rank and tr Gauss-Newton step
+    // check if J has full rank and tr Gauss-Newton step
     boolean fullRank = false;
     if (m >= n)
     {
@@ -618,7 +686,8 @@ public class ccAnalysis
     }
     if (fullRank)
     {
-      double[] p = MiscMath.elementwiseMultiply(V.sumProduct(MiscMath.elementwiseDivide(uf, s)), -1);
+      double[] p = MiscMath.elementwiseMultiply(
+              V.sumProduct(MiscMath.elementwiseDivide(uf, s)), -1);
       if (MiscMath.norm(p) <= Delta)
       {
         TrustRegion result = new TrustRegion(p, 0.0, 0);
@@ -631,15 +700,21 @@ public class ccAnalysis
     if (fullRank)
     {
       double[] phiAndPrime = phiAndDerivative(0.0, suf, s, Delta);
-      alphaLower = - phiAndPrime[0] / phiAndPrime[1];
+      alphaLower = -phiAndPrime[0] / phiAndPrime[1];
     }
 
-    alpha = (!fullRank && alpha == 0.0) ? alpha = Math.max(0.001 * alphaUpper, Math.pow(alphaLower * alphaUpper, 0.5)) : alpha;
+    alpha = (!fullRank && alpha == 0.0)
+            ? alpha = Math.max(0.001 * alphaUpper,
+                    Math.pow(alphaLower * alphaUpper, 0.5))
+            : alpha;
 
     int iteration = 0;
-    while (iteration < 10)     // 10 is default max_iter
+    while (iteration < 10) // 10 is default max_iter
     {
-      alpha = (alpha < alphaLower || alpha > alphaUpper) ? alpha = Math.max(0.001 * alphaUpper, Math.pow(alphaLower * alphaUpper, 0.5)) : alpha;
+      alpha = (alpha < alphaLower || alpha > alphaUpper)
+              ? alpha = Math.max(0.001 * alphaUpper,
+                      Math.pow(alphaLower * alphaUpper, 0.5))
+              : alpha;
       double[] phiAndPrime = phiAndDerivative(alpha, suf, s, Delta);
       double phi = phiAndPrime[0];
       double phiPrime = phiAndPrime[1];
@@ -649,18 +724,20 @@ public class ccAnalysis
       alphaLower = Math.max(alphaLower, alpha - ratio);
       alpha -= (phi + Delta) * ratio / Delta;
 
-      if (Math.abs(phi) < 0.01 * Delta)        // default rtol set to 0.01
+      if (Math.abs(phi) < 0.01 * Delta) // default rtol set to 0.01
       {
-       break;
+        break;
       }
       iteration++;
     }
 
     // p = - V.dot( suf / (s**2 + alpha))
-    double[] tmp = MiscMath.elementwiseDivide(suf, MiscMath.elementwiseAdd(MiscMath.elementwiseMultiply(s, s), alpha));
+    double[] tmp = MiscMath.elementwiseDivide(suf, MiscMath
+            .elementwiseAdd(MiscMath.elementwiseMultiply(s, s), alpha));
     double[] p = MiscMath.elementwiseMultiply(V.sumProduct(tmp), -1);
 
-    // Make the norm of p equal to Delta, p is changed only slightly during this.
+    // Make the norm of p equal to Delta, p is changed only slightly during
+    // this.
     // It is done to prevent p lie outside of the trust region
     p = MiscMath.elementwiseMultiply(p, Delta / MiscMath.norm(p));
 
@@ -669,15 +746,18 @@ public class ccAnalysis
   }
 
   /**
-  * compute values of a quadratic function arising in least squares
-  * function: 0.5 * s.T * (J.T * J + diag) * s + g.T * s
-  *
-  * @param J ~ jacobian matrix
-  * @param g ~ gradient
-  * @param s ~ steps and rows
-  *
-  * @return
-  */
+   * compute values of a quadratic function arising in least squares function:
+   * 0.5 * s.T * (J.T * J + diag) * s + g.T * s
+   *
+   * @param J
+   *          ~ jacobian matrix
+   * @param g
+   *          ~ gradient
+   * @param s
+   *          ~ steps and rows
+   *
+   * @return
+   */
   private double evaluateQuadratic(MatrixI J, double[] g, double[] s)
   {
 
@@ -689,50 +769,64 @@ public class ccAnalysis
   }
 
   /**
-  * update the radius of a trust region based on the cost reduction
-  *
-  * @param Delta
-  * @param actualReduction
-  * @param predictedReduction
-  * @param stepNorm
-  * @param boundHit
-  *
-  * @return
-  */
-  private double[] updateTrustRegionRadius(double Delta, double actualReduction, double predictedReduction, double stepNorm, boolean boundHit)
+   * update the radius of a trust region based on the cost reduction
+   *
+   * @param Delta
+   * @param actualReduction
+   * @param predictedReduction
+   * @param stepNorm
+   * @param boundHit
+   *
+   * @return
+   */
+  private double[] updateTrustRegionRadius(double Delta,
+          double actualReduction, double predictedReduction,
+          double stepNorm, boolean boundHit)
   {
     double ratio = 0;
     if (predictedReduction > 0)
     {
       ratio = actualReduction / predictedReduction;
-    } else if (predictedReduction == 0 && actualReduction == 0) {
+    }
+    else if (predictedReduction == 0 && actualReduction == 0)
+    {
       ratio = 1;
-    } else {
+    }
+    else
+    {
       ratio = 0;
     }
 
     if (ratio < 0.25)
     {
       Delta = 0.25 * stepNorm;
-    } else if (ratio > 0.75 && boundHit) {
+    }
+    else if (ratio > 0.75 && boundHit)
+    {
       Delta *= 2.0;
     }
 
-    return new double[]{Delta, ratio};
+    return new double[] { Delta, ratio };
   }
 
   /**
-  * trust region reflective algorithm
-  * @param repMatrix ~ Matrix containing representative vectors
-  * @param scoresOld ~ Matrix containing initial observations
-  * @param index ~ current row index
-  * @param J ~ jacobian matrix
-  *
-  * @return
-  */
-  private double[] trf(MatrixI repMatrix, MatrixI scoresOld, int index, MatrixI J)
+   * trust region reflective algorithm
+   * 
+   * @param repMatrix
+   *          ~ Matrix containing representative vectors
+   * @param scoresOld
+   *          ~ Matrix containing initial observations
+   * @param index
+   *          ~ current row index
+   * @param J
+   *          ~ jacobian matrix
+   *
+   * @return
+   */
+  private double[] trf(MatrixI repMatrix, MatrixI scoresOld, int index,
+          MatrixI J)
   {
-    //hA = x0
+    // hA = x0
     double[] hA = repMatrix.getRow(index);
     double[] f0 = originalToEquasionSystem(hA, repMatrix, scoresOld, index);
     int nfev = 1;
@@ -742,7 +836,7 @@ public class ccAnalysis
     double[] g = J.transpose().sumProduct(f0);
     double Delta = MiscMath.norm(hA);
     int maxNfev = hA.length * 100;
-    double alpha = 0.0;                // "Levenberg-Marquardt" parameter
+    double alpha = 0.0; // "Levenberg-Marquardt" parameter
 
     double gNorm = 0;
     boolean terminationStatus = false;
@@ -753,11 +847,12 @@ public class ccAnalysis
       gNorm = MiscMath.norm(g);
       if (terminationStatus || nfev == maxNfev)
       {
-       break;
+        break;
       }
-      SingularValueDecomposition svd = new SingularValueDecomposition(new Array2DRowRealMatrix(J.asArray()));
+      SingularValueDecomposition svd = new SingularValueDecomposition(
+              new Array2DRowRealMatrix(J.asArray()));
       MatrixI U = new Matrix(svd.getU().getData());
-      double[] s = svd.getSingularValues();    
+      double[] s = svd.getSingularValues();
       MatrixI V = new Matrix(svd.getV().getData()).transpose();
       double[] uf = U.transpose().sumProduct(f0);
 
@@ -766,60 +861,67 @@ public class ccAnalysis
       double[] fNew = new double[f0.length];
       double costNew = 0;
       double stepHnorm = 0;
-      
+
       while (actualReduction <= 0 && nfev < maxNfev)
       {
-        TrustRegion trustRegion = solveLsqTrustRegion(n, m, uf, s, V, Delta, alpha);
-       double[] stepH = trustRegion.getStep(); 
-       alpha = trustRegion.getAlpha();
-       int nIterations = trustRegion.getIteration();
-        double predictedReduction = - (evaluateQuadratic(J, g, stepH));        
+        TrustRegion trustRegion = solveLsqTrustRegion(n, m, uf, s, V, Delta,
+                alpha);
+        double[] stepH = trustRegion.getStep();
+        alpha = trustRegion.getAlpha();
+        int nIterations = trustRegion.getIteration();
+        double predictedReduction = -(evaluateQuadratic(J, g, stepH));
 
         xNew = MiscMath.elementwiseAdd(hA, stepH);
-       fNew = originalToEquasionSystem(xNew, repMatrix, scoresOld, index);
-       nfev++;
-       
-       stepHnorm = MiscMath.norm(stepH);
+        fNew = originalToEquasionSystem(xNew, repMatrix, scoresOld, index);
+        nfev++;
 
-       if (MiscMath.countNaN(fNew) > 0)
-       {
-         Delta = 0.25 * stepHnorm;
-         continue;
-       }
+        stepHnorm = MiscMath.norm(stepH);
 
-       // usual trust-region step quality estimation
-       costNew = 0.5 * MiscMath.dot(fNew, fNew); 
-       actualReduction = cost - costNew;
+        if (MiscMath.countNaN(fNew) > 0)
+        {
+          Delta = 0.25 * stepHnorm;
+          continue;
+        }
 
-       double[] updatedTrustRegion = updateTrustRegionRadius(Delta, actualReduction, predictedReduction, stepHnorm, stepHnorm > (0.95 * Delta));
-       double DeltaNew = updatedTrustRegion[0];
-       double ratio = updatedTrustRegion[1];
+        // usual trust-region step quality estimation
+        costNew = 0.5 * MiscMath.dot(fNew, fNew);
+        actualReduction = cost - costNew;
 
-        // default ftol and xtol = 1e-8
-        boolean ftolSatisfied = actualReduction < (1e-8 * cost) && ratio > 0.25;
-        boolean xtolSatisfied = stepHnorm < (1e-8 * (1e-8 + MiscMath.norm(hA)));
-       terminationStatus = ftolSatisfied || xtolSatisfied;
-       if (terminationStatus)
-       {
-         break;
-       }
+        double[] updatedTrustRegion = updateTrustRegionRadius(Delta,
+                actualReduction, predictedReduction, stepHnorm,
+                stepHnorm > (0.95 * Delta));
+        double DeltaNew = updatedTrustRegion[0];
+        double ratio = updatedTrustRegion[1];
 
-       alpha *= Delta / DeltaNew;
-       Delta = DeltaNew;
+        // default ftol and xtol = 1e-8
+        boolean ftolSatisfied = actualReduction < (1e-8 * cost)
+                && ratio > 0.25;
+        boolean xtolSatisfied = stepHnorm < (1e-8
+                * (1e-8 + MiscMath.norm(hA)));
+        terminationStatus = ftolSatisfied || xtolSatisfied;
+        if (terminationStatus)
+        {
+          break;
+        }
+
+        alpha *= Delta / DeltaNew;
+        Delta = DeltaNew;
 
       }
       if (actualReduction > 0)
       {
-       hA = xNew;
-       f0 = fNew;
-       cost = costNew;
+        hA = xNew;
+        f0 = fNew;
+        cost = costNew;
 
-       J = approximateDerivative(repMatrix, scoresOld, index);
+        J = approximateDerivative(repMatrix, scoresOld, index);
 
         g = J.transpose().sumProduct(f0);
-      } else {
+      }
+      else
+      {
         stepHnorm = 0;
-       actualReduction = 0;
+        actualReduction = 0;
       }
       iteration++;
     }
@@ -828,16 +930,20 @@ public class ccAnalysis
   }
 
   /**
-  * performs the least squares optimisation
-  * adapted from https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html#scipy.optimize.least_squares
-  *
-  * @param repMatrix ~ Matrix containing representative vectors
-  * @param scoresOld ~ Matrix containing initial observations
-  * @param index ~ current row index
-  *
-  * @return
-  */
-  private double[] leastSquaresOptimisation(MatrixI repMatrix, MatrixI scoresOld, int index)
+   * performs the least squares optimisation adapted from
+   * https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html#scipy.optimize.least_squares
+   *
+   * @param repMatrix
+   *          ~ Matrix containing representative vectors
+   * @param scoresOld
+   *          ~ Matrix containing initial observations
+   * @param index
+   *          ~ current row index
+   *
+   * @return
+   */
+  private double[] leastSquaresOptimisation(MatrixI repMatrix,
+          MatrixI scoresOld, int index)
   {
     MatrixI J = approximateDerivative(repMatrix, scoresOld, index);
     double[] result = trf(repMatrix, scoresOld, index, J);
index 55510bd..1bdaad6 100644 (file)
@@ -57,5 +57,5 @@ public abstract class DistanceScoreModel implements ScoreModelI
 
     return similarities;
   }
-  
+
 }
index df45a72..bcc0855 100644 (file)
@@ -235,7 +235,7 @@ public class FeatureDistanceModel extends DistanceScoreModel
   public boolean isProtein()
   {
     return true;
-  } 
+  }
 
   @Override
   public String toString()
index f591c8e..490ec00 100644 (file)
@@ -40,7 +40,7 @@ public class ScoreModels
   private final ScoreMatrix PAM250;
 
   private final ScoreMatrix DNA;
-  
+
   private final ScoreMatrix SECONDARYSTRUCTURE;
 
   private static ScoreModels instance;
@@ -70,7 +70,7 @@ public class ScoreModels
    * <li>PAM250</li>
    * <li>PID</li>
    * <li>DNA</li>
-   * <li>Sequence Feature Similarity</li>   * 
+   * <li>Sequence Feature Similarity</li> *
    * <li>Secondary Structure Similarity</li>
    * </ul>
    */
@@ -85,8 +85,9 @@ public class ScoreModels
     DNA = loadScoreMatrix("scoreModel/dna.scm");
     registerScoreModel(new PIDModel());
     registerScoreModel(new FeatureDistanceModel());
-    SECONDARYSTRUCTURE = loadScoreMatrix("scoreModel/secondarystructure.scm");
-    registerScoreModel(new SecondaryStructureDistanceModel());   
+    SECONDARYSTRUCTURE = loadScoreMatrix(
+            "scoreModel/secondarystructure.scm");
+    registerScoreModel(new SecondaryStructureDistanceModel());
 
   }
 
@@ -146,7 +147,8 @@ public class ScoreModels
 
   public void registerScoreModel(ScoreModelI sm)
   {
-    if(sm.getName().equals("SECONDARYSTRUCTURE")) {
+    if (sm.getName().equals("SECONDARYSTRUCTURE"))
+    {
       return;
     }
     ScoreModelI sm2 = models.get(sm.getName());
@@ -187,7 +189,7 @@ public class ScoreModels
   {
     return PAM250;
   }
-  
+
   public ScoreMatrix getSecondaryStructureMatrix()
   {
     return SECONDARYSTRUCTURE;
index ceccec0..6ed94b2 100644 (file)
@@ -49,20 +49,19 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
   private static final String NAME = "Secondary Structure Similarity";
 
   private ScoreMatrix ssRateMatrix;
-  
-  private String description;    
-  
+
+  private String description;
+
   FeatureRenderer fr;
-  
-  
+
   /**
    * Constructor
    */
   public SecondaryStructureDistanceModel()
   {
-    
+
   }
-  
+
   @Override
   public ScoreModelI getInstance(AlignmentViewPanel view)
   {
@@ -89,51 +88,56 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
     fr = view.cloneFeatureRenderer();
     return true;
   }
-  
+
   ArrayList<AlignmentAnnotation> ssForSeqs = null;
 
   @Override
   public SequenceI[] expandSeqData(SequenceI[] sequences,
-          AlignmentView seqData, SimilarityParamsI scoreParams,List<String> labels)
+          AlignmentView seqData, SimilarityParamsI scoreParams,
+          List<String> labels)
   {
     ssForSeqs = new ArrayList<AlignmentAnnotation>();
     List<SequenceI> newSequences = new ArrayList<SequenceI>();
     List<SeqCigar> newCigs = new ArrayList<SeqCigar>();
     int sq = 0;
-    
-    
 
     AlignmentAnnotation[] alignAnnotList = fr.getViewport().getAlignment()
-            .getAlignmentAnnotation();   
-    
-    String ssSource = scoreParams.getSecondaryStructureSource(); 
-    if(ssSource == null || ssSource == "") {
+            .getAlignmentAnnotation();
+
+    String ssSource = scoreParams.getSecondaryStructureSource();
+    if (ssSource == null || ssSource == "")
+    {
       ssSource = Constants.SS_ALL_PROVIDERS;
     }
-    
+
     /*
      * Add secondary structure annotations that are added to the annotation track
      * to the map
      */
-    Map<SequenceI, ArrayList<AlignmentAnnotation>> ssAlignmentAnnotationForSequences 
-      = AlignmentUtils.getSequenceAssociatedAlignmentAnnotations(alignAnnotList, ssSource);
-    
+    Map<SequenceI, ArrayList<AlignmentAnnotation>> ssAlignmentAnnotationForSequences = AlignmentUtils
+            .getSequenceAssociatedAlignmentAnnotations(alignAnnotList,
+                    ssSource);
+
     for (SeqCigar scig : seqData.getSequences())
     {
       // get the next sequence that should be bound to this scig: may be null
       SequenceI alSeq = sequences[sq++];
-      List<AlignmentAnnotation> ssec = ssAlignmentAnnotationForSequences.get(scig.getRefSeq());
+      List<AlignmentAnnotation> ssec = ssAlignmentAnnotationForSequences
+              .get(scig.getRefSeq());
       if (ssec == null)
       {
         // not defined
         newSequences.add(alSeq);
-        if (alSeq!=null) {
+        if (alSeq != null)
+        {
           labels.add("No Secondary Structure");
         }
-        SeqCigar newSeqCigar = scig; //new SeqCigar(scig);
+        SeqCigar newSeqCigar = scig; // new SeqCigar(scig);
         newCigs.add(newSeqCigar);
         ssForSeqs.add(null);
-      } else {
+      }
+      else
+      {
         for (int i = 0; i < ssec.size(); i++)
         {
           if (alSeq != null)
@@ -141,7 +145,7 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
             labels.add(AlignmentUtils
                     .extractSSSourceFromAnnotationDescription(ssec.get(i)));
           }
-          //newSequences.add(seq);
+          // newSequences.add(seq);
           newSequences.add(alSeq);
           SeqCigar newSeqCigar = scig; // new SeqCigar(scig);
           newCigs.add(newSeqCigar);
@@ -156,25 +160,30 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
   }
 
   /**
-   * Calculates distance score [i][j] between each pair of protein sequences 
-   * based on their secondary structure annotations (H, E, C). 
-   * The final score is normalised by the number of 
-   * alignment columns processed, providing an average similarity score.
+   * Calculates distance score [i][j] between each pair of protein sequences
+   * based on their secondary structure annotations (H, E, C). The final score
+   * is normalised by the number of alignment columns processed, providing an
+   * average similarity score.
    * <p>
-   * The parameters argument can include settings for handling gap-residue aligned 
-   * positions and may determine if the score calculation is based on the longer or shorter 
-   * sequence in each pair. This can be important for handling partial alignments or 
-   * sequences of significantly different lengths.
+   * The parameters argument can include settings for handling gap-residue
+   * aligned positions and may determine if the score calculation is based on
+   * the longer or shorter sequence in each pair. This can be important for
+   * handling partial alignments or sequences of significantly different
+   * lengths.
    * 
-   * @param seqData  The aligned sequence data including secondary structure annotations.
-   * @param params   Additional parameters for customising the scoring process, such as gap 
-   *                 handling and sequence length consideration.
+   * @param seqData
+   *          The aligned sequence data including secondary structure
+   *          annotations.
+   * @param params
+   *          Additional parameters for customising the scoring process, such as
+   *          gap handling and sequence length consideration.
    */
   @Override
   public MatrixI findDistances(AlignmentView seqData,
           SimilarityParamsI params)
-  { 
-    if (ssForSeqs==null || ssForSeqs.size()!=seqData.getSequences().length)
+  {
+    if (ssForSeqs == null
+            || ssForSeqs.size() != seqData.getSequences().length)
     {
       // expandSeqData needs to be called to initialise the hash
       SequenceI[] sequences = new SequenceI[seqData.getSequences().length];
@@ -182,20 +191,21 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
       expandSeqData(sequences, seqData, params, new ArrayList<String>());
     }
     SeqCigar[] seqs = seqData.getSequences();
-    int noseqs = seqs.length; //no of sequences
-    int cpwidth = 0; 
-    double[][] similarities = new double[noseqs][noseqs]; //matrix to store similarity score
-    //secondary structure source parameter selected by the user from the drop down.
-    String ssSource = params.getSecondaryStructureSource(); 
-    if(ssSource == null || ssSource == "") {
+    int noseqs = seqs.length; // no of sequences
+    int cpwidth = 0;
+    double[][] similarities = new double[noseqs][noseqs]; // matrix to store
+                                                          // similarity score
+    // secondary structure source parameter selected by the user from the drop
+    // down.
+    String ssSource = params.getSecondaryStructureSource();
+    if (ssSource == null || ssSource == "")
+    {
       ssSource = Constants.SS_ALL_PROVIDERS;
     }
     ssRateMatrix = ScoreModels.getInstance().getSecondaryStructureMatrix();
-        
+
     // need to get real position for view position
     int[] viscont = seqData.getVisibleContigs();
-    
-       
 
     /*
      * scan each column, compute and add to each similarity[i, j]
@@ -204,15 +214,16 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
      */
     for (int vc = 0; vc < viscont.length; vc += 2)
     {
-      //Iterates for each column position
-      for (int cpos = viscont[vc]; cpos <= viscont[vc + 1]; cpos++) 
+      // Iterates for each column position
+      for (int cpos = viscont[vc]; cpos <= viscont[vc + 1]; cpos++)
       {
-        cpwidth++; //used to normalise the similarity score 
+        cpwidth++; // used to normalise the similarity score
 
         /*
          * get set of sequences without gap in the current column
          */
-        Set<SeqCigar> seqsWithoutGapAtCol = findSeqsWithoutGapAtColumn(seqs, cpos);
+        Set<SeqCigar> seqsWithoutGapAtCol = findSeqsWithoutGapAtColumn(seqs,
+                cpos);
 
         /*
          * calculate similarity score for each secondary structure annotation on i'th and j'th
@@ -292,30 +303,31 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
      * and fill in the bottom half of the matrix
      */
     // TODO JAL-2424 cpwidth may be out by 1 - affects scores but not tree shape
-    
+
     for (int i = 0; i < noseqs; i++)
     {
       for (int j = i + 1; j < noseqs; j++)
-      {        
+      {
         similarities[i][j] /= cpwidth;
         similarities[j][i] = similarities[i][j];
       }
     }
-    return SimilarityScoreModel.similarityToDistance(new Matrix(similarities));
-    
+    return SimilarityScoreModel
+            .similarityToDistance(new Matrix(similarities));
+
   }
 
   /**
-   * Builds and returns a set containing sequences (SeqCigar) which do not
-   * have a gap at the given column position.
+   * Builds and returns a set containing sequences (SeqCigar) which do not have
+   * a gap at the given column position.
    * 
    * @param seqs
    * @param columnPosition
    *          (0..)
    * @return
    */
-  private Set<SeqCigar> findSeqsWithoutGapAtColumn(
-          SeqCigar[] seqs, int columnPosition)
+  private Set<SeqCigar> findSeqsWithoutGapAtColumn(SeqCigar[] seqs,
+          int columnPosition)
   {
     Set<SeqCigar> seqsWithoutGapAtCol = new HashSet<>();
     for (SeqCigar seq : seqs)
@@ -325,14 +337,13 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
       {
         /*
          * position is not a gap
-         */        
+         */
         seqsWithoutGapAtCol.add(seq);
       }
     }
     return seqsWithoutGapAtCol;
   }
 
-    
   @Override
   public String getName()
   {
@@ -348,7 +359,7 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
   @Override
   public boolean isDNA()
   {
-    return false; 
+    return false;
   }
 
   @Override
@@ -356,7 +367,7 @@ public class SecondaryStructureDistanceModel extends DistanceScoreModel
   {
     return false;
   }
-  
+
   @Override
   public boolean isSecondaryStructure()
   {
index 2a25fa8..40a4636 100644 (file)
@@ -103,7 +103,7 @@ public class SimilarityParams implements SimilarityParamsI
   private boolean includeGaps;
 
   private boolean denominateByShortestLength;
-  
+
   private String secondaryStructureSource;
 
   /**
index 25e4873..098024c 100644 (file)
@@ -121,7 +121,9 @@ public interface AlignViewControllerI
 
   /**
    * Justify alignment or currently selected region left or right
-   * @param left - true - means justify left
+   * 
+   * @param left
+   *          - true - means justify left
    * @return
    */
   boolean justify_Region(boolean left);
index 2cdb251..5e1b812 100644 (file)
@@ -85,9 +85,9 @@ public interface AlignViewportI extends ViewStyleI
   boolean isValidCharWidth();
 
   boolean isShowConsensusHistogram();
-  
+
   boolean isShowSequenceLogo();
-  
+
   boolean isNormaliseSequenceLogo();
 
   ColourSchemeI getGlobalColourScheme();
@@ -129,9 +129,8 @@ public interface AlignViewportI extends ViewStyleI
    * @return
    */
   AlignmentAnnotation getAlignmentConsensusAnnotation();
-  
-  List<AlignmentAnnotation> getAlignmentSecondaryStructureConsensusAnnotation();
 
+  List<AlignmentAnnotation> getAlignmentSecondaryStructureConsensusAnnotation();
 
   /**
    * get the container for alignment gap annotation
@@ -178,9 +177,9 @@ public interface AlignViewportI extends ViewStyleI
    * @param hconsensus
    */
   void setSequenceConsensusHash(ProfilesI hconsensus);
-  
-  void setSequenceSSConsensusHash(Map<String, ProfilesI> hSSConsesnusProfileMap);
-  
+
+  void setSequenceSSConsensusHash(
+          Map<String, ProfilesI> hSSConsesnusProfileMap);
 
   /**
    * Set the cDNA complement consensus for the viewport
@@ -571,6 +570,7 @@ public interface AlignViewportI extends ViewStyleI
    * @return
    */
   Iterator<int[]> getViewAsVisibleContigs(boolean selectedRegionOnly);
+
   /**
    * notify all concerned that the alignment data has changed and derived data
    * needs to be recalculated
@@ -578,7 +578,8 @@ public interface AlignViewportI extends ViewStyleI
   public void notifyAlignmentChanged();
 
   /**
-   * retrieve a matrix associated with the view's alignment's annotation 
+   * retrieve a matrix associated with the view's alignment's annotation
+   * 
    * @param alignmentAnnotation
    * @return contact matrix or NULL
    */
index bed31c4..78bd2c9 100644 (file)
@@ -38,7 +38,7 @@ public interface ViewStyleI
   boolean getColourAppliesToAllGroups();
 
   boolean getAbovePIDThreshold();
-  
+
   boolean getByConsensusSecondaryStructureSelected();
 
   void setIncrement(int inc);
@@ -66,9 +66,9 @@ public interface ViewStyleI
   boolean getScaleRightWrapped();
 
   void setAbovePIDThreshold(boolean b);
-  
+
   void setByConsensusSecondaryStructureSelected(boolean b);
-  
+
   void setShowStructureProvider(boolean b);
 
   boolean isShowStructureProvider();
index 3613afd..d6ab555 100644 (file)
@@ -65,21 +65,18 @@ public interface ScoreModelI
 
   // TODO getName, isDNA, isProtein can be static methods in Java 8
 
-  
   default public boolean isSecondaryStructure()
   {
     return false;
   }
 
   /**
-   * Answers false by default 
-   * Answers true if the data has secondary structure (so should be
-   * shown in menus in that context)
+   * Answers false by default Answers true if the data has secondary structure
+   * (so should be shown in menus in that context)
    * 
    * @return
    */
-  
-  
+
   /**
    * Returns a distance score for the given sequence regions, that is, a matrix
    * whose value [i][j] is the distance of sequence i from sequence j by some
@@ -117,13 +114,22 @@ public interface ScoreModelI
   ScoreModelI getInstance(AlignmentViewPanel avp);
 
   /**
-   * Score models may create multiple leaves for a single sequence - implement this method if you do
-   * @param sequences - sequences to be filtered/expanded set of leaves
-   * @param seqData - origin
-   * @param labels - strings to show instead of the SequenceI.getName() for each element of sequences attached to leaves
+   * Score models may create multiple leaves for a single sequence - implement
+   * this method if you do
+   * 
+   * @param sequences
+   *          - sequences to be filtered/expanded set of leaves
+   * @param seqData
+   *          - origin
+   * @param labels
+   *          - strings to show instead of the SequenceI.getName() for each
+   *          element of sequences attached to leaves
    * @return filtered/expanded set of leaves to be analysed
    */
-  default SequenceI[] expandSeqData(SequenceI[] sequences, AlignmentView seqData, SimilarityParamsI scoreParams, List<String> labels) { 
-    return sequences; 
+  default SequenceI[] expandSeqData(SequenceI[] sequences,
+          AlignmentView seqData, SimilarityParamsI scoreParams,
+          List<String> labels)
+  {
+    return sequences;
   };
 }
index 43f2866..2558515 100644 (file)
@@ -60,7 +60,7 @@ public interface SimilarityParamsI
    * @return
    */
   boolean denominateByShortestLength();
-  
+
   String getSecondaryStructureSource();
 
   void setSecondaryStructureSource(String secondaryStructureSource);
index 55a5364..b77ee85 100644 (file)
@@ -3432,8 +3432,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     Menu autoAnnMenu = new Menu(
             MessageManager.getString("label.autocalculated_annotation"));
 
-    Menu selectSS = new Menu(
-            MessageManager.getString("label.select_secondary_structure_source"));
+    Menu selectSS = new Menu(MessageManager
+            .getString("label.select_secondary_structure_source"));
     showGroupConsensus.addItemListener(this);
     showGroupConservation.addItemListener(this);
     showConsensusHistogram.addItemListener(this);
index a45fc42..8c3c5dd 100755 (executable)
@@ -1489,11 +1489,10 @@ public class Cache
                 if (customProxySet &&
                 // we have a username but no password for the scheme being
                 // requested
-                        (protocol.equalsIgnoreCase("http")
-                                && (httpUser != null
-                                        && httpUser.length() > 0
-                                        && (httpPassword == null
-                                                || httpPassword.length == 0)))
+                (protocol.equalsIgnoreCase("http")
+                        && (httpUser != null && httpUser.length() > 0
+                                && (httpPassword == null
+                                        || httpPassword.length == 0)))
                         || (protocol.equalsIgnoreCase("https")
                                 && (httpsUser != null
                                         && httpsUser.length() > 0
index 7e1296e..2e2dd49 100644 (file)
@@ -2251,8 +2251,8 @@ public class JalviewLite extends Applet
         PDBEntry[] pdb = new PDBEntry[pdbs.size()];
         String[][] chains = new String[pdbs.size()][];
         String[] protocols = new String[pdbs.size()];
-        for (int pdbsi = 0,
-                pdbsiSize = pdbs.size(); pdbsi < pdbsiSize; pdbsi++)
+        for (int pdbsi = 0, pdbsiSize = pdbs
+                .size(); pdbsi < pdbsiSize; pdbsi++)
         {
           Object[] o = (Object[]) pdbs.elementAt(pdbsi);
           pdb[pdbsi] = (PDBEntry) o[0];
index 2559662..c1eb655 100644 (file)
@@ -58,8 +58,8 @@ public class JustifyLeftOrRightCommand extends EditCommand
       {
         continue;
       }
-      char[] range = seq.getSequence(from, to+1);
-      if (range==null || range.length==0)
+      char[] range = seq.getSequence(from, to + 1);
+      if (range == null || range.length == 0)
       {
         continue;
       }
@@ -78,7 +78,7 @@ public class JustifyLeftOrRightCommand extends EditCommand
         alseq[gapstart + gp] = gc;
       }
 
-      for (int sqp = 0,insp=0; sqp<alseq.length; sqp++)
+      for (int sqp = 0, insp = 0; sqp < alseq.length; sqp++)
       {
         if (sqp < range.length && !Comparison.isGap(range[sqp]))
         {
index bccacfa..3ab90e6 100644 (file)
@@ -500,7 +500,7 @@ public class AlignViewController implements AlignViewControllerI
     // Technically we should return false, since view has not changed
     return false;
   }
-  
+
   @Override
   public boolean justify_Region(boolean left)
   {
index 5073912..aacfa7d 100755 (executable)
@@ -71,7 +71,7 @@ public class Alignment implements AlignmentI, AutoCloseable
   public Hashtable alignmentProperties;
 
   private List<AlignedCodonFrame> codonFrameList;
-  
+
   private void initAlignment(SequenceI[] seqs)
   {
     groups = Collections.synchronizedList(new ArrayList<SequenceGroup>());
@@ -82,13 +82,12 @@ public class Alignment implements AlignmentI, AutoCloseable
     nucleotide = Comparison.isNucleotide(seqs);
 
     sequences = Collections.synchronizedList(new ArrayList<SequenceI>());
-    
 
     for (int i = 0; i < seqs.length; i++)
     {
       sequences.add(seqs[i]);
     }
-   
+
   }
 
   /**
index d660f8f..12c7225 100755 (executable)
@@ -57,7 +57,7 @@ public class AlignmentAnnotation
   public static final int CDNA_PROFILE = 2;
 
   private static long counter = 0;
-  
+
   private long noOfSequencesIncluded = -1;
 
   /**
index 2b5894a..ef543db 100755 (executable)
@@ -34,7 +34,7 @@ public class BinaryNode<T>
 
   String name;
 
-  String label=null;
+  String label = null;
 
   BinaryNode<T> left;
 
@@ -366,14 +366,17 @@ public class BinaryNode<T>
 
     return oldstate;
   }
+
   /**
    * check if there's a label to show
+   * 
    * @return true if non-empty/null string
    */
   public boolean hasLabel()
   {
-    return label!=null && !label.isEmpty();
+    return label != null && !label.isEmpty();
   }
+
   public String getLabel()
   {
     return label;
@@ -402,14 +405,15 @@ public class BinaryNode<T>
 
   public String getDisplayName()
   {
-    if (name!=null && !name.isBlank())
+    if (name != null && !name.isBlank())
     {
-     
-      if (hasLabel()) {
-        return getName()+"|"+label;
+
+      if (hasLabel())
+      {
+        return getName() + "|" + label;
       }
       return name;
     }
-    return hasLabel() ? label:"";
+    return hasLabel() ? label : "";
   }
 }
index fb9e96a..08f3eff 100755 (executable)
@@ -516,7 +516,8 @@ public class PDBEntry
     if (_hasProperty(AUTHORITATIVE_ID))
     {
       Object authId = getProperty(AUTHORITATIVE_ID);
-      return (authId instanceof Boolean) ? (Boolean) authId : Boolean.valueOf(authId.toString());
+      return (authId instanceof Boolean) ? (Boolean) authId
+              : Boolean.valueOf(authId.toString());
     }
     return false;
   }
@@ -650,9 +651,9 @@ public class PDBEntry
 
   public void setProviderCategory(String providerCategory)
   {
-    setProperty(PROVIDERCATEGORY, providerCategory);    
+    setProperty(PROVIDERCATEGORY, providerCategory);
   }
-  
+
   public String getProviderCategory()
   {
     return (String) getProperty(PROVIDERCATEGORY);
@@ -662,5 +663,5 @@ public class PDBEntry
   {
     return _hasProperty(PROVIDERCATEGORY);
   }
-  
+
 }
index bc87204..cd892e4 100644 (file)
@@ -32,9 +32,9 @@ public class Profile implements ProfileI
    * an object holding counts of symbols in the profile
    */
   private ResidueCount counts;
-  
+
   private SecondaryStructureCount ssCounts;
-  
+
   private int seqWithSSCount = -1;
 
   /*
@@ -51,15 +51,15 @@ public class Profile implements ProfileI
    * the highest count for any residue in the profile
    */
   private int maxCount;
+
   private int maxSSCount;
-  
 
   /*
    * the residue (e.g. K) or residues (e.g. KQW) with the
    * highest count in the profile
    */
   private String modalResidue;
-  
+
   private String modalSS;
 
   /**
@@ -82,8 +82,9 @@ public class Profile implements ProfileI
     this.maxCount = max;
     this.modalResidue = modalRes;
   }
-  
-  public Profile(String modalSS, int ssCount, int gaps, int maxSSCount, int seqWithSSCount)
+
+  public Profile(String modalSS, int ssCount, int gaps, int maxSSCount,
+          int seqWithSSCount)
   {
     this.height = ssCount;
     this.gapped = gaps;
@@ -100,7 +101,7 @@ public class Profile implements ProfileI
   {
     this.counts = residueCounts;
   }
-  
+
   @Override
   public void setSSCounts(SecondaryStructureCount secondaryStructureCount)
   {
@@ -128,7 +129,7 @@ public class Profile implements ProfileI
     }
     return pid;
   }
-  
+
   @Override
   public float getSSPercentageIdentity(boolean ignoreGaps)
   {
@@ -156,7 +157,7 @@ public class Profile implements ProfileI
   {
     return counts;
   }
-  
+
   @Override
   public SecondaryStructureCount getSSCounts()
   {
@@ -189,7 +190,7 @@ public class Profile implements ProfileI
   {
     return maxCount;
   }
-  
+
   @Override
   public int getMaxSSCount()
   {
@@ -204,7 +205,7 @@ public class Profile implements ProfileI
   {
     return modalResidue;
   }
-  
+
   @Override
   public String getModalSS()
   {
index 9046f23..3e01507 100644 (file)
@@ -29,8 +29,9 @@ public interface ProfileI
    * @param residueCounts
    */
   public abstract void setCounts(ResidueCount residueCounts);
-  public abstract void setSSCounts(SecondaryStructureCount secondaryStructureCount);
-  
+
+  public abstract void setSSCounts(
+          SecondaryStructureCount secondaryStructureCount);
 
   /**
    * Returns the percentage identity of the profile, i.e. the highest proportion
@@ -41,7 +42,7 @@ public interface ProfileI
    * @return
    */
   public abstract float getPercentageIdentity(boolean ignoreGaps);
-  
+
   public abstract float getSSPercentageIdentity(boolean ignoreGaps);
 
   /**
@@ -57,7 +58,7 @@ public interface ProfileI
    * @return
    */
   public abstract int getHeight();
-  
+
   public abstract int getSeqWithSSCount();
 
   /**
@@ -74,6 +75,7 @@ public interface ProfileI
    * @return
    */
   public abstract int getMaxCount();
+
   public abstract int getMaxSSCount();
 
   /**
@@ -83,6 +85,7 @@ public interface ProfileI
    * @return
    */
   public abstract String getModalResidue();
+
   public abstract String getModalSS();
 
   /**
@@ -91,6 +94,7 @@ public interface ProfileI
    * @return
    */
   public abstract int getNonGapped();
+
   SecondaryStructureCount getSSCounts();
 
 }
\ No newline at end of file
index 52e9746..7d1b43c 100644 (file)
@@ -63,7 +63,6 @@ public class SecondaryStructureCount
    */
   private static final String SS_SYMBOLS = "HEC";
 
-
   static final int GAP_COUNT = 0;
 
   /*
@@ -116,7 +115,7 @@ public class SecondaryStructureCount
    */
   public SecondaryStructureCount()
   {
-    //isSS = true;
+    // isSS = true;
     int charsToCount = SS_SYMBOLS.length();
     counts = new short[charsToCount + 1];
   }
@@ -419,8 +418,7 @@ public class SecondaryStructureCount
       {
         if (intCounts[i] == count)
         {
-          modal.append(
-                  SS_SYMBOLS.charAt(i - 1));
+          modal.append(SS_SYMBOLS.charAt(i - 1));
         }
       }
     }
@@ -430,8 +428,7 @@ public class SecondaryStructureCount
       {
         if (counts[i] == count)
         {
-          modal.append(
-                  SS_SYMBOLS.charAt(i - 1));
+          modal.append(SS_SYMBOLS.charAt(i - 1));
         }
       }
     }
index 38104e5..a2eaf1d 100755 (executable)
@@ -136,7 +136,6 @@ public class SequenceGroup implements AnnotatedCollectionI
    * consensus calculation property
    */
   private boolean showSequenceLogo = false;
-  
 
   /**
    * flag indicating if logo should be rendered normalised
@@ -154,18 +153,17 @@ public class SequenceGroup implements AnnotatedCollectionI
   private boolean hidecols = false;
 
   AlignmentAnnotation consensus = null;
-  
 
   List<AlignmentAnnotation> ssConsensus = null;
-  
+
   List<String> secondaryStructureSources = null;
 
   AlignmentAnnotation conservation = null;
 
   private boolean showConsensusHistogram;
-  
+
   private AnnotatedCollectionI context;
-  
+
   public Map<String, ProfilesI> hSSConsensusProfileMap;
 
   /**
@@ -418,7 +416,7 @@ public class SequenceGroup implements AnnotatedCollectionI
     }
     return tmp.toArray(new SequenceI[tmp.size()]);
   }
-  
+
   public List<String> getSecondaryStructureSources()
   {
     return secondaryStructureSources;
@@ -633,38 +631,39 @@ public class SequenceGroup implements AnnotatedCollectionI
         cs.setConsensus(cnsns);
         upd = true;
       }
-      
+
       hSSConsensusProfileMap = new HashMap<String, ProfilesI>();
-      List <String> ssSources = new ArrayList<String>();
+      List<String> ssSources = new ArrayList<String>();
       AnnotatedCollectionI aa = this.getContext();
-      
-      if(aa !=null )
+
+      if (aa != null)
       {
-        ssSources = AlignmentUtils.extractSSSourceInAlignmentAnnotation(aa.getAlignmentAnnotation());
+        ssSources = AlignmentUtils.extractSSSourceInAlignmentAnnotation(
+                aa.getAlignmentAnnotation());
       }
-      if(ssSources != null) {
+      if (ssSources != null)
+      {
         ssSources.add(Constants.SS_ALL_PROVIDERS);
 
-        for(String ssSource : ssSources) {
-          ProfilesI hSSConsensus = AAFrequency.calculateSS(sequences, startRes,  endRes + 1, showSequenceLogo,
-                  ssSource);
+        for (String ssSource : ssSources)
+        {
+          ProfilesI hSSConsensus = AAFrequency.calculateSS(sequences,
+                  startRes, endRes + 1, showSequenceLogo, ssSource);
           hSSConsensusProfileMap.put(ssSource, hSSConsensus);
         }
       }
-            
 
       if (ssConsensus != null)
       {
         _updateSSConsensusRow(hSSConsensusProfileMap, sequences.size());
         upd = true;
       }
-      
+
       if (cs != null)
       {
         cs.setSSConsensusProfileMap(hSSConsensusProfileMap);
         upd = true;
       }
-      
 
       if ((conservation != null)
               || (cs != null && cs.conservationApplied()))
@@ -754,68 +753,82 @@ public class SequenceGroup implements AnnotatedCollectionI
     // for
     // ignoreGapsInConsensusCalculation);
   }
-  
+
   /**
-   * Updates the secondary structure consensus row based on the provided profiles map and the number of sequences.
+   * Updates the secondary structure consensus row based on the provided
+   * profiles map and the number of sequences.
    *
-   * @param hSSConsensusProfileMap A map containing secondary structure consensus profiles for each providers.
-   * @param nseq The number of sequences.
+   * @param hSSConsensusProfileMap
+   *          A map containing secondary structure consensus profiles for each
+   *          providers.
+   * @param nseq
+   *          The number of sequences.
    */
-  private void _updateSSConsensusRow(Map<String, ProfilesI> hSSConsensusProfileMap, long nseq)
+  private void _updateSSConsensusRow(
+          Map<String, ProfilesI> hSSConsensusProfileMap, long nseq)
   {
     // Get a list of secondary structure sources from the profile map keys
-    List<String> ssSources = new ArrayList<>(hSSConsensusProfileMap.keySet());
+    List<String> ssSources = new ArrayList<>(
+            hSSConsensusProfileMap.keySet());
     secondaryStructureSources = new ArrayList<String>();
 
     // Sort the secondary structure sources alphabetically
     Collections.sort(ssSources);
-    
+
     // Initialize ssConsensus if it is null
     if (ssConsensus == null)
     {
       getSSConsensus(ssSources);
     }
-    
+
     // Iterate through each alignment annotation in the ssConsensus list
-    for (AlignmentAnnotation aa : ssConsensus) {
+    for (AlignmentAnnotation aa : ssConsensus)
+    {
       ProfilesI profile = null;
       String ssSource = null;
-      
-      // Find the matching profile for the current annotation based on its description
-      for(String source : ssSources) {
-        if(aa.description.startsWith(source)) {
+
+      // Find the matching profile for the current annotation based on its
+      // description
+      for (String source : ssSources)
+      {
+        if (aa.description.startsWith(source))
+        {
           profile = hSSConsensusProfileMap.get(source);
           ssSource = source;
         }
       }
-      
+
       // If no matching profile is found, continue to the next annotation
-      if(profile == null) {
+      if (profile == null)
+      {
         continue;
       }
 
-      // Update the label and description of the annotation with the source/provider
-      aa.label = Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL + " " + ssSource + " " + getName();
-      aa.description = ssSource + Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL +" for " + getName();
-      
+      // Update the label and description of the annotation with the
+      // source/provider
+      aa.label = Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL + " "
+              + ssSource + " " + getName();
+      aa.description = ssSource
+              + Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL + " for "
+              + getName();
+
       // Get the width of the annotations array
       int aWidth = (aa.annotations != null)
-              ? (endRes < aa.annotations.length
-                      ? aa.annotations.length
+              ? (endRes < aa.annotations.length ? aa.annotations.length
                       : endRes + 1)
               : endRes + 1;
-      aa.annotations = new Annotation[aWidth]; 
-          
+      aa.annotations = new Annotation[aWidth];
+
       // Complete the secondary structure consensus
       AAFrequency.completeSSConsensus(aa, profile, startRes, endRes + 1,
-            ignoreGapsInConsensus, showSequenceLogo, nseq); 
-                                                            
-      //Add the provider to the list if the no of sequences 
-      //contributed to the secondary structure consensus is 
-      //more than 0.  
-      if(aa.getNoOfSequencesIncluded()>0 && !Constants.SS_ALL_PROVIDERS.equals(ssSource)) 
-      {  
+              ignoreGapsInConsensus, showSequenceLogo, nseq);
+
+      // Add the provider to the list if the no of sequences
+      // contributed to the secondary structure consensus is
+      // more than 0.
+      if (aa.getNoOfSequencesIncluded() > 0
+              && !Constants.SS_ALL_PROVIDERS.equals(ssSource))
+      {
         // Remove "All" from the hidden types list{
         secondaryStructureSources.add(ssSource);
       }
@@ -1247,7 +1260,7 @@ public class SequenceGroup implements AnnotatedCollectionI
       consensus = aan;
     }
   }
-  
+
   public void setSSConsensusRow(AlignmentAnnotation aan)
   {
 
@@ -1256,10 +1269,12 @@ public class SequenceGroup implements AnnotatedCollectionI
       ssConsensus = new ArrayList<AlignmentAnnotation>();
       ssConsensus.add(aan);
     }
-    else {
+    else
+    {
       boolean annotExists = ssConsensus.stream()
               .anyMatch(ssa -> ssa.label.equals(aan.label));
-      if(!annotExists) {
+      if (!annotExists)
+      {
         ssConsensus.add(aan);
       }
     }
@@ -1293,7 +1308,7 @@ public class SequenceGroup implements AnnotatedCollectionI
     }
     return consensus;
   }
-  
+
   public List<AlignmentAnnotation> getSSConsensus(List<String> ssSources)
   {
     // TODO get or calculate and get consensus annotation row for this group
@@ -1305,25 +1320,29 @@ public class SequenceGroup implements AnnotatedCollectionI
     {
       return null;
     }
-    if (ssConsensus == null && ssSources!=null)
+    if (ssConsensus == null && ssSources != null)
     {
       ssConsensus = new ArrayList<AlignmentAnnotation>();
-      
-      for(String ssSource : ssSources) {
-        AlignmentAnnotation aa = new AlignmentAnnotation("", "", new Annotation[1], 0f,
-                100f, AlignmentAnnotation.BAR_GRAPH);
-        // Setting the annotation visibility to true of the provider is "All" 
+
+      for (String ssSource : ssSources)
+      {
+        AlignmentAnnotation aa = new AlignmentAnnotation("", "",
+                new Annotation[1], 0f, 100f, AlignmentAnnotation.BAR_GRAPH);
+        // Setting the annotation visibility to true of the provider is "All"
         // and false otherwise.
         aa.visible = Constants.SS_ALL_PROVIDERS.equals(ssSource);
         aa.hasText = true;
         aa.autoCalculated = true;
         aa.groupRef = this;
 
-        aa.label = Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL + " " + ssSource + " " + getName();
-        aa.description = ssSource + Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL +" for " + getName();
+        aa.label = Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL + " "
+                + ssSource + " " + getName();
+        aa.description = ssSource
+                + Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL + " for "
+                + getName();
         ssConsensus.add(aa);
       }
-     
+
     }
     return ssConsensus;
   }
@@ -1429,7 +1448,7 @@ public class SequenceGroup implements AnnotatedCollectionI
     }
     this.showSequenceLogo = showSequenceLogo;
   }
-  
+
   /**
    * 
    * @param showConsHist
index 1c19854..36b2546 100644 (file)
@@ -785,15 +785,21 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
         }
         else
         {
-          PDBEntry ppe=getPdbEntry(pe);
-          if (ppe==null) {
-            Console.warn("Please report under JAL-4440: Unexpected null entry for PDBEntry for a structure (for structure "+fileName+")");
-            
+          PDBEntry ppe = getPdbEntry(pe);
+          if (ppe == null)
+          {
+            Console.warn(
+                    "Please report under JAL-4440: Unexpected null entry for PDBEntry for a structure (for structure "
+                            + fileName + ")");
+
             continue;
           }
-          if (ppe.getFile()==null)
+          if (ppe.getFile() == null)
           {
-            Console.warn("Please report under JAL-4440: Unexpected null entry for file that we just tried to load into Jmol: pdbEntry: "+ppe.toString()+"(for structure "+fileName+")");
+            Console.warn(
+                    "Please report under JAL-4440: Unexpected null entry for file that we just tried to load into Jmol: pdbEntry: "
+                            + ppe.toString() + "(for structure " + fileName
+                            + ")");
             continue;
           }
           File fl = new File(getPdbEntry(pe).getFile());
index 3885d4f..6affe38 100644 (file)
@@ -4255,7 +4255,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   //// ***************************************************
   //// TODO REFACTOR TREE I/O TO CONTROLLER/SEPARATE CLASS
   //// ***************************************************
-  
+
   /**
    * DOCUMENT ME!
    * 
@@ -4362,8 +4362,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     return tp;
   }
-  public TreePanel showNewickTreeForAnnotation(NewickFile nf, String treeTitle,
-          AlignmentView input, int w, int h, int x, int y)
+
+  public TreePanel showNewickTreeForAnnotation(NewickFile nf,
+          String treeTitle, AlignmentView input, int w, int h, int x, int y)
   {
     TreePanel tp = null;
 
@@ -4373,7 +4374,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
       if (nf.getTree() != null)
       {
-        tp = TreePanel.newTreeForAnnotations(alignPanel, nf, treeTitle, input);
+        tp = TreePanel.newTreeForAnnotations(alignPanel, nf, treeTitle,
+                input);
         // TODO - refactor layout code to one place for tree view methods
         tp.setSize(w, h);
 
@@ -4392,7 +4394,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     return tp;
   }
 
-
   public void showContactMapTree(AlignmentAnnotation aa, ContactMatrixI cm)
   {
     int x = 4, y = 5;
@@ -5780,8 +5781,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   {
     viewport.setShowStructureProvider(showStrucProvider.getState());
     alignPanel.paintAlignment(false, false);
-   
+
   }
+
   @Override
   protected void updateShowSecondaryStructureMenu(JMenu showSS,
           ButtonGroup ssButtonGroup)
index 9430a8b..c2b77c7 100644 (file)
@@ -242,7 +242,8 @@ public class AlignViewport extends AlignmentViewport
             .getDefault(Preferences.SHOW_AUTOCALC_ABOVE, false);
     viewStyle.setScaleProteinAsCdna(
             Cache.getDefault(Preferences.SCALE_PROTEIN_TO_CDNA, true));
-    viewStyle.setShowStructureProvider(Cache.getDefault(Preferences.SHOW_STRUC_PROVIDER, false));
+    viewStyle.setShowStructureProvider(
+            Cache.getDefault(Preferences.SHOW_STRUC_PROVIDER, false));
   }
 
   void init()
@@ -287,7 +288,7 @@ public class AlignViewport extends AlignmentViewport
               false);
       showGroupConsensus = Cache.getDefault("SHOW_GROUP_CONSENSUS", false);
       showConsensus = Cache.getDefault("SHOW_IDENTITY", true);
-      
+
       showSSConsensus = Cache.getDefault("SHOW_SS_CONSENSUS", false);
 
       showOccupancy = Cache.getDefault(Preferences.SHOW_OCCUPANCY, true);
index 9478c6f..3b968a4 100755 (executable)
@@ -249,13 +249,15 @@ public class AnnotationLabels extends JPanel
     {
       ap.av.getAlignment().deleteAnnotation(aa[selectedRow]);
       ap.av.getCalcManager().removeWorkerForAnnotation(aa[selectedRow]);
-      
-      
+
       List<AlignCalcWorkerI> workers = ap.av.getCalcManager()
-              .getRegisteredWorkersOfClass(SecondaryStructureConsensusThread.class);
-      if (!workers.isEmpty()) {
-          
-        ap.alignFrame.getViewport().getCalcManager().startWorker(workers.remove(0));
+              .getRegisteredWorkersOfClass(
+                      SecondaryStructureConsensusThread.class);
+      if (!workers.isEmpty())
+      {
+
+        ap.alignFrame.getViewport().getCalcManager()
+                .startWorker(workers.remove(0));
 
       }
     }
@@ -882,11 +884,11 @@ public class AnnotationLabels extends JPanel
     {
       msg.append(aa.sequenceRef.getName()).append(" : ");
     }
-    
+
     if (aa.graphGroup == -1)
     {
       msg.append(aa.label);
-      if(aa.getNoOfSequencesIncluded()>=0) 
+      if (aa.getNoOfSequencesIncluded() >= 0)
       {
         msg.append(" (");
         msg.append(MessageManager.getString("label.sequence_count"));
@@ -894,7 +896,7 @@ public class AnnotationLabels extends JPanel
         msg.append(")");
       }
     }
-        
+
     else if (anns != null)
     {
       boolean first = true;
@@ -937,10 +939,10 @@ public class AnnotationLabels extends JPanel
       // jalview.gui.SeqPanel.mouseMoved(..) that formats sequence feature
       // tooltips
       String desc = aa.getDescription(true).trim();
-      if(aa.getNoOfSequencesIncluded()>=0) {
+      if (aa.getNoOfSequencesIncluded() >= 0)
+      {
         desc += " (" + MessageManager.getString("label.sequence_count")
-                      + aa.getNoOfSequencesIncluded()
-                      + ")";
+                + aa.getNoOfSequencesIncluded() + ")";
       }
       if (!desc.toLowerCase(Locale.ROOT).startsWith(HTML_START_TAG))
       {
@@ -1494,11 +1496,15 @@ public class AnnotationLabels extends JPanel
             vertBar = true;
           }
         }
-        
-        if(isShowStructureProvider && aa[i].hasIcons && Constants.SECONDARY_STRUCTURE_LABELS.keySet().contains(aa[i].label)) {
-          String ssSource = AlignmentUtils.extractSSSourceFromAnnotationDescription(aa[i]);
-          if(ssSource != null && ssSource.length()>0)
-          label += " (" + ssSource + ")";
+
+        if (isShowStructureProvider && aa[i].hasIcons
+                && Constants.SECONDARY_STRUCTURE_LABELS.keySet()
+                        .contains(aa[i].label))
+        {
+          String ssSource = AlignmentUtils
+                  .extractSSSourceFromAnnotationDescription(aa[i]);
+          if (ssSource != null && ssSource.length() > 0)
+            label += " (" + ssSource + ")";
         }
 
         int labelWidth = fm.stringWidth(label) + 3;
index 4d0de1b..d37c9c0 100644 (file)
@@ -423,12 +423,13 @@ public class AppJmol extends StructureViewerBase
 
   public boolean isRepainting()
   {
-    if (renderPanel!=null && renderPanel.isVisible())
+    if (renderPanel != null && renderPanel.isVisible())
     {
       return renderPanel.repainting;
     }
     return false;
   }
+
   /**
    * Outputs the Jmol viewer image as an image file, after prompting the user to
    * choose a file and (for EPS) choice of Text or Lineart character rendering
@@ -441,10 +442,12 @@ public class AppJmol extends StructureViewerBase
   {
     while (!isRepainting())
     {
-      try {
+      try
+      {
         Thread.sleep(2);
       } catch (Exception q)
-      {}
+      {
+      }
     }
     try
     {
@@ -642,17 +645,18 @@ public class AppJmol extends StructureViewerBase
       }
       else
       {
-        repainting=true;
+        repainting = true;
         synchronized (jmb)
         {
           jmb.jmolViewer.renderScreenImage(g, currentSize.width,
                   currentSize.height);
-          
+
         }
-        repainting=false;
+        repainting = false;
       }
     }
-    volatile boolean repainting=false;
+
+    volatile boolean repainting = false;
   }
 
   @Override
index 2e4e99d..fd8745d 100644 (file)
@@ -541,13 +541,14 @@ public class CalculationChooser extends JPanel
     final JComboBox<String> comboBox = new JComboBox<>();
     Object curSel = comboBox.getSelectedItem();
     DefaultComboBoxModel<String> sourcesModel = new DefaultComboBoxModel<>();
-    
+
     List<String> ssSources = getApplicableSecondaryStructureSources();
-    
-    if(ssSources == null) {
+
+    if (ssSources == null)
+    {
       return comboBox;
     }
-    ssSources.add(0, MessageManager.getString("option.ss_providers_all")); 
+    ssSources.add(0, MessageManager.getString("option.ss_providers_all"));
 
     boolean selectedIsPresent = false;
     for (String source : ssSources)
@@ -639,8 +640,10 @@ public class CalculationChooser extends JPanel
    * 
    * @param nucleotide
    * @param forPca
-   * @param ssPresent - include secondary structure similarity model
-   * @param forPasimap - limit to ScoreMatrix based models - allows use of AlignSeq
+   * @param ssPresent
+   *          - include secondary structure similarity model
+   * @param forPasimap
+   *          - limit to ScoreMatrix based models - allows use of AlignSeq
    * @return
    */
   protected static List<ScoreModelI> getApplicableScoreModels(
@@ -652,7 +655,7 @@ public class CalculationChooser extends JPanel
     ScoreModels scoreModels = ScoreModels.getInstance();
     for (ScoreModelI sm : scoreModels.getModels())
     {
-      if ((!forPasimap || sm instanceof ScoreMatrix)  
+      if ((!forPasimap || sm instanceof ScoreMatrix)
               && (!nucleotide && sm.isProtein() || nucleotide && sm.isDNA()
                       || sm.isSecondaryStructure() && ssPresent))
 
@@ -676,9 +679,11 @@ public class CalculationChooser extends JPanel
 
   protected List<String> getApplicableSecondaryStructureSources()
   {
-    AlignmentAnnotation[] annotations = af.getViewport().getAlignment().getAlignmentAnnotation();
-    
-    List<String> ssSources = AlignmentUtils.extractSSSourceInAlignmentAnnotation(annotations);
+    AlignmentAnnotation[] annotations = af.getViewport().getAlignment()
+            .getAlignmentAnnotation();
+
+    List<String> ssSources = AlignmentUtils
+            .extractSSSourceInAlignmentAnnotation(annotations);
     return ssSources;
   }
 
@@ -694,16 +699,18 @@ public class CalculationChooser extends JPanel
             : modelNames.getSelectedItem().toString();
 
     String ssSource = null;
-    
-    if (modelName.equals(secondaryStructureModelName)) {
+
+    if (modelName.equals(secondaryStructureModelName))
+    {
       Object selectedItem = ssSourceDropdown.getSelectedItem();
-      if (selectedItem != null) {
-          ssSource = selectedItem.toString();
+      if (selectedItem != null)
+      {
+        ssSource = selectedItem.toString();
       }
     }
     SimilarityParams params = getSimilarityParameters(doPCA);
     params.setSecondaryStructureSource(ssSource);
-    
+
     if (doPCA)
     {
       openPcaPanel(modelName, params);
index 299af6b..10aa229 100644 (file)
@@ -94,13 +94,14 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
 
   /**
    * set font size of the textarea
+   * 
    * @param size
    */
   public void setFont(Font font)
   {
     textarea.setFont(font);
   }
-  
+
   /**
    * DOCUMENT ME!
    */
@@ -217,11 +218,12 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
     {
     }
   }
+
   /**
-  * show menu for changing the font
-  * @param e
-  */
+   * show menu for changing the font
+   * 
+   * @param e
+   */
   @Override
   public void fontSizeMenu_actionPerformed(ActionEvent e)
   {
index c144268..9c542a3 100644 (file)
@@ -2945,11 +2945,11 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     if (progressBars.get(Long.valueOf(id)) == null)
       return null;
+
     for (Component c : progressBars.get(Long.valueOf(id)).getComponents())
     {
       if (c.getClass() == JProgressBar.class)
-       return (JProgressBar) c;
+        return (JProgressBar) c;
     }
     return null;
   }
index 853d4aa..1ec4881 100755 (executable)
@@ -113,8 +113,9 @@ public class FontChooser extends GFontChooser
 
   /**
    * Creates a new FontChooser for a CutAndPasteTransfer
+   * 
    * @param cap
-  */
+   */
   public FontChooser(CutAndPasteTransfer cap)
   {
     oldFont = new Font("Monospaced", Font.PLAIN, 12);
@@ -131,7 +132,7 @@ public class FontChooser extends GFontChooser
     if (!isCapFont())
     {
       smoothFont.setSelected(ap.av.antiAlias);
-  
+
       /*
        * Enable 'scale protein as cDNA' in a SplitFrame view. The selection is
        * stored in the ViewStyle of both dna and protein Viewport. Also enable
@@ -289,6 +290,7 @@ public class FontChooser extends GFontChooser
   {
     return cap != null;
   }
+
   /**
    * DOCUMENT ME!
    */
index 1bf1e76..42e2e40 100644 (file)
@@ -133,12 +133,15 @@ public class PCAPanel extends GPCAPanel
 
     setRotatableCanvas(new RotatableCanvas(alignPanel));
 
-    if(params.getSecondaryStructureSource()!=null ) {
+    if (params.getSecondaryStructureSource() != null)
+    {
       // Initialize and set subtitle text
-      JLabel subtitleLabel = new JLabel(" Secondary Structure Provider : " 
-                  + params.getSecondaryStructureSource(), SwingConstants.LEFT);
-      this.getContentPane().add(subtitleLabel, BorderLayout.NORTH); 
-    
+      JLabel subtitleLabel = new JLabel(
+              " Secondary Structure Provider : "
+                      + params.getSecondaryStructureSource(),
+              SwingConstants.LEFT);
+      this.getContentPane().add(subtitleLabel, BorderLayout.NORTH);
+
     }
     this.getContentPane().add(getRotatableCanvas(), BorderLayout.CENTER);
 
index 702c4f4..7926efc 100644 (file)
@@ -101,12 +101,12 @@ public class PaSiMapPanel extends GPaSiMapPanel
    */
   public PaSiMapPanel(AlignmentPanel alignPanel, String modelName)
   {
-    super(8);  // dim = 8
+    super(8); // dim = 8
     this.av = alignPanel.av;
     this.ap = alignPanel;
     boolean nucleotide = av.getAlignment().isNucleotide();
 
-    //progressBar = new ProgressBar(statusPanel, statusBar);
+    // progressBar = new ProgressBar(statusPanel, statusBar);
 
     addInternalFrameListener(new InternalFrameAdapter()
     {
@@ -131,8 +131,7 @@ public class PaSiMapPanel extends GPaSiMapPanel
 
     ScoreModelI scoreModel = ScoreModels.getInstance()
             .getScoreModel(modelName, ap);
-    setPasimapModel(
-            new PaSiMapModel(av, seqs, nucleotide, scoreModel));
+    setPasimapModel(new PaSiMapModel(av, seqs, nucleotide, scoreModel));
     PaintRefresher.Register(this, av.getSequenceSetId());
 
     setRotatableCanvas(new RotatableCanvas(alignPanel));
@@ -143,8 +142,8 @@ public class PaSiMapPanel extends GPaSiMapPanel
   }
 
   /**
-   * Ensure references to potentially very large objects (the PaSiMap matrices) are
-   * nulled when the frame is closed
+   * Ensure references to potentially very large objects (the PaSiMap matrices)
+   * are nulled when the frame is closed
    */
   protected void close_actionPerformed()
   {
@@ -193,29 +192,31 @@ public class PaSiMapPanel extends GPaSiMapPanel
     progressBar.setProgressBar(message, progId);
     try
     {
-      SequenceGroup selGroup=av.getSelectionGroup();
-      
-      if (selGroup==null)
+      SequenceGroup selGroup = av.getSelectionGroup();
+
+      if (selGroup == null)
       {
         selGroup = new SequenceGroup(av.getAlignment().getSequences());
         selGroup.setStartRes(0);
-        selGroup.setEndRes(av.getAlignment().getWidth()-1);
+        selGroup.setEndRes(av.getAlignment().getWidth() - 1);
       }
-      
-      if (selGroup.getSize()>MAX_PASIMAP_SEQ)
+
+      if (selGroup.getSize() > MAX_PASIMAP_SEQ)
       {
-        int start = selGroup.getStartRes(),end=selGroup.getEndRes();
-          selGroup = new SequenceGroup(selGroup.getSequences().subList(0, MAX_PASIMAP_SEQ));
-          selGroup.setStartRes(start);
-          selGroup.setEndRes(end);
-          Console.warn("Truncated input sequences for PASIMAP analysis to "+MAX_PASIMAP_SEQ);
+        int start = selGroup.getStartRes(), end = selGroup.getEndRes();
+        selGroup = new SequenceGroup(
+                selGroup.getSequences().subList(0, MAX_PASIMAP_SEQ));
+        selGroup.setStartRes(start);
+        selGroup.setEndRes(end);
+        Console.warn("Truncated input sequences for PASIMAP analysis to "
+                + MAX_PASIMAP_SEQ);
       }
-      
+
       PairwiseAlignPanel pap = new PairwiseAlignPanel(av, selGroup, true,
               GAP_OPEN_COST, GAP_EXTEND_COST, false, null);
       pap.setDiscardAlignments(true);
       pap.setQuiet(true);
-      
+
       System.out.println(pap != null);
       setPairwiseAlignPanel(pap);
       getPasimapModel().calculate(pap);
@@ -241,9 +242,9 @@ public class PaSiMapPanel extends GPaSiMapPanel
     repaint();
     if (getParent() == null)
     {
-      Desktop.addInternalFrame(
-              this, MessageManager.formatMessage("label.calc_title",
-                      "PaSiMap", ap.alignFrame.getTitle()),
+      Desktop.addInternalFrame(this,
+              MessageManager.formatMessage("label.calc_title", "PaSiMap",
+                      ap.alignFrame.getTitle()),
               475, 450);
       this.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT));
     }
@@ -251,8 +252,8 @@ public class PaSiMapPanel extends GPaSiMapPanel
   }
 
   /**
-   * Updates the PaSiMap display after a change of component to use for x, y or z
-   * axis
+   * Updates the PaSiMap display after a change of component to use for x, y or
+   * z axis
    */
   @Override
   protected void doDimensionChange()
@@ -270,8 +271,8 @@ public class PaSiMapPanel extends GPaSiMapPanel
   }
 
   /**
-   * Sets the selected checkbox item index for PaSiMap dimension (1, 2, 3...) for
-   * the given axis (X/Y/Z)
+   * Sets the selected checkbox item index for PaSiMap dimension (1, 2, 3...)
+   * for the given axis (X/Y/Z)
    * 
    * @param index
    * @param axis
@@ -323,8 +324,8 @@ public class PaSiMapPanel extends GPaSiMapPanel
   }
 
   /**
-   * If available, shows the data which formed the inputs for the PaSiMap as a new
-   * alignment
+   * If available, shows the data which formed the inputs for the PaSiMap as a
+   * new alignment
    */
   @Override
   public void originalSeqData_actionPerformed()
@@ -452,7 +453,7 @@ public class PaSiMapPanel extends GPaSiMapPanel
     }
   }
 
-  public void makePaSiMapImage(ImageMaker.TYPE type)  throws Exception
+  public void makePaSiMapImage(ImageMaker.TYPE type) throws Exception
   {
     int width = getRotatableCanvas().getWidth();
     int height = getRotatableCanvas().getHeight();
@@ -612,7 +613,8 @@ public class PaSiMapPanel extends GPaSiMapPanel
     {
       cap.setText(getPasimapModel().getAlignmentOutput());
       Desktop.addInternalFrame(cap, MessageManager.formatMessage(
-       "label.pairwise_alignment_for_params", new String[] { this.getTitle() }), 500, 500);
+              "label.pairwise_alignment_for_params", new String[]
+              { this.getTitle() }), 500, 500);
     } catch (OutOfMemoryError oom)
     {
       new OOMWarning("exporting pairwise alignments", oom);
@@ -680,7 +682,7 @@ public class PaSiMapPanel extends GPaSiMapPanel
   public void updateProgressBar(int lengthOfTask, int progress)
   {
     JProgressBar pBar = progressBar.getProgressBar(progId);
-    if (pBar==null)
+    if (pBar == null)
     {
       return;
     }
@@ -692,22 +694,24 @@ public class PaSiMapPanel extends GPaSiMapPanel
     }
     updateProgressBar(progress);
   }
+
   public void updateProgressBar(int progress)
   {
     JProgressBar pBar = progressBar.getProgressBar(progId);
-    
-    if (pBar==null)
+
+    if (pBar == null)
     {
       return;
     }
-    
+
     pBar.setValue(progress);
     pBar.repaint();
   }
 
   /**
-   * adds a listener for a pairwise alignment panel's progress
-   * TODO: generalise for anything that can report progress ?
+   * adds a listener for a pairwise alignment panel's progress TODO: generalise
+   * for anything that can report progress ?
+   * 
    * @param pap
    */
   public void setPairwiseAlignPanel(PairwiseAlignPanel pap)
@@ -794,8 +798,8 @@ public class PaSiMapPanel extends GPaSiMapPanel
   }
 
   /**
-   * Answers the selected checkbox item index for PaSiMap dimension for the X, Y or
-   * Z axis of the display
+   * Answers the selected checkbox item index for PaSiMap dimension for the X, Y
+   * or Z axis of the display
    * 
    * @param axis
    * @return
index 3e8fb02..77ec0f5 100755 (executable)
@@ -47,7 +47,7 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
 
   private float[][] scores;
 
-  private float[][] alignmentScores;   // scores used by PaSiMap
+  private float[][] alignmentScores; // scores used by PaSiMap
 
   private int GAP_OPEN_COST;
 
@@ -60,7 +60,7 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
   private String alignmentOutput;
 
   private boolean quiet;
+
   private boolean discardAlignments;
 
   private boolean endGaps;
@@ -73,12 +73,13 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
   private int total;
 
   private int progress;
-  
+
   private SequenceGroup selection;
+
   /**
    * input sequences
    */
-  private SequenceI[] seqs=null;
+  private SequenceI[] seqs = null;
 
   private ScoreMatrix scoreMatrix;
 
@@ -87,23 +88,31 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
    * 
    * @param viewport
    *          contains selected sequences to align
-   * @param endGaps ~ toggle gaps and the beginning and end of sequences
+   * @param endGaps
+   *          ~ toggle gaps and the beginning and end of sequences
    */
   public PairwiseAlignPanel(AlignmentViewport viewport)
   {
-    this(viewport, null, false, 120, 20, true, null);  // default penalties used in AlignSeq
+    this(viewport, null, false, 120, 20, true, null); // default penalties used
+                                                      // in AlignSeq
   }
+
   public PairwiseAlignPanel(AlignmentViewport viewport, ScoreMatrix params)
   {
-    this(viewport, null, false, 120, 20, true,params); // default penalties used in AlignSeq
+    this(viewport, null, false, 120, 20, true, params); // default penalties
+                                                        // used in AlignSeq
   }
-  public PairwiseAlignPanel(AlignmentViewport viewport, boolean endGaps, int gapOpenCost, int gapExtendCost)
+
+  public PairwiseAlignPanel(AlignmentViewport viewport, boolean endGaps,
+          int gapOpenCost, int gapExtendCost)
   {
     this(viewport, null, endGaps, gapOpenCost, gapExtendCost, true, null);
   }
 
   /**
-   * Create a new pairwise alignpanel with specified parameters and score model, and optionally start the calculation
+   * Create a new pairwise alignpanel with specified parameters and score model,
+   * and optionally start the calculation
+   * 
    * @param viewport
    * @param selection
    * @param endGaps
@@ -112,8 +121,9 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
    * @param run
    * @param scoreMatrix
    */
-  public PairwiseAlignPanel(AlignmentViewport viewport, SequenceGroup selection, boolean  endGaps,
-          int gapOpenCost, int gapExtendCost, boolean run, ScoreMatrix scoreMatrix)
+  public PairwiseAlignPanel(AlignmentViewport viewport,
+          SequenceGroup selection, boolean endGaps, int gapOpenCost,
+          int gapExtendCost, boolean run, ScoreMatrix scoreMatrix)
   {
     super();
     this.av = viewport;
@@ -123,23 +133,25 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
     this.selection = selection;
     this.total = MiscMath.combinations(av.getAlignment().getHeight(), 2);
     this.scoreMatrix = scoreMatrix;
-    if (run) {
+    if (run)
+    {
       calculate();
     }
   }
-  
+
   public void calculate()
   {
     calculate(scoreMatrix);
   }
-  public void calculate (ScoreMatrix sm)
+
+  public void calculate(ScoreMatrix sm)
   {
 
     StringBuilder sb = new StringBuilder(1024);
 
     sequences = new Vector<SequenceI>();
     String[] seqStrings;
-    seqs=null;
+    seqs = null;
 
     if (selection != null)
     {
@@ -169,7 +181,7 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
         seqs = av.getAlignment().getSequencesArray();
       }
     }
-    
+
     String type = (av.getAlignment().isNucleotide()) ? AlignSeq.DNA
             : AlignSeq.PEP;
 
@@ -177,7 +189,7 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
     float[][] alignmentScores = new float[seqs.length][seqs.length];
     double totscore = 0D;
     int count = seqs.length;
-    
+
     boolean first = true;
 
     progress = 0;
@@ -192,11 +204,12 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
         AlignSeq as = new AlignSeq(seqs[i], seqStrings[i], seqs[j],
                 seqStrings[j], type, GAP_OPEN_COST, GAP_EXTEND_COST);
 
-        if (sm != null) {
-                       as.setScoreMatrix(sm);
-               }
+        if (sm != null)
+        {
+          as.setScoreMatrix(sm);
+        }
 
-               if (as.s1str.length() == 0 || as.s2str.length() == 0)
+        if (as.s1str.length() == 0 || as.s2str.length() == 0)
         {
           continue;
         }
@@ -219,7 +232,8 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
           sb.append(DASHES);
         }
         first = false;
-        if (!discardAlignments) {
+        if (!discardAlignments)
+        {
           as.printAlignment(System.out);
         }
         scores[i][j] = as.getMaxScore() / as.getASeq1().length;
@@ -243,7 +257,7 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
     this.scores = scores;
     this.alignmentScores = alignmentScores;
 
-    if (count > 2 && !quiet) 
+    if (count > 2 && !quiet)
     {
       printScoreMatrix(seqs, scores, totscore);
     }
@@ -344,24 +358,29 @@ public class PairwiseAlignPanel extends GPairwiseAlignPanel
   {
     return progress;
   }
+
   public SequenceI[] getInputSequences()
   {
     return seqs;
   }
+
   /**
-   * Set to true to suppress output of progress to Console.stdout or GUI 
-   * @param quiet 
+   * Set to true to suppress output of progress to Console.stdout or GUI
+   * 
+   * @param quiet
    */
   public void setQuiet(boolean quiet)
   {
-    this.quiet=quiet;    
+    this.quiet = quiet;
   }
+
   /**
    * set this if you are only interested in final alignment scores
+   * 
    * @param discard
    */
   public void setDiscardAlignments(boolean discard)
   {
-    discardAlignments=discard;
+    discardAlignments = discard;
   }
 }
index a47a0a1..c03a300 100644 (file)
@@ -176,9 +176,9 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
 
   JMenuItem textColour = new JMenuItem();
 
-  JMenu editGroupMenu = new JMenu();  
+  JMenu editGroupMenu = new JMenu();
 
-  JMenu groupShowAutoCalculatedAnnotations = new JMenu();  
+  JMenu groupShowAutoCalculatedAnnotations = new JMenu();
 
   JMenu groupHideAutoCalculatedAnnotations = new JMenu();
 
@@ -455,16 +455,18 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     final List<SequenceI> selectedGroup = (alignPanel.av
             .getSelectionGroup() == null
                     ? Collections.<SequenceI> emptyList()
-                    : alignPanel.av.getSelectionGroup().getSequences());    
+                    : alignPanel.av.getSelectionGroup().getSequences());
     buildAnnotationTypesMenus(groupShowAnnotationsMenu,
             groupHideAnnotationsMenu, selectedGroup);
     configureReferenceAnnotationsMenu(groupAddReferenceAnnotations,
             selectedGroup);
-    
-    //If a sequence group is selected, build show/hide auto calculated annotations menu
+
+    // If a sequence group is selected, build show/hide auto calculated
+    // annotations menu
     SequenceGroup selectedSequenceGroup = alignPanel.av.getSelectionGroup();
-    if(selectedSequenceGroup != null) {
-      buildAutoCalculatedAnnotationsMenu(groupShowAutoCalculatedAnnotations, 
+    if (selectedSequenceGroup != null)
+    {
+      buildAutoCalculatedAnnotationsMenu(groupShowAutoCalculatedAnnotations,
               groupHideAutoCalculatedAnnotations, selectedSequenceGroup);
     }
 
@@ -664,7 +666,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       ColourMenuHelper.setColourSelected(colourMenu, sg.getColourScheme());
 
       conservationMenuItem.setEnabled(!sg.isNucleotide());
-      
+
       byConsensusSecondaryStructureMenuItem.setEnabled(!sg.isNucleotide());
 
       if (sg.cs != null)
@@ -677,7 +679,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         {
           abovePIDColour.setSelected(true);
         }
-        if(sg.cs.isConsensusSecondaryStructureColouring()) 
+        if (sg.cs.isConsensusSecondaryStructureColouring())
         {
           byConsensusSecondaryStructureMenuItem.setSelected(true);
         }
@@ -736,9 +738,10 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       unGroupMenuItem.setVisible(false);
       editGroupMenu
               .setText(MessageManager.getString("action.edit_new_group"));
-      
-      // Hide show/hide auto calculated annotations menus for group if a sequence
-      // group is not defined.      
+
+      // Hide show/hide auto calculated annotations menus for group if a
+      // sequence
+      // group is not defined.
       groupShowAutoCalculatedAnnotations.setVisible(false);
       groupHideAutoCalculatedAnnotations.setVisible(false);
     }
@@ -747,14 +750,18 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       createGroupMenuItem.setVisible(false);
       unGroupMenuItem.setVisible(true);
       editGroupMenu.setText(MessageManager.getString("action.edit_group"));
-      
-      // Show show/hide auto calculated annotations menus for group if a sequence
-      // group is defined and showGroupSSConsensus is true. Hide the menus otherwise.
-      if(alignPanel.av.isShowGroupSSConsensus()) {
+
+      // Show show/hide auto calculated annotations menus for group if a
+      // sequence
+      // group is defined and showGroupSSConsensus is true. Hide the menus
+      // otherwise.
+      if (alignPanel.av.isShowGroupSSConsensus())
+      {
         groupShowAutoCalculatedAnnotations.setVisible(true);
         groupHideAutoCalculatedAnnotations.setVisible(true);
       }
-      else {
+      else
+      {
         groupShowAutoCalculatedAnnotations.setVisible(false);
         groupHideAutoCalculatedAnnotations.setVisible(false);
       }
@@ -1074,7 +1081,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     // grey out 'hide annotations' if none are shown
     hideMenu.setEnabled(!shownTypes.isEmpty());
   }
-  
+
   /**
    * Builds the menu for showing and hiding auto calculated annotations for a
    * selected sequence group. It clears existing menu items and adds menu items
@@ -1127,7 +1134,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
                     AlignmentAnnotationUtils.asList(annotations),
                     selectedSequenceGroup);
 
-    // Add code if additional auto calculated annotation types (like residue consensus,
+    // Add code if additional auto calculated annotation types (like residue
+    // consensus,
     // conservation, etc.) are needed for a selected group
 
     // Add currently hidden types to the show menu
@@ -1151,8 +1159,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     groupShowAutoCalculatedAnnotations.setEnabled(!hiddenTypes.isEmpty());
     groupHideAutoCalculatedAnnotations.setEnabled(!shownTypes.isEmpty());
   }
-  
-  
+
   /**
    * Adds a menu item to the provided menu for showing or hiding a specific type
    * of auto calculated annotation
@@ -1165,8 +1172,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    * @param type
    *          The type of annotation to show or hide.
    * @param allTypes
-   *          Indicates if the action should apply to all annotation types. 
-   *          True if user selects "All".
+   *          Indicates if the action should apply to all annotation types. True
+   *          if user selects "All".
    * @param actionIsShow
    *          Indicates if the item is for showing (true) or hiding (false) the
    *          annotation type.
@@ -1199,8 +1206,6 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     showOrHideAutoCalculatedAnnotationsMenu.add(item);
   }
 
-
-
   /**
    * Returns a list of sequences - either the current selection group (if there
    * is one), else the specified single sequence.
@@ -1622,10 +1627,10 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
             .setText(MessageManager.getString("label.show_annotations"));
     groupHideAnnotationsMenu
             .setText(MessageManager.getString("label.hide_annotations"));
-    groupShowAutoCalculatedAnnotations
-    .setText(MessageManager.getString("label.group_show_auto_calculated_annotations"));
-    groupHideAutoCalculatedAnnotations
-    .setText(MessageManager.getString("label.group_hide_auto_calculated_annotations"));
+    groupShowAutoCalculatedAnnotations.setText(MessageManager
+            .getString("label.group_show_auto_calculated_annotations"));
+    groupHideAutoCalculatedAnnotations.setText(MessageManager
+            .getString("label.group_hide_auto_calculated_annotations"));
     JMenuItem sequenceFeature = new JMenuItem(
             MessageManager.getString("label.create_sequence_feature"));
     sequenceFeature.addActionListener(new ActionListener()
@@ -1794,18 +1799,19 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
                 conservationMenuItem.isSelected());
       }
     });
-    
-    byConsensusSecondaryStructureMenuItem.setText(
-            MessageManager.getString("action.by_secondary_structure_conservation"));
-    byConsensusSecondaryStructureMenuItem.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        colourByConsensusSecondaryStructureMenuItem_actionPerformed(
-                byConsensusSecondaryStructureMenuItem.isSelected());
-      }
-    });
+
+    byConsensusSecondaryStructureMenuItem.setText(MessageManager
+            .getString("action.by_secondary_structure_conservation"));
+    byConsensusSecondaryStructureMenuItem
+            .addActionListener(new ActionListener()
+            {
+              @Override
+              public void actionPerformed(ActionEvent e)
+              {
+                colourByConsensusSecondaryStructureMenuItem_actionPerformed(
+                        byConsensusSecondaryStructureMenuItem.isSelected());
+              }
+            });
 
     annotationColour = new JRadioButtonMenuItem(
             MessageManager.getString("action.by_annotation"));
@@ -1824,17 +1830,19 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         modifyConservation_actionPerformed();
       }
     });
-    
-    modifyConsensusSecondaryStructureThreshold.setText(MessageManager
-            .getString("label.modify_secondary_structure_conservation_threshold"));
-    modifyConsensusSecondaryStructureThreshold.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        modifyConsensusSecondaryStructureThreshold_actionPerformed();
-      }
-    });
+
+    modifyConsensusSecondaryStructureThreshold
+            .setText(MessageManager.getString(
+                    "label.modify_secondary_structure_conservation_threshold"));
+    modifyConsensusSecondaryStructureThreshold
+            .addActionListener(new ActionListener()
+            {
+              @Override
+              public void actionPerformed(ActionEvent e)
+              {
+                modifyConsensusSecondaryStructureThreshold_actionPerformed();
+              }
+            });
   }
 
   /**
@@ -1878,17 +1886,17 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       SliderPanel.showConservationSlider();
     }
   }
-  
+
   protected void modifyConsensusSecondaryStructureThreshold_actionPerformed()
   {
     SequenceGroup sg = getGroup();
     if (sg.cs != null)
     {
-      SliderPanel.setConsensusSecondaryStructureSlider(ap, sg.cs, sg.getName());
+      SliderPanel.setConsensusSecondaryStructureSlider(ap, sg.cs,
+              sg.getName());
       SliderPanel.showConsensusSecondaryStructureSlider();
     }
   }
-  
 
   protected void modifyPID_actionPerformed()
   {
@@ -1971,34 +1979,36 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
   {
     final AlignmentI alignment = this.ap.getAlignment();
     AlignmentUtils.addReferenceAnnotations(candidates, alignment, null);
-        
-    if(AlignmentUtils.isSSAnnotationPresent(candidates)) {
-      
+
+    if (AlignmentUtils.isSSAnnotationPresent(candidates))
+    {
+
       restartSSConsensusWorker();
       ap.validateAnnotationDimensions(true);
       ap.fontChanged();
       ap.av.alignmentChanged(ap);
       ap.adjustAnnotationHeight();
       restartSSConsensusWorker();
-      //ap.alignFrame.getViewport().getCalcManager().restartWorkers();
+      // ap.alignFrame.getViewport().getCalcManager().restartWorkers();
     }
-        
+
   }
-  
-  
-  private void restartSSConsensusWorker() {
-    
-    List<AlignCalcWorkerI> workers = ap.alignFrame.getViewport().getCalcManager()
-            .getRegisteredWorkersOfClass(SecondaryStructureConsensusThread.class);
-    if (!workers.isEmpty()) {
-        
-      ap.alignFrame.getViewport().getCalcManager().startWorker(workers.remove(0));
-
-    }
-        
+
+  private void restartSSConsensusWorker()
+  {
+
+    List<AlignCalcWorkerI> workers = ap.alignFrame.getViewport()
+            .getCalcManager().getRegisteredWorkersOfClass(
+                    SecondaryStructureConsensusThread.class);
+    if (!workers.isEmpty())
+    {
+
+      ap.alignFrame.getViewport().getCalcManager()
+              .startWorker(workers.remove(0));
+
+    }
+
   }
-  
-  
 
   protected void makeReferenceSeq_actionPerformed(ActionEvent actionEvent)
   {
@@ -2233,8 +2243,9 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
 
     refresh();
   }
-  
-  public void colourByConsensusSecondaryStructureMenuItem_actionPerformed(boolean selected)
+
+  public void colourByConsensusSecondaryStructureMenuItem_actionPerformed(
+          boolean selected)
   {
     SequenceGroup sg = getGroup();
     if (sg.cs == null)
@@ -2244,11 +2255,11 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
 
     if (selected)
     {
-      
+
       sg.cs.setConsensusSecondaryStructureColouring(selected);
 
-      SliderPanel.setConsensusSecondaryStructureSlider(ap, sg.getGroupColourScheme(),
-              sg.getName());
+      SliderPanel.setConsensusSecondaryStructureSlider(ap,
+              sg.getGroupColourScheme(), sg.getName());
       SliderPanel.showConsensusSecondaryStructureSlider();
     }
     else
index 73cd496..9d2cb2c 100644 (file)
@@ -274,7 +274,7 @@ public class ProgressBar implements IProgressIndicator
   public JProgressBar getProgressBar(long id)
   {
     Container progBar = progressBars.get(id);
-    if (progBar==null || progBar.getComponentCount()==0)
+    if (progBar == null || progBar.getComponentCount() == 0)
     {
       return null;
     }
index 5261b23..03d8d87 100755 (executable)
@@ -119,10 +119,13 @@ public class RotatableCanvas extends JPanel
   private Point[] axisEndPoints;
 
   // fields for 'select rectangle' (JAL-1124)
-   int rectx1;
-   int recty1;
-   int rectx2;
-   int recty2;
+  int rectx1;
+
+  int recty1;
+
+  int rectx2;
+
+  int recty2;
 
   AlignmentViewport av;
 
@@ -405,11 +408,12 @@ public class RotatableCanvas extends JPanel
       }
     }
     // //Now the rectangle
-     if (rectx2 != -1 && recty2 != -1) {
-     g.setColor(Color.white);
-    
-     g.drawRect(rectx1,recty1,rectx2-rectx1,recty2-recty1);
-     }
+    if (rectx2 != -1 && recty2 != -1)
+    {
+      g.setColor(Color.white);
+
+      g.drawRect(rectx1, recty1, rectx2 - rectx1, recty2 - recty1);
+    }
   }
 
   /**
@@ -566,10 +570,10 @@ public class RotatableCanvas extends JPanel
     mouseX = x;
     mouseY = y;
 
-     rectx1 = x;
-     recty1 = y;
-     rectx2 = -1;
-     recty2 = -1;
+    rectx1 = x;
+    recty1 = y;
+    rectx2 = -1;
+    recty2 = -1;
 
     SequenceI found = findSequenceAtPoint(x, y);
 
@@ -634,12 +638,12 @@ public class RotatableCanvas extends JPanel
     // Check if this is a rectangle drawing drag
     if ((evt.getModifiersEx() & InputEvent.BUTTON3_DOWN_MASK) != 0)
     {
-       rectx2 = evt.getX();
-       recty2 = evt.getY();
-       if ((rectx2 != -1) && (recty2 != -1))
-       {
-         rectSelect(rectx1, recty1, rectx2, recty2);
-       }
+      rectx2 = evt.getX();
+      recty2 = evt.getY();
+      if ((rectx2 != -1) && (recty2 != -1))
+      {
+        rectSelect(rectx1, recty1, rectx2, recty2);
+      }
     }
     else
     {
@@ -649,7 +653,7 @@ public class RotatableCanvas extends JPanel
       mouseY = yPos;
       // findWidths();
     }
-      repaint();
+    repaint();
   }
 
   @Override
@@ -753,12 +757,10 @@ public class RotatableCanvas extends JPanel
     {
       SequencePoint sp = sequencePoints.get(i);
       int tmp1 = (int) (((sp.coord.x - centre[0]) * getScaleFactor())
-              * (getWidth() / 3.15)
-              + (getWidth() / 2.0));
+              * (getWidth() / 3.15) + (getWidth() / 2.0));
       float pre1 = ((sp.coord.x - centre[0]) * getScaleFactor());
       int tmp2 = (int) (((sp.coord.y - centre[1]) * getScaleFactor())
-              * (getHeight() / 1.70)
-              + (getHeight() / 2.0));
+              * (getHeight() / 1.70) + (getHeight() / 2.0));
       float pre2 = ((sp.coord.y - centre[1]) * getScaleFactor());
 
       if ((tmp1 > x1) && (tmp1 < x2) && (tmp2 > y1) && (tmp2 < y2))
index 6f3fb2d..80ab32c 100644 (file)
@@ -2489,7 +2489,8 @@ public class SeqPanel extends JPanel
       }
       if (stretchGroup.cs.isConsensusSecondaryStructureColouring())
       {
-        SliderPanel.setConsensusSecondaryStructureSlider(ap, groupColourScheme, name);
+        SliderPanel.setConsensusSecondaryStructureSlider(ap,
+                groupColourScheme, name);
       }
     }
     PaintRefresher.Refresh(this, av.getSequenceSetId());
index 5e1935d..a8d1386 100755 (executable)
@@ -49,7 +49,7 @@ public class SliderPanel extends GSliderPanel
   private static final String BACKGROUND = "Background";
 
   static JInternalFrame conservationSlider;
-  
+
   static JInternalFrame consensusSecondaryStructureSlider;
 
   static JInternalFrame PIDSlider;
@@ -57,7 +57,7 @@ public class SliderPanel extends GSliderPanel
   AlignmentPanel ap;
 
   boolean forConservation = true;
-  
+
   boolean forConsensusSecondaryStructure = false;
 
   ResidueShaderI cs;
@@ -77,9 +77,11 @@ public class SliderPanel extends GSliderPanel
     {
       return (SliderPanel) PIDSlider.getContentPane();
     }
-    if (consensusSecondaryStructureSlider != null && consensusSecondaryStructureSlider.isVisible())
+    if (consensusSecondaryStructureSlider != null
+            && consensusSecondaryStructureSlider.isVisible())
     {
-      return (SliderPanel) consensusSecondaryStructureSlider.getContentPane();
+      return (SliderPanel) consensusSecondaryStructureSlider
+              .getContentPane();
     }
     return null;
   }
@@ -97,13 +99,14 @@ public class SliderPanel extends GSliderPanel
    *          DOCUMENT ME!
    */
   public SliderPanel(final AlignmentPanel ap, int value,
-          boolean forConserve, boolean forConsensusSS, ResidueShaderI scheme)
+          boolean forConserve, boolean forConsensusSS,
+          ResidueShaderI scheme)
   {
     this.ap = ap;
     this.cs = scheme;
     forConservation = forConserve;
     forConsensusSecondaryStructure = forConsensusSS;
-    
+
     undoButton.setVisible(false);
     applyButton.setVisible(false);
 
@@ -114,7 +117,8 @@ public class SliderPanel extends GSliderPanel
       slider.setMinimum(0);
       slider.setMaximum(100);
     }
-    if(forConsensusSS) {
+    if (forConsensusSS)
+    {
       label.setText(MessageManager.getString(
               "label.enter_value_increase_conservation_visibility"));
       slider.setMinimum(0);
@@ -170,7 +174,8 @@ public class SliderPanel extends GSliderPanel
 
     if (conservationSlider == null)
     {
-      sliderPanel = new SliderPanel(ap, rs.getConservationInc(), true, false, rs);
+      sliderPanel = new SliderPanel(ap, rs.getConservationInc(), true,
+              false, rs);
       conservationSlider = new JInternalFrame();
       conservationSlider.setFrameIcon(null);
       conservationSlider.setContentPane(sliderPanel);
@@ -262,7 +267,7 @@ public class SliderPanel extends GSliderPanel
       conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
     }
   }
-  
+
   public static int setConsensusSecondaryStructureSlider(AlignmentPanel ap,
           ResidueShaderI rs, String source)
   {
@@ -270,20 +275,25 @@ public class SliderPanel extends GSliderPanel
 
     if (consensusSecondaryStructureSlider == null)
     {
-      sliderPanel = new SliderPanel(ap, rs.getConsensusSecondaryStructureThreshold(), false, true, rs);
+      sliderPanel = new SliderPanel(ap,
+              rs.getConsensusSecondaryStructureThreshold(), false, true,
+              rs);
       consensusSecondaryStructureSlider = new JInternalFrame();
       consensusSecondaryStructureSlider.setFrameIcon(null);
       consensusSecondaryStructureSlider.setContentPane(sliderPanel);
-      consensusSecondaryStructureSlider.setLayer(JLayeredPane.PALETTE_LAYER);
+      consensusSecondaryStructureSlider
+              .setLayer(JLayeredPane.PALETTE_LAYER);
     }
     else
     {
-      sliderPanel = (SliderPanel) consensusSecondaryStructureSlider.getContentPane();
-      sliderPanel.valueField
-              .setText(String.valueOf(rs.getConsensusSecondaryStructureThreshold()));
+      sliderPanel = (SliderPanel) consensusSecondaryStructureSlider
+              .getContentPane();
+      sliderPanel.valueField.setText(
+              String.valueOf(rs.getConsensusSecondaryStructureThreshold()));
       sliderPanel.cs = rs;
       sliderPanel.ap = ap;
-      sliderPanel.slider.setValue(rs.getConsensusSecondaryStructureThreshold());
+      sliderPanel.slider
+              .setValue(rs.getConsensusSecondaryStructureThreshold());
     }
 
     consensusSecondaryStructureSlider.setTitle(MessageManager.formatMessage(
@@ -304,8 +314,7 @@ public class SliderPanel extends GSliderPanel
 
     return sliderPanel.getValue();
   }
-  
-  
+
   public static void hideConsensusSecondaryStructureSlider()
   {
     if (consensusSecondaryStructureSlider != null)
@@ -319,8 +328,7 @@ public class SliderPanel extends GSliderPanel
       }
     }
   }
-  
-  
+
   public static void showConsensusSecondaryStructureSlider()
   {
     hidePIDSlider();
@@ -329,17 +337,19 @@ public class SliderPanel extends GSliderPanel
     if (!consensusSecondaryStructureSlider.isVisible())
     {
       Desktop.addInternalFrame(consensusSecondaryStructureSlider,
-              consensusSecondaryStructureSlider.getTitle(), true, FRAME_WIDTH,
-              FRAME_HEIGHT, false, true);
-      consensusSecondaryStructureSlider.addInternalFrameListener(new InternalFrameAdapter()
-      {
-        @Override
-        public void internalFrameClosed(InternalFrameEvent e)
-        {
-          consensusSecondaryStructureSlider = null;
-        }
-      });
-      consensusSecondaryStructureSlider.setLayer(JLayeredPane.PALETTE_LAYER);
+              consensusSecondaryStructureSlider.getTitle(), true,
+              FRAME_WIDTH, FRAME_HEIGHT, false, true);
+      consensusSecondaryStructureSlider
+              .addInternalFrameListener(new InternalFrameAdapter()
+              {
+                @Override
+                public void internalFrameClosed(InternalFrameEvent e)
+                {
+                  consensusSecondaryStructureSlider = null;
+                }
+              });
+      consensusSecondaryStructureSlider
+              .setLayer(JLayeredPane.PALETTE_LAYER);
     }
   }
 
@@ -486,7 +496,7 @@ public class SliderPanel extends GSliderPanel
     {
       scheme.setThreshold(percent, ap.av.isIgnoreGapsConsensus());
     }
-    if(forConsensusSecondaryStructure)
+    if (forConsensusSecondaryStructure)
     {
       scheme.setConsensusSecondaryStructureColouring(true);
       scheme.setConsensusSecondaryStructureThreshold(percent);
@@ -568,7 +578,7 @@ public class SliderPanel extends GSliderPanel
   {
     return getValue(PIDSlider);
   }
-  
+
   public static int getConsensusSecondaryStructureSliderValue()
   {
     return getValue(consensusSecondaryStructureSlider);
@@ -605,7 +615,7 @@ public class SliderPanel extends GSliderPanel
     {
       title = PIDSlider.getTitle();
     }
-    else if(consensusSecondaryStructureSlider != null)
+    else if (consensusSecondaryStructureSlider != null)
     {
       title = consensusSecondaryStructureSlider.getTitle();
     }
index 9658a92..ce043fe 100644 (file)
@@ -1347,8 +1347,9 @@ public class StructureChooser extends GStructureChooser
           String pdbFilename = selectedPdbFileName;
           // TODO - tidy up this ugly hack so we call launchStructureViewer too
           StructureChooser.openStructureFileForSequence(ssm, sc, ap,
-                  selectedSequence, true, pdbFilename, tft, paeFilename,false,
-                  true,false,getTargetedStructureViewer(ssm).getViewerType());
+                  selectedSequence, true, pdbFilename, tft, paeFilename,
+                  false, true, false,
+                  getTargetedStructureViewer(ssm).getViewerType());
         }
         SwingUtilities.invokeLater(new Runnable()
         {
@@ -1820,7 +1821,9 @@ public class StructureChooser extends GStructureChooser
    * @param forceHeadless
    * @param showRefAnnotations
    * @param doXferSettings
-   * @param viewerType - when not null means the viewer will be opened, providing forceHeadless/headless is not true
+   * @param viewerType
+   *          - when not null means the viewer will be opened, providing
+   *          forceHeadless/headless is not true
    * @return
    */
   public static StructureViewer openStructureFileForSequence(
@@ -1845,7 +1848,7 @@ public class StructureChooser extends GStructureChooser
       ssm = ap.getStructureSelectionManager();
       StructureSelectionManager.doConfigureStructurePrefs(ssm);
     }
-    
+
     PDBEntry fileEntry = new AssociatePdbFileWithSeq().associatePdbWithSeq(
             sFilename, DataSourceType.FILE, seq, prompt, Desktop.instance,
             tft, paeFilename, doXferSettings);
@@ -1863,7 +1866,8 @@ public class StructureChooser extends GStructureChooser
 
     sc.mainFrame.dispose();
 
-    // TODO should honor preferences - only show reference annotation that is requested - JAL-4415 JAL-3124
+    // TODO should honor preferences - only show reference annotation that is
+    // requested - JAL-4415 JAL-3124
     if (showRefAnnotations)
     {
       showReferenceAnnotationsForSequence(ap.alignFrame, seq);
index 588a4f9..08ecba6 100755 (executable)
@@ -244,11 +244,9 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
         has_placeholders = true;
       }
 
-      if (longestName.length() < lf.getDisplayName()
-              .length())
+      if (longestName.length() < lf.getDisplayName().length())
       {
-        longestName = TreeCanvas.PLACEHOLDER
-                + lf.getDisplayName();
+        longestName = TreeCanvas.PLACEHOLDER + lf.getDisplayName();
       }
       if (tp.isColumnWise() && cm != null)
       {
@@ -443,7 +441,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
       }
       if (node.hasLabel())
       {
-        nodeLabel = node.getLabel()+" "+nodeLabel;
+        nodeLabel = node.getLabel() + " " + nodeLabel;
       }
 
       if (!nodeLabel.equals(""))
@@ -1074,10 +1072,10 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
       setColor(groups.get(i), col.brighter());
 
       Vector<BinaryNode> l = tree.findLeaves(groups.get(i));
-      gatherLabelsTo(groups.get(i),l);
+      gatherLabelsTo(groups.get(i), l);
       if (!tp.isColumnWise())
       {
-        createSeqGroupFor(aps, l, col);        
+        createSeqGroupFor(aps, l, col);
       }
       else
       {
@@ -1123,7 +1121,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
   private void gatherLabelsTo(BinaryNode binaryNode, Vector<BinaryNode> l)
   {
     LinkedHashSet<String> labelsForNode = new LinkedHashSet<String>();
-    for (BinaryNode leaf:l)
+    for (BinaryNode leaf : l)
     {
       if (leaf.hasLabel())
       {
@@ -1131,13 +1129,14 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
       }
     }
     StringBuilder sb = new StringBuilder();
-    boolean first=true;
-    for (String label:labelsForNode)
+    boolean first = true;
+    for (String label : labelsForNode)
     {
-      if (!first) {
+      if (!first)
+      {
         sb.append(" | ");
       }
-      first=false;
+      first = false;
       sb.append(label);
     }
     binaryNode.setLabel(sb.toString());
@@ -1344,11 +1343,13 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
           c.verdict(false, viewport.getConsPercGaps());
           sg.cs.setConservation(c);
         }
-        if(viewport.getResidueShading().isConsensusSecondaryStructureColouring()) 
+        if (viewport.getResidueShading()
+                .isConsensusSecondaryStructureColouring())
         {
           sg.getGroupColourScheme().setConsensusSecondaryStructureThreshold(
                   viewport.getResidueShading().getThreshold());
-          sg.getGroupColourScheme().setConsensusSecondaryStructureColouring(true);
+          sg.getGroupColourScheme()
+                  .setConsensusSecondaryStructureColouring(true);
         }
       }
       // indicate that associated structure views will need an update
index c80bf3a..bfdc119 100755 (executable)
@@ -100,7 +100,6 @@ public class TreePanel extends GTreePanel
   TreeModel tree;
 
   private AlignViewport av;
-  
 
   // New JLabel for subtitle
   private JLabel subtitleLabel;
@@ -129,7 +128,7 @@ public class TreePanel extends GTreePanel
   public TreePanel(AlignmentPanel alignPanel, NewickFile newtree,
           String theTitle, AlignmentView inputData)
   {
-    this(alignPanel, newtree, theTitle, inputData, null,null);
+    this(alignPanel, newtree, theTitle, inputData, null, null);
   }
 
   /**
@@ -138,10 +137,12 @@ public class TreePanel extends GTreePanel
   boolean forAnnotation = false;
 
   public TreePanel(AlignmentPanel alignPanel, NewickFile newtree,
-          String theTitle, AlignmentView inputData, AlignmentAnnotation[] leafAnnotations, String subTitle)
+          String theTitle, AlignmentView inputData,
+          AlignmentAnnotation[] leafAnnotations, String subTitle)
   {
     super();
-    this.forAnnotation=leafAnnotations!=null && leafAnnotations.length>0;
+    this.forAnnotation = leafAnnotations != null
+            && leafAnnotations.length > 0;
     this.setFrameIcon(null);
     this.treeTitle = theTitle;
     initTreePanel(alignPanel, null, null, newtree, inputData, null);
@@ -203,7 +204,8 @@ public class TreePanel extends GTreePanel
   }
 
   void initTreePanel(AlignmentPanel ap, String type, String modelName,
-          NewickFile newTree, AlignmentView inputData, AlignmentAnnotation[] leafAnnotations)
+          NewickFile newTree, AlignmentView inputData,
+          AlignmentAnnotation[] leafAnnotations)
   {
 
     av = ap.av;
@@ -212,7 +214,7 @@ public class TreePanel extends GTreePanel
 
     treeCanvas = new TreeCanvas(this, ap, scrollPane);
     scrollPane.setViewportView(treeCanvas);
-    
+
     if (similarityParams != null
             && similarityParams.getSecondaryStructureSource() != null)
     {
@@ -220,9 +222,9 @@ public class TreePanel extends GTreePanel
       addSubtitlePanel(" Secondary Structure Provider : "
               + similarityParams.getSecondaryStructureSource());
     }
-    if (leafAnnotations!=null)
+    if (leafAnnotations != null)
     {
-      forAnnotation=true;
+      forAnnotation = true;
     }
     if (columnWise)
     {
@@ -399,12 +401,14 @@ public class TreePanel extends GTreePanel
     private AlignmentView odata = null;
 
     private AlignmentAnnotation[] leafAnnotations;
-    public TreeLoader(NewickFile newickFile, AlignmentView inputData, AlignmentAnnotation[] leafAnnotations)
+
+    public TreeLoader(NewickFile newickFile, AlignmentView inputData,
+            AlignmentAnnotation[] leafAnnotations)
     {
       this.newtree = newickFile;
       this.odata = inputData;
       this.leafAnnotations = leafAnnotations;
-      
+
       if (newickFile != null)
       {
         // Must be outside run(), as Jalview2XML tries to
@@ -967,7 +971,8 @@ public class TreePanel extends GTreePanel
           NewickFile nf, String treeTitle2, AlignmentView input)
   {
     // TODO - recover subpanel name
-    TreePanel tp = new TreePanel(alignPanel, nf, treeTitle2, input, null, "Annotation Tree");
+    TreePanel tp = new TreePanel(alignPanel, nf, treeTitle2, input, null,
+            "Annotation Tree");
     return tp;
   }
 }
index 333f995..2bd5a91 100644 (file)
@@ -426,8 +426,9 @@ public class ThreeDBStructureChooserQuerySource
       String modelPage = humanUrl < 1 ? null
               : (String) restable.getValueAt(row, humanUrl);
 
-      String modelCategory = idx_mcat < 1 ? null :(String) restable.getValueAt(row,idx_mcat); 
-              
+      String modelCategory = idx_mcat < 1 ? null
+              : (String) restable.getValueAt(row, idx_mcat);
+
       String strucFormat = restable.getValueAt(row, modelformat).toString();
 
       SequenceI selectedSeq = (SequenceI) restable.getValueAt(row,
index 66c620b..f8783b7 100755 (executable)
@@ -1607,11 +1607,13 @@ public class AnnotationFile
         sg.cs.setThreshold(Integer.parseInt(value), true);
 
       }
-      else if(key.equalsIgnoreCase("secondaryStructureConservationThreshold")) 
+      else if (key
+              .equalsIgnoreCase("secondaryStructureConservationThreshold"))
       {
-        sg.cs.setConsensusSecondaryStructureThreshold(Integer.parseInt(value));
+        sg.cs.setConsensusSecondaryStructureThreshold(
+                Integer.parseInt(value));
         sg.cs.setConsensusSecondaryStructureColouring(true);
-        
+
       }
       else if (key.equalsIgnoreCase("consThreshold"))
       {
index fa9626b..69ebd56 100755 (executable)
@@ -132,10 +132,10 @@ public class GAlignFrame extends JInternalFrame
 
   protected JCheckBoxMenuItem abovePIDThreshold;
 
-  protected JMenuItem modifyPID;  
+  protected JMenuItem modifyPID;
 
   protected JCheckBoxMenuItem byConsensusSecondaryStructureMenuItem;
-  
+
   protected JMenuItem modifyConsensusSecondaryStructureThreshold;
 
   protected JRadioButtonMenuItem annotationColour;
@@ -199,18 +199,18 @@ public class GAlignFrame extends JInternalFrame
   protected JMenuItem gatherViews = new JMenuItem();
 
   protected JMenuItem expandViews = new JMenuItem();
-  
-  protected JCheckBoxMenuItem showStrucProvider = new JCheckBoxMenuItem();   
-  
-  protected JCheckBoxMenuItem showSSConsensus = new JCheckBoxMenuItem();   
+
+  protected JCheckBoxMenuItem showStrucProvider = new JCheckBoxMenuItem();
+
+  protected JCheckBoxMenuItem showSSConsensus = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem showGroupSSConsensus = new JCheckBoxMenuItem();
-  
+
   protected JCheckBoxMenuItem showGroupConsensus = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem showGroupConservation = new JCheckBoxMenuItem();
 
-  protected JCheckBoxMenuItem showConsensusHistogram = new JCheckBoxMenuItem();  
+  protected JCheckBoxMenuItem showConsensusHistogram = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem showSequenceLogo = new JCheckBoxMenuItem();
 
@@ -684,13 +684,14 @@ public class GAlignFrame extends JInternalFrame
     });
     showStrucProvider = new JCheckBoxMenuItem(
             MessageManager.getString("label.show_structure_provider"));
-    showStrucProvider.addActionListener(new ActionListener() {
+    showStrucProvider.addActionListener(new ActionListener()
+    {
       @Override
       public void actionPerformed(ActionEvent e)
       {
         showStructureProvider_actionPerformed(e);
       }
-      
+
     });
     colourTextMenuItem = new JCheckBoxMenuItem(
             MessageManager.getString("label.colour_text"));
@@ -877,30 +878,30 @@ public class GAlignFrame extends JInternalFrame
 
     });
 
-    showSSConsensus
-            .setText(MessageManager.getString("label.show_secondary_structure_consensus"));
+    showSSConsensus.setText(MessageManager
+            .getString("label.show_secondary_structure_consensus"));
     showSSConsensus.addActionListener(new ActionListener()
     {
-    
-    @Override
-    public void actionPerformed(ActionEvent e)
-    {
-      showSSConsensus_actionPerformed(e);
-    }
-    
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        showSSConsensus_actionPerformed(e);
+      }
+
     });
-    
+
     showGroupSSConsensus
             .setText(MessageManager.getString("label.group_ss_consensus"));
     showGroupSSConsensus.addActionListener(new ActionListener()
     {
-    
+
       @Override
       public void actionPerformed(ActionEvent e)
       {
         showGroupSSConsensus_actionPerformed(e);
       }
-    
+
     });
 
     showGroupConsensus
@@ -926,7 +927,7 @@ public class GAlignFrame extends JInternalFrame
         showConsensusHistogram_actionPerformed(e);
       }
 
-    });    
+    });
     showSequenceLogo
             .setText(MessageManager.getString("label.show_consensus_logo"));
     showSequenceLogo.addActionListener(new ActionListener()
@@ -1833,7 +1834,7 @@ public class GAlignFrame extends JInternalFrame
     addMenuActionAndAccelerator(keyStroke, copyHighlighted, al);
     copyHighlighted.addActionListener(al);
 
-    ButtonGroup ssButtonGroup = new ButtonGroup();   
+    ButtonGroup ssButtonGroup = new ButtonGroup();
 
     JMenu tooltipSettingsMenu = new JMenu(
             MessageManager.getString("label.sequence_id_tooltip"));
@@ -1841,53 +1842,72 @@ public class GAlignFrame extends JInternalFrame
             MessageManager.getString("label.autocalculated_annotation"));
 
     JMenu showSS = new JMenu(
-            MessageManager.getString("label.show_secondary_structure")); 
-    
-    JRadioButtonMenuItem radioButtonAllSS = new JRadioButtonMenuItem(MessageManager.getString("option.ss_providers_all"));
-    radioButtonAllSS.addActionListener(new ActionListener() {
-      @Override
-      public void actionPerformed(ActionEvent e) {
-          showOrHideSecondaryStructureForSource(MessageManager.getString("option.ss_providers_all"), true);
-          // Select all checkboxes if "All" is selected
-          Component[] components = showSS.getMenuComponents();
-          for (Component component : components) {
-              if (component instanceof JCheckBoxMenuItem) {
-                  ((JCheckBoxMenuItem) component).setSelected(true);
-              }
+            MessageManager.getString("label.show_secondary_structure"));
+
+    JRadioButtonMenuItem radioButtonAllSS = new JRadioButtonMenuItem(
+            MessageManager.getString("option.ss_providers_all"));
+    radioButtonAllSS.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        showOrHideSecondaryStructureForSource(
+                MessageManager.getString("option.ss_providers_all"), true);
+        // Select all checkboxes if "All" is selected
+        Component[] components = showSS.getMenuComponents();
+        for (Component component : components)
+        {
+          if (component instanceof JCheckBoxMenuItem)
+          {
+            ((JCheckBoxMenuItem) component).setSelected(true);
           }
+        }
       }
     });
     ssButtonGroup.add(radioButtonAllSS);
     showSS.add(radioButtonAllSS);
-    
-    JRadioButtonMenuItem radioButtonNoneSS = new JRadioButtonMenuItem(MessageManager.getString("option.ss_providers_none"));
-    radioButtonNoneSS.addActionListener(new ActionListener() {
-      @Override
-      public void actionPerformed(ActionEvent e) {
-          showOrHideSecondaryStructureForSource(MessageManager.getString("option.ss_providers_none"), false);
-          // Remove selection of all checkboxes if "None" is selected
-          Component[] components = showSS.getMenuComponents();
-          for (Component component : components) {
-              if (component instanceof JCheckBoxMenuItem) {
-                  ((JCheckBoxMenuItem) component).setSelected(false);
-              }
+
+    JRadioButtonMenuItem radioButtonNoneSS = new JRadioButtonMenuItem(
+            MessageManager.getString("option.ss_providers_none"));
+    radioButtonNoneSS.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        showOrHideSecondaryStructureForSource(
+                MessageManager.getString("option.ss_providers_none"),
+                false);
+        // Remove selection of all checkboxes if "None" is selected
+        Component[] components = showSS.getMenuComponents();
+        for (Component component : components)
+        {
+          if (component instanceof JCheckBoxMenuItem)
+          {
+            ((JCheckBoxMenuItem) component).setSelected(false);
           }
+        }
       }
     });
     ssButtonGroup.add(radioButtonNoneSS);
     showSS.add(radioButtonNoneSS);
     showSS.addSeparator();
-    
-    annotationsMenu.addMouseListener(new MouseAdapter() {
-      
+
+    annotationsMenu.addMouseListener(new MouseAdapter()
+    {
+
       @Override
-      public void mouseEntered(MouseEvent e) {
+      public void mouseEntered(MouseEvent e)
+      {
+
+        updateShowSecondaryStructureMenu(showSS, ssButtonGroup); // Update radio
+                                                                 // buttons
+                                                                 // every time
+                                                                 // the menu is
+                                                                 // clicked
 
-        updateShowSecondaryStructureMenu(showSS, ssButtonGroup); // Update radio buttons every time the menu is clicked
-         
       }
     });
-    
+
     JMenu exportImageMenu = new JMenu(
             MessageManager.getString("label.export_image"));
     JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
@@ -1998,7 +2018,7 @@ public class GAlignFrame extends JInternalFrame
     autoAnnMenu.add(showConsensusHistogram);
     autoAnnMenu.add(showSequenceLogo);
     autoAnnMenu.add(normaliseSequenceLogo);
-    //autoAnnMenu.add(showSSConsensus);
+    // autoAnnMenu.add(showSSConsensus);
     autoAnnMenu.addSeparator();
     autoAnnMenu.add(showGroupConservation);
     autoAnnMenu.add(showGroupConsensus);
@@ -2087,13 +2107,13 @@ public class GAlignFrame extends JInternalFrame
   protected void showStructureProvider_actionPerformed(ActionEvent e)
   {
     // TODO Auto-generated method stub
-    
+
   }
 
   protected void showSSConsensus_actionPerformed(ActionEvent e)
   {
     // TODO Auto-generated method stub
-    
+
   }
 
   protected void createPNG_actionPerformed(ActionEvent object)
@@ -2163,19 +2183,20 @@ public class GAlignFrame extends JInternalFrame
                 conservationMenuItem.isSelected());
       }
     });
-    
 
     byConsensusSecondaryStructureMenuItem = new JCheckBoxMenuItem(
-            MessageManager.getString("action.by_secondary_structure_conservation"));
-    byConsensusSecondaryStructureMenuItem.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        colourByConsensusSecondaryStructureMenuItem_actionPerformed(
-                byConsensusSecondaryStructureMenuItem.isSelected());
-      }
-    });
+            MessageManager.getString(
+                    "action.by_secondary_structure_conservation"));
+    byConsensusSecondaryStructureMenuItem
+            .addActionListener(new ActionListener()
+            {
+              @Override
+              public void actionPerformed(ActionEvent e)
+              {
+                colourByConsensusSecondaryStructureMenuItem_actionPerformed(
+                        byConsensusSecondaryStructureMenuItem.isSelected());
+              }
+            });
 
     abovePIDThreshold = new JCheckBoxMenuItem(
             MessageManager.getString("label.above_identity_threshold"));
@@ -2207,18 +2228,19 @@ public class GAlignFrame extends JInternalFrame
         modifyConservation_actionPerformed();
       }
     });
-    
-    modifyConsensusSecondaryStructureThreshold = new JMenuItem(MessageManager
-            .getString("label.modify_secondary_structure_conservation_threshold"));
-    modifyConsensusSecondaryStructureThreshold.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        modifyConsensusSecondaryStructureThreshold_actionPerformed();
-      }
-    });
-    
+
+    modifyConsensusSecondaryStructureThreshold = new JMenuItem(
+            MessageManager.getString(
+                    "label.modify_secondary_structure_conservation_threshold"));
+    modifyConsensusSecondaryStructureThreshold
+            .addActionListener(new ActionListener()
+            {
+              @Override
+              public void actionPerformed(ActionEvent e)
+              {
+                modifyConsensusSecondaryStructureThreshold_actionPerformed();
+              }
+            });
 
     annotationColour = new JRadioButtonMenuItem(
             MessageManager.getString("action.by_annotation"));
@@ -2387,7 +2409,7 @@ public class GAlignFrame extends JInternalFrame
     // TODO Auto-generated method stub
 
   }
-  
+
   protected void showGroupSSConsensus_actionPerformed(ActionEvent e)
   {
     // TODO Auto-generated method stub
@@ -2581,8 +2603,9 @@ public class GAlignFrame extends JInternalFrame
   protected void conservationMenuItem_actionPerformed(boolean selected)
   {
   }
-  
-  public void colourByConsensusSecondaryStructureMenuItem_actionPerformed(boolean selected)
+
+  public void colourByConsensusSecondaryStructureMenuItem_actionPerformed(
+          boolean selected)
   {
   }
 
@@ -2692,7 +2715,7 @@ public class GAlignFrame extends JInternalFrame
   protected void modifyConservation_actionPerformed()
   {
   }
-  
+
   protected void modifyConsensusSecondaryStructureThreshold_actionPerformed()
   {
   }
@@ -2947,16 +2970,17 @@ public class GAlignFrame extends JInternalFrame
     return null;
   }
 
-  protected void showOrHideSecondaryStructureForSource(String ssSourceSelection, boolean visible)
+  protected void showOrHideSecondaryStructureForSource(
+          String ssSourceSelection, boolean visible)
   {
     // TODO Auto-generated method stub
-    
+
   }
 
   protected void updateShowSecondaryStructureMenu(JMenu showSS,
           ButtonGroup ssButtonGroup)
   {
     // TODO Auto-generated method stub
-    
+
   }
 }
index 5daea78..106ad7c 100755 (executable)
@@ -198,7 +198,7 @@ public class GCutAndPasteTransfer extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-       fontSizeMenu_actionPerformed(e);
+        fontSizeMenu_actionPerformed(e);
       }
     });
     copyItem.setText(MessageManager.getString("action.copy"));
@@ -256,6 +256,7 @@ public class GCutAndPasteTransfer extends JInternalFrame
 
   /**
    * shows a menu for changing the font
+   * 
    * @param e
    */
   public void fontSizeMenu_actionPerformed(ActionEvent e)
index ec5b209..65394ed 100755 (executable)
@@ -85,6 +85,7 @@ public class GPCAPanel extends JInternalFrame
       zCombobox.addItem("dim " + i);
     }
   }
+
   public GPCAPanel(int dim)
   {
     try
index 369a005..3c7fb5a 100755 (executable)
@@ -85,6 +85,7 @@ public class GPaSiMapPanel extends JInternalFrame
       zCombobox.addItem("dim " + i);
     }
   }
+
   public GPaSiMapPanel(int dim)
   {
     try
@@ -223,8 +224,8 @@ public class GPaSiMapPanel extends JInternalFrame
       }
     });
     JMenuItem outputAlignment = new JMenuItem();
-    outputAlignment.setText(
-      MessageManager.getString("label.output_alignment"));
+    outputAlignment
+            .setText(MessageManager.getString("label.output_alignment"));
     outputAlignment.addActionListener(new ActionListener()
     {
       @Override
index e574327..c644e3c 100755 (executable)
@@ -160,7 +160,7 @@ public class GPreferences extends JPanel
 
   protected JCheckBox conservation = new JCheckBox();
 
-  protected JCheckBox identity = new JCheckBox();  
+  protected JCheckBox identity = new JCheckBox();
 
   protected JCheckBox ssConsensus = new JCheckBox();
 
index 7ae4b94..f767444 100755 (executable)
@@ -123,12 +123,12 @@ public class Matrix implements MatrixI
       if (row != null)
       {
         value[i] = new double[row.length];
-       int j = 0;
-       for (float oldValue : row)
-       {
-         value[i][j] = oldValue;
-         j++;
-       }
+        int j = 0;
+        for (float oldValue : row)
+        {
+          value[i][j] = oldValue;
+          j++;
+        }
       }
       i++;
     }
@@ -191,10 +191,11 @@ public class Matrix implements MatrixI
          */
         for (int k = 0; k < in.width(); k++)
         {
-         if (!Double.isNaN(in.getValue(i,k)) && !Double.isNaN(this.value[k][j]))
-         {
+          if (!Double.isNaN(in.getValue(i, k))
+                  && !Double.isNaN(this.value[k][j]))
+          {
             tmp[i][j] += (in.getValue(i, k) * this.value[k][j]);
-         }
+          }
         }
       }
     }
@@ -833,10 +834,10 @@ public class Matrix implements MatrixI
   }
 
   /**
-  * returns the matrix as a double[][] array
-  *
-  * @return
-  */
+   * returns the matrix as a double[][] array
+   *
+   * @return
+   */
   @Override
   public double[][] asArray()
   {
@@ -1018,7 +1019,8 @@ public class Matrix implements MatrixI
   /**
    * Add d to all entries of this matrix
    * 
-   * @param d ~ value to add
+   * @param d
+   *          ~ value to add
    */
   @Override
   public void add(double d)
@@ -1086,7 +1088,7 @@ public class Matrix implements MatrixI
   }
 
   /**
-   * Returns a copy in which  every value in the matrix is its absolute
+   * Returns a copy in which every value in the matrix is its absolute
    * 
    * @return
    */
@@ -1122,7 +1124,7 @@ public class Matrix implements MatrixI
     {
       if (row != null)
       {
-       mean[i++] = MiscMath.mean(row);
+        mean[i++] = MiscMath.mean(row);
       }
     }
     return mean;
@@ -1142,17 +1144,17 @@ public class Matrix implements MatrixI
       double[] column = getColumn(j);
       if (column != null)
       {
-       mean[j] = MiscMath.mean(column);
+        mean[j] = MiscMath.mean(column);
       }
     }
     return mean;
   }
 
   /**
-  * return a flattened matrix containing the sum of each column
-  *
-  * @return
-  */
+   * return a flattened matrix containing the sum of each column
+   *
+   * @return
+   */
   @Override
   public double[] sumCol()
   {
@@ -1162,17 +1164,17 @@ public class Matrix implements MatrixI
       double[] column = getColumn(j);
       if (column != null)
       {
-       sum[j] = MiscMath.sum(column);
+        sum[j] = MiscMath.sum(column);
       }
-    } 
+    }
     return sum;
   }
 
   /**
-  * returns the mean value of the complete matrix
-  *
-  * @return
-  */
+   * returns the mean value of the complete matrix
+   *
+   * @return
+   */
   @Override
   public double mean()
   {
@@ -1182,47 +1184,51 @@ public class Matrix implements MatrixI
     {
       for (double col : row)
       {
-       if (!Double.isNaN(col))
-       {
-         sum += col;
-       } else {
-         nanCount++;
-       }
+        if (!Double.isNaN(col))
+        {
+          sum += col;
+        }
+        else
+        {
+          nanCount++;
+        }
       }
     }
     return sum / (double) (this.rows * this.cols - nanCount);
   }
 
   /**
-  * fills up a diagonal matrix with its transposed copy
-  * !other side should be filled with 0
-  * !keeps Double.NaN found in either side
-  *
-  * TODO check on which side it was diagonal and only do calculations for the other side
-  */
+   * fills up a diagonal matrix with its transposed copy !other side should be
+   * filled with 0 !keeps Double.NaN found in either side
+   *
+   * TODO check on which side it was diagonal and only do calculations for the
+   * other side
+   */
   @Override
   public void fillDiagonal()
   {
     int n = this.rows;
     int m = this.cols;
-    MatrixI copy = this.transpose();   // goes through each element in the matrix and
-    for (int i = 0; i < n; i++)                // adds the value in the transposed copy to the original value
+    MatrixI copy = this.transpose(); // goes through each element in the matrix
+                                     // and
+    for (int i = 0; i < n; i++) // adds the value in the transposed copy to the
+                                // original value
     {
       for (int j = 0; j < m; j++)
       {
-       if (i != j)
-       {
-         this.addValue(i, j, copy.getValue(i,j));
-       }
+        if (i != j)
+        {
+          this.addValue(i, j, copy.getValue(i, j));
+        }
       }
     }
   }
 
   /**
-  * counts the number of Double.NaN in the matrix
-  *
-  * @return
-  */
+   * counts the number of Double.NaN in the matrix
+   *
+   * @return
+   */
   @Override
   public int countNaN()
   {
@@ -1231,117 +1237,139 @@ public class Matrix implements MatrixI
     {
       for (int j = 0; j < this.cols; j++)
       {
-       if (Double.isNaN(this.getValue(i,j)))
-       {
-         NaN++;
-       }
+        if (Double.isNaN(this.getValue(i, j)))
+        {
+          NaN++;
+        }
       }
     }
     return NaN;
   }
 
   /**
-  * performs an element-wise addition of this matrix by another matrix ~ this - m
-  * @param m ~ other matrix
-  *
-  * @return
-  */
+   * performs an element-wise addition of this matrix by another matrix ~ this -
+   * m
+   * 
+   * @param m
+   *          ~ other matrix
+   *
+   * @return
+   */
   @Override
   public MatrixI add(MatrixI m)
   {
     if (m.width() != cols || m.height() != rows)
     {
-      throw new IllegalArgumentException("Can't add a " + m.height() + "x" + m.width() + " to a " + this.rows + "x" + this.cols + " matrix");
+      throw new IllegalArgumentException(
+              "Can't add a " + m.height() + "x" + m.width() + " to a "
+                      + this.rows + "x" + this.cols + " matrix");
     }
     double[][] tmp = new double[this.rows][this.cols];
     for (int i = 0; i < this.rows; i++)
     {
       for (int j = 0; j < this.cols; j++)
       {
-       tmp[i][j] = this.getValue(i,j) + m.getValue(i,j);
+        tmp[i][j] = this.getValue(i, j) + m.getValue(i, j);
       }
     }
     return new Matrix(tmp);
   }
 
   /**
-  * performs an element-wise subtraction of this matrix by another matrix ~ this - m
-  * @param m ~ other matrix
-  *
-  * @return
-  */
+   * performs an element-wise subtraction of this matrix by another matrix ~
+   * this - m
+   * 
+   * @param m
+   *          ~ other matrix
+   *
+   * @return
+   */
   @Override
   public MatrixI subtract(MatrixI m)
   {
     if (m.width() != cols || m.height() != rows)
     {
-      throw new IllegalArgumentException("Can't subtract a " + m.height() + "x" + m.width() + " from a " + this.rows + "x" + this.cols + " matrix");
+      throw new IllegalArgumentException("Can't subtract a " + m.height()
+              + "x" + m.width() + " from a " + this.rows + "x" + this.cols
+              + " matrix");
     }
     double[][] tmp = new double[this.rows][this.cols];
     for (int i = 0; i < this.rows; i++)
     {
       for (int j = 0; j < this.cols; j++)
       {
-       tmp[i][j] = this.getValue(i,j) -  m.getValue(i,j);
+        tmp[i][j] = this.getValue(i, j) - m.getValue(i, j);
       }
     }
     return new Matrix(tmp);
   }
 
   /**
-  * performs an element-wise multiplication of this matrix by another matrix ~ this * m
-  * @param m ~ other matrix
-  *
-  * @return
-  */
+   * performs an element-wise multiplication of this matrix by another matrix ~
+   * this * m
+   * 
+   * @param m
+   *          ~ other matrix
+   *
+   * @return
+   */
   @Override
   public MatrixI elementwiseMultiply(MatrixI m)
   {
     if (m.width() != cols || m.height() != rows)
     {
-      throw new IllegalArgumentException("Can't multiply a " + this.rows + "x" + this.cols + " by a " + m.height() + "x" + m.width() + " matrix");
+      throw new IllegalArgumentException(
+              "Can't multiply a " + this.rows + "x" + this.cols + " by a "
+                      + m.height() + "x" + m.width() + " matrix");
     }
     double[][] tmp = new double[this.rows][this.cols];
     for (int i = 0; i < this.rows; i++)
     {
       for (int j = 0; j < this.cols; j++)
       {
-        tmp[i][j] = this.getValue(i, j) * m.getValue(i,j);
+        tmp[i][j] = this.getValue(i, j) * m.getValue(i, j);
       }
     }
     return new Matrix(tmp);
   }
 
   /**
-  * performs an element-wise division of this matrix by another matrix ~ this / m
-  * @param m ~ other matrix
-  *
-  * @return
-  */
+   * performs an element-wise division of this matrix by another matrix ~ this /
+   * m
+   * 
+   * @param m
+   *          ~ other matrix
+   *
+   * @return
+   */
   @Override
   public MatrixI elementwiseDivide(MatrixI m)
   {
     if (m.width() != cols || m.height() != rows)
     {
-      throw new IllegalArgumentException("Can't divide a " + this.rows + "x" + this.cols + " by a " + m.height() + "x" + m.width() + " matrix");
+      throw new IllegalArgumentException(
+              "Can't divide a " + this.rows + "x" + this.cols + " by a "
+                      + m.height() + "x" + m.width() + " matrix");
     }
     double[][] tmp = new double[this.rows][this.cols];
     for (int i = 0; i < this.rows; i++)
     {
       for (int j = 0; j < this.cols; j++)
       {
-        tmp[i][j] = this.getValue(i, j) / m.getValue(i,j);
+        tmp[i][j] = this.getValue(i, j) / m.getValue(i, j);
       }
     }
     return new Matrix(tmp);
   }
 
   /**
-  * calculate the root-mean-square for tow matrices
-  * @param m ~ other matrix
-  *
-  * @return
-  */
+   * calculate the root-mean-square for tow matrices
+   * 
+   * @param m
+   *          ~ other matrix
+   *
+   * @return
+   */
   @Override
   public double rmsd(MatrixI m)
   {
@@ -1351,10 +1379,10 @@ public class Matrix implements MatrixI
   }
 
   /**
-  * calculates the Frobenius norm of this matrix
-  *
-  * @return
-  */
+   * calculates the Frobenius norm of this matrix
+   *
+   * @return
+   */
   @Override
   public double norm()
   {
@@ -1363,17 +1391,17 @@ public class Matrix implements MatrixI
     {
       for (double val : row)
       {
-       result += Math.pow(val, 2);
+        result += Math.pow(val, 2);
       }
     }
     return Math.sqrt(result);
   }
 
   /**
-  * returns the sum of all values in this matrix
-  *
-  * @return
-  */
+   * returns the sum of all values in this matrix
+   *
+   * @return
+   */
   @Override
   public double sum()
   {
@@ -1382,24 +1410,28 @@ public class Matrix implements MatrixI
     {
       for (double val : row)
       {
-       sum += (Double.isNaN(val)) ? 0.0 : val;
+        sum += (Double.isNaN(val)) ? 0.0 : val;
       }
     }
     return sum;
   }
 
   /**
-  * returns the sum-product of this matrix with vector v
-  * @param v ~ vector
-  *
-  * @return
-  */
+   * returns the sum-product of this matrix with vector v
+   * 
+   * @param v
+   *          ~ vector
+   *
+   * @return
+   */
   @Override
   public double[] sumProduct(double[] v)
   {
     if (v.length != cols)
     {
-      throw new IllegalArgumentException("Vector and matrix do not have the same dimension! (" + v.length + " != " + cols + ")");
+      throw new IllegalArgumentException(
+              "Vector and matrix do not have the same dimension! ("
+                      + v.length + " != " + cols + ")");
     }
     double[] result = new double[rows];
     for (int i = 0; i < rows; i++)
@@ -1408,7 +1440,7 @@ public class Matrix implements MatrixI
       double sum = 0;
       for (int j = 0; j < row.length; j++)
       {
-       sum += row[j] * v[j];
+        sum += row[j] * v[j];
       }
       result[i] = sum;
     }
@@ -1416,20 +1448,20 @@ public class Matrix implements MatrixI
   }
 
   /**
-  * mirrors columns of the matrix
-  *
-  * @return
-  */
+   * mirrors columns of the matrix
+   *
+   * @return
+   */
   @Override
   public MatrixI mirrorCol()
   {
     double[][] result = new double[rows][cols];
     for (int i = 0; i < rows; i++)
     {
-      int k = cols - 1;        // reverse col
+      int k = cols - 1; // reverse col
       for (int j = 0; j < cols; j++)
       {
-       result[i][k--] = this.getValue(i,j);
+        result[i][k--] = this.getValue(i, j);
       }
     }
     MatrixI resultMatrix = new Matrix(result);
index 7faac73..b932b33 100644 (file)
@@ -61,10 +61,10 @@ public interface MatrixI
   void setValue(int i, int j, double d);
 
   /**
-  * Returns the matrix as a double[][] array
-  *
-  * @return
-  */
+   * Returns the matrix as a double[][] array
+   *
+   * @return
+   */
   double[][] asArray();
 
   /**
@@ -175,10 +175,11 @@ public interface MatrixI
   void multiply(double d);
 
   /**
-  * Add d to all entries of this matrix
-  *
-  * @param d ~ value to add
-  */
+   * Add d to all entries of this matrix
+   *
+   * @param d
+   *          ~ value to add
+   */
   void add(double d);
 
   /**
@@ -193,7 +194,7 @@ public interface MatrixI
   boolean equals(MatrixI m2, double delta);
 
   /**
-   * Returns a copy in which  every value in the matrix is its absolute
+   * Returns a copy in which every value in the matrix is its absolute
    */
   MatrixI absolute();
 
@@ -208,110 +209,122 @@ public interface MatrixI
   double[] meanCol();
 
   /**
-  * Returns a flattened matrix containing the sum of each column
-  *
-  * @return
-  */
+   * Returns a flattened matrix containing the sum of each column
+   *
+   * @return
+   */
   double[] sumCol();
 
   /**
-  * returns the mean value of the complete matrix
-  */
+   * returns the mean value of the complete matrix
+   */
   double mean();
 
   /**
-  * fills up a diagonal matrix with its transposed copy
-  * !other side should be filled with either 0 or Double.NaN
-  */
+   * fills up a diagonal matrix with its transposed copy !other side should be
+   * filled with either 0 or Double.NaN
+   */
   void fillDiagonal();
 
   /**
-  * counts the number of Double.NaN in the matrix
-  *
-  * @return
-  */
+   * counts the number of Double.NaN in the matrix
+   *
+   * @return
+   */
   int countNaN();
 
   /**
-  * performs an element-wise addition of this matrix by another matrix
-  * !matrices have to be the same size
-  * @param m ~ other matrix
-  * 
-  * @return
-  * @throws IllegalArgumentException
-  *           if this and m do not have the same dimensions
-  */
+   * performs an element-wise addition of this matrix by another matrix
+   * !matrices have to be the same size
+   * 
+   * @param m
+   *          ~ other matrix
+   * 
+   * @return
+   * @throws IllegalArgumentException
+   *           if this and m do not have the same dimensions
+   */
   MatrixI add(MatrixI m);
 
   /**
-  * performs an element-wise subtraction of this matrix by another matrix
-  * !matrices have to be the same size
-  * @param m ~ other matrix
-  * 
-  * @return
-  * @throws IllegalArgumentException
-  *           if this and m do not have the same dimensions
-  */
+   * performs an element-wise subtraction of this matrix by another matrix
+   * !matrices have to be the same size
+   * 
+   * @param m
+   *          ~ other matrix
+   * 
+   * @return
+   * @throws IllegalArgumentException
+   *           if this and m do not have the same dimensions
+   */
   MatrixI subtract(MatrixI m);
+
   /**
-  * performs an element-wise multiplication of this matrix by another matrix ~ this * m
-  * !matrices have to be the same size
-  * @param m ~ other matrix
-  *
-  * @return
-  * @throws IllegalArgumentException
-  *    if this and m do not have the same dimensions
-  */
+   * performs an element-wise multiplication of this matrix by another matrix ~
+   * this * m !matrices have to be the same size
+   * 
+   * @param m
+   *          ~ other matrix
+   *
+   * @return
+   * @throws IllegalArgumentException
+   *           if this and m do not have the same dimensions
+   */
   MatrixI elementwiseMultiply(MatrixI m);
 
   /**
-  * performs an element-wise division of this matrix by another matrix ~ this / m
-  * !matrices have to be the same size
-  * @param m ~ other matrix
-  *
-  * @return
-  * @throws IllegalArgumentException
-  *    if this and m do not have the same dimensions
-  */
+   * performs an element-wise division of this matrix by another matrix ~ this /
+   * m !matrices have to be the same size
+   * 
+   * @param m
+   *          ~ other matrix
+   *
+   * @return
+   * @throws IllegalArgumentException
+   *           if this and m do not have the same dimensions
+   */
   MatrixI elementwiseDivide(MatrixI m);
 
   /**
-  * calculates the root-mean-square for two matrices
-  * @param m ~ other matrix
-  *  
-  * @return
-  */
+   * calculates the root-mean-square for two matrices
+   * 
+   * @param m
+   *          ~ other matrix
+   * 
+   * @return
+   */
   double rmsd(MatrixI m);
 
   /**
-  * calculates the Frobenius norm of this matrix
-  *
-  * @return
-  */
+   * calculates the Frobenius norm of this matrix
+   *
+   * @return
+   */
   double norm();
-  
+
   /**
-  * returns the sum of all values in this matrix
-  *
-  * @return
-  */
+   * returns the sum of all values in this matrix
+   *
+   * @return
+   */
   double sum();
 
   /**
-  * returns the sum-product of this matrix with vector v
-  * @param v ~ vector
-  *
-  * @return
-  * @throws IllegalArgumentException
-  *    if this.cols and v do not have the same length
-  */
+   * returns the sum-product of this matrix with vector v
+   * 
+   * @param v
+   *          ~ vector
+   *
+   * @return
+   * @throws IllegalArgumentException
+   *           if this.cols and v do not have the same length
+   */
   double[] sumProduct(double[] v);
 
   /**
-  * mirrors the columns of this matrix
-  *
-  * @return
-  */
+   * mirrors the columns of this matrix
+   *
+   * @return
+   */
   MatrixI mirrorCol();
 }
index b5218d5..eee7ef8 100755 (executable)
@@ -27,14 +27,17 @@ import java.util.Arrays;
 
 /**
  * A collection of miscellaneous mathematical operations
+ * 
  * @AUTHOR MorellThomas
  */
 public class MiscMath
 {
   /**
-  * prints an array
-  * @param m ~ array
-  */
+   * prints an array
+   * 
+   * @param m
+   *          ~ array
+   */
   public static void print(double[] m, String format)
   {
     System.out.print("[ ");
@@ -46,39 +49,43 @@ public class MiscMath
   }
 
   /**
-  * calculates the mean of an array 
-  *
-  * @param m ~ array
-  * @return
-  */
+   * calculates the mean of an array
+   *
+   * @param m
+   *          ~ array
+   * @return
+   */
   public static double mean(double[] m)
   {
     double sum = 0;
     int nanCount = 0;
     for (int i = 0; i < m.length; i++)
     {
-      if (!Double.isNaN(m[i])) // ignore NaN values in the array
+      if (!Double.isNaN(m[i])) // ignore NaN values in the array
       {
         sum += m[i];
-      } else {
-       nanCount++;
+      }
+      else
+      {
+        nanCount++;
       }
     }
     return sum / (double) (m.length - nanCount);
   }
 
   /**
-  * calculates the sum of an array 
-  *
-  * @param m ~ array
-  * @return
-  */
+   * calculates the sum of an array
+   *
+   * @param m
+   *          ~ array
+   * @return
+   */
   public static double sum(double[] m)
   {
     double sum = 0;
     for (int i = 0; i < m.length; i++)
     {
-      if (!Double.isNaN(m[i])) // ignore NaN values in the array
+      if (!Double.isNaN(m[i])) // ignore NaN values in the array
       {
         sum += m[i];
       }
@@ -87,14 +94,14 @@ public class MiscMath
   }
 
   /**
-  * calculates the square root of each element in an array
-  *
-  * @param m ~ array
-  *
-  * @return
-  * TODO
-  * make general with function passed -> apply function to each element
-  */
+   * calculates the square root of each element in an array
+   *
+   * @param m
+   *          ~ array
+   *
+   * @return TODO make general with function passed -> apply function to each
+   *         element
+   */
   public static double[] sqrt(double[] m)
   {
     double[] sqrts = new double[m.length];
@@ -106,16 +113,20 @@ public class MiscMath
   }
 
   /**
-  * calculate element wise multiplication of two arrays with the same length
-  *
-  * @param a ~ array
-  * @param b ~ array
-  *
-  * @return
-  */
-  public static double[] elementwiseMultiply(byte[] a, double[] b) throws RuntimeException
+   * calculate element wise multiplication of two arrays with the same length
+   *
+   * @param a
+   *          ~ array
+   * @param b
+   *          ~ array
+   *
+   * @return
+   */
+  public static double[] elementwiseMultiply(byte[] a, double[] b)
+          throws RuntimeException
   {
-    if (a.length != b.length)  // throw exception if the arrays do not have the same length
+    if (a.length != b.length) // throw exception if the arrays do not have the
+                              // same length
     {
       throw new SameLengthException(a.length, b.length);
     }
@@ -126,9 +137,12 @@ public class MiscMath
     }
     return result;
   }
-  public static double[] elementwiseMultiply(double[] a, double[] b) throws RuntimeException
+
+  public static double[] elementwiseMultiply(double[] a, double[] b)
+          throws RuntimeException
   {
-    if (a.length != b.length)  // throw exception if the arrays do not have the same length
+    if (a.length != b.length) // throw exception if the arrays do not have the
+                              // same length
     {
       throw new SameLengthException(a.length, b.length);
     }
@@ -139,9 +153,12 @@ public class MiscMath
     }
     return result;
   }
-  public static byte[] elementwiseMultiply(byte[] a, byte[] b) throws RuntimeException
+
+  public static byte[] elementwiseMultiply(byte[] a, byte[] b)
+          throws RuntimeException
   {
-    if (a.length != b.length)  // throw exception if the arrays do not have the same length
+    if (a.length != b.length) // throw exception if the arrays do not have the
+                              // same length
     {
       throw new SameLengthException(a.length, b.length);
     }
@@ -152,6 +169,7 @@ public class MiscMath
     }
     return result;
   }
+
   public static double[] elementwiseMultiply(double[] a, double b)
   {
     double[] result = new double[a.length];
@@ -163,16 +181,20 @@ public class MiscMath
   }
 
   /**
-  * calculate element wise division of two arrays ~ a / b
-  *
-  * @param a ~ array
-  * @param b ~ array
-  *
-  * @return
-  */
-  public static double[] elementwiseDivide(double[] a, double[] b) throws RuntimeException
+   * calculate element wise division of two arrays ~ a / b
+   *
+   * @param a
+   *          ~ array
+   * @param b
+   *          ~ array
+   *
+   * @return
+   */
+  public static double[] elementwiseDivide(double[] a, double[] b)
+          throws RuntimeException
   {
-    if (a.length != b.length)  // throw exception if the arrays do not have the same length
+    if (a.length != b.length) // throw exception if the arrays do not have the
+                              // same length
     {
       throw new SameLengthException(a.length, b.length);
     }
@@ -185,16 +207,20 @@ public class MiscMath
   }
 
   /**
-  * calculate element wise addition of two arrays
-  *
-  * @param a ~ array
-  * @param b ~ array
-  *
-  * @return
-  */
-  public static double[] elementwiseAdd(double[] a, double[] b) throws RuntimeException
+   * calculate element wise addition of two arrays
+   *
+   * @param a
+   *          ~ array
+   * @param b
+   *          ~ array
+   *
+   * @return
+   */
+  public static double[] elementwiseAdd(double[] a, double[] b)
+          throws RuntimeException
   {
-    if (a.length != b.length)  // throw exception if the arrays do not have the same length
+    if (a.length != b.length) // throw exception if the arrays do not have the
+                              // same length
     {
       throw new SameLengthException(a.length, b.length);
     }
@@ -206,6 +232,7 @@ public class MiscMath
     }
     return result;
   }
+
   public static double[] elementwiseAdd(double[] a, double b)
   {
     double[] result = new double[a.length];
@@ -217,41 +244,59 @@ public class MiscMath
   }
 
   /**
-  * returns true if two arrays are element wise within a tolerance
-  *
-  * @param a ~ array
-  * @param b ~ array
-  * @param rtol ~ relative tolerance
-  * @param atol ~ absolute tolerance
-  * @param equalNAN ~ whether NaN at the same position return true
-  *
-  * @return
-  */
-  public static boolean allClose(double[] a, double[] b, double rtol, double atol, boolean equalNAN)
+   * returns true if two arrays are element wise within a tolerance
+   *
+   * @param a
+   *          ~ array
+   * @param b
+   *          ~ array
+   * @param rtol
+   *          ~ relative tolerance
+   * @param atol
+   *          ~ absolute tolerance
+   * @param equalNAN
+   *          ~ whether NaN at the same position return true
+   *
+   * @return
+   */
+  public static boolean allClose(double[] a, double[] b, double rtol,
+          double atol, boolean equalNAN)
   {
     boolean areEqual = true;
     for (int i = 0; i < a.length; i++)
     {
-      if (equalNAN && (Double.isNaN(a[i]) && Double.isNaN(b[i])))      // if equalNAN == true -> skip the NaN pair
+      if (equalNAN && (Double.isNaN(a[i]) && Double.isNaN(b[i]))) // if equalNAN
+                                                                  // == true ->
+                                                                  // skip the
+                                                                  // NaN pair
       {
-       continue;
+        continue;
       }
-      if (Math.abs(a[i] - b[i]) > (atol + rtol * Math.abs(b[i])))      // check for the similarity condition -> if not met -> break and return false
+      if (Math.abs(a[i] - b[i]) > (atol + rtol * Math.abs(b[i]))) // check for
+                                                                  // the
+                                                                  // similarity
+                                                                  // condition
+                                                                  // -> if not
+                                                                  // met ->
+                                                                  // break and
+                                                                  // return
+                                                                  // false
       {
-       areEqual = false;
-       break;
+        areEqual = false;
+        break;
       }
     }
     return areEqual;
   }
 
   /**
-  * returns the index of the maximum and the maximum value of an array
-  * 
-  * @param a ~ array
-  *
-  * @return
-  */
+   * returns the index of the maximum and the maximum value of an array
+   * 
+   * @param a
+   *          ~ array
+   *
+   * @return
+   */
   public static int[] findMax(int[] a)
   {
     int max = 0;
@@ -260,25 +305,30 @@ public class MiscMath
     {
       if (a[i] > max)
       {
-       max = a[i];
-       maxIndex = i;
+        max = a[i];
+        maxIndex = i;
       }
     }
-    return new int[]{maxIndex, max};
+    return new int[] { maxIndex, max };
   }
 
   /**
-  * returns the dot product of two arrays
-  * @param a ~ array a
-  * @param b ~ array b
-  *
-  * @return
-  */
+   * returns the dot product of two arrays
+   * 
+   * @param a
+   *          ~ array a
+   * @param b
+   *          ~ array b
+   *
+   * @return
+   */
   public static double dot(double[] a, double[] b)
   {
     if (a.length != b.length)
     {
-      throw new IllegalArgumentException(String.format("Vectors do not have the same length (%d, %d)!", a.length, b.length));
+      throw new IllegalArgumentException(
+              String.format("Vectors do not have the same length (%d, %d)!",
+                      a.length, b.length));
     }
 
     double aibi = 0;
@@ -290,11 +340,13 @@ public class MiscMath
   }
 
   /**
-  * returns the euklidian norm of the vector
-  * @param v ~ vector
-  *
-  * @return
-  */
+   * returns the euklidian norm of the vector
+   * 
+   * @param v
+   *          ~ vector
+   *
+   * @return
+   */
   public static double norm(double[] v)
   {
     double result = 0;
@@ -302,15 +354,17 @@ public class MiscMath
     {
       result += Math.pow(i, 2);
     }
-  return Math.sqrt(result);
+    return Math.sqrt(result);
   }
 
   /**
-  * returns the number of NaN in the vector
-  * @param v ~ vector
-  *
-  * @return
-  */
+   * returns the number of NaN in the vector
+   * 
+   * @param v
+   *          ~ vector
+   *
+   * @return
+   */
   public static int countNaN(double[] v)
   {
     int cnt = 0;
@@ -318,20 +372,21 @@ public class MiscMath
     {
       if (Double.isNaN(i))
       {
-       cnt++;
+        cnt++;
       }
     }
     return cnt;
   }
 
   /**
-  * recursively calculates the permutations of total n items with r items per combination
-  * according to n!/(n-r)! by only multiplying the relevant terms
-  * @param n 
-  * @param r
-  *
-  * @return permutations
-  */
+   * recursively calculates the permutations of total n items with r items per
+   * combination according to n!/(n-r)! by only multiplying the relevant terms
+   * 
+   * @param n
+   * @param r
+   *
+   * @return permutations
+   */
   public static long permutations(int n, int r)
   {
     if (n < r)
@@ -340,13 +395,14 @@ public class MiscMath
     long result = 1l;
     for (int i = 0; i < r; i++)
     {
-      result *= (n-i);
+      result *= (n - i);
     }
     return result;
   }
 
   /**
    * calculate all unique combinations of n elements into r sized groups
+   * 
    * @param n
    * @param r
    *
@@ -357,13 +413,14 @@ public class MiscMath
     int result = 1;
     for (int i = 0; i < r; i++)
     {
-      result *= (n-1);
+      result *= (n - 1);
     }
     return (int) (result / MiscMath.factorial(r));
   }
 
   /**
    * calculate the factorial of n (n >= 0)
+   * 
    * @param n
    *
    * @return
index 7729e18..32dc558 100644 (file)
@@ -1490,12 +1490,15 @@ public class Jalview2XML
           // group has references so set its ID field
           jGroup.setId(groupRefs.get(sg));
         }
-        
-        List<String> groupSecondaryStructureSources = sg.getSecondaryStructureSources();
-        if(groupSecondaryStructureSources != null && groupSecondaryStructureSources.size()>0) {
+
+        List<String> groupSecondaryStructureSources = sg
+                .getSecondaryStructureSources();
+        if (groupSecondaryStructureSources != null
+                && groupSecondaryStructureSources.size() > 0)
+        {
           jGroup.getSecStrProvider().addAll(groupSecondaryStructureSources);
         }
-        
+
         ColourSchemeI colourScheme = sg.getColourScheme();
         if (colourScheme != null)
         {
@@ -1532,16 +1535,16 @@ public class Jalview2XML
           }
 
           jGroup.setPidThreshold(groupColourScheme.getThreshold());
-          
-          if(groupColourScheme.isConsensusSecondaryStructureColouring()) 
+
+          if (groupColourScheme.isConsensusSecondaryStructureColouring())
           {
-            jGroup.setSecstrSelected(
-                    groupColourScheme.isConsensusSecondaryStructureColouring());
+            jGroup.setSecstrSelected(groupColourScheme
+                    .isConsensusSecondaryStructureColouring());
             jGroup.setSecstrThreshold(groupColourScheme
                     .getConsensusSecondaryStructureThreshold());
           }
         }
-       
+
         jGroup.setOutlineColour(sg.getOutlineColour().getRGB());
         jGroup.setDisplayBoxes(sg.getDisplayBoxes());
         jGroup.setDisplayText(sg.getDisplayText());
@@ -1560,7 +1563,7 @@ public class Jalview2XML
           jGroup.getSeq().add(seqHash(seq));
         }
       }
-      
+
       // jms.setJGroup(groups);
       Object group;
       for (JGroup grp : groups)
@@ -1660,10 +1663,11 @@ public class Jalview2XML
           }
         }
         view.setPidThreshold(vcs.getThreshold());
-        
-        if(vcs.isConsensusSecondaryStructureColouring()) 
+
+        if (vcs.isConsensusSecondaryStructureColouring())
         {
-          view.setSecstrThreshold(vcs.getConsensusSecondaryStructureThreshold());
+          view.setSecstrThreshold(
+                  vcs.getConsensusSecondaryStructureThreshold());
         }
       }
 
@@ -2011,13 +2015,14 @@ public class Jalview2XML
   }
 
   /**
-   * Writes PaSiMap viewer attributes and computed values to an XML model object and
-   * adds it to the JalviewModel. Any exceptions are reported by logging.
+   * Writes PaSiMap viewer attributes and computed values to an XML model object
+   * and adds it to the JalviewModel. Any exceptions are reported by logging.
    * uses the functions from PCA
    */
   protected void savePaSiMap(PaSiMapPanel panel, JalviewModel object)
   {
-    // TODO: this should be merged with above savePCAPanel - otherwise it is essentially redundant code
+    // TODO: this should be merged with above savePCAPanel - otherwise it is
+    // essentially redundant code
     try
     {
       PcaViewer viewer = new PcaViewer();
@@ -2107,6 +2112,7 @@ public class Jalview2XML
       Console.error("Error saving PaSiMap: " + t.getMessage());
     }
   }
+
   /**
    * Stores values from a matrix into an XML element, including (if present) the
    * D or E vectors
@@ -4381,7 +4387,7 @@ public class Jalview2XML
                 .setConservationInc(safeInt(jGroup.getConsThreshold()));
         sg.getGroupColourScheme().setConsensusSecondaryStructureThreshold(
                 safeInt(jGroup.getSecstrThreshold()));
-        
+
         sg.setOutlineColour(new Color(safeInt(jGroup.getOutlineColour())));
 
         sg.textColour = new Color(safeInt(jGroup.getTextCol1()));
@@ -4814,20 +4820,23 @@ public class Jalview2XML
           }
           else
           {
-            if (false)//tree.isAnnotationAssociated())
+            if (false)// tree.isAnnotationAssociated())
             {
               // TODO - resolve annotation IDs against newick tree labels
               // then fix up labels so they are human readable
-              
-              tp = af.showNewickTreeForAnnotation(new NewickFile(tree.getNewick()),
-                      tree.getTitle(), null, safeInt(tree.getWidth()),
+
+              tp = af.showNewickTreeForAnnotation(
+                      new NewickFile(tree.getNewick()), tree.getTitle(),
+                      null, safeInt(tree.getWidth()),
                       safeInt(tree.getHeight()), safeInt(tree.getXpos()),
                       safeInt(tree.getYpos()));
-            } else {
+            }
+            else
+            {
               tp = af.showNewickTree(new NewickFile(tree.getNewick()),
-                    tree.getTitle(), safeInt(tree.getWidth()),
-                    safeInt(tree.getHeight()), safeInt(tree.getXpos()),
-                    safeInt(tree.getYpos()));
+                      tree.getTitle(), safeInt(tree.getWidth()),
+                      safeInt(tree.getHeight()), safeInt(tree.getXpos()),
+                      safeInt(tree.getYpos()));
             }
           }
           if (tree.getId() != null)
@@ -5358,7 +5367,8 @@ public class Jalview2XML
     // recover view properties and display parameters
 
     viewport.setShowAnnotation(safeBoolean(view.isShowAnnotation()));
-    viewport.setShowStructureProvider(safeBoolean(view.isShowStructureProviders()));
+    viewport.setShowStructureProvider(
+            safeBoolean(view.isShowStructureProviders()));
     viewport.setAbovePIDThreshold(safeBoolean(view.isPidSelected()));
     final int pidThreshold = safeInt(view.getPidThreshold());
     viewport.setThreshold(pidThreshold);
@@ -5464,8 +5474,8 @@ public class Jalview2XML
             view.isIgnoreGapsinConsensus());
     viewport.getResidueShading()
             .setConsensus(viewport.getSequenceConsensusHash());
-    viewport.getResidueShading()
-    .setSSConsensusProfileMap(viewport.getSequenceSSConsensusHash());
+    viewport.getResidueShading().setSSConsensusProfileMap(
+            viewport.getSequenceSSConsensusHash());
     if (safeBoolean(view.isConservationSelected()) && cs != null)
     {
       viewport.getResidueShading()
@@ -5473,9 +5483,8 @@ public class Jalview2XML
     }
     if (safeBoolean(view.isSecstrSelected()) && cs != null)
     {
-      viewport.getResidueShading()
-              .setConsensusSecondaryStructureThreshold(
-                      safeInt(view.getSecstrThreshold()));
+      viewport.getResidueShading().setConsensusSecondaryStructureThreshold(
+              safeInt(view.getSecstrThreshold()));
     }
     af.changeColour(cs);
     viewport.setColourAppliesToAllGroups(true);
@@ -6762,9 +6771,9 @@ public class Jalview2XML
 
   private boolean isPasimap(PcaViewer viewer)
   {
-    return viewer.getTitle().toLowerCase(Locale.ROOT)
-    .startsWith("pasimap");
+    return viewer.getTitle().toLowerCase(Locale.ROOT).startsWith("pasimap");
   }
+
   /**
    * Loads any saved PaSiMAp viewers using the function from PCA
    * 
@@ -6788,7 +6797,7 @@ public class Jalview2XML
                 viewer.isIncludeGappedColumns(), viewer.isMatchGaps(),
                 viewer.isIncludeGaps(),
                 viewer.isDenominateByShortestLength());
-       */
+        */
 
         /*
          * create the panel (without computing the PaSiMAp)
@@ -6815,7 +6824,8 @@ public class Jalview2XML
         PaSiMap pasimap = new PaSiMap(null, scoreModel, null);
         PcaDataType pasimapData = viewer.getPcaData();
 
-        MatrixI pairwise = loadDoubleMatrix(pasimapData.getPairwiseMatrix());
+        MatrixI pairwise = loadDoubleMatrix(
+                pasimapData.getPairwiseMatrix());
         pasimap.setPairwiseScores(pairwise);
 
         MatrixI result = loadDoubleMatrix(pasimapData.getEigenMatrix());
index 4b4ef8d..58c93a4 100644 (file)
@@ -92,7 +92,7 @@ public class AnnotationRenderer
   private HiddenColumns hiddenColumns;
 
   private ProfilesI hconsensus;
-  
+
   private Map<String, ProfilesI> hSSconsensus;
 
   private Hashtable<String, Object>[] complementConsensus;
@@ -433,57 +433,65 @@ public class AnnotationRenderer
         }
       }
     }
-    
-    if(aa.autoCalculated && aa.label.startsWith(Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL)) 
+
+    if (aa.autoCalculated && aa.label
+            .startsWith(Constants.SECONDARY_STRUCTURE_CONSENSUS_LABEL))
     {
-      
-      if(aa.groupRef != null && aa.groupRef.hSSConsensusProfileMap != null
-              && aa.groupRef.isShowSequenceLogo()) {
-      for (String source : aa.groupRef.hSSConsensusProfileMap.keySet()) {
-        if(aa.description.startsWith(source)) {
-      
-          return AAFrequency.extractProfile(
-                  aa.groupRef.hSSConsensusProfileMap.get(source).get(column),
-                  aa.groupRef.getIgnoreGapsConsensus());
+
+      if (aa.groupRef != null && aa.groupRef.hSSConsensusProfileMap != null
+              && aa.groupRef.isShowSequenceLogo())
+      {
+        for (String source : aa.groupRef.hSSConsensusProfileMap.keySet())
+        {
+          if (aa.description.startsWith(source))
+          {
+
+            return AAFrequency
+                    .extractProfile(
+                            aa.groupRef.hSSConsensusProfileMap.get(source)
+                                    .get(column),
+                            aa.groupRef.getIgnoreGapsConsensus());
+          }
         }
       }
-      }
-      
-      if(hSSconsensus!=null && aa.groupRef == null) {
-      for (String source : hSSconsensus.keySet()) {
-        if(aa.description.startsWith(source)) {
-      
-          return AAFrequency.extractProfile(
-                  hSSconsensus.get(source).get(column),
-                  av_ignoreGapsConsensus);
+
+      if (hSSconsensus != null && aa.groupRef == null)
+      {
+        for (String source : hSSconsensus.keySet())
+        {
+          if (aa.description.startsWith(source))
+          {
+
+            return AAFrequency.extractProfile(
+                    hSSconsensus.get(source).get(column),
+                    av_ignoreGapsConsensus);
+          }
         }
       }
-      }
-      
+
     }
-    
-      if (aa.autoCalculated && aa.label.startsWith("StrucConsensus"))
+
+    if (aa.autoCalculated && aa.label.startsWith("StrucConsensus"))
+    {
+      // TODO implement group structure consensus
+      /*
+       * if (aa.groupRef != null && aa.groupRef.consensusData != null &&
+       * aa.groupRef.isShowSequenceLogo()) { //TODO check what happens for
+       * group selections return StructureFrequency.extractProfile(
+       * aa.groupRef.consensusData[column], aa.groupRef
+       * .getIgnoreGapsConsensus()); }
+       */
+      // TODO extend annotation row to enable dynamic and static profile data
+      // to
+      // be stored
+      if (aa.groupRef == null && aa.sequenceRef == null
+              && hStrucConsensus != null && hStrucConsensus.length > column)
       {
-        // TODO implement group structure consensus
-        /*
-         * if (aa.groupRef != null && aa.groupRef.consensusData != null &&
-         * aa.groupRef.isShowSequenceLogo()) { //TODO check what happens for
-         * group selections return StructureFrequency.extractProfile(
-         * aa.groupRef.consensusData[column], aa.groupRef
-         * .getIgnoreGapsConsensus()); }
-         */
-        // TODO extend annotation row to enable dynamic and static profile data
-        // to
-        // be stored
-        if (aa.groupRef == null && aa.sequenceRef == null
-                && hStrucConsensus != null
-                && hStrucConsensus.length > column)
-        {
-          return StructureFrequency.extractProfile(hStrucConsensus[column],
-                  av_ignoreGapsConsensus);
-        }
+        return StructureFrequency.extractProfile(hStrucConsensus[column],
+                av_ignoreGapsConsensus);
       }
-    
+    }
+
     return null;
   }
 
@@ -570,18 +578,18 @@ public class AnnotationRenderer
       // settings appropriately
       // TODO: generalise this to have render styles for consensus/profile
       // data
-      if (row.groupRef != null && 
-              (row == row.groupRef.getConsensus() || 
-              (row.groupRef.getSSConsensus(null) !=null && row.groupRef.getSSConsensus(null).contains(row))))
+      if (row.groupRef != null && (row == row.groupRef.getConsensus()
+              || (row.groupRef.getSSConsensus(null) != null
+                      && row.groupRef.getSSConsensus(null).contains(row))))
       {
         renderHistogram = row.groupRef.isShowConsensusHistogram();
         renderProfile = row.groupRef.isShowSequenceLogo();
         normaliseProfile = row.groupRef.isNormaliseSequenceLogo();
       }
-      else if (row == consensusAnnot 
-              || row == structConsensusAnnot
-              || row == complementConsensusAnnot 
-              || (ssConsensusAnnot!=null && ssConsensusAnnot.contains(row)))
+      else if (row == consensusAnnot || row == structConsensusAnnot
+              || row == complementConsensusAnnot
+              || (ssConsensusAnnot != null
+                      && ssConsensusAnnot.contains(row)))
       {
         renderHistogram = av_renderHistogram;
         renderProfile = av_renderProfile;
@@ -1568,13 +1576,12 @@ public class AnnotationRenderer
          * {profile type, #values, total count, char1, pct1, char2, pct2...}
          */
         int profl[] = getProfileFor(_aa, column);
-        
-        
 
         // just try to draw the logo if profl is not null
         if (profl != null && profl[2] != 0)
         {
-          // TODO do we ever have different profiles for different columns ?  Move up to where we set _aa_is_dssp3
+          // TODO do we ever have different profiles for different columns ?
+          // Move up to where we set _aa_is_dssp3
           boolean isStructureProfile = profl[0] == AlignmentAnnotation.STRUCTURE_PROFILE;
           boolean isCdnaProfile = profl[0] == AlignmentAnnotation.CDNA_PROFILE;
           float ht = normaliseProfile ? y - _aa.graphHeight : y1;
@@ -1651,8 +1658,11 @@ public class AnnotationRenderer
                       .codonTranslate(s);
               colour = profcolour.findColour(codonTranslation.charAt(0),
                       column, null);
-            } else if(_aa_is_dssp3) {
-              // TODO - would be nice to get rid of the special 'findSSColour' here ? 
+            }
+            else if (_aa_is_dssp3)
+            {
+              // TODO - would be nice to get rid of the special 'findSSColour'
+              // here ?
               colour = profcolour.findSSColour(dc[0], column);
             }
             else
index 0b191ec..1feed89 100644 (file)
@@ -63,18 +63,18 @@ public class ResidueShader implements ResidueShaderI
    * the consensus data for each column
    */
   private ProfilesI consensus;
-  
+
   /*
    * the ss consensus data for each column for each source
    */
-  
+
   private Map<String, ProfilesI> ssConsensusProfileMap;
 
   /*
    * if true, apply shading of colour by conservation
    */
   private boolean conservationColouring;
-  
+
   private boolean consensusSecondaryStructureColouring;
 
   @Override
@@ -106,7 +106,7 @@ public class ResidueShader implements ResidueShaderI
    * setting of the By Conservation slider
    */
   private int conservationIncrement = INITIAL_CONSERVATION;
-  
+
   private int consensusSecondaryStructureThreshold = 30;
 
   public ResidueShader(ColourSchemeI cs)
@@ -158,7 +158,7 @@ public class ResidueShader implements ResidueShaderI
   public void setConsensus(ProfilesI cons)
   {
     consensus = cons;
-    
+
   }
 
   /**
@@ -198,13 +198,14 @@ public class ResidueShader implements ResidueShaderI
     }
 
   }
-  
+
   @Override
-  public void setConsensusSecondaryStructureColouring(boolean colourByConsensusSecondaryStructure) 
+  public void setConsensusSecondaryStructureColouring(
+          boolean colourByConsensusSecondaryStructure)
   {
-    
+
     consensusSecondaryStructureColouring = colourByConsensusSecondaryStructure;
-    
+
   }
 
   /**
@@ -254,13 +255,13 @@ public class ResidueShader implements ResidueShaderI
   {
     consensusSecondaryStructureThreshold = i;
   }
-  
+
   @Override
   public int getConsensusSecondaryStructureThreshold()
   {
     return consensusSecondaryStructureThreshold;
   }
-  
+
   /**
    * @see jalview.renderer.ResidueShaderI#getThreshold()
    */
@@ -303,7 +304,7 @@ public class ResidueShader implements ResidueShaderI
 
     return colour;
   }
-  
+
   @Override
   public Color findSSColour(char symbol, int position)
   {
@@ -312,8 +313,9 @@ public class ResidueShader implements ResidueShaderI
       return Color.white; // Colour is 'None'
     }
 
-    Color colour = AlignmentUtils.getSecondaryStructureAnnotationColour(symbol);
-        
+    Color colour = AlignmentUtils
+            .getSecondaryStructureAnnotationColour(symbol);
+
     /*
      * apply PID threshold and consensus fading if in force
      */
@@ -348,8 +350,8 @@ public class ResidueShader implements ResidueShaderI
     {
       colour = Color.white;
     }
-    
-    if(consensusSecondaryStructureColouring)
+
+    if (consensusSecondaryStructureColouring)
     {
       colour = applyByConsensusSecondaryStructure(colour, column);
     }
@@ -465,35 +467,36 @@ public class ResidueShader implements ResidueShaderI
 
     return ColorUtils.bleachColour(currentColour, bleachFactor);
   }
-  
-  
-  protected Color applyByConsensusSecondaryStructure(Color currentColour, int column)
+
+  protected Color applyByConsensusSecondaryStructure(Color currentColour,
+          int column)
   {
-    if (ssConsensusProfileMap == null && 
-            ssConsensusProfileMap.get(Constants.SS_ALL_PROVIDERS) == null) 
+    if (ssConsensusProfileMap == null && ssConsensusProfileMap
+            .get(Constants.SS_ALL_PROVIDERS) == null)
     {
       return currentColour;
     }
-    
-    ProfilesI consensusSSProfileForAllSources = 
-            ssConsensusProfileMap.get(Constants.SS_ALL_PROVIDERS);
+
+    ProfilesI consensusSSProfileForAllSources = ssConsensusProfileMap
+            .get(Constants.SS_ALL_PROVIDERS);
     ProfileI profile = consensusSSProfileForAllSources.get(column);
-    
-    if(profile != null) 
-    { 
-        float pid = profile.getSSPercentageIdentity(ignoreGaps);
 
-        if(pid == 0) {
-          return Color.white;
-        }
+    if (profile != null)
+    {
+      float pid = profile.getSSPercentageIdentity(ignoreGaps);
+
+      if (pid == 0)
+      {
+        return Color.white;
+      }
 
-        float bleachFactor = 1f - (pid/100);
-        bleachFactor *= (consensusSecondaryStructureThreshold/20);
+      float bleachFactor = 1f - (pid / 100);
+      bleachFactor *= (consensusSecondaryStructureThreshold / 20);
+
+      return ColorUtils.bleachColour(currentColour, bleachFactor);
 
-        return ColorUtils.bleachColour(currentColour, bleachFactor);
-        
     }
-    
+
     return currentColour;
 
   }
@@ -521,7 +524,8 @@ public class ResidueShader implements ResidueShaderI
     return ssConsensusProfileMap;
   }
 
-  public void setSSConsensusProfileMap(Map<String, ProfilesI> ssConsensusProfileMap)
+  public void setSSConsensusProfileMap(
+          Map<String, ProfilesI> ssConsensusProfileMap)
   {
     this.ssConsensusProfileMap = ssConsensusProfileMap;
   }
index c35f208..8e6c754 100644 (file)
@@ -34,8 +34,9 @@ public interface ResidueShaderI
 {
 
   public abstract void setConsensus(ProfilesI cons);
-  
-  public abstract void setSSConsensusProfileMap(Map<String, ProfilesI> ssConsensusProfileMap);
+
+  public abstract void setSSConsensusProfileMap(
+          Map<String, ProfilesI> ssConsensusProfileMap);
 
   public abstract boolean conservationApplied();
 
index 04097a8..8e64f8f 100755 (executable)
@@ -364,62 +364,72 @@ public class ClustalxColourScheme extends ResidueColourScheme
   {
     return false;
   }
+
   public String toRuleRep()
   {
     makeColours();
-    HashMap<String, String> cols=new HashMap();
-    for (String res:ResidueProperties.aa) {
+    HashMap<String, String> cols = new HashMap();
+    for (String res : ResidueProperties.aa)
+    {
       StringBuilder sb = new StringBuilder();
-      
-      int rnum=ResidueProperties.aaIndex[res.charAt(0)];
-      if (rnum<0 || rnum>=residueColour.length)
+
+      int rnum = ResidueProperties.aaIndex[res.charAt(0)];
+      if (rnum < 0 || rnum >= residueColour.length)
       {
         continue;
       }
-      
+
       ConsensusColour cc = residueColour[rnum];
-      if (cc==null)
+      if (cc == null)
       {
         continue;
       }
-      //sb.append("Residue "+res+" ("+rnum+")");
-      //sb.append("\t");
+      // sb.append("Residue "+res+" ("+rnum+")");
+      // sb.append("\t");
       sb.append(cc.c.toString());
-      double f=0;
+      double f = 0;
       sb.append("\t");
-      for (Consensus cons: cc.cons) {
-        if (cons.threshold==0 || f!=cons.threshold)
+      for (Consensus cons : cc.cons)
+      {
+        if (cons.threshold == 0 || f != cons.threshold)
         {
-          if (f!=0)
+          if (f != 0)
           {
 
-              sb.append("}, {");
-          } else {
-          sb.append("{");
+            sb.append("}, {");
+          }
+          else
+          {
+            sb.append("{");
           }
-        sb.append(cons.threshold);
-        sb.append(",");
-        f=cons.threshold;
-        } else {
+          sb.append(cons.threshold);
+          sb.append(",");
+          f = cons.threshold;
+        }
+        else
+        {
           sb.append(",");
         }
         sb.append(cons.maskstr);
       }
       sb.append("}");
-      String clxrep=sb.toString();
+      String clxrep = sb.toString();
       String xres = cols.get(clxrep);
-      if (xres==null) { xres = "";}
-      xres+=res;
+      if (xres == null)
+      {
+        xres = "";
+      }
+      xres += res;
       cols.put(clxrep, xres);
     }
     StringBuilder sb = new StringBuilder();
-    for (String clxrep:cols.keySet())
+    for (String clxrep : cols.keySet())
     {
       sb.append(cols.get(clxrep));
       sb.append("\t");
       sb.append(clxrep);
       sb.append("\n");
-      
+
     }
     return sb.toString();
   }
index 2fcb95f..9d83069 100755 (executable)
@@ -41,7 +41,7 @@ public class ResidueProperties
   public static final int[] nucleotideIndex;
 
   public static final int[] purinepyrimidineIndex;
-  
+
   public static final int[] secondaryStructureIndex;
 
   public static final Map<String, Integer> aa3Hash = new HashMap<>();
@@ -197,13 +197,13 @@ public class ResidueProperties
     purinepyrimidineIndex['N'] = 2;
     purinepyrimidineIndex['n'] = 2;
   }
-  
+
   static
   {
     secondaryStructureIndex = new int[255];
     for (int i = 0; i < 255; i++)
     {
-      secondaryStructureIndex[i] = 3; 
+      secondaryStructureIndex[i] = 3;
     }
 
     secondaryStructureIndex['H'] = 0;
@@ -398,12 +398,12 @@ public class ResidueProperties
       Color.white, // all other nucleotides
       Color.white // Gap
   };
-  
-  //Secondary structure
-   public static final Color[] secondarystructure = { Color.red, // H
-       Color.green, // E
-       Color.gray  // C
-   };
+
+  // Secondary structure
+  public static final Color[] secondarystructure = { Color.red, // H
+      Color.green, // E
+      Color.gray // C
+  };
 
   // Zappo
   public static final Color[] zappo = { Color.pink, // A
index 73c4c0f..c3c3b3e 100644 (file)
@@ -696,18 +696,22 @@ public class StructureSelectionManager
         StructureMapping nwMapping = getNWMappings(seq, pdbFile, maxChainId,
                 maxChain, pdb, maxAlignseq);
         seqToStrucMapping.add(nwMapping);
-        ds.addPDBId(maxChain.sequence.getAllPDBEntries().get(0));  
+        ds.addPDBId(maxChain.sequence.getAllPDBEntries().get(0));
       }
-      
-      //JAL-4392 TODO: Unable to match PDBProvider with Annotation without matching struct file path
+
+      // JAL-4392 TODO: Unable to match PDBProvider with Annotation without
+      // matching struct file path
       String ssAnnotDescriptionInPDB = null;
-      String ssStructFilePathNameInPDB = pdb.getInFile(); //Structure file name in PDB data model
-      //Secondary structure annotations in pdb data model
-      AlignmentAnnotation[] ssAnnotationsInPDB = pdb.getSeqs().get(0).getAnnotation(Constants.SS_ANNOTATION_LABEL);
-      if(ssAnnotationsInPDB != null && ssAnnotationsInPDB.length>0) {
+      String ssStructFilePathNameInPDB = pdb.getInFile(); // Structure file name
+                                                          // in PDB data model
+      // Secondary structure annotations in pdb data model
+      AlignmentAnnotation[] ssAnnotationsInPDB = pdb.getSeqs().get(0)
+              .getAnnotation(Constants.SS_ANNOTATION_LABEL);
+      if (ssAnnotationsInPDB != null && ssAnnotationsInPDB.length > 0)
+      {
         ssAnnotDescriptionInPDB = ssAnnotationsInPDB[0].description;
       }
-      
+
       // Match the PDB entry using file path in the pdb data model and get the
       // provider
       if (ssStructFilePathNameInPDB != null
@@ -729,7 +733,8 @@ public class StructureSelectionManager
           // Add provider value as property to the ss annotation
           if (provider != null)
           {
-            // TODO - JAL-2880 JAL-4441 this should be applied to all structure derived annotations, not just secondary structure!
+            // TODO - JAL-2880 JAL-4441 this should be applied to all structure
+            // derived annotations, not just secondary structure!
             AlignmentAnnotation[] ssAnnotList = ds
                     .getAnnotation(Constants.SS_ANNOTATION_LABEL);
             if (ssAnnotList != null)
@@ -751,8 +756,7 @@ public class StructureSelectionManager
           }
         }
       }
-      
-      
+
       if (forStructureView)
       {
         for (StructureMapping sm : seqToStrucMapping)
index 27513ab..5f01895 100644 (file)
@@ -28,31 +28,35 @@ import java.util.Map;
  */
 public class Constants
 {
-  
-  //character used to represent secondary structures
+
+  // character used to represent secondary structures
   public static final char HELIX = 'H';
+
   public static final char SHEET = 'E';
+
   public static final char COIL = 'C';
 
-  //label in secondary structure annotation data model from 3d structures
+  // label in secondary structure annotation data model from 3d structures
   public static final String SS_ANNOTATION_LABEL = "Secondary Structure";
-  
-  //label in secondary structure annotation data model from JPred
-  public static final String SS_ANNOTATION_FROM_JPRED_LABEL = "jnetpred";  
-  
+
+  // label in secondary structure annotation data model from JPred
+  public static final String SS_ANNOTATION_FROM_JPRED_LABEL = "jnetpred";
+
   public static final Map<String, String> SECONDARY_STRUCTURE_LABELS = new HashMap<>();
-  static {
-      SECONDARY_STRUCTURE_LABELS.put(SS_ANNOTATION_LABEL, "3D Structures");
-      SECONDARY_STRUCTURE_LABELS.put(SS_ANNOTATION_FROM_JPRED_LABEL, "JPred");
-      // Add other secondary structure labels here if needed
-  } 
-  
-  public static final String SS_PROVIDER_PROPERTY = "SS_PROVIDER";  
-
-  //generic secondary structure provider options 
-  public static final String SS_ALL_PROVIDERS = "All";  
+  static
+  {
+    SECONDARY_STRUCTURE_LABELS.put(SS_ANNOTATION_LABEL, "3D Structures");
+    SECONDARY_STRUCTURE_LABELS.put(SS_ANNOTATION_FROM_JPRED_LABEL, "JPred");
+    // Add other secondary structure labels here if needed
+  }
+
+  public static final String SS_PROVIDER_PROPERTY = "SS_PROVIDER";
+
+  // generic secondary structure provider options
+  public static final String SS_ALL_PROVIDERS = "All";
+
   public static final String SS_NONE_PROVIDER = "None";
-  
-  //Secondary structure consensus label
+
+  // Secondary structure consensus label
   public static final String SECONDARY_STRUCTURE_CONSENSUS_LABEL = "Secondary Structure Consensus";
 }
index 94a1424..80c9957 100644 (file)
@@ -252,7 +252,7 @@ public abstract class AlignmentViewport
   {
     return viewStyle.getAbovePIDThreshold();
   }
-  
+
   @Override
   public boolean getByConsensusSecondaryStructureSelected()
   {
@@ -287,8 +287,8 @@ public abstract class AlignmentViewport
   public int getIncrement()
   {
     return viewStyle.getIncrement();
-  }  
-  
+  }
+
   /**
    * @param inc
    * @see jalview.api.ViewStyleI#setConsensusSecondaryStructureThreshold(int)
@@ -298,7 +298,7 @@ public abstract class AlignmentViewport
   {
     viewStyle.setConsensusSecondaryStructureThreshold(val);
   }
-  
+
   /**
    * @return
    * @see jalview.api.ViewStyleI#getConsensusSecondaryStructureThreshold()
@@ -307,8 +307,7 @@ public abstract class AlignmentViewport
   public int getConsensusSecondaryStructureThreshold()
   {
     return viewStyle.getConsensusSecondaryStructureThreshold();
-  }  
-  
+  }
 
   /**
    * @param b
@@ -409,7 +408,7 @@ public abstract class AlignmentViewport
   {
     viewStyle.setAbovePIDThreshold(b);
   }
-  
+
   @Override
   public void setByConsensusSecondaryStructureSelected(boolean b)
   {
@@ -743,7 +742,7 @@ public abstract class AlignmentViewport
   }
 
   protected AlignmentAnnotation consensus;
-  
+
   protected List<AlignmentAnnotation> secondaryStructureConsensus;
 
   protected AlignmentAnnotation complementConsensus;
@@ -757,7 +756,7 @@ public abstract class AlignmentViewport
   protected AlignmentAnnotation quality;
 
   protected AlignmentAnnotation[] groupConsensus;
-  
+
   protected AlignmentAnnotation[] groupSSConsensus;
 
   protected AlignmentAnnotation[] groupConservation;
@@ -766,10 +765,8 @@ public abstract class AlignmentViewport
    * results of alignment consensus analysis for visible portion of view
    */
   protected ProfilesI hconsensus = null;
-  
+
   protected Map<String, ProfilesI> hSSConsensusProfileMap = null;
-  
-  
 
   /**
    * results of cDNA complement consensus visible portion of view
@@ -789,7 +786,7 @@ public abstract class AlignmentViewport
   {
     hconservation = cons;
   }
-  
+
   @Override
   public List<String> getSecondaryStructureSources()
   {
@@ -802,15 +799,17 @@ public abstract class AlignmentViewport
   {
     viewStyle.setSecondaryStructureSources(secondaryStructureSources);
   }
-  
+
   protected void setSecondaryStructureSources(AlignmentAnnotation[] aa)
   {
     List<String> sources = null;
-    
-    if(aa!=null) {
+
+    if (aa != null)
+    {
       sources = AlignmentUtils.extractSSSourceInAlignmentAnnotation(aa);
-      if(sources != null) {
-        sources.add(0,Constants.SS_ALL_PROVIDERS);
+      if (sources != null)
+      {
+        sources.add(0, Constants.SS_ALL_PROVIDERS);
         viewStyle.setSecondaryStructureSources(sources);
       }
     }
@@ -833,13 +832,14 @@ public abstract class AlignmentViewport
   {
     this.hconsensus = hconsensus;
   }
-  
+
   @Override
-  public void setSequenceSSConsensusHash(Map<String, ProfilesI> hSSConsensusProfileMap)
+  public void setSequenceSSConsensusHash(
+          Map<String, ProfilesI> hSSConsensusProfileMap)
   {
     this.hSSConsensusProfileMap = hSSConsensusProfileMap;
   }
-    
+
   @Override
   public void setComplementConsensusHash(
           Hashtable<String, Object>[] hconsensus)
@@ -858,7 +858,6 @@ public abstract class AlignmentViewport
   {
     return hSSConsensusProfileMap;
   }
-  
 
   @Override
   public Hashtable<String, Object>[] getComplementConsensusHash()
@@ -898,13 +897,11 @@ public abstract class AlignmentViewport
     return consensus;
   }
 
-  
   @Override
   public List<AlignmentAnnotation> getAlignmentSecondaryStructureConsensusAnnotation()
   {
     return secondaryStructureConsensus;
   }
-  
 
   @Override
   public AlignmentAnnotation getAlignmentGapAnnotation()
@@ -997,9 +994,6 @@ public abstract class AlignmentViewport
       }
     }
   }
-  
-  
-  
 
   /**
    * trigger update of Secondary Structure consensus annotation
@@ -1012,21 +1006,31 @@ public abstract class AlignmentViewport
       return;
     }
     List<String> ssSources = viewStyle.getSecondaryStructureSources();
-    if (secondaryStructureConsensus.size() != ssSources.size()) {
-      
-      for(String source : ssSources) {      
+    if (secondaryStructureConsensus.size() != ssSources.size())
+    {
+
+      for (String source : ssSources)
+      {
         boolean ssConsensusForSourcePresent = false;
-        for(AlignmentAnnotation aa : secondaryStructureConsensus) {
-          if(aa.description.startsWith(source)) {
+        for (AlignmentAnnotation aa : secondaryStructureConsensus)
+        {
+          if (aa.description.startsWith(source))
+          {
             ssConsensusForSourcePresent = true;
             break;
           }
         }
-        
-        if(!ssConsensusForSourcePresent) {
-          AlignmentAnnotation ssConsensus = new AlignmentAnnotation(MessageManager.getString("label.ssconsensus_label") + " "+source,
-                  source + " " + MessageManager.getString("label.ssconsensus_descr"),
-                  new Annotation[1], 0f, 100f, AlignmentAnnotation.BAR_GRAPH);
+
+        if (!ssConsensusForSourcePresent)
+        {
+          AlignmentAnnotation ssConsensus = new AlignmentAnnotation(
+                  MessageManager.getString("label.ssconsensus_label") + " "
+                          + source,
+                  source + " "
+                          + MessageManager
+                                  .getString("label.ssconsensus_descr"),
+                  new Annotation[1], 0f, 100f,
+                  AlignmentAnnotation.BAR_GRAPH);
 
           ssConsensus.hasText = true;
           ssConsensus.autoCalculated = true;
@@ -1035,19 +1039,19 @@ public abstract class AlignmentViewport
           {
             ssConsensus.visible = true;
             alignment.addAnnotation(ssConsensus);
-            
+
           }
         }
       }
     }
-    if (calculator
-            .getRegisteredWorkersOfClass(SecondaryStructureConsensusThread.class) == null)
+    if (calculator.getRegisteredWorkersOfClass(
+            SecondaryStructureConsensusThread.class) == null)
     {
-      calculator.registerWorker(new SecondaryStructureConsensusThread(this, ap));
+      calculator.registerWorker(
+              new SecondaryStructureConsensusThread(this, ap));
     }
     ap.adjustAnnotationHeight();
 
-    
   }
 
   // --------START Structure Conservation
@@ -1154,7 +1158,6 @@ public abstract class AlignmentViewport
    * should consensus rows be shown for groups
    */
   protected boolean showGroupConsensus = false;
-  
 
   protected boolean showGroupSSConsensus = false;
 
@@ -1162,7 +1165,7 @@ public abstract class AlignmentViewport
    * should consensus profile be rendered by default
    */
   protected boolean showSequenceLogo = false;
-  
+
   /**
    * should consensus profile be rendered normalised to row height
    */
@@ -1172,7 +1175,7 @@ public abstract class AlignmentViewport
    * should consensus histograms be rendered by default
    */
   protected boolean showConsensusHistogram = true;
-  
+
   /**
    * @return the showConsensusProfile
    */
@@ -1181,7 +1184,7 @@ public abstract class AlignmentViewport
   {
     return showSequenceLogo;
   }
-  
+
   /**
    * @param showSequenceLogo
    *          the new value
@@ -1196,14 +1199,15 @@ public abstract class AlignmentViewport
       calculator.updateAnnotationFor(ConsensusThread.class);
       calculator.updateAnnotationFor(ComplementConsensusThread.class);
       calculator.updateAnnotationFor(StrucConsensusThread.class);
-      
-      //to do
 
-      calculator.updateAnnotationFor(SecondaryStructureConsensusThread.class);
+      // to do
+
+      calculator
+              .updateAnnotationFor(SecondaryStructureConsensusThread.class);
     }
     this.showSequenceLogo = showSequenceLogo;
   }
-  
+
   /**
    * @param showConsensusHistogram
    *          the showConsensusHistogram to set
@@ -1237,13 +1241,12 @@ public abstract class AlignmentViewport
   {
     return showGroupConsensus;
   }
-  
+
   public boolean isShowGroupSSConsensus()
   {
     return showGroupSSConsensus;
   }
 
-
   /**
    * @param showGroupConsensus
    *          the showGroupConsensus to set
@@ -1252,12 +1255,12 @@ public abstract class AlignmentViewport
   {
     this.showGroupConsensus = showGroupConsensus;
   }
-  
+
   public void setShowGroupSSConsensus(boolean showGroupSSConsensus)
   {
     this.showGroupSSConsensus = showGroupSSConsensus;
   }
-  
+
   /**
    * @param showSSConsensus
    *          the showSSConsensus to set
@@ -1266,7 +1269,7 @@ public abstract class AlignmentViewport
   {
     this.showSSConsensus = showSSConsensus;
   }
-  
+
   /**
    * 
    * @return flag to indicate if the consensus histogram should be rendered by
@@ -1501,7 +1504,7 @@ public abstract class AlignmentViewport
 
   protected boolean showQuality = true;
 
-  protected boolean showConsensus = true;  
+  protected boolean showConsensus = true;
 
   protected boolean showSSConsensus = true;
 
@@ -2149,19 +2152,26 @@ public abstract class AlignmentViewport
       setSecondaryStructureSources(alignment.getAlignmentAnnotation());
       List<String> secondaryStructureSources = getSecondaryStructureSources();
 
-      if(secondaryStructureSources!=null) {
+      if (secondaryStructureSources != null)
+      {
 
         secondaryStructureConsensus = new ArrayList<AlignmentAnnotation>();
-        for (String ssSource : secondaryStructureSources) {
-        
-          AlignmentAnnotation ssConsensus = new AlignmentAnnotation(MessageManager.getString("label.ssconsensus_label") + " "+ssSource,
-                  ssSource + " " + MessageManager.getString("label.ssconsensus_descr"),
-                  new Annotation[1], 0f, 100f, AlignmentAnnotation.BAR_GRAPH);
+        for (String ssSource : secondaryStructureSources)
+        {
+
+          AlignmentAnnotation ssConsensus = new AlignmentAnnotation(
+                  MessageManager.getString("label.ssconsensus_label") + " "
+                          + ssSource,
+                  ssSource + " "
+                          + MessageManager
+                                  .getString("label.ssconsensus_descr"),
+                  new Annotation[1], 0f, 100f,
+                  AlignmentAnnotation.BAR_GRAPH);
           secondaryStructureConsensus.add(ssConsensus);
         }
-        
+
       }
-      
+
       initConsensus(consensus);
       initSSConsensus(secondaryStructureConsensus);
       initGapCounts();
@@ -2169,7 +2179,6 @@ public abstract class AlignmentViewport
     }
   }
 
-
   /**
    * If this is a protein alignment and there are mappings to cDNA, adds the
    * cDNA consensus annotation and returns true, else returns false.
@@ -2220,21 +2229,24 @@ public abstract class AlignmentViewport
       alignment.addAnnotation(aa);
     }
   }
-  
-  private void initSSConsensus(List<AlignmentAnnotation> secondaryStructureConsensuses)
+
+  private void initSSConsensus(
+          List<AlignmentAnnotation> secondaryStructureConsensuses)
   {
-    if(secondaryStructureConsensuses == null) {
+    if (secondaryStructureConsensuses == null)
+    {
       return;
     }
-    for(AlignmentAnnotation aa : secondaryStructureConsensuses) {
+    for (AlignmentAnnotation aa : secondaryStructureConsensuses)
+    {
       aa.hasText = true;
       aa.autoCalculated = true;
-  
+
       if (showSSConsensus)
       {
         alignment.addAnnotation(aa);
       }
-      
+
     }
   }
 
@@ -2436,21 +2448,25 @@ public abstract class AlignmentViewport
           updateCalcs = true;
           alignment.addAnnotation(sg.getConsensus(), 0);
         }
-        if(sscons) 
-        {        
+        if (sscons)
+        {
           updateCalcs = true;
           List<String> secondaryStructureSources = getSecondaryStructureSources();
-          if(secondaryStructureSources !=null) {
-            List<AlignmentAnnotation> ssAa = sg.getSSConsensus(secondaryStructureSources);
-            if(ssAa != null) {
-              for(AlignmentAnnotation aa : ssAa) {
+          if (secondaryStructureSources != null)
+          {
+            List<AlignmentAnnotation> ssAa = sg
+                    .getSSConsensus(secondaryStructureSources);
+            if (ssAa != null)
+            {
+              for (AlignmentAnnotation aa : ssAa)
+              {
                 // Setting annotation visibility to true for the secondary
                 // structure consensus for all providers
                 if (aa.label.contains(Constants.SS_ALL_PROVIDERS))
                 {
                   aa.visible = true;
                 }
-                  alignment.addAnnotation(aa, 0);
+                alignment.addAnnotation(aa, 0);
               }
             }
           }
@@ -3243,8 +3259,8 @@ public abstract class AlignmentViewport
             + ((ignoreGapsInConsensusCalculation) ? " without gaps" : ""));
     return sq;
   }
-  
-  //to do jal-4386
+
+  // to do jal-4386
   public SequenceI getSSConsensusSeq()
   {
     if (secondaryStructureConsensus == null)
@@ -3256,23 +3272,23 @@ public abstract class AlignmentViewport
       return null;
     }
     StringBuffer seqs = new StringBuffer();
-//    for (int i = 0; i < secondaryStructureConsensus.annotations.length; i++)
-//    {
-//      Annotation annotation = secondaryStructureConsensus.annotations[i];
-//      if (annotation != null)
-//      {
-//        String description = annotation.description;
-//        if (description != null && description.startsWith("["))
-//        {
-//          // consensus is a tie - just pick the first one
-//          seqs.append(description.charAt(1));
-//        }
-//        else
-//        {
-//          seqs.append(annotation.displayCharacter);
-//        }
-//      }
-//    }
+    // for (int i = 0; i < secondaryStructureConsensus.annotations.length; i++)
+    // {
+    // Annotation annotation = secondaryStructureConsensus.annotations[i];
+    // if (annotation != null)
+    // {
+    // String description = annotation.description;
+    // if (description != null && description.startsWith("["))
+    // {
+    // // consensus is a tie - just pick the first one
+    // seqs.append(description.charAt(1));
+    // }
+    // else
+    // {
+    // seqs.append(annotation.displayCharacter);
+    // }
+    // }
+    // }
 
     SequenceI sq = new Sequence("Sec Str Consensus", seqs.toString());
     sq.setDescription("Percentage Identity Sec Str Consensus "
index a0e5174..8568af4 100644 (file)
@@ -69,8 +69,8 @@ public class PaSiMapModel
    * @param modelName
    * @param params
    */
-  public PaSiMapModel(AlignmentViewport seqData, SequenceI[] sqs, boolean nuc,
-          ScoreModelI modelName)
+  public PaSiMapModel(AlignmentViewport seqData, SequenceI[] sqs,
+          boolean nuc, ScoreModelI modelName)
   {
     inputData = seqData;
     seqs = sqs;
@@ -79,8 +79,8 @@ public class PaSiMapModel
   }
 
   /**
-   * Performs the PaSiMap calculation (in the same thread) and extracts result data
-   * needed for visualisation by PaSiMapPanel
+   * Performs the PaSiMap calculation (in the same thread) and extracts result
+   * data needed for visualisation by PaSiMapPanel
    */
   public void calculate(PairwiseAlignPanel pap)
   {
@@ -100,7 +100,8 @@ public class PaSiMapModel
     top = width;
 
     points = new Vector<>();
-    Point[] scores = pasimap.getComponents(width - 1, width - 2, width - 3, 1);
+    Point[] scores = pasimap.getComponents(width - 1, width - 2, width - 3,
+            1);
 
     for (int i = 0; i < height; i++)
     {
@@ -142,8 +143,9 @@ public class PaSiMapModel
   /**
    * Updates the 3D coordinates for the list of points to the given dimensions.
    * Principal dimension is getTop(). Next greatest eigenvector is getTop()-1.
-   * Note - pasimap.getComponents starts counting the spectrum from rank-2 to zero,
-   * rather than rank-1, so getComponents(dimN ...) == updateRcView(dimN+1 ..)
+   * Note - pasimap.getComponents starts counting the spectrum from rank-2 to
+   * zero, rather than rank-1, so getComponents(dimN ...) == updateRcView(dimN+1
+   * ..)
    * 
    * @param dim1
    * @param dim2
@@ -207,13 +209,15 @@ public class PaSiMapModel
       csv.append("\"" + seqs[s].getName() + "\"");
       if (!transformed)
       {
-       double[] fl = pasimap.component(s);
-       for (int d = fl.length - 1; d >= 0; d--)
-       {
-         csv.append(",");
-         csv.append(fl[d]);
-       }
-      } else {
+        double[] fl = pasimap.component(s);
+        for (int d = fl.length - 1; d >= 0; d--)
+        {
+          csv.append(",");
+          csv.append(fl[d]);
+        }
+      }
+      else
+      {
         Point p = points.get(s).coord;
         csv.append(",").append(p.x);
         csv.append(",").append(p.y);
index c9a1ad3..1e803b8 100644 (file)
@@ -66,7 +66,7 @@ public class ViewStyle implements ViewStyleI
   private boolean colourByReferenceSeq = false;
 
   boolean conservationColourSelected = false;
-  
+
   boolean byConsensusSecondaryStructureSelected = false;
 
   /**
@@ -75,7 +75,7 @@ public class ViewStyle implements ViewStyleI
   private boolean displayReferenceSeq = false;
 
   private int increment;
-  
+
   private int consensusSecondaryStructureThreshold;
 
   /**
@@ -193,8 +193,10 @@ public class ViewStyle implements ViewStyleI
     setColourAppliesToAllGroups(vs.getColourAppliesToAllGroups());
     setColourByReferenceSeq(vs.isColourByReferenceSeq());
     setColourText(vs.getColourText());
-    setByConsensusSecondaryStructureSelected(vs.getByConsensusSecondaryStructureSelected());
-    setConsensusSecondaryStructureThreshold(vs.getConsensusSecondaryStructureThreshold());
+    setByConsensusSecondaryStructureSelected(
+            vs.getByConsensusSecondaryStructureSelected());
+    setConsensusSecondaryStructureThreshold(
+            vs.getConsensusSecondaryStructureThreshold());
     setConservationColourSelected(vs.isConservationColourSelected());
     setConservationSelected(vs.getConservationSelected());
     setDisplayReferenceSeq(vs.isDisplayReferenceSeq());
@@ -262,14 +264,16 @@ public class ViewStyle implements ViewStyleI
             && getColourText() == vs.getColourText()
             && isConservationColourSelected() == vs
                     .isConservationColourSelected()
-            && getByConsensusSecondaryStructureSelected() == vs.getByConsensusSecondaryStructureSelected()
+            && getByConsensusSecondaryStructureSelected() == vs
+                    .getByConsensusSecondaryStructureSelected()
             && getConservationSelected() == vs.getConservationSelected()
             && isDisplayReferenceSeq() == vs.isDisplayReferenceSeq()
             && getFontSize() == vs.getFontSize()
             && getFontStyle() == vs.getFontStyle()
             && getIdWidth() == vs.getIdWidth()
             && getIncrement() == vs.getIncrement()
-            && getConsensusSecondaryStructureThreshold() == vs.getConsensusSecondaryStructureThreshold()
+            && getConsensusSecondaryStructureThreshold() == vs
+                    .getConsensusSecondaryStructureThreshold()
             && isRenderGaps() == vs.isRenderGaps()
             && isRightAlignIds() == vs.isRightAlignIds()
             && getScaleAboveWrapped() == vs.getScaleAboveWrapped()
@@ -298,7 +302,8 @@ public class ViewStyle implements ViewStyleI
             && isUpperCasebold() == vs.isUpperCasebold()
             && getWrapAlignment() == vs.getWrapAlignment()
             && getWrappedWidth() == vs.getWrappedWidth()
-            && getSecondaryStructureSources() == vs.getSecondaryStructureSources()
+            && getSecondaryStructureSources() == vs
+                    .getSecondaryStructureSources()
             && isShowStructureProvider() == vs.isShowStructureProvider());
     /*
      * and compare non-primitive types; syntax below will match null with null
@@ -386,11 +391,11 @@ public class ViewStyle implements ViewStyleI
   private boolean showComplementFeatures;
 
   private boolean showComplementFeaturesOnTop;
-  
+
   /**
-  * secondary structure annotation rows shown in the view
-  */
-  private List<String> secondaryStructureSources = List.of( new String[0] );
+   * secondary structure annotation rows shown in the view
+   */
+  private List<String> secondaryStructureSources = List.of(new String[0]);
 
   private boolean showStructureProvider;
 
@@ -410,6 +415,7 @@ public class ViewStyle implements ViewStyleI
   {
     return byConsensusSecondaryStructureSelected;
   }
+
   /**
    * DOCUMENT ME!
    * 
@@ -582,13 +588,12 @@ public class ViewStyle implements ViewStyleI
   {
     return threshold;
   }
-  
+
   @Override
   public int getConsensusSecondaryStructureThreshold()
   {
     return consensusSecondaryStructureThreshold;
   }
-  
 
   /**
    * @return the thresholdTextColour
@@ -708,7 +713,7 @@ public class ViewStyle implements ViewStyleI
   {
     abovePIDThreshold = b;
   }
-  
+
   @Override
   public void setByConsensusSecondaryStructureSelected(boolean b)
   {
@@ -808,7 +813,7 @@ public class ViewStyle implements ViewStyleI
   {
     increment = inc;
   }
-  
+
   /**
    * 
    * @param val
@@ -820,7 +825,6 @@ public class ViewStyle implements ViewStyleI
   {
     consensusSecondaryStructureThreshold = val;
   }
-  
 
   /**
    * DOCUMENT ME!
@@ -1195,7 +1199,7 @@ public class ViewStyle implements ViewStyleI
   {
     return showComplementFeaturesOnTop;
   }
-  
+
   @Override
   public List<String> getSecondaryStructureSources()
   {
@@ -1203,7 +1207,8 @@ public class ViewStyle implements ViewStyleI
   }
 
   @Override
-  public void setSecondaryStructureSources(List<String> secondaryStructureSources)
+  public void setSecondaryStructureSources(
+          List<String> secondaryStructureSources)
   {
     this.secondaryStructureSources = secondaryStructureSources;
   }
@@ -1211,8 +1216,9 @@ public class ViewStyle implements ViewStyleI
   @Override
   public void setShowStructureProvider(boolean showStructureProvider)
   {
-    this.showStructureProvider=showStructureProvider;
+    this.showStructureProvider = showStructureProvider;
   }
+
   @Override
   public boolean isShowStructureProvider()
   {
index 6629f27..13e22fd 100644 (file)
@@ -92,7 +92,7 @@ public class SecondaryStructureConsensusThread extends AlignCalcWorker
         calcMan.workerComplete(this);
         return;
       }
-      
+
       setSecondaryStructureSources();
       eraseSSConsensus(aWidth);
       computeSSConsensus(alignment);
@@ -125,7 +125,8 @@ public class SecondaryStructureConsensusThread extends AlignCalcWorker
   protected void eraseSSConsensus(int aWidth)
   {
     List<AlignmentAnnotation> ssConsensuses = getSSConsensusAnnotation();
-    for(AlignmentAnnotation ssConsensus : ssConsensuses) {
+    for (AlignmentAnnotation ssConsensus : ssConsensuses)
+    {
       if (ssConsensus != null)
       {
         ssConsensus.annotations = new Annotation[aWidth];
@@ -147,13 +148,13 @@ public class SecondaryStructureConsensusThread extends AlignCalcWorker
     SequenceI[] aseqs = getSequences();
     int width = alignment.getWidth();
     Map<String, ProfilesI> hSSConsensusProfileMap = new HashMap<String, ProfilesI>();
-    List <String> ssSources = getSecondaryStructureSources();
-    for(String ssSource : ssSources) {
-      ProfilesI hSSConsensus = AAFrequency.calculateSS(aseqs, width, 0, width,
-              true, ssSource);
+    List<String> ssSources = getSecondaryStructureSources();
+    for (String ssSource : ssSources)
+    {
+      ProfilesI hSSConsensus = AAFrequency.calculateSS(aseqs, width, 0,
+              width, true, ssSource);
       hSSConsensusProfileMap.put(ssSource, hSSConsensus);
     }
-    
 
     alignViewport.setSequenceSSConsensusHash(hSSConsensusProfileMap);
     setColourSchemeConsensus(hSSConsensusProfileMap);
@@ -170,7 +171,8 @@ public class SecondaryStructureConsensusThread extends AlignCalcWorker
   /**
    * @param hconsensus
    */
-  protected void setColourSchemeConsensus(Map<String, ProfilesI> ssConsensusProfileMap)
+  protected void setColourSchemeConsensus(
+          Map<String, ProfilesI> ssConsensusProfileMap)
   {
     ResidueShaderI cs = alignViewport.getResidueShading();
     if (cs != null)
@@ -186,9 +188,10 @@ public class SecondaryStructureConsensusThread extends AlignCalcWorker
    */
   protected List<AlignmentAnnotation> getSSConsensusAnnotation()
   {
-    return alignViewport.getAlignmentSecondaryStructureConsensusAnnotation();
+    return alignViewport
+            .getAlignmentSecondaryStructureConsensusAnnotation();
   }
-  
+
   /**
    * Get the Consensus annotation for the alignment
    * 
@@ -197,16 +200,19 @@ public class SecondaryStructureConsensusThread extends AlignCalcWorker
   protected void setSecondaryStructureSources()
   {
     List<String> sources = null;
-    AlignmentAnnotation[] aa = alignViewport.getAlignment().getAlignmentAnnotation();
-    if(aa!=null) {
+    AlignmentAnnotation[] aa = alignViewport.getAlignment()
+            .getAlignmentAnnotation();
+    if (aa != null)
+    {
       sources = AlignmentUtils.extractSSSourceInAlignmentAnnotation(aa);
-      if(sources != null) {
+      if (sources != null)
+      {
         sources.add(0, Constants.SS_ALL_PROVIDERS);
         alignViewport.setSecondaryStructureSources(sources);
       }
     }
   }
-  
+
   protected List<String> getSecondaryStructureSources()
   {
     return alignViewport.getSecondaryStructureSources();
@@ -236,29 +242,34 @@ public class SecondaryStructureConsensusThread extends AlignCalcWorker
   {
     List<AlignmentAnnotation> ssConsensuses = getSSConsensusAnnotation();
     Map<String, ProfilesI> ssConsensusProfileMap = getViewportSSConsensus();
-    for(AlignmentAnnotation ssConsensus : ssConsensuses) {
+    for (AlignmentAnnotation ssConsensus : ssConsensuses)
+    {
       ProfilesI ssConsensusProfile = null;
-      for(String source: ssConsensusProfileMap.keySet()) {
-        if(ssConsensus.description.startsWith(source)) {
+      for (String source : ssConsensusProfileMap.keySet())
+      {
+        if (ssConsensus.description.startsWith(source))
+        {
           ssConsensusProfile = ssConsensusProfileMap.get(source);
           break;
         }
       }
-    if(ssConsensusProfile==null) {
-      continue;
-    }
-    if (immediate || !calcMan.isWorking(this) && ssConsensus != null
-            && ssConsensusProfile != null)
-    {
-      if(ssConsensusProfile.get(0)!=null)
-      ssConsensus.setNoOfSequencesIncluded(ssConsensusProfile.get(0).getSeqWithSSCount());
-      deriveSSConsensus(ssConsensus, ssConsensusProfile);
-      AlignmentAnnotation gap = getGapAnnotation();
-      if (gap != null)
+      if (ssConsensusProfile == null)
       {
-        deriveGap(gap, ssConsensusProfile);
+        continue;
+      }
+      if (immediate || !calcMan.isWorking(this) && ssConsensus != null
+              && ssConsensusProfile != null)
+      {
+        if (ssConsensusProfile.get(0) != null)
+          ssConsensus.setNoOfSequencesIncluded(
+                  ssConsensusProfile.get(0).getSeqWithSSCount());
+        deriveSSConsensus(ssConsensus, ssConsensusProfile);
+        AlignmentAnnotation gap = getGapAnnotation();
+        if (gap != null)
+        {
+          deriveGap(gap, ssConsensusProfile);
+        }
       }
-    }
     }
   }
 
index ab8fbf5..79dfb0a 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.math.BigInteger;
@@ -18,11 +17,16 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for anonymous complex type</p>.
+ * <p>
+ * Java class for anonymous complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType&gt;
@@ -61,286 +65,295 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "alcodon",
-    "alcodMap"
-})
+@XmlType(name = "", propOrder = { "alcodon", "alcodMap" })
 @XmlRootElement(name = "AlcodonFrame")
-public class AlcodonFrame {
+public class AlcodonFrame
+{
+
+  protected List<AlcodonFrame.Alcodon> alcodon;
+
+  protected List<AlcodonFrame.AlcodMap> alcodMap;
+
+  /**
+   * Gets the value of the alcodon property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the alcodon property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getAlcodon().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link AlcodonFrame.Alcodon }
+   * </p>
+   * 
+   * 
+   * @return The value of the alcodon property.
+   */
+  public List<AlcodonFrame.Alcodon> getAlcodon()
+  {
+    if (alcodon == null)
+    {
+      alcodon = new ArrayList<AlcodonFrame.Alcodon>();
+    }
+    return this.alcodon;
+  }
+
+  /**
+   * Gets the value of the alcodMap property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the alcodMap property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getAlcodMap().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link AlcodonFrame.AlcodMap }
+   * </p>
+   * 
+   * 
+   * @return The value of the alcodMap property.
+   */
+  public List<AlcodonFrame.AlcodMap> getAlcodMap()
+  {
+    if (alcodMap == null)
+    {
+      alcodMap = new ArrayList<AlcodonFrame.AlcodMap>();
+    }
+    return this.alcodMap;
+  }
 
-    protected List<AlcodonFrame.Alcodon> alcodon;
-    protected List<AlcodonFrame.AlcodMap> alcodMap;
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attribute name="dnasq" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "mapping" })
+  public static class AlcodMap
+  {
 
     /**
-     * Gets the value of the alcodon property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the alcodon property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getAlcodon().add(newItem);
-     * </pre>
+     * a Mapping entry and an associated protein sequence
      * 
+     */
+    @XmlElement(name = "Mapping", required = true)
+    protected Mapping mapping;
+
+    /**
+     * internal jalview id for the dnasq for this mapping.
      * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link AlcodonFrame.Alcodon }
-     * </p>
+     */
+    @XmlAttribute(name = "dnasq", required = true)
+    protected String dnasq;
+
+    /**
+     * a Mapping entry and an associated protein sequence
      * 
+     * @return possible object is {@link Mapping }
      * 
-     * @return
-     *     The value of the alcodon property.
      */
-    public List<AlcodonFrame.Alcodon> getAlcodon() {
-        if (alcodon == null) {
-            alcodon = new ArrayList<AlcodonFrame.Alcodon>();
-        }
-        return this.alcodon;
+    public Mapping getMapping()
+    {
+      return mapping;
     }
 
     /**
-     * Gets the value of the alcodMap property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the alcodMap property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getAlcodMap().add(newItem);
-     * </pre>
-     * 
+     * Sets the value of the mapping property.
      * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link AlcodonFrame.AlcodMap }
-     * </p>
+     * @param value
+     *          allowed object is {@link Mapping }
      * 
-     * 
-     * @return
-     *     The value of the alcodMap property.
+     * @see #getMapping()
      */
-    public List<AlcodonFrame.AlcodMap> getAlcodMap() {
-        if (alcodMap == null) {
-            alcodMap = new ArrayList<AlcodonFrame.AlcodMap>();
-        }
-        return this.alcodMap;
+    public void setMapping(Mapping value)
+    {
+      this.mapping = value;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * internal jalview id for the dnasq for this mapping.
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * @return possible object is {@link String }
      * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attribute name="dnasq" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     */
+    public String getDnasq()
+    {
+      return dnasq;
+    }
+
+    /**
+     * Sets the value of the dnasq property.
      * 
+     * @param value
+     *          allowed object is {@link String }
      * 
+     * @see #getDnasq()
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "mapping"
-    })
-    public static class AlcodMap {
+    public void setDnasq(String value)
+    {
+      this.dnasq = value;
+    }
 
-        /**
-         * a Mapping entry and an associated protein
-         *                                                                             sequence
-         * 
-         */
-        @XmlElement(name = "Mapping", required = true)
-        protected Mapping mapping;
-        /**
-         * internal jalview id for the dnasq for this
-         *                                                                     mapping.
-         * 
-         */
-        @XmlAttribute(name = "dnasq", required = true)
-        protected String dnasq;
+  }
 
-        /**
-         * a Mapping entry and an associated protein
-         *                                                                             sequence
-         * 
-         * @return
-         *     possible object is
-         *     {@link Mapping }
-         *     
-         */
-        public Mapping getMapping() {
-            return mapping;
-        }
+  /**
+   * specifies a series of aligned codons from an associated DNA sequence
+   * alignment that when translated correspond to columns of a peptide
+   * alignment. Element may have either all pos1,2,3 attributes specified, or
+   * none at all (indicating a gapped column with no translated peptide).
+   * 
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;attribute name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+   *       &lt;attribute name="pos2" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+   *       &lt;attribute name="pos3" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "")
+  public static class Alcodon
+  {
 
-        /**
-         * Sets the value of the mapping property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Mapping }
-         *     
-         * @see #getMapping()
-         */
-        public void setMapping(Mapping value) {
-            this.mapping = value;
-        }
+    @XmlAttribute(name = "pos1")
+    protected BigInteger pos1;
 
-        /**
-         * internal jalview id for the dnasq for this
-         *                                                                     mapping.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getDnasq() {
-            return dnasq;
-        }
+    @XmlAttribute(name = "pos2")
+    protected BigInteger pos2;
 
-        /**
-         * Sets the value of the dnasq property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getDnasq()
-         */
-        public void setDnasq(String value) {
-            this.dnasq = value;
-        }
+    @XmlAttribute(name = "pos3")
+    protected BigInteger pos3;
 
+    /**
+     * Gets the value of the pos1 property.
+     * 
+     * @return possible object is {@link BigInteger }
+     * 
+     */
+    public BigInteger getPos1()
+    {
+      return pos1;
     }
 
-
     /**
-     * specifies a series of aligned codons from an
-     *                                                                 associated DNA sequence alignment that when translated
-     *                                                                 correspond to columns of a peptide alignment.
-     *                                                                 Element may have
-     *                                                                 either all pos1,2,3 attributes specified, or none at all
-     *                                                                 (indicating a gapped column with no translated peptide).
+     * Sets the value of the pos1 property.
      * 
-     * <p>Java class for anonymous complex type</p>.
+     * @param value
+     *          allowed object is {@link BigInteger }
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;attribute name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
-     *       &lt;attribute name="pos2" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
-     *       &lt;attribute name="pos3" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     */
+    public void setPos1(BigInteger value)
+    {
+      this.pos1 = value;
+    }
+
+    /**
+     * Gets the value of the pos2 property.
      * 
+     * @return possible object is {@link BigInteger }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class Alcodon {
-
-        @XmlAttribute(name = "pos1")
-        protected BigInteger pos1;
-        @XmlAttribute(name = "pos2")
-        protected BigInteger pos2;
-        @XmlAttribute(name = "pos3")
-        protected BigInteger pos3;
-
-        /**
-         * Gets the value of the pos1 property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link BigInteger }
-         *     
-         */
-        public BigInteger getPos1() {
-            return pos1;
-        }
-
-        /**
-         * Sets the value of the pos1 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link BigInteger }
-         *     
-         */
-        public void setPos1(BigInteger value) {
-            this.pos1 = value;
-        }
-
-        /**
-         * Gets the value of the pos2 property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link BigInteger }
-         *     
-         */
-        public BigInteger getPos2() {
-            return pos2;
-        }
-
-        /**
-         * Sets the value of the pos2 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link BigInteger }
-         *     
-         */
-        public void setPos2(BigInteger value) {
-            this.pos2 = value;
-        }
+    public BigInteger getPos2()
+    {
+      return pos2;
+    }
 
-        /**
-         * Gets the value of the pos3 property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link BigInteger }
-         *     
-         */
-        public BigInteger getPos3() {
-            return pos3;
-        }
+    /**
+     * Sets the value of the pos2 property.
+     * 
+     * @param value
+     *          allowed object is {@link BigInteger }
+     * 
+     */
+    public void setPos2(BigInteger value)
+    {
+      this.pos2 = value;
+    }
 
-        /**
-         * Sets the value of the pos3 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link BigInteger }
-         *     
-         */
-        public void setPos3(BigInteger value) {
-            this.pos3 = value;
-        }
+    /**
+     * Gets the value of the pos3 property.
+     * 
+     * @return possible object is {@link BigInteger }
+     * 
+     */
+    public BigInteger getPos3()
+    {
+      return pos3;
+    }
 
+    /**
+     * Sets the value of the pos3 property.
+     * 
+     * @param value
+     *          allowed object is {@link BigInteger }
+     * 
+     */
+    public void setPos3(BigInteger value)
+    {
+      this.pos3 = value;
     }
 
+  }
+
 }
index 4c2a9a3..f96a980 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -17,11 +16,16 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for anonymous complex type</p>.
+ * <p>
+ * Java class for anonymous complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType&gt;
@@ -70,772 +74,796 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "annotationElement",
-    "label",
-    "description",
-    "thresholdLine",
-    "contactmatrix",
-    "property"
-})
+@XmlType(
+  name = "",
+  propOrder =
+  { "annotationElement", "label", "description", "thresholdLine",
+      "contactmatrix", "property" })
 @XmlRootElement(name = "Annotation")
-public class Annotation {
-
-    protected List<AnnotationElement> annotationElement;
-    @XmlElement(required = true)
+public class Annotation
+{
+
+  protected List<AnnotationElement> annotationElement;
+
+  @XmlElement(required = true)
+  protected String label;
+
+  protected String description;
+
+  protected Annotation.ThresholdLine thresholdLine;
+
+  protected List<MapOnAMatrixType> contactmatrix;
+
+  protected List<Property> property;
+
+  @XmlAttribute(name = "graph", required = true)
+  protected boolean graph;
+
+  @XmlAttribute(name = "graphType")
+  protected Integer graphType;
+
+  @XmlAttribute(name = "sequenceRef")
+  protected String sequenceRef;
+
+  @XmlAttribute(name = "groupRef")
+  protected String groupRef;
+
+  @XmlAttribute(name = "graphColour")
+  protected Integer graphColour;
+
+  @XmlAttribute(name = "graphGroup")
+  protected Integer graphGroup;
+
+  /**
+   * height in pixels for the graph if this is a graph-type annotation.
+   * 
+   */
+  @XmlAttribute(name = "graphHeight")
+  protected Integer graphHeight;
+
+  @XmlAttribute(name = "id")
+  protected String id;
+
+  @XmlAttribute(name = "scoreOnly")
+  protected Boolean scoreOnly;
+
+  @XmlAttribute(name = "score")
+  protected Double score;
+
+  @XmlAttribute(name = "visible")
+  protected Boolean visible;
+
+  @XmlAttribute(name = "centreColLabels")
+  protected Boolean centreColLabels;
+
+  @XmlAttribute(name = "scaleColLabels")
+  protected Boolean scaleColLabels;
+
+  @XmlAttribute(name = "showAllColLabels")
+  protected Boolean showAllColLabels;
+
+  /**
+   * is an autocalculated annotation row
+   * 
+   */
+  @XmlAttribute(name = "autoCalculated")
+  protected Boolean autoCalculated;
+
+  /**
+   * is to be shown below the alignment - introduced in Jalview 2.8 for
+   * visualizing T-COFFEE alignment scores
+   * 
+   */
+  @XmlAttribute(name = "belowAlignment")
+  protected Boolean belowAlignment;
+
+  /**
+   * Optional string identifier used to group sets of annotation produced by a
+   * particular calculation. Values are opaque strings but have semantic meaning
+   * to Jalview's renderer, data importer and calculation system.
+   * 
+   */
+  @XmlAttribute(name = "calcId")
+  protected String calcId;
+
+  /**
+   * Gets the value of the annotationElement property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the annotationElement property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getAnnotationElement().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link AnnotationElement }
+   * </p>
+   * 
+   * 
+   * @return The value of the annotationElement property.
+   */
+  public List<AnnotationElement> getAnnotationElement()
+  {
+    if (annotationElement == null)
+    {
+      annotationElement = new ArrayList<AnnotationElement>();
+    }
+    return this.annotationElement;
+  }
+
+  /**
+   * Gets the value of the label property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getLabel()
+  {
+    return label;
+  }
+
+  /**
+   * Sets the value of the label property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setLabel(String value)
+  {
+    this.label = value;
+  }
+
+  /**
+   * Gets the value of the description property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDescription()
+  {
+    return description;
+  }
+
+  /**
+   * Sets the value of the description property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setDescription(String value)
+  {
+    this.description = value;
+  }
+
+  /**
+   * Gets the value of the thresholdLine property.
+   * 
+   * @return possible object is {@link Annotation.ThresholdLine }
+   * 
+   */
+  public Annotation.ThresholdLine getThresholdLine()
+  {
+    return thresholdLine;
+  }
+
+  /**
+   * Sets the value of the thresholdLine property.
+   * 
+   * @param value
+   *          allowed object is {@link Annotation.ThresholdLine }
+   * 
+   */
+  public void setThresholdLine(Annotation.ThresholdLine value)
+  {
+    this.thresholdLine = value;
+  }
+
+  /**
+   * Gets the value of the contactmatrix property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the contactmatrix property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getContactmatrix().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link MapOnAMatrixType }
+   * </p>
+   * 
+   * 
+   * @return The value of the contactmatrix property.
+   */
+  public List<MapOnAMatrixType> getContactmatrix()
+  {
+    if (contactmatrix == null)
+    {
+      contactmatrix = new ArrayList<MapOnAMatrixType>();
+    }
+    return this.contactmatrix;
+  }
+
+  /**
+   * Gets the value of the property property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the property property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getProperty().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link Property }
+   * </p>
+   * 
+   * 
+   * @return The value of the property property.
+   */
+  public List<Property> getProperty()
+  {
+    if (property == null)
+    {
+      property = new ArrayList<Property>();
+    }
+    return this.property;
+  }
+
+  /**
+   * Gets the value of the graph property.
+   * 
+   */
+  public boolean isGraph()
+  {
+    return graph;
+  }
+
+  /**
+   * Sets the value of the graph property.
+   * 
+   */
+  public void setGraph(boolean value)
+  {
+    this.graph = value;
+  }
+
+  /**
+   * Gets the value of the graphType property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getGraphType()
+  {
+    return graphType;
+  }
+
+  /**
+   * Sets the value of the graphType property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setGraphType(Integer value)
+  {
+    this.graphType = value;
+  }
+
+  /**
+   * Gets the value of the sequenceRef property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getSequenceRef()
+  {
+    return sequenceRef;
+  }
+
+  /**
+   * Sets the value of the sequenceRef property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setSequenceRef(String value)
+  {
+    this.sequenceRef = value;
+  }
+
+  /**
+   * Gets the value of the groupRef property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getGroupRef()
+  {
+    return groupRef;
+  }
+
+  /**
+   * Sets the value of the groupRef property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setGroupRef(String value)
+  {
+    this.groupRef = value;
+  }
+
+  /**
+   * Gets the value of the graphColour property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getGraphColour()
+  {
+    return graphColour;
+  }
+
+  /**
+   * Sets the value of the graphColour property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setGraphColour(Integer value)
+  {
+    this.graphColour = value;
+  }
+
+  /**
+   * Gets the value of the graphGroup property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getGraphGroup()
+  {
+    return graphGroup;
+  }
+
+  /**
+   * Sets the value of the graphGroup property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setGraphGroup(Integer value)
+  {
+    this.graphGroup = value;
+  }
+
+  /**
+   * height in pixels for the graph if this is a graph-type annotation.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getGraphHeight()
+  {
+    return graphHeight;
+  }
+
+  /**
+   * Sets the value of the graphHeight property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   * @see #getGraphHeight()
+   */
+  public void setGraphHeight(Integer value)
+  {
+    this.graphHeight = value;
+  }
+
+  /**
+   * Gets the value of the id property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getId()
+  {
+    return id;
+  }
+
+  /**
+   * Sets the value of the id property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setId(String value)
+  {
+    this.id = value;
+  }
+
+  /**
+   * Gets the value of the scoreOnly property.
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public boolean isScoreOnly()
+  {
+    if (scoreOnly == null)
+    {
+      return false;
+    }
+    else
+    {
+      return scoreOnly;
+    }
+  }
+
+  /**
+   * Sets the value of the scoreOnly property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   */
+  public void setScoreOnly(Boolean value)
+  {
+    this.scoreOnly = value;
+  }
+
+  /**
+   * Gets the value of the score property.
+   * 
+   * @return possible object is {@link Double }
+   * 
+   */
+  public Double getScore()
+  {
+    return score;
+  }
+
+  /**
+   * Sets the value of the score property.
+   * 
+   * @param value
+   *          allowed object is {@link Double }
+   * 
+   */
+  public void setScore(Double value)
+  {
+    this.score = value;
+  }
+
+  /**
+   * Gets the value of the visible property.
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public Boolean isVisible()
+  {
+    return visible;
+  }
+
+  /**
+   * Sets the value of the visible property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   */
+  public void setVisible(Boolean value)
+  {
+    this.visible = value;
+  }
+
+  /**
+   * Gets the value of the centreColLabels property.
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public Boolean isCentreColLabels()
+  {
+    return centreColLabels;
+  }
+
+  /**
+   * Sets the value of the centreColLabels property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   */
+  public void setCentreColLabels(Boolean value)
+  {
+    this.centreColLabels = value;
+  }
+
+  /**
+   * Gets the value of the scaleColLabels property.
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public Boolean isScaleColLabels()
+  {
+    return scaleColLabels;
+  }
+
+  /**
+   * Sets the value of the scaleColLabels property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   */
+  public void setScaleColLabels(Boolean value)
+  {
+    this.scaleColLabels = value;
+  }
+
+  /**
+   * Gets the value of the showAllColLabels property.
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public Boolean isShowAllColLabels()
+  {
+    return showAllColLabels;
+  }
+
+  /**
+   * Sets the value of the showAllColLabels property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   */
+  public void setShowAllColLabels(Boolean value)
+  {
+    this.showAllColLabels = value;
+  }
+
+  /**
+   * is an autocalculated annotation row
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public boolean isAutoCalculated()
+  {
+    if (autoCalculated == null)
+    {
+      return false;
+    }
+    else
+    {
+      return autoCalculated;
+    }
+  }
+
+  /**
+   * Sets the value of the autoCalculated property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   * @see #isAutoCalculated()
+   */
+  public void setAutoCalculated(Boolean value)
+  {
+    this.autoCalculated = value;
+  }
+
+  /**
+   * is to be shown below the alignment - introduced in Jalview 2.8 for
+   * visualizing T-COFFEE alignment scores
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public boolean isBelowAlignment()
+  {
+    if (belowAlignment == null)
+    {
+      return true;
+    }
+    else
+    {
+      return belowAlignment;
+    }
+  }
+
+  /**
+   * Sets the value of the belowAlignment property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   * @see #isBelowAlignment()
+   */
+  public void setBelowAlignment(Boolean value)
+  {
+    this.belowAlignment = value;
+  }
+
+  /**
+   * Optional string identifier used to group sets of annotation produced by a
+   * particular calculation. Values are opaque strings but have semantic meaning
+   * to Jalview's renderer, data importer and calculation system.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getCalcId()
+  {
+    return calcId;
+  }
+
+  /**
+   * Sets the value of the calcId property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getCalcId()
+   */
+  public void setCalcId(String value)
+  {
+    this.calcId = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "")
+  public static class ThresholdLine
+  {
+
+    @XmlAttribute(name = "label")
     protected String label;
-    protected String description;
-    protected Annotation.ThresholdLine thresholdLine;
-    protected List<MapOnAMatrixType> contactmatrix;
-    protected List<Property> property;
-    @XmlAttribute(name = "graph", required = true)
-    protected boolean graph;
-    @XmlAttribute(name = "graphType")
-    protected Integer graphType;
-    @XmlAttribute(name = "sequenceRef")
-    protected String sequenceRef;
-    @XmlAttribute(name = "groupRef")
-    protected String groupRef;
-    @XmlAttribute(name = "graphColour")
-    protected Integer graphColour;
-    @XmlAttribute(name = "graphGroup")
-    protected Integer graphGroup;
-    /**
-     * height in pixels for the graph if this is a
-     *                                                 graph-type annotation.
-     * 
-     */
-    @XmlAttribute(name = "graphHeight")
-    protected Integer graphHeight;
-    @XmlAttribute(name = "id")
-    protected String id;
-    @XmlAttribute(name = "scoreOnly")
-    protected Boolean scoreOnly;
-    @XmlAttribute(name = "score")
-    protected Double score;
-    @XmlAttribute(name = "visible")
-    protected Boolean visible;
-    @XmlAttribute(name = "centreColLabels")
-    protected Boolean centreColLabels;
-    @XmlAttribute(name = "scaleColLabels")
-    protected Boolean scaleColLabels;
-    @XmlAttribute(name = "showAllColLabels")
-    protected Boolean showAllColLabels;
-    /**
-     * is an autocalculated annotation row
-     * 
-     */
-    @XmlAttribute(name = "autoCalculated")
-    protected Boolean autoCalculated;
-    /**
-     * is to be shown below the alignment - introduced
-     *                                                 in Jalview 2.8 for visualizing T-COFFEE alignment scores
-     * 
-     */
-    @XmlAttribute(name = "belowAlignment")
-    protected Boolean belowAlignment;
-    /**
-     * Optional string identifier used to group sets of
-     *                                                 annotation produced by a particular calculation. Values are opaque
-     *                                                 strings but have semantic meaning to Jalview's renderer, data
-     *                                                 importer and calculation system.
-     * 
-     */
-    @XmlAttribute(name = "calcId")
-    protected String calcId;
-
-    /**
-     * Gets the value of the annotationElement property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the annotationElement property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getAnnotationElement().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link AnnotationElement }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the annotationElement property.
-     */
-    public List<AnnotationElement> getAnnotationElement() {
-        if (annotationElement == null) {
-            annotationElement = new ArrayList<AnnotationElement>();
-        }
-        return this.annotationElement;
-    }
-
-    /**
-     * Gets the value of the label property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getLabel() {
-        return label;
-    }
-
-    /**
-     * Sets the value of the label property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setLabel(String value) {
-        this.label = value;
-    }
-
-    /**
-     * Gets the value of the description property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Sets the value of the description property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDescription(String value) {
-        this.description = value;
-    }
-
-    /**
-     * Gets the value of the thresholdLine property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Annotation.ThresholdLine }
-     *     
-     */
-    public Annotation.ThresholdLine getThresholdLine() {
-        return thresholdLine;
-    }
-
-    /**
-     * Sets the value of the thresholdLine property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Annotation.ThresholdLine }
-     *     
-     */
-    public void setThresholdLine(Annotation.ThresholdLine value) {
-        this.thresholdLine = value;
-    }
-
-    /**
-     * Gets the value of the contactmatrix property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the contactmatrix property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getContactmatrix().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link MapOnAMatrixType }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the contactmatrix property.
-     */
-    public List<MapOnAMatrixType> getContactmatrix() {
-        if (contactmatrix == null) {
-            contactmatrix = new ArrayList<MapOnAMatrixType>();
-        }
-        return this.contactmatrix;
-    }
-
-    /**
-     * Gets the value of the property property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the property property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getProperty().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Property }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the property property.
-     */
-    public List<Property> getProperty() {
-        if (property == null) {
-            property = new ArrayList<Property>();
-        }
-        return this.property;
-    }
-
-    /**
-     * Gets the value of the graph property.
-     * 
-     */
-    public boolean isGraph() {
-        return graph;
-    }
-
-    /**
-     * Sets the value of the graph property.
-     * 
-     */
-    public void setGraph(boolean value) {
-        this.graph = value;
-    }
-
-    /**
-     * Gets the value of the graphType property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getGraphType() {
-        return graphType;
-    }
-
-    /**
-     * Sets the value of the graphType property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setGraphType(Integer value) {
-        this.graphType = value;
-    }
-
-    /**
-     * Gets the value of the sequenceRef property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getSequenceRef() {
-        return sequenceRef;
-    }
-
-    /**
-     * Sets the value of the sequenceRef property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setSequenceRef(String value) {
-        this.sequenceRef = value;
-    }
-
-    /**
-     * Gets the value of the groupRef property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getGroupRef() {
-        return groupRef;
-    }
-
-    /**
-     * Sets the value of the groupRef property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setGroupRef(String value) {
-        this.groupRef = value;
-    }
-
-    /**
-     * Gets the value of the graphColour property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getGraphColour() {
-        return graphColour;
-    }
-
-    /**
-     * Sets the value of the graphColour property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setGraphColour(Integer value) {
-        this.graphColour = value;
-    }
-
-    /**
-     * Gets the value of the graphGroup property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getGraphGroup() {
-        return graphGroup;
-    }
-
-    /**
-     * Sets the value of the graphGroup property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setGraphGroup(Integer value) {
-        this.graphGroup = value;
-    }
-
-    /**
-     * height in pixels for the graph if this is a
-     *                                                 graph-type annotation.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getGraphHeight() {
-        return graphHeight;
-    }
-
-    /**
-     * Sets the value of the graphHeight property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     * @see #getGraphHeight()
-     */
-    public void setGraphHeight(Integer value) {
-        this.graphHeight = value;
-    }
-
-    /**
-     * Gets the value of the id property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Sets the value of the id property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setId(String value) {
-        this.id = value;
-    }
-
-    /**
-     * Gets the value of the scoreOnly property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
-     */
-    public boolean isScoreOnly() {
-        if (scoreOnly == null) {
-            return false;
-        } else {
-            return scoreOnly;
-        }
-    }
-
-    /**
-     * Sets the value of the scoreOnly property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     */
-    public void setScoreOnly(Boolean value) {
-        this.scoreOnly = value;
-    }
 
-    /**
-     * Gets the value of the score property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Double }
-     *     
-     */
-    public Double getScore() {
-        return score;
-    }
+    @XmlAttribute(name = "value")
+    protected Float value;
 
-    /**
-     * Sets the value of the score property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Double }
-     *     
-     */
-    public void setScore(Double value) {
-        this.score = value;
-    }
-
-    /**
-     * Gets the value of the visible property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
-     */
-    public Boolean isVisible() {
-        return visible;
-    }
+    @XmlAttribute(name = "colour")
+    protected Integer colour;
 
     /**
-     * Sets the value of the visible property.
+     * Gets the value of the label property.
      * 
-     * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     */
-    public void setVisible(Boolean value) {
-        this.visible = value;
-    }
-
-    /**
-     * Gets the value of the centreColLabels property.
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
      */
-    public Boolean isCentreColLabels() {
-        return centreColLabels;
+    public String getLabel()
+    {
+      return label;
     }
 
     /**
-     * Sets the value of the centreColLabels property.
+     * Sets the value of the label property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     */
-    public void setCentreColLabels(Boolean value) {
-        this.centreColLabels = value;
-    }
-
-    /**
-     * Gets the value of the scaleColLabels property.
+     *          allowed object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
      */
-    public Boolean isScaleColLabels() {
-        return scaleColLabels;
+    public void setLabel(String value)
+    {
+      this.label = value;
     }
 
     /**
-     * Sets the value of the scaleColLabels property.
+     * Gets the value of the value property.
      * 
-     * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     */
-    public void setScaleColLabels(Boolean value) {
-        this.scaleColLabels = value;
-    }
-
-    /**
-     * Gets the value of the showAllColLabels property.
+     * @return possible object is {@link Float }
      * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
      */
-    public Boolean isShowAllColLabels() {
-        return showAllColLabels;
+    public Float getValue()
+    {
+      return value;
     }
 
     /**
-     * Sets the value of the showAllColLabels property.
+     * Sets the value of the value property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     */
-    public void setShowAllColLabels(Boolean value) {
-        this.showAllColLabels = value;
-    }
-
-    /**
-     * is an autocalculated annotation row
+     *          allowed object is {@link Float }
      * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
      */
-    public boolean isAutoCalculated() {
-        if (autoCalculated == null) {
-            return false;
-        } else {
-            return autoCalculated;
-        }
+    public void setValue(Float value)
+    {
+      this.value = value;
     }
 
     /**
-     * Sets the value of the autoCalculated property.
+     * Gets the value of the colour property.
      * 
-     * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     * @see #isAutoCalculated()
-     */
-    public void setAutoCalculated(Boolean value) {
-        this.autoCalculated = value;
-    }
-
-    /**
-     * is to be shown below the alignment - introduced
-     *                                                 in Jalview 2.8 for visualizing T-COFFEE alignment scores
+     * @return possible object is {@link Integer }
      * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
      */
-    public boolean isBelowAlignment() {
-        if (belowAlignment == null) {
-            return true;
-        } else {
-            return belowAlignment;
-        }
+    public Integer getColour()
+    {
+      return colour;
     }
 
     /**
-     * Sets the value of the belowAlignment property.
+     * Sets the value of the colour property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     * @see #isBelowAlignment()
-     */
-    public void setBelowAlignment(Boolean value) {
-        this.belowAlignment = value;
-    }
-
-    /**
-     * Optional string identifier used to group sets of
-     *                                                 annotation produced by a particular calculation. Values are opaque
-     *                                                 strings but have semantic meaning to Jalview's renderer, data
-     *                                                 importer and calculation system.
+     *          allowed object is {@link Integer }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getCalcId() {
-        return calcId;
+    public void setColour(Integer value)
+    {
+      this.colour = value;
     }
 
-    /**
-     * Sets the value of the calcId property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getCalcId()
-     */
-    public void setCalcId(String value) {
-        this.calcId = value;
-    }
-
-
-    /**
-     * <p>Java class for anonymous complex type</p>.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
-     * 
-     * 
-     */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class ThresholdLine {
-
-        @XmlAttribute(name = "label")
-        protected String label;
-        @XmlAttribute(name = "value")
-        protected Float value;
-        @XmlAttribute(name = "colour")
-        protected Integer colour;
-
-        /**
-         * Gets the value of the label property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getLabel() {
-            return label;
-        }
-
-        /**
-         * Sets the value of the label property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setLabel(String value) {
-            this.label = value;
-        }
-
-        /**
-         * Gets the value of the value property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Float }
-         *     
-         */
-        public Float getValue() {
-            return value;
-        }
-
-        /**
-         * Sets the value of the value property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Float }
-         *     
-         */
-        public void setValue(Float value) {
-            this.value = value;
-        }
-
-        /**
-         * Gets the value of the colour property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getColour() {
-            return colour;
-        }
-
-        /**
-         * Sets the value of the colour property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setColour(Integer value) {
-            this.colour = value;
-        }
-
-    }
+  }
 
 }
index 4df374f..50bcf19 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -13,11 +12,16 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for AnnotationColourScheme complex type</p>.
+ * <p>
+ * Java class for AnnotationColourScheme complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="AnnotationColourScheme"&gt;
@@ -40,215 +44,215 @@ import javax.xml.bind.annotation.XmlType;
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "AnnotationColourScheme", namespace = "www.jalview.org")
-public class AnnotationColourScheme {
-
-    @XmlAttribute(name = "aboveThreshold")
-    protected Integer aboveThreshold;
-    @XmlAttribute(name = "annotation")
-    protected String annotation;
-    @XmlAttribute(name = "minColour")
-    protected Integer minColour;
-    @XmlAttribute(name = "maxColour")
-    protected Integer maxColour;
-    @XmlAttribute(name = "colourScheme")
-    protected String colourScheme;
-    @XmlAttribute(name = "threshold")
-    protected Float threshold;
-    @XmlAttribute(name = "perSequence")
-    protected Boolean perSequence;
-    @XmlAttribute(name = "predefinedColours")
-    protected Boolean predefinedColours;
-
-    /**
-     * Gets the value of the aboveThreshold property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getAboveThreshold() {
-        return aboveThreshold;
-    }
-
-    /**
-     * Sets the value of the aboveThreshold property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setAboveThreshold(Integer value) {
-        this.aboveThreshold = value;
-    }
-
-    /**
-     * Gets the value of the annotation property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getAnnotation() {
-        return annotation;
-    }
-
-    /**
-     * Sets the value of the annotation property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setAnnotation(String value) {
-        this.annotation = value;
-    }
-
-    /**
-     * Gets the value of the minColour property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getMinColour() {
-        return minColour;
-    }
-
-    /**
-     * Sets the value of the minColour property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setMinColour(Integer value) {
-        this.minColour = value;
-    }
-
-    /**
-     * Gets the value of the maxColour property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getMaxColour() {
-        return maxColour;
-    }
-
-    /**
-     * Sets the value of the maxColour property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setMaxColour(Integer value) {
-        this.maxColour = value;
-    }
-
-    /**
-     * Gets the value of the colourScheme property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getColourScheme() {
-        return colourScheme;
-    }
-
-    /**
-     * Sets the value of the colourScheme property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setColourScheme(String value) {
-        this.colourScheme = value;
-    }
-
-    /**
-     * Gets the value of the threshold property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Float }
-     *     
-     */
-    public Float getThreshold() {
-        return threshold;
-    }
-
-    /**
-     * Sets the value of the threshold property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Float }
-     *     
-     */
-    public void setThreshold(Float value) {
-        this.threshold = value;
-    }
-
-    /**
-     * Gets the value of the perSequence property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
-     */
-    public Boolean isPerSequence() {
-        return perSequence;
-    }
-
-    /**
-     * Sets the value of the perSequence property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     */
-    public void setPerSequence(Boolean value) {
-        this.perSequence = value;
-    }
-
-    /**
-     * Gets the value of the predefinedColours property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Boolean }
-     *     
-     */
-    public Boolean isPredefinedColours() {
-        return predefinedColours;
-    }
-
-    /**
-     * Sets the value of the predefinedColours property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Boolean }
-     *     
-     */
-    public void setPredefinedColours(Boolean value) {
-        this.predefinedColours = value;
-    }
+public class AnnotationColourScheme
+{
+
+  @XmlAttribute(name = "aboveThreshold")
+  protected Integer aboveThreshold;
+
+  @XmlAttribute(name = "annotation")
+  protected String annotation;
+
+  @XmlAttribute(name = "minColour")
+  protected Integer minColour;
+
+  @XmlAttribute(name = "maxColour")
+  protected Integer maxColour;
+
+  @XmlAttribute(name = "colourScheme")
+  protected String colourScheme;
+
+  @XmlAttribute(name = "threshold")
+  protected Float threshold;
+
+  @XmlAttribute(name = "perSequence")
+  protected Boolean perSequence;
+
+  @XmlAttribute(name = "predefinedColours")
+  protected Boolean predefinedColours;
+
+  /**
+   * Gets the value of the aboveThreshold property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getAboveThreshold()
+  {
+    return aboveThreshold;
+  }
+
+  /**
+   * Sets the value of the aboveThreshold property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setAboveThreshold(Integer value)
+  {
+    this.aboveThreshold = value;
+  }
+
+  /**
+   * Gets the value of the annotation property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getAnnotation()
+  {
+    return annotation;
+  }
+
+  /**
+   * Sets the value of the annotation property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setAnnotation(String value)
+  {
+    this.annotation = value;
+  }
+
+  /**
+   * Gets the value of the minColour property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getMinColour()
+  {
+    return minColour;
+  }
+
+  /**
+   * Sets the value of the minColour property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setMinColour(Integer value)
+  {
+    this.minColour = value;
+  }
+
+  /**
+   * Gets the value of the maxColour property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getMaxColour()
+  {
+    return maxColour;
+  }
+
+  /**
+   * Sets the value of the maxColour property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setMaxColour(Integer value)
+  {
+    this.maxColour = value;
+  }
+
+  /**
+   * Gets the value of the colourScheme property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getColourScheme()
+  {
+    return colourScheme;
+  }
+
+  /**
+   * Sets the value of the colourScheme property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setColourScheme(String value)
+  {
+    this.colourScheme = value;
+  }
+
+  /**
+   * Gets the value of the threshold property.
+   * 
+   * @return possible object is {@link Float }
+   * 
+   */
+  public Float getThreshold()
+  {
+    return threshold;
+  }
+
+  /**
+   * Sets the value of the threshold property.
+   * 
+   * @param value
+   *          allowed object is {@link Float }
+   * 
+   */
+  public void setThreshold(Float value)
+  {
+    this.threshold = value;
+  }
+
+  /**
+   * Gets the value of the perSequence property.
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public Boolean isPerSequence()
+  {
+    return perSequence;
+  }
+
+  /**
+   * Sets the value of the perSequence property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   */
+  public void setPerSequence(Boolean value)
+  {
+    this.perSequence = value;
+  }
+
+  /**
+   * Gets the value of the predefinedColours property.
+   * 
+   * @return possible object is {@link Boolean }
+   * 
+   */
+  public Boolean isPredefinedColours()
+  {
+    return predefinedColours;
+  }
+
+  /**
+   * Sets the value of the predefinedColours property.
+   * 
+   * @param value
+   *          allowed object is {@link Boolean }
+   * 
+   */
+  public void setPredefinedColours(Boolean value)
+  {
+    this.predefinedColours = value;
+  }
 
 }
index ac12f03..b52b2a3 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -14,11 +13,16 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for anonymous complex type</p>.
+ * <p>
+ * Java class for anonymous complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType&gt;
@@ -46,158 +50,159 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "displayCharacter",
-    "description",
-    "secondaryStructure",
-    "value"
-})
+@XmlType(
+  name = "",
+  propOrder =
+  { "displayCharacter", "description", "secondaryStructure", "value" })
 @XmlRootElement(name = "annotationElement")
-public class AnnotationElement {
-
-    protected String displayCharacter;
-    protected String description;
-    protected String secondaryStructure;
-    protected Float value;
-    @XmlAttribute(name = "position", required = true)
-    protected int position;
-    @XmlAttribute(name = "colour")
-    protected Integer colour;
-
-    /**
-     * Gets the value of the displayCharacter property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDisplayCharacter() {
-        return displayCharacter;
-    }
-
-    /**
-     * Sets the value of the displayCharacter property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDisplayCharacter(String value) {
-        this.displayCharacter = value;
-    }
-
-    /**
-     * Gets the value of the description property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Sets the value of the description property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDescription(String value) {
-        this.description = value;
-    }
-
-    /**
-     * Gets the value of the secondaryStructure property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getSecondaryStructure() {
-        return secondaryStructure;
-    }
-
-    /**
-     * Sets the value of the secondaryStructure property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setSecondaryStructure(String value) {
-        this.secondaryStructure = value;
-    }
-
-    /**
-     * Gets the value of the value property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Float }
-     *     
-     */
-    public Float getValue() {
-        return value;
-    }
-
-    /**
-     * Sets the value of the value property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Float }
-     *     
-     */
-    public void setValue(Float value) {
-        this.value = value;
-    }
-
-    /**
-     * Gets the value of the position property.
-     * 
-     */
-    public int getPosition() {
-        return position;
-    }
-
-    /**
-     * Sets the value of the position property.
-     * 
-     */
-    public void setPosition(int value) {
-        this.position = value;
-    }
-
-    /**
-     * Gets the value of the colour property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getColour() {
-        return colour;
-    }
-
-    /**
-     * Sets the value of the colour property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setColour(Integer value) {
-        this.colour = value;
-    }
+public class AnnotationElement
+{
+
+  protected String displayCharacter;
+
+  protected String description;
+
+  protected String secondaryStructure;
+
+  protected Float value;
+
+  @XmlAttribute(name = "position", required = true)
+  protected int position;
+
+  @XmlAttribute(name = "colour")
+  protected Integer colour;
+
+  /**
+   * Gets the value of the displayCharacter property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDisplayCharacter()
+  {
+    return displayCharacter;
+  }
+
+  /**
+   * Sets the value of the displayCharacter property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setDisplayCharacter(String value)
+  {
+    this.displayCharacter = value;
+  }
+
+  /**
+   * Gets the value of the description property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDescription()
+  {
+    return description;
+  }
+
+  /**
+   * Sets the value of the description property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setDescription(String value)
+  {
+    this.description = value;
+  }
+
+  /**
+   * Gets the value of the secondaryStructure property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getSecondaryStructure()
+  {
+    return secondaryStructure;
+  }
+
+  /**
+   * Sets the value of the secondaryStructure property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setSecondaryStructure(String value)
+  {
+    this.secondaryStructure = value;
+  }
+
+  /**
+   * Gets the value of the value property.
+   * 
+   * @return possible object is {@link Float }
+   * 
+   */
+  public Float getValue()
+  {
+    return value;
+  }
+
+  /**
+   * Sets the value of the value property.
+   * 
+   * @param value
+   *          allowed object is {@link Float }
+   * 
+   */
+  public void setValue(Float value)
+  {
+    this.value = value;
+  }
+
+  /**
+   * Gets the value of the position property.
+   * 
+   */
+  public int getPosition()
+  {
+    return position;
+  }
+
+  /**
+   * Sets the value of the position property.
+   * 
+   */
+  public void setPosition(int value)
+  {
+    this.position = value;
+  }
+
+  /**
+   * Gets the value of the colour property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getColour()
+  {
+    return colour;
+  }
+
+  /**
+   * Sets the value of the colour property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setColour(Integer value)
+  {
+    this.colour = value;
+  }
 
 }
index 29cb972..4a59859 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -16,11 +15,16 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for DoubleMatrix complex type</p>.
+ * <p>
+ * Java class for DoubleMatrix complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="DoubleMatrix"&gt;
@@ -41,149 +45,154 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "DoubleMatrix", namespace = "www.jalview.org", propOrder = {
-    "row",
-    "d",
-    "e"
-})
-public class DoubleMatrix {
-
-    protected List<DoubleVector> row;
-    @XmlElement(name = "D")
-    protected DoubleVector d;
-    @XmlElement(name = "E")
-    protected DoubleVector e;
-    @XmlAttribute(name = "rows")
-    protected Integer rows;
-    @XmlAttribute(name = "columns")
-    protected Integer columns;
-
-    /**
-     * Gets the value of the row property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the row property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getRow().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link DoubleVector }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the row property.
-     */
-    public List<DoubleVector> getRow() {
-        if (row == null) {
-            row = new ArrayList<DoubleVector>();
-        }
-        return this.row;
-    }
-
-    /**
-     * Gets the value of the d property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link DoubleVector }
-     *     
-     */
-    public DoubleVector getD() {
-        return d;
-    }
-
-    /**
-     * Sets the value of the d property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link DoubleVector }
-     *     
-     */
-    public void setD(DoubleVector value) {
-        this.d = value;
-    }
-
-    /**
-     * Gets the value of the e property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link DoubleVector }
-     *     
-     */
-    public DoubleVector getE() {
-        return e;
-    }
-
-    /**
-     * Sets the value of the e property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link DoubleVector }
-     *     
-     */
-    public void setE(DoubleVector value) {
-        this.e = value;
-    }
-
-    /**
-     * Gets the value of the rows property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getRows() {
-        return rows;
-    }
-
-    /**
-     * Sets the value of the rows property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setRows(Integer value) {
-        this.rows = value;
-    }
-
-    /**
-     * Gets the value of the columns property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Integer }
-     *     
-     */
-    public Integer getColumns() {
-        return columns;
-    }
-
-    /**
-     * Sets the value of the columns property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Integer }
-     *     
-     */
-    public void setColumns(Integer value) {
-        this.columns = value;
+@XmlType(
+  name = "DoubleMatrix",
+  namespace = "www.jalview.org",
+  propOrder =
+  { "row", "d", "e" })
+public class DoubleMatrix
+{
+
+  protected List<DoubleVector> row;
+
+  @XmlElement(name = "D")
+  protected DoubleVector d;
+
+  @XmlElement(name = "E")
+  protected DoubleVector e;
+
+  @XmlAttribute(name = "rows")
+  protected Integer rows;
+
+  @XmlAttribute(name = "columns")
+  protected Integer columns;
+
+  /**
+   * Gets the value of the row property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the row property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getRow().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link DoubleVector }
+   * </p>
+   * 
+   * 
+   * @return The value of the row property.
+   */
+  public List<DoubleVector> getRow()
+  {
+    if (row == null)
+    {
+      row = new ArrayList<DoubleVector>();
     }
+    return this.row;
+  }
+
+  /**
+   * Gets the value of the d property.
+   * 
+   * @return possible object is {@link DoubleVector }
+   * 
+   */
+  public DoubleVector getD()
+  {
+    return d;
+  }
+
+  /**
+   * Sets the value of the d property.
+   * 
+   * @param value
+   *          allowed object is {@link DoubleVector }
+   * 
+   */
+  public void setD(DoubleVector value)
+  {
+    this.d = value;
+  }
+
+  /**
+   * Gets the value of the e property.
+   * 
+   * @return possible object is {@link DoubleVector }
+   * 
+   */
+  public DoubleVector getE()
+  {
+    return e;
+  }
+
+  /**
+   * Sets the value of the e property.
+   * 
+   * @param value
+   *          allowed object is {@link DoubleVector }
+   * 
+   */
+  public void setE(DoubleVector value)
+  {
+    this.e = value;
+  }
+
+  /**
+   * Gets the value of the rows property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getRows()
+  {
+    return rows;
+  }
+
+  /**
+   * Sets the value of the rows property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setRows(Integer value)
+  {
+    this.rows = value;
+  }
+
+  /**
+   * Gets the value of the columns property.
+   * 
+   * @return possible object is {@link Integer }
+   * 
+   */
+  public Integer getColumns()
+  {
+    return columns;
+  }
+
+  /**
+   * Sets the value of the columns property.
+   * 
+   * @param value
+   *          allowed object is {@link Integer }
+   * 
+   */
+  public void setColumns(Integer value)
+  {
+    this.columns = value;
+  }
 
 }
index 5d5e444..0479f56 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -15,11 +14,16 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for DoubleVector complex type</p>.
+ * <p>
+ * Java class for DoubleVector complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="DoubleVector"&gt;
@@ -36,44 +40,50 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "DoubleVector", namespace = "www.jalview.org", propOrder = {
-    "v"
-})
-public class DoubleVector {
+@XmlType(
+  name = "DoubleVector",
+  namespace = "www.jalview.org",
+  propOrder =
+  { "v" })
+public class DoubleVector
+{
 
-    @XmlElement(type = Double.class)
-    protected List<Double> v;
+  @XmlElement(type = Double.class)
+  protected List<Double> v;
 
-    /**
-     * Gets the value of the v property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the v property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getV().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Double }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the v property.
-     */
-    public List<Double> getV() {
-        if (v == null) {
-            v = new ArrayList<Double>();
-        }
-        return this.v;
+  /**
+   * Gets the value of the v property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the v property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getV().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link Double }
+   * </p>
+   * 
+   * 
+   * @return The value of the v property.
+   */
+  public List<Double> getV()
+  {
+    if (v == null)
+    {
+      v = new ArrayList<Double>();
     }
+    return this.v;
+  }
 
 }
index 7982504..9cbfc46 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -15,11 +14,16 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for feature complex type</p>.
+ * <p>
+ * Java class for feature complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="feature"&gt;
@@ -53,319 +57,337 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "feature", namespace = "www.jalview.org", propOrder = {
-    "otherData"
-})
-public class Feature {
-
-    protected List<Feature.OtherData> otherData;
-    @XmlAttribute(name = "begin", required = true)
-    protected int begin;
-    @XmlAttribute(name = "end", required = true)
-    protected int end;
-    @XmlAttribute(name = "type", required = true)
-    protected String type;
-    @XmlAttribute(name = "description")
-    protected String description;
-    @XmlAttribute(name = "status")
-    protected String status;
-    @XmlAttribute(name = "featureGroup")
-    protected String featureGroup;
-    @XmlAttribute(name = "score")
-    protected Float score;
-
-    /**
-     * Gets the value of the otherData property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the otherData property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getOtherData().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Feature.OtherData }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the otherData property.
-     */
-    public List<Feature.OtherData> getOtherData() {
-        if (otherData == null) {
-            otherData = new ArrayList<Feature.OtherData>();
-        }
-        return this.otherData;
+@XmlType(
+  name = "feature",
+  namespace = "www.jalview.org",
+  propOrder =
+  { "otherData" })
+public class Feature
+{
+
+  protected List<Feature.OtherData> otherData;
+
+  @XmlAttribute(name = "begin", required = true)
+  protected int begin;
+
+  @XmlAttribute(name = "end", required = true)
+  protected int end;
+
+  @XmlAttribute(name = "type", required = true)
+  protected String type;
+
+  @XmlAttribute(name = "description")
+  protected String description;
+
+  @XmlAttribute(name = "status")
+  protected String status;
+
+  @XmlAttribute(name = "featureGroup")
+  protected String featureGroup;
+
+  @XmlAttribute(name = "score")
+  protected Float score;
+
+  /**
+   * Gets the value of the otherData property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the otherData property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getOtherData().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link Feature.OtherData }
+   * </p>
+   * 
+   * 
+   * @return The value of the otherData property.
+   */
+  public List<Feature.OtherData> getOtherData()
+  {
+    if (otherData == null)
+    {
+      otherData = new ArrayList<Feature.OtherData>();
     }
+    return this.otherData;
+  }
+
+  /**
+   * Gets the value of the begin property.
+   * 
+   */
+  public int getBegin()
+  {
+    return begin;
+  }
+
+  /**
+   * Sets the value of the begin property.
+   * 
+   */
+  public void setBegin(int value)
+  {
+    this.begin = value;
+  }
+
+  /**
+   * Gets the value of the end property.
+   * 
+   */
+  public int getEnd()
+  {
+    return end;
+  }
+
+  /**
+   * Sets the value of the end property.
+   * 
+   */
+  public void setEnd(int value)
+  {
+    this.end = value;
+  }
+
+  /**
+   * Gets the value of the type property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getType()
+  {
+    return type;
+  }
+
+  /**
+   * Sets the value of the type property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setType(String value)
+  {
+    this.type = value;
+  }
+
+  /**
+   * Gets the value of the description property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDescription()
+  {
+    return description;
+  }
+
+  /**
+   * Sets the value of the description property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setDescription(String value)
+  {
+    this.description = value;
+  }
+
+  /**
+   * Gets the value of the status property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getStatus()
+  {
+    return status;
+  }
+
+  /**
+   * Sets the value of the status property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setStatus(String value)
+  {
+    this.status = value;
+  }
+
+  /**
+   * Gets the value of the featureGroup property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getFeatureGroup()
+  {
+    return featureGroup;
+  }
+
+  /**
+   * Sets the value of the featureGroup property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setFeatureGroup(String value)
+  {
+    this.featureGroup = value;
+  }
+
+  /**
+   * Gets the value of the score property.
+   * 
+   * @return possible object is {@link Float }
+   * 
+   */
+  public Float getScore()
+  {
+    return score;
+  }
+
+  /**
+   * Sets the value of the score property.
+   * 
+   * @param value
+   *          allowed object is {@link Float }
+   * 
+   */
+  public void setScore(Float value)
+  {
+    this.score = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;attribute name="key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="key2" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "")
+  public static class OtherData
+  {
+
+    @XmlAttribute(name = "key", required = true)
+    protected String key;
 
     /**
-     * Gets the value of the begin property.
+     * key2 may be used for a sub-attribute of key
      * 
      */
-    public int getBegin() {
-        return begin;
-    }
+    @XmlAttribute(name = "key2")
+    protected String key2;
 
-    /**
-     * Sets the value of the begin property.
-     * 
-     */
-    public void setBegin(int value) {
-        this.begin = value;
-    }
+    @XmlAttribute(name = "value", required = true)
+    protected String value;
 
     /**
-     * Gets the value of the end property.
+     * Gets the value of the key property.
      * 
-     */
-    public int getEnd() {
-        return end;
-    }
-
-    /**
-     * Sets the value of the end property.
+     * @return possible object is {@link String }
      * 
      */
-    public void setEnd(int value) {
-        this.end = value;
+    public String getKey()
+    {
+      return key;
     }
 
     /**
-     * Gets the value of the type property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getType() {
-        return type;
-    }
-
-    /**
-     * Sets the value of the type property.
+     * Sets the value of the key property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setType(String value) {
-        this.type = value;
-    }
-
-    /**
-     * Gets the value of the description property.
+     *          allowed object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getDescription() {
-        return description;
+    public void setKey(String value)
+    {
+      this.key = value;
     }
 
     /**
-     * Sets the value of the description property.
+     * key2 may be used for a sub-attribute of key
      * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDescription(String value) {
-        this.description = value;
-    }
-
-    /**
-     * Gets the value of the status property.
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getStatus() {
-        return status;
+    public String getKey2()
+    {
+      return key2;
     }
 
     /**
-     * Sets the value of the status property.
+     * Sets the value of the key2 property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setStatus(String value) {
-        this.status = value;
-    }
-
-    /**
-     * Gets the value of the featureGroup property.
+     *          allowed object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
+     * @see #getKey2()
      */
-    public String getFeatureGroup() {
-        return featureGroup;
+    public void setKey2(String value)
+    {
+      this.key2 = value;
     }
 
     /**
-     * Sets the value of the featureGroup property.
+     * Gets the value of the value property.
      * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setFeatureGroup(String value) {
-        this.featureGroup = value;
-    }
-
-    /**
-     * Gets the value of the score property.
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link Float }
-     *     
      */
-    public Float getScore() {
-        return score;
+    public String getValue()
+    {
+      return value;
     }
 
     /**
-     * Sets the value of the score property.
+     * Sets the value of the value property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link Float }
-     *     
-     */
-    public void setScore(Float value) {
-        this.score = value;
-    }
-
-
-    /**
-     * <p>Java class for anonymous complex type</p>.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;attribute name="key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="key2" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
-     * 
+     *          allowed object is {@link String }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class OtherData {
-
-        @XmlAttribute(name = "key", required = true)
-        protected String key;
-        /**
-         * key2 may be used for a sub-attribute of key
-         * 
-         */
-        @XmlAttribute(name = "key2")
-        protected String key2;
-        @XmlAttribute(name = "value", required = true)
-        protected String value;
-
-        /**
-         * Gets the value of the key property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getKey() {
-            return key;
-        }
-
-        /**
-         * Sets the value of the key property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setKey(String value) {
-            this.key = value;
-        }
-
-        /**
-         * key2 may be used for a sub-attribute of key
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getKey2() {
-            return key2;
-        }
-
-        /**
-         * Sets the value of the key2 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getKey2()
-         */
-        public void setKey2(String value) {
-            this.key2 = value;
-        }
-
-        /**
-         * Gets the value of the value property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getValue() {
-            return value;
-        }
-
-        /**
-         * Sets the value of the value property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setValue(String value) {
-            this.value = value;
-        }
-
+    public void setValue(String value)
+    {
+      this.value = value;
     }
 
+  }
+
 }
index 730cb71..6daebb3 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -16,11 +15,16 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for FeatureMatcher complex type</p>.
+ * <p>
+ * Java class for FeatureMatcher complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="FeatureMatcher"&gt;
@@ -40,130 +44,134 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "FeatureMatcher", namespace = "www.jalview.org/colours", propOrder = {
-    "attributeName",
-    "condition",
-    "value"
-})
-public class FeatureMatcher {
+@XmlType(
+  name = "FeatureMatcher",
+  namespace = "www.jalview.org/colours",
+  propOrder =
+  { "attributeName", "condition", "value" })
+public class FeatureMatcher
+{
 
-    /**
-     * name of feature attribute to filter on, or attribute and sub-attribute
-     * 
-     */
-    @XmlElement(namespace = "")
-    protected List<String> attributeName;
-    @XmlElement(namespace = "", required = true)
-    protected String condition;
-    @XmlElement(namespace = "", required = true)
-    protected String value;
-    @XmlAttribute(name = "by")
-    protected FilterBy by;
+  /**
+   * name of feature attribute to filter on, or attribute and sub-attribute
+   * 
+   */
+  @XmlElement(namespace = "")
+  protected List<String> attributeName;
 
-    /**
-     * name of feature attribute to filter on, or attribute and sub-attribute
-     * 
-     * Gets the value of the attributeName property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the attributeName property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getAttributeName().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link String }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the attributeName property.
-     */
-    public List<String> getAttributeName() {
-        if (attributeName == null) {
-            attributeName = new ArrayList<String>();
-        }
-        return this.attributeName;
-    }
+  @XmlElement(namespace = "", required = true)
+  protected String condition;
 
-    /**
-     * Gets the value of the condition property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getCondition() {
-        return condition;
-    }
+  @XmlElement(namespace = "", required = true)
+  protected String value;
 
-    /**
-     * Sets the value of the condition property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setCondition(String value) {
-        this.condition = value;
-    }
+  @XmlAttribute(name = "by")
+  protected FilterBy by;
 
-    /**
-     * Gets the value of the value property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getValue() {
-        return value;
+  /**
+   * name of feature attribute to filter on, or attribute and sub-attribute
+   * 
+   * Gets the value of the attributeName property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the attributeName property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getAttributeName().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link String }
+   * </p>
+   * 
+   * 
+   * @return The value of the attributeName property.
+   */
+  public List<String> getAttributeName()
+  {
+    if (attributeName == null)
+    {
+      attributeName = new ArrayList<String>();
     }
+    return this.attributeName;
+  }
 
-    /**
-     * Sets the value of the value property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setValue(String value) {
-        this.value = value;
-    }
+  /**
+   * Gets the value of the condition property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getCondition()
+  {
+    return condition;
+  }
 
-    /**
-     * Gets the value of the by property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link FilterBy }
-     *     
-     */
-    public FilterBy getBy() {
-        return by;
-    }
+  /**
+   * Sets the value of the condition property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setCondition(String value)
+  {
+    this.condition = value;
+  }
 
-    /**
-     * Sets the value of the by property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link FilterBy }
-     *     
-     */
-    public void setBy(FilterBy value) {
-        this.by = value;
-    }
+  /**
+   * Gets the value of the value property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getValue()
+  {
+    return value;
+  }
+
+  /**
+   * Sets the value of the value property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setValue(String value)
+  {
+    this.value = value;
+  }
+
+  /**
+   * Gets the value of the by property.
+   * 
+   * @return possible object is {@link FilterBy }
+   * 
+   */
+  public FilterBy getBy()
+  {
+    return by;
+  }
+
+  /**
+   * Sets the value of the by property.
+   * 
+   * @param value
+   *          allowed object is {@link FilterBy }
+   * 
+   */
+  public void setBy(FilterBy value)
+  {
+    this.by = value;
+  }
 
 }
index 9656aad..8f64753 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -16,13 +15,18 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
  * A feature match condition, which may be simple or compound
  * 
- * <p>Java class for FeatureMatcherSet complex type</p>.
+ * <p>
+ * Java class for FeatureMatcherSet complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="FeatureMatcherSet"&gt;
@@ -51,149 +55,161 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "FeatureMatcherSet", namespace = "www.jalview.org/colours", propOrder = {
-    "matchCondition",
-    "compoundMatcher"
-})
-public class FeatureMatcherSet {
-
-    @XmlElement(namespace = "")
-    protected FeatureMatcher matchCondition;
-    @XmlElement(namespace = "")
-    protected FeatureMatcherSet.CompoundMatcher compoundMatcher;
+@XmlType(
+  name = "FeatureMatcherSet",
+  namespace = "www.jalview.org/colours",
+  propOrder =
+  { "matchCondition", "compoundMatcher" })
+public class FeatureMatcherSet
+{
+
+  @XmlElement(namespace = "")
+  protected FeatureMatcher matchCondition;
+
+  @XmlElement(namespace = "")
+  protected FeatureMatcherSet.CompoundMatcher compoundMatcher;
+
+  /**
+   * Gets the value of the matchCondition property.
+   * 
+   * @return possible object is {@link FeatureMatcher }
+   * 
+   */
+  public FeatureMatcher getMatchCondition()
+  {
+    return matchCondition;
+  }
+
+  /**
+   * Sets the value of the matchCondition property.
+   * 
+   * @param value
+   *          allowed object is {@link FeatureMatcher }
+   * 
+   */
+  public void setMatchCondition(FeatureMatcher value)
+  {
+    this.matchCondition = value;
+  }
+
+  /**
+   * Gets the value of the compoundMatcher property.
+   * 
+   * @return possible object is {@link FeatureMatcherSet.CompoundMatcher }
+   * 
+   */
+  public FeatureMatcherSet.CompoundMatcher getCompoundMatcher()
+  {
+    return compoundMatcher;
+  }
+
+  /**
+   * Sets the value of the compoundMatcher property.
+   * 
+   * @param value
+   *          allowed object is {@link FeatureMatcherSet.CompoundMatcher }
+   * 
+   */
+  public void setCompoundMatcher(FeatureMatcherSet.CompoundMatcher value)
+  {
+    this.compoundMatcher = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" maxOccurs="2" minOccurs="2"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attribute name="and" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "matcherSet" })
+  public static class CompoundMatcher
+  {
+
+    @XmlElement(namespace = "", required = true)
+    protected List<FeatureMatcherSet> matcherSet;
 
     /**
-     * Gets the value of the matchCondition property.
+     * If true, matchers are AND-ed, if false they are OR-ed
      * 
-     * @return
-     *     possible object is
-     *     {@link FeatureMatcher }
-     *     
      */
-    public FeatureMatcher getMatchCondition() {
-        return matchCondition;
-    }
+    @XmlAttribute(name = "and", required = true)
+    protected boolean and;
 
     /**
-     * Sets the value of the matchCondition property.
+     * Gets the value of the matcherSet property.
      * 
-     * @param value
-     *     allowed object is
-     *     {@link FeatureMatcher }
-     *     
-     */
-    public void setMatchCondition(FeatureMatcher value) {
-        this.matchCondition = value;
-    }
-
-    /**
-     * Gets the value of the compoundMatcher property.
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the matcherSet property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getMatcherSet().add(newItem);
+     * </pre>
      * 
-     * @return
-     *     possible object is
-     *     {@link FeatureMatcherSet.CompoundMatcher }
-     *     
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link FeatureMatcherSet }
+     * </p>
+     * 
+     * 
+     * @return The value of the matcherSet property.
      */
-    public FeatureMatcherSet.CompoundMatcher getCompoundMatcher() {
-        return compoundMatcher;
+    public List<FeatureMatcherSet> getMatcherSet()
+    {
+      if (matcherSet == null)
+      {
+        matcherSet = new ArrayList<FeatureMatcherSet>();
+      }
+      return this.matcherSet;
     }
 
     /**
-     * Sets the value of the compoundMatcher property.
+     * If true, matchers are AND-ed, if false they are OR-ed
      * 
-     * @param value
-     *     allowed object is
-     *     {@link FeatureMatcherSet.CompoundMatcher }
-     *     
      */
-    public void setCompoundMatcher(FeatureMatcherSet.CompoundMatcher value) {
-        this.compoundMatcher = value;
+    public boolean isAnd()
+    {
+      return and;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" maxOccurs="2" minOccurs="2"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attribute name="and" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
-     * 
+     * Sets the value of the and property.
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "matcherSet"
-    })
-    public static class CompoundMatcher {
-
-        @XmlElement(namespace = "", required = true)
-        protected List<FeatureMatcherSet> matcherSet;
-        /**
-         * If true, matchers are AND-ed, if false they are OR-ed
-         * 
-         */
-        @XmlAttribute(name = "and", required = true)
-        protected boolean and;
-
-        /**
-         * Gets the value of the matcherSet property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the matcherSet property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getMatcherSet().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link FeatureMatcherSet }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the matcherSet property.
-         */
-        public List<FeatureMatcherSet> getMatcherSet() {
-            if (matcherSet == null) {
-                matcherSet = new ArrayList<FeatureMatcherSet>();
-            }
-            return this.matcherSet;
-        }
-
-        /**
-         * If true, matchers are AND-ed, if false they are OR-ed
-         * 
-         */
-        public boolean isAnd() {
-            return and;
-        }
-
-        /**
-         * Sets the value of the and property.
-         * 
-         */
-        public void setAnd(boolean value) {
-            this.and = value;
-        }
-
+    public void setAnd(boolean value)
+    {
+      this.and = value;
     }
 
+  }
+
 }
index 5704bf9..866a0c8 100644 (file)
@@ -5,20 +5,25 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlEnum;
 import javax.xml.bind.annotation.XmlEnumValue;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
  * Filter may apply to label, score or some feature attribute
  * 
- * <p>Java class for FilterBy</p>.
+ * <p>
+ * Java class for FilterBy
+ * </p>
+ * .
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
  * <pre>
  * &lt;simpleType name="FilterBy"&gt;
  *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
@@ -32,47 +37,50 @@ import javax.xml.bind.annotation.XmlType;
  */
 @XmlType(name = "FilterBy", namespace = "www.jalview.org/colours")
 @XmlEnum
-public enum FilterBy {
+public enum FilterBy
+{
 
-    @XmlEnumValue("byLabel")
-    BY_LABEL("byLabel"),
-    @XmlEnumValue("byScore")
-    BY_SCORE("byScore"),
-    @XmlEnumValue("byAttribute")
-    BY_ATTRIBUTE("byAttribute");
-    private final String value;
+  @XmlEnumValue("byLabel")
+  BY_LABEL("byLabel"), @XmlEnumValue("byScore")
+  BY_SCORE("byScore"), @XmlEnumValue("byAttribute")
+  BY_ATTRIBUTE("byAttribute");
 
-    FilterBy(String v) {
-        value = v;
-    }
+  private final String value;
 
-    /**
-     * Gets the value associated to the enum constant.
-     * 
-     * @return
-     *     The value linked to the enum.
-     */
-    public String value() {
-        return value;
-    }
+  FilterBy(String v)
+  {
+    value = v;
+  }
+
+  /**
+   * Gets the value associated to the enum constant.
+   * 
+   * @return The value linked to the enum.
+   */
+  public String value()
+  {
+    return value;
+  }
 
-    /**
-     * Gets the enum associated to the value passed as parameter.
-     * 
-     * @param v
-     *     The value to get the enum from.
-     * @return
-     *     The enum which corresponds to the value, if it exists.
-     * @throws IllegalArgumentException
-     *     If no value matches in the enum declaration.
-     */
-    public static FilterBy fromValue(String v) {
-        for (FilterBy c: FilterBy.values()) {
-            if (c.value.equals(v)) {
-                return c;
-            }
-        }
-        throw new IllegalArgumentException(v);
+  /**
+   * Gets the enum associated to the value passed as parameter.
+   * 
+   * @param v
+   *          The value to get the enum from.
+   * @return The enum which corresponds to the value, if it exists.
+   * @throws IllegalArgumentException
+   *           If no value matches in the enum declaration.
+   */
+  public static FilterBy fromValue(String v)
+  {
+    for (FilterBy c : FilterBy.values())
+    {
+      if (c.value.equals(v))
+      {
+        return c;
+      }
     }
+    throw new IllegalArgumentException(v);
+  }
 
 }
index 3f8185c..62d74a5 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -22,11 +21,16 @@ import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import javax.xml.datatype.XMLGregorianCalendar;
 
-
 /**
- * <p>Java class for JalviewModel complex type</p>.
+ * <p>
+ * Java class for JalviewModel complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="JalviewModel"&gt;
@@ -375,3401 +379,2741 @@ import javax.xml.datatype.XMLGregorianCalendar;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "JalviewModel", namespace = "www.jalview.org", propOrder = {
-    "creationDate",
-    "version",
-    "vamsasModel",
-    "jSeq",
-    "jGroup",
-    "viewport",
-    "userColours",
-    "tree",
-    "pcaViewer",
-    "featureSettings"
-})
-public class JalviewModel {
-
-    @XmlElement(required = true)
-    @XmlSchemaType(name = "dateTime")
-    protected XMLGregorianCalendar creationDate;
-    @XmlElement(required = true)
-    protected String version;
-    @XmlElement(required = true)
-    protected VAMSAS vamsasModel;
-    @XmlElement(name = "JSeq")
-    protected List<JalviewModel.JSeq> jSeq;
-    @XmlElement(name = "JGroup")
-    protected List<JalviewModel.JGroup> jGroup;
-    @XmlElement(name = "Viewport")
-    protected List<JalviewModel.Viewport> viewport;
-    @XmlElement(name = "UserColours")
-    protected List<JalviewModel.UserColours> userColours;
-    protected List<JalviewModel.Tree> tree;
-    @XmlElement(name = "PcaViewer")
-    protected List<JalviewModel.PcaViewer> pcaViewer;
-    @XmlElement(name = "FeatureSettings")
-    protected JalviewModel.FeatureSettings featureSettings;
-
-    /**
-     * Gets the value of the creationDate property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link XMLGregorianCalendar }
-     *     
-     */
-    public XMLGregorianCalendar getCreationDate() {
-        return creationDate;
-    }
-
-    /**
-     * Sets the value of the creationDate property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link XMLGregorianCalendar }
-     *     
-     */
-    public void setCreationDate(XMLGregorianCalendar value) {
-        this.creationDate = value;
+@XmlType(
+  name = "JalviewModel",
+  namespace = "www.jalview.org",
+  propOrder =
+  { "creationDate", "version", "vamsasModel", "jSeq", "jGroup", "viewport",
+      "userColours", "tree", "pcaViewer", "featureSettings" })
+public class JalviewModel
+{
+
+  @XmlElement(required = true)
+  @XmlSchemaType(name = "dateTime")
+  protected XMLGregorianCalendar creationDate;
+
+  @XmlElement(required = true)
+  protected String version;
+
+  @XmlElement(required = true)
+  protected VAMSAS vamsasModel;
+
+  @XmlElement(name = "JSeq")
+  protected List<JalviewModel.JSeq> jSeq;
+
+  @XmlElement(name = "JGroup")
+  protected List<JalviewModel.JGroup> jGroup;
+
+  @XmlElement(name = "Viewport")
+  protected List<JalviewModel.Viewport> viewport;
+
+  @XmlElement(name = "UserColours")
+  protected List<JalviewModel.UserColours> userColours;
+
+  protected List<JalviewModel.Tree> tree;
+
+  @XmlElement(name = "PcaViewer")
+  protected List<JalviewModel.PcaViewer> pcaViewer;
+
+  @XmlElement(name = "FeatureSettings")
+  protected JalviewModel.FeatureSettings featureSettings;
+
+  /**
+   * Gets the value of the creationDate property.
+   * 
+   * @return possible object is {@link XMLGregorianCalendar }
+   * 
+   */
+  public XMLGregorianCalendar getCreationDate()
+  {
+    return creationDate;
+  }
+
+  /**
+   * Sets the value of the creationDate property.
+   * 
+   * @param value
+   *          allowed object is {@link XMLGregorianCalendar }
+   * 
+   */
+  public void setCreationDate(XMLGregorianCalendar value)
+  {
+    this.creationDate = value;
+  }
+
+  /**
+   * Gets the value of the version property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getVersion()
+  {
+    return version;
+  }
+
+  /**
+   * Sets the value of the version property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setVersion(String value)
+  {
+    this.version = value;
+  }
+
+  /**
+   * Gets the value of the vamsasModel property.
+   * 
+   * @return possible object is {@link VAMSAS }
+   * 
+   */
+  public VAMSAS getVamsasModel()
+  {
+    return vamsasModel;
+  }
+
+  /**
+   * Sets the value of the vamsasModel property.
+   * 
+   * @param value
+   *          allowed object is {@link VAMSAS }
+   * 
+   */
+  public void setVamsasModel(VAMSAS value)
+  {
+    this.vamsasModel = value;
+  }
+
+  /**
+   * Gets the value of the jSeq property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the jSeq property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getJSeq().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewModel.JSeq }
+   * </p>
+   * 
+   * 
+   * @return The value of the jSeq property.
+   */
+  public List<JalviewModel.JSeq> getJSeq()
+  {
+    if (jSeq == null)
+    {
+      jSeq = new ArrayList<JalviewModel.JSeq>();
     }
-
-    /**
-     * Gets the value of the version property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getVersion() {
-        return version;
+    return this.jSeq;
+  }
+
+  /**
+   * Gets the value of the jGroup property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the jGroup property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getJGroup().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewModel.JGroup }
+   * </p>
+   * 
+   * 
+   * @return The value of the jGroup property.
+   */
+  public List<JalviewModel.JGroup> getJGroup()
+  {
+    if (jGroup == null)
+    {
+      jGroup = new ArrayList<JalviewModel.JGroup>();
     }
-
-    /**
-     * Sets the value of the version property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setVersion(String value) {
-        this.version = value;
+    return this.jGroup;
+  }
+
+  /**
+   * Gets the value of the viewport property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the viewport property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getViewport().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewModel.Viewport }
+   * </p>
+   * 
+   * 
+   * @return The value of the viewport property.
+   */
+  public List<JalviewModel.Viewport> getViewport()
+  {
+    if (viewport == null)
+    {
+      viewport = new ArrayList<JalviewModel.Viewport>();
     }
-
-    /**
-     * Gets the value of the vamsasModel property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link VAMSAS }
-     *     
-     */
-    public VAMSAS getVamsasModel() {
-        return vamsasModel;
+    return this.viewport;
+  }
+
+  /**
+   * Gets the value of the userColours property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the userColours property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getUserColours().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewModel.UserColours }
+   * </p>
+   * 
+   * 
+   * @return The value of the userColours property.
+   */
+  public List<JalviewModel.UserColours> getUserColours()
+  {
+    if (userColours == null)
+    {
+      userColours = new ArrayList<JalviewModel.UserColours>();
     }
-
-    /**
-     * Sets the value of the vamsasModel property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link VAMSAS }
-     *     
-     */
-    public void setVamsasModel(VAMSAS value) {
-        this.vamsasModel = value;
+    return this.userColours;
+  }
+
+  /**
+   * Gets the value of the tree property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the tree property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getTree().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewModel.Tree }
+   * </p>
+   * 
+   * 
+   * @return The value of the tree property.
+   */
+  public List<JalviewModel.Tree> getTree()
+  {
+    if (tree == null)
+    {
+      tree = new ArrayList<JalviewModel.Tree>();
+    }
+    return this.tree;
+  }
+
+  /**
+   * Gets the value of the pcaViewer property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the pcaViewer property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getPcaViewer().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewModel.PcaViewer }
+   * </p>
+   * 
+   * 
+   * @return The value of the pcaViewer property.
+   */
+  public List<JalviewModel.PcaViewer> getPcaViewer()
+  {
+    if (pcaViewer == null)
+    {
+      pcaViewer = new ArrayList<JalviewModel.PcaViewer>();
     }
+    return this.pcaViewer;
+  }
+
+  /**
+   * Gets the value of the featureSettings property.
+   * 
+   * @return possible object is {@link JalviewModel.FeatureSettings }
+   * 
+   */
+  public JalviewModel.FeatureSettings getFeatureSettings()
+  {
+    return featureSettings;
+  }
+
+  /**
+   * Sets the value of the featureSettings property.
+   * 
+   * @param value
+   *          allowed object is {@link JalviewModel.FeatureSettings }
+   * 
+   */
+  public void setFeatureSettings(JalviewModel.FeatureSettings value)
+  {
+    this.featureSettings = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="setting" maxOccurs="unbounded" minOccurs="0"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;sequence&gt;
+   *                   &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+   *                   &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/&gt;
+   *                 &lt;/sequence&gt;
+   *                 &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                 &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *                 &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *                 &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+   *                 &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *                 &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *                 &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *                 &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *                 &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="group" maxOccurs="unbounded" minOccurs="0"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                 &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *       &lt;/sequence&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "setting", "group" })
+  public static class FeatureSettings
+  {
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected List<JalviewModel.FeatureSettings.Setting> setting;
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected List<JalviewModel.FeatureSettings.Group> group;
 
     /**
-     * Gets the value of the jSeq property.
+     * Gets the value of the setting property.
      * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the jSeq property.</p>
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the setting property.
+     * </p>
      * 
      * <p>
      * For example, to add a new item, do as follows:
      * </p>
+     * 
      * <pre>
-     * getJSeq().add(newItem);
+     * getSetting().add(newItem);
      * </pre>
      * 
      * 
      * <p>
      * Objects of the following type(s) are allowed in the list
-     * {@link JalviewModel.JSeq }
+     * {@link JalviewModel.FeatureSettings.Setting }
      * </p>
      * 
      * 
-     * @return
-     *     The value of the jSeq property.
+     * @return The value of the setting property.
      */
-    public List<JalviewModel.JSeq> getJSeq() {
-        if (jSeq == null) {
-            jSeq = new ArrayList<JalviewModel.JSeq>();
-        }
-        return this.jSeq;
+    public List<JalviewModel.FeatureSettings.Setting> getSetting()
+    {
+      if (setting == null)
+      {
+        setting = new ArrayList<JalviewModel.FeatureSettings.Setting>();
+      }
+      return this.setting;
     }
 
     /**
-     * Gets the value of the jGroup property.
+     * Gets the value of the group property.
      * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the jGroup property.</p>
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the group property.
+     * </p>
      * 
      * <p>
      * For example, to add a new item, do as follows:
      * </p>
+     * 
      * <pre>
-     * getJGroup().add(newItem);
+     * getGroup().add(newItem);
      * </pre>
      * 
      * 
      * <p>
      * Objects of the following type(s) are allowed in the list
-     * {@link JalviewModel.JGroup }
+     * {@link JalviewModel.FeatureSettings.Group }
      * </p>
      * 
      * 
-     * @return
-     *     The value of the jGroup property.
+     * @return The value of the group property.
      */
-    public List<JalviewModel.JGroup> getJGroup() {
-        if (jGroup == null) {
-            jGroup = new ArrayList<JalviewModel.JGroup>();
-        }
-        return this.jGroup;
+    public List<JalviewModel.FeatureSettings.Group> getGroup()
+    {
+      if (group == null)
+      {
+        group = new ArrayList<JalviewModel.FeatureSettings.Group>();
+      }
+      return this.group;
     }
 
     /**
-     * Gets the value of the viewport property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the viewport property.</p>
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
      * 
      * <p>
-     * For example, to add a new item, do as follows:
+     * The following schema fragment specifies the expected content contained
+     * within this class.
      * </p>
+     * 
      * <pre>
-     * getViewport().add(newItem);
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *       &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *     &lt;/restriction&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
      * </pre>
      * 
      * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class Group
+    {
+
+      @XmlAttribute(name = "name", required = true)
+      protected String name;
+
+      @XmlAttribute(name = "display", required = true)
+      protected boolean display;
+
+      /**
+       * Gets the value of the name property.
+       * 
+       * @return possible object is {@link String }
+       * 
+       */
+      public String getName()
+      {
+        return name;
+      }
+
+      /**
+       * Sets the value of the name property.
+       * 
+       * @param value
+       *          allowed object is {@link String }
+       * 
+       */
+      public void setName(String value)
+      {
+        this.name = value;
+      }
+
+      /**
+       * Gets the value of the display property.
+       * 
+       */
+      public boolean isDisplay()
+      {
+        return display;
+      }
+
+      /**
+       * Sets the value of the display property.
+       * 
+       */
+      public void setDisplay(boolean value)
+      {
+        this.display = value;
+      }
+
+    }
+
+    /**
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
+     * 
      * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link JalviewModel.Viewport }
+     * The following schema fragment specifies the expected content contained
+     * within this class.
      * </p>
      * 
+     * <pre>
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+     *       &lt;sequence&gt;
+     *         &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+     *         &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/&gt;
+     *       &lt;/sequence&gt;
+     *       &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *       &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *       &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+     *       &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+     *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+     *       &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+     *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+     *       &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *       &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *     &lt;/restriction&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
+     * </pre>
+     * 
      * 
-     * @return
-     *     The value of the viewport property.
      */
-    public List<JalviewModel.Viewport> getViewport() {
-        if (viewport == null) {
-            viewport = new ArrayList<JalviewModel.Viewport>();
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = { "attributeName", "matcherSet" })
+    public static class Setting
+    {
+
+      /**
+       * name of feature attribute to colour by, or attribute and sub-attribute
+       * 
+       */
+      @XmlElement(namespace = "www.jalview.org")
+      protected List<String> attributeName;
+
+      /**
+       * optional filter(s) applied to the feature type
+       * 
+       */
+      @XmlElement(namespace = "www.jalview.org")
+      protected FeatureMatcherSet matcherSet;
+
+      @XmlAttribute(name = "type", required = true)
+      protected String type;
+
+      @XmlAttribute(name = "colour", required = true)
+      protected int colour;
+
+      @XmlAttribute(name = "display", required = true)
+      protected boolean display;
+
+      @XmlAttribute(name = "order")
+      protected Float order;
+
+      /**
+       * Optional minimum colour for graduated feature colour
+       * 
+       */
+      @XmlAttribute(name = "mincolour")
+      protected Integer mincolour;
+
+      @XmlAttribute(name = "noValueColour")
+      protected NoValueColour noValueColour;
+
+      /**
+       * threshold value for graduated feature colour
+       * 
+       */
+      @XmlAttribute(name = "threshold")
+      protected Float threshold;
+
+      /**
+       * threshold type for graduated feature colour
+       * 
+       */
+      @XmlAttribute(name = "threshstate")
+      protected Integer threshstate;
+
+      @XmlAttribute(name = "max")
+      protected Float max;
+
+      @XmlAttribute(name = "min")
+      protected Float min;
+
+      @XmlAttribute(name = "colourByLabel")
+      protected Boolean colourByLabel;
+
+      @XmlAttribute(name = "autoScale")
+      protected Boolean autoScale;
+
+      /**
+       * name of feature attribute to colour by, or attribute and sub-attribute
+       * 
+       * Gets the value of the attributeName property.
+       * 
+       * <p>
+       * This accessor method returns a reference to the live list, not a
+       * snapshot. Therefore any modification you make to the returned list will
+       * be present inside the JAXB object. This is why there is not a
+       * <CODE>set</CODE> method for the attributeName property.
+       * </p>
+       * 
+       * <p>
+       * For example, to add a new item, do as follows:
+       * </p>
+       * 
+       * <pre>
+       * getAttributeName().add(newItem);
+       * </pre>
+       * 
+       * 
+       * <p>
+       * Objects of the following type(s) are allowed in the list {@link String
+       * }
+       * </p>
+       * 
+       * 
+       * @return The value of the attributeName property.
+       */
+      public List<String> getAttributeName()
+      {
+        if (attributeName == null)
+        {
+          attributeName = new ArrayList<String>();
+        }
+        return this.attributeName;
+      }
+
+      /**
+       * optional filter(s) applied to the feature type
+       * 
+       * @return possible object is {@link FeatureMatcherSet }
+       * 
+       */
+      public FeatureMatcherSet getMatcherSet()
+      {
+        return matcherSet;
+      }
+
+      /**
+       * Sets the value of the matcherSet property.
+       * 
+       * @param value
+       *          allowed object is {@link FeatureMatcherSet }
+       * 
+       * @see #getMatcherSet()
+       */
+      public void setMatcherSet(FeatureMatcherSet value)
+      {
+        this.matcherSet = value;
+      }
+
+      /**
+       * Gets the value of the type property.
+       * 
+       * @return possible object is {@link String }
+       * 
+       */
+      public String getType()
+      {
+        return type;
+      }
+
+      /**
+       * Sets the value of the type property.
+       * 
+       * @param value
+       *          allowed object is {@link String }
+       * 
+       */
+      public void setType(String value)
+      {
+        this.type = value;
+      }
+
+      /**
+       * Gets the value of the colour property.
+       * 
+       */
+      public int getColour()
+      {
+        return colour;
+      }
+
+      /**
+       * Sets the value of the colour property.
+       * 
+       */
+      public void setColour(int value)
+      {
+        this.colour = value;
+      }
+
+      /**
+       * Gets the value of the display property.
+       * 
+       */
+      public boolean isDisplay()
+      {
+        return display;
+      }
+
+      /**
+       * Sets the value of the display property.
+       * 
+       */
+      public void setDisplay(boolean value)
+      {
+        this.display = value;
+      }
+
+      /**
+       * Gets the value of the order property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getOrder()
+      {
+        return order;
+      }
+
+      /**
+       * Sets the value of the order property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setOrder(Float value)
+      {
+        this.order = value;
+      }
+
+      /**
+       * Optional minimum colour for graduated feature colour
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getMincolour()
+      {
+        return mincolour;
+      }
+
+      /**
+       * Sets the value of the mincolour property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       * @see #getMincolour()
+       */
+      public void setMincolour(Integer value)
+      {
+        this.mincolour = value;
+      }
+
+      /**
+       * Gets the value of the noValueColour property.
+       * 
+       * @return possible object is {@link NoValueColour }
+       * 
+       */
+      public NoValueColour getNoValueColour()
+      {
+        if (noValueColour == null)
+        {
+          return NoValueColour.MIN;
         }
-        return this.viewport;
+        else
+        {
+          return noValueColour;
+        }
+      }
+
+      /**
+       * Sets the value of the noValueColour property.
+       * 
+       * @param value
+       *          allowed object is {@link NoValueColour }
+       * 
+       */
+      public void setNoValueColour(NoValueColour value)
+      {
+        this.noValueColour = value;
+      }
+
+      /**
+       * threshold value for graduated feature colour
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getThreshold()
+      {
+        return threshold;
+      }
+
+      /**
+       * Sets the value of the threshold property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       * @see #getThreshold()
+       */
+      public void setThreshold(Float value)
+      {
+        this.threshold = value;
+      }
+
+      /**
+       * threshold type for graduated feature colour
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getThreshstate()
+      {
+        return threshstate;
+      }
+
+      /**
+       * Sets the value of the threshstate property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       * @see #getThreshstate()
+       */
+      public void setThreshstate(Integer value)
+      {
+        this.threshstate = value;
+      }
+
+      /**
+       * Gets the value of the max property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getMax()
+      {
+        return max;
+      }
+
+      /**
+       * Sets the value of the max property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setMax(Float value)
+      {
+        this.max = value;
+      }
+
+      /**
+       * Gets the value of the min property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getMin()
+      {
+        return min;
+      }
+
+      /**
+       * Sets the value of the min property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setMin(Float value)
+      {
+        this.min = value;
+      }
+
+      /**
+       * Gets the value of the colourByLabel property.
+       * 
+       * @return possible object is {@link Boolean }
+       * 
+       */
+      public Boolean isColourByLabel()
+      {
+        return colourByLabel;
+      }
+
+      /**
+       * Sets the value of the colourByLabel property.
+       * 
+       * @param value
+       *          allowed object is {@link Boolean }
+       * 
+       */
+      public void setColourByLabel(Boolean value)
+      {
+        this.colourByLabel = value;
+      }
+
+      /**
+       * Gets the value of the autoScale property.
+       * 
+       * @return possible object is {@link Boolean }
+       * 
+       */
+      public Boolean isAutoScale()
+      {
+        return autoScale;
+      }
+
+      /**
+       * Sets the value of the autoScale property.
+       * 
+       * @param value
+       *          allowed object is {@link Boolean }
+       * 
+       */
+      public void setAutoScale(Boolean value)
+      {
+        this.autoScale = value;
+      }
+
     }
 
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/&gt;
+   *         &lt;element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
+   *         &lt;element name="SecStrProvider" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attGroup ref="{www.jalview.org}conservationShading"/&gt;
+   *       &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(
+    name = "",
+    propOrder =
+    { "seq", "annotationColours", "secStrProvider" })
+  public static class JGroup
+  {
+
+    @XmlElement(namespace = "www.jalview.org", required = true)
+    protected List<String> seq;
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected AnnotationColourScheme annotationColours;
+
+    @XmlElement(name = "SecStrProvider", namespace = "www.jalview.org")
+    protected List<String> secStrProvider;
+
+    @XmlAttribute(name = "start")
+    protected Integer start;
+
+    @XmlAttribute(name = "end")
+    protected Integer end;
+
+    @XmlAttribute(name = "name")
+    protected String name;
+
+    @XmlAttribute(name = "colour")
+    protected String colour;
+
+    @XmlAttribute(name = "outlineColour")
+    protected Integer outlineColour;
+
+    @XmlAttribute(name = "displayBoxes")
+    protected Boolean displayBoxes;
+
+    @XmlAttribute(name = "displayText")
+    protected Boolean displayText;
+
+    @XmlAttribute(name = "colourText")
+    protected Boolean colourText;
+
+    @XmlAttribute(name = "textCol1")
+    protected Integer textCol1;
+
+    @XmlAttribute(name = "textCol2")
+    protected Integer textCol2;
+
+    @XmlAttribute(name = "textColThreshold")
+    protected Integer textColThreshold;
+
+    @XmlAttribute(name = "showUnconserved")
+    protected Boolean showUnconserved;
+
     /**
-     * Gets the value of the userColours property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the userColours property.</p>
+     * Optional sequence group ID (only needs to be unique for this alignment)
      * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getUserColours().add(newItem);
-     * </pre>
+     */
+    @XmlAttribute(name = "id")
+    protected String id;
+
+    @XmlAttribute(name = "conservationSelected")
+    protected Boolean conservationSelected;
+
+    /**
+     * Conservation shading increment
      * 
+     */
+    @XmlAttribute(name = "consThreshold")
+    protected Integer consThreshold;
+
+    @XmlAttribute(name = "pidSelected")
+    protected Boolean pidSelected;
+
+    /**
+     * Percent Identity Threshold
      * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link JalviewModel.UserColours }
-     * </p>
+     */
+    @XmlAttribute(name = "pidThreshold")
+    protected Integer pidThreshold;
+
+    /**
+     * Secondary structure consensus shading - since 2.11.4
      * 
+     */
+    @XmlAttribute(name = "secstrSelected")
+    protected Boolean secstrSelected;
+
+    /**
+     * Secondary structure consensus increment
      * 
-     * @return
-     *     The value of the userColours property.
      */
-    public List<JalviewModel.UserColours> getUserColours() {
-        if (userColours == null) {
-            userColours = new ArrayList<JalviewModel.UserColours>();
-        }
-        return this.userColours;
-    }
+    @XmlAttribute(name = "secstrThreshold")
+    protected Integer secstrThreshold;
+
+    @XmlAttribute(name = "showConsensusHistogram")
+    protected Boolean showConsensusHistogram;
+
+    @XmlAttribute(name = "showSequenceLogo")
+    protected Boolean showSequenceLogo;
+
+    @XmlAttribute(name = "normaliseSequenceLogo")
+    protected Boolean normaliseSequenceLogo;
+
+    @XmlAttribute(name = "ignoreGapsinConsensus")
+    protected Boolean ignoreGapsinConsensus;
 
     /**
-     * Gets the value of the tree property.
+     * Gets the value of the seq property.
      * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the tree property.</p>
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the seq property.
+     * </p>
      * 
      * <p>
      * For example, to add a new item, do as follows:
      * </p>
+     * 
      * <pre>
-     * getTree().add(newItem);
+     * getSeq().add(newItem);
      * </pre>
      * 
      * 
      * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link JalviewModel.Tree }
+     * Objects of the following type(s) are allowed in the list {@link String }
      * </p>
      * 
      * 
-     * @return
-     *     The value of the tree property.
+     * @return The value of the seq property.
      */
-    public List<JalviewModel.Tree> getTree() {
-        if (tree == null) {
-            tree = new ArrayList<JalviewModel.Tree>();
-        }
-        return this.tree;
+    public List<String> getSeq()
+    {
+      if (seq == null)
+      {
+        seq = new ArrayList<String>();
+      }
+      return this.seq;
+    }
+
+    /**
+     * Gets the value of the annotationColours property.
+     * 
+     * @return possible object is {@link AnnotationColourScheme }
+     * 
+     */
+    public AnnotationColourScheme getAnnotationColours()
+    {
+      return annotationColours;
+    }
+
+    /**
+     * Sets the value of the annotationColours property.
+     * 
+     * @param value
+     *          allowed object is {@link AnnotationColourScheme }
+     * 
+     */
+    public void setAnnotationColours(AnnotationColourScheme value)
+    {
+      this.annotationColours = value;
     }
 
     /**
-     * Gets the value of the pcaViewer property.
+     * Gets the value of the secStrProvider property.
      * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the pcaViewer property.</p>
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the secStrProvider property.
+     * </p>
      * 
      * <p>
      * For example, to add a new item, do as follows:
      * </p>
+     * 
      * <pre>
-     * getPcaViewer().add(newItem);
+     * getSecStrProvider().add(newItem);
      * </pre>
      * 
      * 
      * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link JalviewModel.PcaViewer }
+     * Objects of the following type(s) are allowed in the list {@link String }
      * </p>
      * 
      * 
-     * @return
-     *     The value of the pcaViewer property.
+     * @return The value of the secStrProvider property.
      */
-    public List<JalviewModel.PcaViewer> getPcaViewer() {
-        if (pcaViewer == null) {
-            pcaViewer = new ArrayList<JalviewModel.PcaViewer>();
-        }
-        return this.pcaViewer;
+    public List<String> getSecStrProvider()
+    {
+      if (secStrProvider == null)
+      {
+        secStrProvider = new ArrayList<String>();
+      }
+      return this.secStrProvider;
     }
 
     /**
-     * Gets the value of the featureSettings property.
+     * Gets the value of the start property.
+     * 
+     * @return possible object is {@link Integer }
      * 
-     * @return
-     *     possible object is
-     *     {@link JalviewModel.FeatureSettings }
-     *     
      */
-    public JalviewModel.FeatureSettings getFeatureSettings() {
-        return featureSettings;
+    public Integer getStart()
+    {
+      return start;
     }
 
     /**
-     * Sets the value of the featureSettings property.
+     * Sets the value of the start property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link JalviewModel.FeatureSettings }
-     *     
+     *          allowed object is {@link Integer }
+     * 
      */
-    public void setFeatureSettings(JalviewModel.FeatureSettings value) {
-        this.featureSettings = value;
+    public void setStart(Integer value)
+    {
+      this.start = value;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * Gets the value of the end property.
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * @return possible object is {@link Integer }
      * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="setting" maxOccurs="unbounded" minOccurs="0"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;sequence&gt;
-     *                   &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
-     *                   &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/&gt;
-     *                 &lt;/sequence&gt;
-     *                 &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                 &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *                 &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *                 &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
-     *                 &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *                 &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *                 &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *                 &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *                 &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="group" maxOccurs="unbounded" minOccurs="0"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                 &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *       &lt;/sequence&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     */
+    public Integer getEnd()
+    {
+      return end;
+    }
+
+    /**
+     * Sets the value of the end property.
      * 
+     * @param value
+     *          allowed object is {@link Integer }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "setting",
-        "group"
-    })
-    public static class FeatureSettings {
-
-        @XmlElement(namespace = "www.jalview.org")
-        protected List<JalviewModel.FeatureSettings.Setting> setting;
-        @XmlElement(namespace = "www.jalview.org")
-        protected List<JalviewModel.FeatureSettings.Group> group;
-
-        /**
-         * Gets the value of the setting property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the setting property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getSetting().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.FeatureSettings.Setting }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the setting property.
-         */
-        public List<JalviewModel.FeatureSettings.Setting> getSetting() {
-            if (setting == null) {
-                setting = new ArrayList<JalviewModel.FeatureSettings.Setting>();
-            }
-            return this.setting;
-        }
+    public void setEnd(Integer value)
+    {
+      this.end = value;
+    }
 
-        /**
-         * Gets the value of the group property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the group property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getGroup().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.FeatureSettings.Group }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the group property.
-         */
-        public List<JalviewModel.FeatureSettings.Group> getGroup() {
-            if (group == null) {
-                group = new ArrayList<JalviewModel.FeatureSettings.Group>();
-            }
-            return this.group;
-        }
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getName()
+    {
+      return name;
+    }
 
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setName(String value)
+    {
+      this.name = value;
+    }
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *       &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class Group {
-
-            @XmlAttribute(name = "name", required = true)
-            protected String name;
-            @XmlAttribute(name = "display", required = true)
-            protected boolean display;
-
-            /**
-             * Gets the value of the name property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link String }
-             *     
-             */
-            public String getName() {
-                return name;
-            }
-
-            /**
-             * Sets the value of the name property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link String }
-             *     
-             */
-            public void setName(String value) {
-                this.name = value;
-            }
-
-            /**
-             * Gets the value of the display property.
-             * 
-             */
-            public boolean isDisplay() {
-                return display;
-            }
-
-            /**
-             * Sets the value of the display property.
-             * 
-             */
-            public void setDisplay(boolean value) {
-                this.display = value;
-            }
+    /**
+     * Gets the value of the colour property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getColour()
+    {
+      return colour;
+    }
 
-        }
+    /**
+     * Sets the value of the colour property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setColour(String value)
+    {
+      this.colour = value;
+    }
 
+    /**
+     * Gets the value of the outlineColour property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getOutlineColour()
+    {
+      return outlineColour;
+    }
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;sequence&gt;
-         *         &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
-         *         &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/&gt;
-         *       &lt;/sequence&gt;
-         *       &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *       &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *       &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-         *       &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
-         *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-         *       &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-         *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-         *       &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *       &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "", propOrder = {
-            "attributeName",
-            "matcherSet"
-        })
-        public static class Setting {
-
-            /**
-             * name of feature attribute to colour by, or attribute and sub-attribute
-             * 
-             */
-            @XmlElement(namespace = "www.jalview.org")
-            protected List<String> attributeName;
-            /**
-             * optional filter(s) applied to the feature type
-             * 
-             */
-            @XmlElement(namespace = "www.jalview.org")
-            protected FeatureMatcherSet matcherSet;
-            @XmlAttribute(name = "type", required = true)
-            protected String type;
-            @XmlAttribute(name = "colour", required = true)
-            protected int colour;
-            @XmlAttribute(name = "display", required = true)
-            protected boolean display;
-            @XmlAttribute(name = "order")
-            protected Float order;
-            /**
-             * Optional minimum colour
-             *                                                                                                 for graduated
-             *                                                                                                 feature
-             *                                                                                                 colour
-             * 
-             */
-            @XmlAttribute(name = "mincolour")
-            protected Integer mincolour;
-            @XmlAttribute(name = "noValueColour")
-            protected NoValueColour noValueColour;
-            /**
-             * threshold value for
-             *                                                                                                 graduated feature colour
-             * 
-             */
-            @XmlAttribute(name = "threshold")
-            protected Float threshold;
-            /**
-             * threshold type for
-             *                                                                                                 graduated feature colour
-             * 
-             */
-            @XmlAttribute(name = "threshstate")
-            protected Integer threshstate;
-            @XmlAttribute(name = "max")
-            protected Float max;
-            @XmlAttribute(name = "min")
-            protected Float min;
-            @XmlAttribute(name = "colourByLabel")
-            protected Boolean colourByLabel;
-            @XmlAttribute(name = "autoScale")
-            protected Boolean autoScale;
-
-            /**
-             * name of feature attribute to colour by, or attribute and sub-attribute
-             * 
-             * Gets the value of the attributeName property.
-             * 
-             * <p>This accessor method returns a reference to the live list,
-             * not a snapshot. Therefore any modification you make to the
-             * returned list will be present inside the JAXB object.
-             * This is why there is not a <CODE>set</CODE> method for the attributeName property.</p>
-             * 
-             * <p>
-             * For example, to add a new item, do as follows:
-             * </p>
-             * <pre>
-             * getAttributeName().add(newItem);
-             * </pre>
-             * 
-             * 
-             * <p>
-             * Objects of the following type(s) are allowed in the list
-             * {@link String }
-             * </p>
-             * 
-             * 
-             * @return
-             *     The value of the attributeName property.
-             */
-            public List<String> getAttributeName() {
-                if (attributeName == null) {
-                    attributeName = new ArrayList<String>();
-                }
-                return this.attributeName;
-            }
-
-            /**
-             * optional filter(s) applied to the feature type
-             * 
-             * @return
-             *     possible object is
-             *     {@link FeatureMatcherSet }
-             *     
-             */
-            public FeatureMatcherSet getMatcherSet() {
-                return matcherSet;
-            }
-
-            /**
-             * Sets the value of the matcherSet property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link FeatureMatcherSet }
-             *     
-             * @see #getMatcherSet()
-             */
-            public void setMatcherSet(FeatureMatcherSet value) {
-                this.matcherSet = value;
-            }
-
-            /**
-             * Gets the value of the type property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link String }
-             *     
-             */
-            public String getType() {
-                return type;
-            }
-
-            /**
-             * Sets the value of the type property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link String }
-             *     
-             */
-            public void setType(String value) {
-                this.type = value;
-            }
-
-            /**
-             * Gets the value of the colour property.
-             * 
-             */
-            public int getColour() {
-                return colour;
-            }
-
-            /**
-             * Sets the value of the colour property.
-             * 
-             */
-            public void setColour(int value) {
-                this.colour = value;
-            }
-
-            /**
-             * Gets the value of the display property.
-             * 
-             */
-            public boolean isDisplay() {
-                return display;
-            }
-
-            /**
-             * Sets the value of the display property.
-             * 
-             */
-            public void setDisplay(boolean value) {
-                this.display = value;
-            }
-
-            /**
-             * Gets the value of the order property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getOrder() {
-                return order;
-            }
-
-            /**
-             * Sets the value of the order property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setOrder(Float value) {
-                this.order = value;
-            }
-
-            /**
-             * Optional minimum colour
-             *                                                                                                 for graduated
-             *                                                                                                 feature
-             *                                                                                                 colour
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getMincolour() {
-                return mincolour;
-            }
-
-            /**
-             * Sets the value of the mincolour property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             * @see #getMincolour()
-             */
-            public void setMincolour(Integer value) {
-                this.mincolour = value;
-            }
-
-            /**
-             * Gets the value of the noValueColour property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link NoValueColour }
-             *     
-             */
-            public NoValueColour getNoValueColour() {
-                if (noValueColour == null) {
-                    return NoValueColour.MIN;
-                } else {
-                    return noValueColour;
-                }
-            }
-
-            /**
-             * Sets the value of the noValueColour property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link NoValueColour }
-             *     
-             */
-            public void setNoValueColour(NoValueColour value) {
-                this.noValueColour = value;
-            }
-
-            /**
-             * threshold value for
-             *                                                                                                 graduated feature colour
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getThreshold() {
-                return threshold;
-            }
-
-            /**
-             * Sets the value of the threshold property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             * @see #getThreshold()
-             */
-            public void setThreshold(Float value) {
-                this.threshold = value;
-            }
-
-            /**
-             * threshold type for
-             *                                                                                                 graduated feature colour
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getThreshstate() {
-                return threshstate;
-            }
-
-            /**
-             * Sets the value of the threshstate property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             * @see #getThreshstate()
-             */
-            public void setThreshstate(Integer value) {
-                this.threshstate = value;
-            }
-
-            /**
-             * Gets the value of the max property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getMax() {
-                return max;
-            }
-
-            /**
-             * Sets the value of the max property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setMax(Float value) {
-                this.max = value;
-            }
-
-            /**
-             * Gets the value of the min property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getMin() {
-                return min;
-            }
-
-            /**
-             * Sets the value of the min property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setMin(Float value) {
-                this.min = value;
-            }
-
-            /**
-             * Gets the value of the colourByLabel property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Boolean }
-             *     
-             */
-            public Boolean isColourByLabel() {
-                return colourByLabel;
-            }
-
-            /**
-             * Sets the value of the colourByLabel property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Boolean }
-             *     
-             */
-            public void setColourByLabel(Boolean value) {
-                this.colourByLabel = value;
-            }
-
-            /**
-             * Gets the value of the autoScale property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Boolean }
-             *     
-             */
-            public Boolean isAutoScale() {
-                return autoScale;
-            }
-
-            /**
-             * Sets the value of the autoScale property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Boolean }
-             *     
-             */
-            public void setAutoScale(Boolean value) {
-                this.autoScale = value;
-            }
+    /**
+     * Sets the value of the outlineColour property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setOutlineColour(Integer value)
+    {
+      this.outlineColour = value;
+    }
 
-        }
+    /**
+     * Gets the value of the displayBoxes property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isDisplayBoxes()
+    {
+      return displayBoxes;
+    }
 
+    /**
+     * Sets the value of the displayBoxes property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setDisplayBoxes(Boolean value)
+    {
+      this.displayBoxes = value;
     }
 
+    /**
+     * Gets the value of the displayText property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isDisplayText()
+    {
+      return displayText;
+    }
 
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * Sets the value of the displayText property.
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * @param value
+     *          allowed object is {@link Boolean }
      * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/&gt;
-     *         &lt;element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
-     *         &lt;element name="SecStrProvider" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attGroup ref="{www.jalview.org}conservationShading"/&gt;
-     *       &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     */
+    public void setDisplayText(Boolean value)
+    {
+      this.displayText = value;
+    }
+
+    /**
+     * Gets the value of the colourText property.
      * 
+     * @return possible object is {@link Boolean }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "seq",
-        "annotationColours",
-        "secStrProvider"
-    })
-    public static class JGroup {
-
-        @XmlElement(namespace = "www.jalview.org", required = true)
-        protected List<String> seq;
-        @XmlElement(namespace = "www.jalview.org")
-        protected AnnotationColourScheme annotationColours;
-        @XmlElement(name = "SecStrProvider", namespace = "www.jalview.org")
-        protected List<String> secStrProvider;
-        @XmlAttribute(name = "start")
-        protected Integer start;
-        @XmlAttribute(name = "end")
-        protected Integer end;
-        @XmlAttribute(name = "name")
-        protected String name;
-        @XmlAttribute(name = "colour")
-        protected String colour;
-        @XmlAttribute(name = "outlineColour")
-        protected Integer outlineColour;
-        @XmlAttribute(name = "displayBoxes")
-        protected Boolean displayBoxes;
-        @XmlAttribute(name = "displayText")
-        protected Boolean displayText;
-        @XmlAttribute(name = "colourText")
-        protected Boolean colourText;
-        @XmlAttribute(name = "textCol1")
-        protected Integer textCol1;
-        @XmlAttribute(name = "textCol2")
-        protected Integer textCol2;
-        @XmlAttribute(name = "textColThreshold")
-        protected Integer textColThreshold;
-        @XmlAttribute(name = "showUnconserved")
-        protected Boolean showUnconserved;
-        /**
-         * Optional sequence group ID (only
-         *                                                                     needs to be
-         *                                                                     unique for this
-         *                                                                     alignment)
-         * 
-         */
-        @XmlAttribute(name = "id")
-        protected String id;
-        @XmlAttribute(name = "conservationSelected")
-        protected Boolean conservationSelected;
-        /**
-         * Conservation shading increment
-         * 
-         */
-        @XmlAttribute(name = "consThreshold")
-        protected Integer consThreshold;
-        @XmlAttribute(name = "pidSelected")
-        protected Boolean pidSelected;
-        /**
-         * Percent Identity Threshold
-         * 
-         */
-        @XmlAttribute(name = "pidThreshold")
-        protected Integer pidThreshold;
-        /**
-         * Secondary structure consensus shading - since 2.11.4
-         * 
-         */
-        @XmlAttribute(name = "secstrSelected")
-        protected Boolean secstrSelected;
-        /**
-         * Secondary structure consensus increment
-         * 
-         */
-        @XmlAttribute(name = "secstrThreshold")
-        protected Integer secstrThreshold;
-        @XmlAttribute(name = "showConsensusHistogram")
-        protected Boolean showConsensusHistogram;
-        @XmlAttribute(name = "showSequenceLogo")
-        protected Boolean showSequenceLogo;
-        @XmlAttribute(name = "normaliseSequenceLogo")
-        protected Boolean normaliseSequenceLogo;
-        @XmlAttribute(name = "ignoreGapsinConsensus")
-        protected Boolean ignoreGapsinConsensus;
+    public Boolean isColourText()
+    {
+      return colourText;
+    }
 
-        /**
-         * Gets the value of the seq property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the seq property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getSeq().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link String }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the seq property.
-         */
-        public List<String> getSeq() {
-            if (seq == null) {
-                seq = new ArrayList<String>();
-            }
-            return this.seq;
-        }
+    /**
+     * Sets the value of the colourText property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setColourText(Boolean value)
+    {
+      this.colourText = value;
+    }
 
-        /**
-         * Gets the value of the annotationColours property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link AnnotationColourScheme }
-         *     
-         */
-        public AnnotationColourScheme getAnnotationColours() {
-            return annotationColours;
-        }
+    /**
+     * Gets the value of the textCol1 property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getTextCol1()
+    {
+      return textCol1;
+    }
 
-        /**
-         * Sets the value of the annotationColours property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link AnnotationColourScheme }
-         *     
-         */
-        public void setAnnotationColours(AnnotationColourScheme value) {
-            this.annotationColours = value;
-        }
+    /**
+     * Sets the value of the textCol1 property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setTextCol1(Integer value)
+    {
+      this.textCol1 = value;
+    }
 
-        /**
-         * Gets the value of the secStrProvider property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the secStrProvider property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getSecStrProvider().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link String }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the secStrProvider property.
-         */
-        public List<String> getSecStrProvider() {
-            if (secStrProvider == null) {
-                secStrProvider = new ArrayList<String>();
-            }
-            return this.secStrProvider;
-        }
+    /**
+     * Gets the value of the textCol2 property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getTextCol2()
+    {
+      return textCol2;
+    }
 
-        /**
-         * Gets the value of the start property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getStart() {
-            return start;
-        }
+    /**
+     * Sets the value of the textCol2 property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setTextCol2(Integer value)
+    {
+      this.textCol2 = value;
+    }
 
-        /**
-         * Sets the value of the start property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setStart(Integer value) {
-            this.start = value;
-        }
+    /**
+     * Gets the value of the textColThreshold property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getTextColThreshold()
+    {
+      return textColThreshold;
+    }
 
-        /**
-         * Gets the value of the end property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getEnd() {
-            return end;
-        }
+    /**
+     * Sets the value of the textColThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setTextColThreshold(Integer value)
+    {
+      this.textColThreshold = value;
+    }
 
-        /**
-         * Sets the value of the end property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setEnd(Integer value) {
-            this.end = value;
-        }
+    /**
+     * Gets the value of the showUnconserved property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowUnconserved()
+    {
+      return showUnconserved;
+    }
 
-        /**
-         * Gets the value of the name property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getName() {
-            return name;
-        }
+    /**
+     * Sets the value of the showUnconserved property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowUnconserved(Boolean value)
+    {
+      this.showUnconserved = value;
+    }
 
-        /**
-         * Sets the value of the name property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setName(String value) {
-            this.name = value;
-        }
+    /**
+     * Optional sequence group ID (only needs to be unique for this alignment)
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getId()
+    {
+      return id;
+    }
 
-        /**
-         * Gets the value of the colour property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getColour() {
-            return colour;
-        }
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     * @see #getId()
+     */
+    public void setId(String value)
+    {
+      this.id = value;
+    }
 
-        /**
-         * Sets the value of the colour property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setColour(String value) {
-            this.colour = value;
-        }
+    /**
+     * Gets the value of the conservationSelected property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isConservationSelected()
+    {
+      return conservationSelected;
+    }
 
-        /**
-         * Gets the value of the outlineColour property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getOutlineColour() {
-            return outlineColour;
-        }
+    /**
+     * Sets the value of the conservationSelected property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setConservationSelected(Boolean value)
+    {
+      this.conservationSelected = value;
+    }
 
-        /**
-         * Sets the value of the outlineColour property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setOutlineColour(Integer value) {
-            this.outlineColour = value;
-        }
+    /**
+     * Conservation shading increment
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getConsThreshold()
+    {
+      return consThreshold;
+    }
 
-        /**
-         * Gets the value of the displayBoxes property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isDisplayBoxes() {
-            return displayBoxes;
-        }
+    /**
+     * Sets the value of the consThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     * @see #getConsThreshold()
+     */
+    public void setConsThreshold(Integer value)
+    {
+      this.consThreshold = value;
+    }
 
-        /**
-         * Sets the value of the displayBoxes property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setDisplayBoxes(Boolean value) {
-            this.displayBoxes = value;
-        }
+    /**
+     * Gets the value of the pidSelected property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isPidSelected()
+    {
+      return pidSelected;
+    }
 
-        /**
-         * Gets the value of the displayText property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isDisplayText() {
-            return displayText;
-        }
+    /**
+     * Sets the value of the pidSelected property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setPidSelected(Boolean value)
+    {
+      this.pidSelected = value;
+    }
 
-        /**
-         * Sets the value of the displayText property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setDisplayText(Boolean value) {
-            this.displayText = value;
-        }
+    /**
+     * Percent Identity Threshold
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getPidThreshold()
+    {
+      return pidThreshold;
+    }
 
-        /**
-         * Gets the value of the colourText property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isColourText() {
-            return colourText;
-        }
+    /**
+     * Sets the value of the pidThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     * @see #getPidThreshold()
+     */
+    public void setPidThreshold(Integer value)
+    {
+      this.pidThreshold = value;
+    }
 
-        /**
-         * Sets the value of the colourText property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setColourText(Boolean value) {
-            this.colourText = value;
-        }
+    /**
+     * Secondary structure consensus shading - since 2.11.4
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isSecstrSelected()
+    {
+      if (secstrSelected == null)
+      {
+        return false;
+      }
+      else
+      {
+        return secstrSelected;
+      }
+    }
 
-        /**
-         * Gets the value of the textCol1 property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getTextCol1() {
-            return textCol1;
-        }
+    /**
+     * Sets the value of the secstrSelected property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     * @see #isSecstrSelected()
+     */
+    public void setSecstrSelected(Boolean value)
+    {
+      this.secstrSelected = value;
+    }
 
-        /**
-         * Sets the value of the textCol1 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setTextCol1(Integer value) {
-            this.textCol1 = value;
-        }
+    /**
+     * Secondary structure consensus increment
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getSecstrThreshold()
+    {
+      return secstrThreshold;
+    }
 
-        /**
-         * Gets the value of the textCol2 property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getTextCol2() {
-            return textCol2;
-        }
+    /**
+     * Sets the value of the secstrThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     * @see #getSecstrThreshold()
+     */
+    public void setSecstrThreshold(Integer value)
+    {
+      this.secstrThreshold = value;
+    }
 
-        /**
-         * Sets the value of the textCol2 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setTextCol2(Integer value) {
-            this.textCol2 = value;
-        }
-
-        /**
-         * Gets the value of the textColThreshold property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getTextColThreshold() {
-            return textColThreshold;
-        }
-
-        /**
-         * Sets the value of the textColThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setTextColThreshold(Integer value) {
-            this.textColThreshold = value;
-        }
-
-        /**
-         * Gets the value of the showUnconserved property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowUnconserved() {
-            return showUnconserved;
-        }
-
-        /**
-         * Sets the value of the showUnconserved property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowUnconserved(Boolean value) {
-            this.showUnconserved = value;
-        }
-
-        /**
-         * Optional sequence group ID (only
-         *                                                                     needs to be
-         *                                                                     unique for this
-         *                                                                     alignment)
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getId() {
-            return id;
-        }
-
-        /**
-         * Sets the value of the id property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getId()
-         */
-        public void setId(String value) {
-            this.id = value;
-        }
-
-        /**
-         * Gets the value of the conservationSelected property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isConservationSelected() {
-            return conservationSelected;
-        }
-
-        /**
-         * Sets the value of the conservationSelected property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setConservationSelected(Boolean value) {
-            this.conservationSelected = value;
-        }
-
-        /**
-         * Conservation shading increment
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getConsThreshold() {
-            return consThreshold;
-        }
-
-        /**
-         * Sets the value of the consThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         * @see #getConsThreshold()
-         */
-        public void setConsThreshold(Integer value) {
-            this.consThreshold = value;
-        }
-
-        /**
-         * Gets the value of the pidSelected property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isPidSelected() {
-            return pidSelected;
-        }
+    /**
+     * Gets the value of the showConsensusHistogram property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowConsensusHistogram()
+    {
+      if (showConsensusHistogram == null)
+      {
+        return true;
+      }
+      else
+      {
+        return showConsensusHistogram;
+      }
+    }
 
-        /**
-         * Sets the value of the pidSelected property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setPidSelected(Boolean value) {
-            this.pidSelected = value;
-        }
+    /**
+     * Sets the value of the showConsensusHistogram property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowConsensusHistogram(Boolean value)
+    {
+      this.showConsensusHistogram = value;
+    }
 
-        /**
-         * Percent Identity Threshold
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getPidThreshold() {
-            return pidThreshold;
-        }
+    /**
+     * Gets the value of the showSequenceLogo property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowSequenceLogo()
+    {
+      if (showSequenceLogo == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showSequenceLogo;
+      }
+    }
 
-        /**
-         * Sets the value of the pidThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         * @see #getPidThreshold()
-         */
-        public void setPidThreshold(Integer value) {
-            this.pidThreshold = value;
-        }
+    /**
+     * Sets the value of the showSequenceLogo property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowSequenceLogo(Boolean value)
+    {
+      this.showSequenceLogo = value;
+    }
 
-        /**
-         * Secondary structure consensus shading - since 2.11.4
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isSecstrSelected() {
-            if (secstrSelected == null) {
-                return false;
-            } else {
-                return secstrSelected;
-            }
-        }
+    /**
+     * Gets the value of the normaliseSequenceLogo property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isNormaliseSequenceLogo()
+    {
+      if (normaliseSequenceLogo == null)
+      {
+        return false;
+      }
+      else
+      {
+        return normaliseSequenceLogo;
+      }
+    }
 
-        /**
-         * Sets the value of the secstrSelected property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isSecstrSelected()
-         */
-        public void setSecstrSelected(Boolean value) {
-            this.secstrSelected = value;
-        }
+    /**
+     * Sets the value of the normaliseSequenceLogo property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setNormaliseSequenceLogo(Boolean value)
+    {
+      this.normaliseSequenceLogo = value;
+    }
 
-        /**
-         * Secondary structure consensus increment
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getSecstrThreshold() {
-            return secstrThreshold;
-        }
+    /**
+     * Gets the value of the ignoreGapsinConsensus property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isIgnoreGapsinConsensus()
+    {
+      if (ignoreGapsinConsensus == null)
+      {
+        return true;
+      }
+      else
+      {
+        return ignoreGapsinConsensus;
+      }
+    }
 
-        /**
-         * Sets the value of the secstrThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         * @see #getSecstrThreshold()
-         */
-        public void setSecstrThreshold(Integer value) {
-            this.secstrThreshold = value;
-        }
+    /**
+     * Sets the value of the ignoreGapsinConsensus property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setIgnoreGapsinConsensus(Boolean value)
+    {
+      this.ignoreGapsinConsensus = value;
+    }
 
-        /**
-         * Gets the value of the showConsensusHistogram property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowConsensusHistogram() {
-            if (showConsensusHistogram == null) {
-                return true;
-            } else {
-                return showConsensusHistogram;
-            }
-        }
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/&gt;
+   *         &lt;element name="pdbids" maxOccurs="unbounded" minOccurs="0"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;extension base="{www.jalview.org}pdbentry"&gt;
+   *                 &lt;sequence&gt;
+   *                   &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0"&gt;
+   *                     &lt;complexType&gt;
+   *                       &lt;simpleContent&gt;
+   *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
+   *                           &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+   *                           &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *                           &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                           &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+   *                           &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *                           &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+   *                           &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                         &lt;/extension&gt;
+   *                       &lt;/simpleContent&gt;
+   *                     &lt;/complexType&gt;
+   *                   &lt;/element&gt;
+   *                 &lt;/sequence&gt;
+   *               &lt;/extension&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/&gt;
+   *         &lt;element name="rnaViewer" maxOccurs="unbounded" minOccurs="0"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;sequence&gt;
+   *                   &lt;element name="secondaryStructure" maxOccurs="unbounded"&gt;
+   *                     &lt;complexType&gt;
+   *                       &lt;complexContent&gt;
+   *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                           &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                           &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                           &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *                           &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                         &lt;/restriction&gt;
+   *                       &lt;/complexContent&gt;
+   *                     &lt;/complexType&gt;
+   *                   &lt;/element&gt;
+   *                 &lt;/sequence&gt;
+   *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+   *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                 &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                 &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(
+    name = "",
+    propOrder =
+    { "features", "pdbids", "hiddenSequences", "rnaViewer" })
+  public static class JSeq
+  {
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected List<Feature> features;
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected List<JalviewModel.JSeq.Pdbids> pdbids;
+
+    @XmlElement(namespace = "www.jalview.org", type = Integer.class)
+    protected List<Integer> hiddenSequences;
 
-        /**
-         * Sets the value of the showConsensusHistogram property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowConsensusHistogram(Boolean value) {
-            this.showConsensusHistogram = value;
-        }
+    /**
+     * Reference to a viewer showing RNA structure for this sequence. Schema
+     * supports one viewer showing multiple annotations for multiple sequences,
+     * though currently only one annotation for one sequence (gapped or trimmed)
+     * is used
+     * 
+     */
+    @XmlElement(namespace = "www.jalview.org")
+    protected List<JalviewModel.JSeq.RnaViewer> rnaViewer;
 
-        /**
-         * Gets the value of the showSequenceLogo property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowSequenceLogo() {
-            if (showSequenceLogo == null) {
-                return false;
-            } else {
-                return showSequenceLogo;
-            }
-        }
+    @XmlAttribute(name = "colour")
+    protected Integer colour;
 
-        /**
-         * Sets the value of the showSequenceLogo property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowSequenceLogo(Boolean value) {
-            this.showSequenceLogo = value;
-        }
+    @XmlAttribute(name = "start", required = true)
+    protected int start;
 
-        /**
-         * Gets the value of the normaliseSequenceLogo property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isNormaliseSequenceLogo() {
-            if (normaliseSequenceLogo == null) {
-                return false;
-            } else {
-                return normaliseSequenceLogo;
-            }
-        }
+    @XmlAttribute(name = "end", required = true)
+    protected int end;
 
-        /**
-         * Sets the value of the normaliseSequenceLogo property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setNormaliseSequenceLogo(Boolean value) {
-            this.normaliseSequenceLogo = value;
-        }
+    @XmlAttribute(name = "id", required = true)
+    protected String id;
 
-        /**
-         * Gets the value of the ignoreGapsinConsensus property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isIgnoreGapsinConsensus() {
-            if (ignoreGapsinConsensus == null) {
-                return true;
-            } else {
-                return ignoreGapsinConsensus;
-            }
-        }
+    @XmlAttribute(name = "hidden")
+    protected Boolean hidden;
 
-        /**
-         * Sets the value of the ignoreGapsinConsensus property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setIgnoreGapsinConsensus(Boolean value) {
-            this.ignoreGapsinConsensus = value;
-        }
+    @XmlAttribute(name = "viewreference")
+    protected Boolean viewreference;
 
+    /**
+     * Gets the value of the features property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the features property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getFeatures().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list {@link Feature }
+     * </p>
+     * 
+     * 
+     * @return The value of the features property.
+     */
+    public List<Feature> getFeatures()
+    {
+      if (features == null)
+      {
+        features = new ArrayList<Feature>();
+      }
+      return this.features;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * Gets the value of the pdbids property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the pdbids property.
+     * </p>
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
      * 
      * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/&gt;
-     *         &lt;element name="pdbids" maxOccurs="unbounded" minOccurs="0"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;extension base="{www.jalview.org}pdbentry"&gt;
-     *                 &lt;sequence&gt;
-     *                   &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0"&gt;
-     *                     &lt;complexType&gt;
-     *                       &lt;simpleContent&gt;
-     *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
-     *                           &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-     *                           &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *                           &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                           &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-     *                           &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *                           &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-     *                           &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                         &lt;/extension&gt;
-     *                       &lt;/simpleContent&gt;
-     *                     &lt;/complexType&gt;
-     *                   &lt;/element&gt;
-     *                 &lt;/sequence&gt;
-     *               &lt;/extension&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/&gt;
-     *         &lt;element name="rnaViewer" maxOccurs="unbounded" minOccurs="0"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;sequence&gt;
-     *                   &lt;element name="secondaryStructure" maxOccurs="unbounded"&gt;
-     *                     &lt;complexType&gt;
-     *                       &lt;complexContent&gt;
-     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                           &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                           &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                           &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *                           &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                         &lt;/restriction&gt;
-     *                       &lt;/complexContent&gt;
-     *                     &lt;/complexType&gt;
-     *                   &lt;/element&gt;
-     *                 &lt;/sequence&gt;
-     *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-     *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                 &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                 &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
+     * getPdbids().add(newItem);
      * </pre>
      * 
      * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JalviewModel.JSeq.Pdbids }
+     * </p>
+     * 
+     * 
+     * @return The value of the pdbids property.
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "features",
-        "pdbids",
-        "hiddenSequences",
-        "rnaViewer"
-    })
-    public static class JSeq {
-
-        @XmlElement(namespace = "www.jalview.org")
-        protected List<Feature> features;
-        @XmlElement(namespace = "www.jalview.org")
-        protected List<JalviewModel.JSeq.Pdbids> pdbids;
-        @XmlElement(namespace = "www.jalview.org", type = Integer.class)
-        protected List<Integer> hiddenSequences;
-        /**
-         * Reference to a viewer showing
-         *                                                                             RNA structure for this sequence.
-         *                                                                             Schema supports one viewer
-         *                                                                             showing multiple annotations for
-         *                                                                             multiple sequences, though
-         *                                                                             currently only one annotation
-         *                                                                             for one sequence (gapped or
-         *                                                                             trimmed) is used
-         * 
-         */
-        @XmlElement(namespace = "www.jalview.org")
-        protected List<JalviewModel.JSeq.RnaViewer> rnaViewer;
-        @XmlAttribute(name = "colour")
-        protected Integer colour;
-        @XmlAttribute(name = "start", required = true)
-        protected int start;
-        @XmlAttribute(name = "end", required = true)
-        protected int end;
-        @XmlAttribute(name = "id", required = true)
-        protected String id;
-        @XmlAttribute(name = "hidden")
-        protected Boolean hidden;
-        @XmlAttribute(name = "viewreference")
-        protected Boolean viewreference;
-
-        /**
-         * Gets the value of the features property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the features property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getFeatures().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link Feature }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the features property.
-         */
-        public List<Feature> getFeatures() {
-            if (features == null) {
-                features = new ArrayList<Feature>();
-            }
-            return this.features;
-        }
+    public List<JalviewModel.JSeq.Pdbids> getPdbids()
+    {
+      if (pdbids == null)
+      {
+        pdbids = new ArrayList<JalviewModel.JSeq.Pdbids>();
+      }
+      return this.pdbids;
+    }
 
-        /**
-         * Gets the value of the pdbids property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the pdbids property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getPdbids().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.JSeq.Pdbids }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the pdbids property.
-         */
-        public List<JalviewModel.JSeq.Pdbids> getPdbids() {
-            if (pdbids == null) {
-                pdbids = new ArrayList<JalviewModel.JSeq.Pdbids>();
-            }
-            return this.pdbids;
+    /**
+     * Gets the value of the hiddenSequences property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the hiddenSequences property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getHiddenSequences().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list {@link Integer }
+     * </p>
+     * 
+     * 
+     * @return The value of the hiddenSequences property.
+     */
+    public List<Integer> getHiddenSequences()
+    {
+      if (hiddenSequences == null)
+      {
+        hiddenSequences = new ArrayList<Integer>();
+      }
+      return this.hiddenSequences;
+    }
+
+    /**
+     * Reference to a viewer showing RNA structure for this sequence. Schema
+     * supports one viewer showing multiple annotations for multiple sequences,
+     * though currently only one annotation for one sequence (gapped or trimmed)
+     * is used
+     * 
+     * Gets the value of the rnaViewer property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the rnaViewer property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getRnaViewer().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JalviewModel.JSeq.RnaViewer }
+     * </p>
+     * 
+     * 
+     * @return The value of the rnaViewer property.
+     */
+    public List<JalviewModel.JSeq.RnaViewer> getRnaViewer()
+    {
+      if (rnaViewer == null)
+      {
+        rnaViewer = new ArrayList<JalviewModel.JSeq.RnaViewer>();
+      }
+      return this.rnaViewer;
+    }
+
+    /**
+     * Gets the value of the colour property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getColour()
+    {
+      return colour;
+    }
+
+    /**
+     * Sets the value of the colour property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setColour(Integer value)
+    {
+      this.colour = value;
+    }
+
+    /**
+     * Gets the value of the start property.
+     * 
+     */
+    public int getStart()
+    {
+      return start;
+    }
+
+    /**
+     * Sets the value of the start property.
+     * 
+     */
+    public void setStart(int value)
+    {
+      this.start = value;
+    }
+
+    /**
+     * Gets the value of the end property.
+     * 
+     */
+    public int getEnd()
+    {
+      return end;
+    }
+
+    /**
+     * Sets the value of the end property.
+     * 
+     */
+    public void setEnd(int value)
+    {
+      this.end = value;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getId()
+    {
+      return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setId(String value)
+    {
+      this.id = value;
+    }
+
+    /**
+     * Gets the value of the hidden property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isHidden()
+    {
+      return hidden;
+    }
+
+    /**
+     * Sets the value of the hidden property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setHidden(Boolean value)
+    {
+      this.hidden = value;
+    }
+
+    /**
+     * Gets the value of the viewreference property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isViewreference()
+    {
+      return viewreference;
+    }
+
+    /**
+     * Sets the value of the viewreference property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setViewreference(Boolean value)
+    {
+      this.viewreference = value;
+    }
+
+    /**
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
+     * 
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
+     * 
+     * <pre>
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;extension base="{www.jalview.org}pdbentry"&gt;
+     *       &lt;sequence&gt;
+     *         &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0"&gt;
+     *           &lt;complexType&gt;
+     *             &lt;simpleContent&gt;
+     *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
+     *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+     *                 &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *                 &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *                 &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+     *                 &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+     *                 &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+     *                 &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *               &lt;/extension&gt;
+     *             &lt;/simpleContent&gt;
+     *           &lt;/complexType&gt;
+     *         &lt;/element&gt;
+     *       &lt;/sequence&gt;
+     *     &lt;/extension&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = { "structureState" })
+    public static class Pdbids extends Pdbentry
+    {
+
+      @XmlElement(namespace = "www.jalview.org")
+      protected List<JalviewModel.JSeq.Pdbids.StructureState> structureState;
+
+      /**
+       * Gets the value of the structureState property.
+       * 
+       * <p>
+       * This accessor method returns a reference to the live list, not a
+       * snapshot. Therefore any modification you make to the returned list will
+       * be present inside the JAXB object. This is why there is not a
+       * <CODE>set</CODE> method for the structureState property.
+       * </p>
+       * 
+       * <p>
+       * For example, to add a new item, do as follows:
+       * </p>
+       * 
+       * <pre>
+       * getStructureState().add(newItem);
+       * </pre>
+       * 
+       * 
+       * <p>
+       * Objects of the following type(s) are allowed in the list
+       * {@link JalviewModel.JSeq.Pdbids.StructureState }
+       * </p>
+       * 
+       * 
+       * @return The value of the structureState property.
+       */
+      public List<JalviewModel.JSeq.Pdbids.StructureState> getStructureState()
+      {
+        if (structureState == null)
+        {
+          structureState = new ArrayList<JalviewModel.JSeq.Pdbids.StructureState>();
         }
+        return this.structureState;
+      }
+
+      /**
+       * <p>
+       * Java class for anonymous complex type
+       * </p>
+       * .
+       * 
+       * <p>
+       * The following schema fragment specifies the expected content contained
+       * within this class.
+       * </p>
+       * 
+       * <pre>
+       * &lt;complexType&gt;
+       *   &lt;simpleContent&gt;
+       *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
+       *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+       *       &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+       *       &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+       *       &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+       *       &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+       *       &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+       *       &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+       *     &lt;/extension&gt;
+       *   &lt;/simpleContent&gt;
+       * &lt;/complexType&gt;
+       * </pre>
+       * 
+       * 
+       */
+      @XmlAccessorType(XmlAccessType.FIELD)
+      @XmlType(name = "", propOrder = { "value" })
+      public static class StructureState
+      {
+
+        @XmlValue
+        protected String value;
+
+        @XmlAttribute(name = "visible")
+        protected Boolean visible;
 
         /**
-         * Gets the value of the hiddenSequences property.
+         * additional identifier which properly disambiguates the structure view
+         * from any other view with the same attributes. This is not an ID,
+         * because it is possible to have many references to the same physical
+         * structure view from different sequences in an alignment. A
+         * structureState element citing the same viewId will appear for each
+         * instance.
          * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the hiddenSequences property.</p>
+         */
+        @XmlAttribute(name = "viewId")
+        protected String viewId;
+
+        /**
+         * Flag set if the alignment panel containing this JSeq should be
+         * included in those used to perform a structure superposition (since
+         * Jalview 2.7).
+         * 
+         */
+        @XmlAttribute(name = "alignwithAlignPanel")
+        protected Boolean alignwithAlignPanel;
+
+        /**
+         * Flag set if the alignment panel containing this JSeq should be
+         * included in those used to colour its associated sequences in this
+         * structureState(since Jalview 2.7).
          * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getHiddenSequences().add(newItem);
-         * </pre>
+         */
+        @XmlAttribute(name = "colourwithAlignPanel")
+        protected Boolean colourwithAlignPanel;
+
+        /**
+         * Flag set if the structure display is coloured by the Jmol state,
+         * rather than by one or more linked alignment views.
          * 
+         */
+        @XmlAttribute(name = "colourByJmol")
+        protected Boolean colourByJmol;
+
+        /**
+         * An identifier for the viewer type, currently either JMOL or CHIMERA
          * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link Integer }
-         * </p>
+         */
+        @XmlAttribute(name = "type")
+        protected String type;
+
+        @XmlAttribute(name = "width")
+        protected Integer width;
+
+        @XmlAttribute(name = "height")
+        protected Integer height;
+
+        @XmlAttribute(name = "xpos")
+        protected Integer xpos;
+
+        @XmlAttribute(name = "ypos")
+        protected Integer ypos;
+
+        /**
+         * Gets the value of the value property.
          * 
+         * @return possible object is {@link String }
          * 
-         * @return
-         *     The value of the hiddenSequences property.
          */
-        public List<Integer> getHiddenSequences() {
-            if (hiddenSequences == null) {
-                hiddenSequences = new ArrayList<Integer>();
-            }
-            return this.hiddenSequences;
+        public String getValue()
+        {
+          return value;
         }
 
         /**
-         * Reference to a viewer showing
-         *                                                                             RNA structure for this sequence.
-         *                                                                             Schema supports one viewer
-         *                                                                             showing multiple annotations for
-         *                                                                             multiple sequences, though
-         *                                                                             currently only one annotation
-         *                                                                             for one sequence (gapped or
-         *                                                                             trimmed) is used
-         * 
-         * Gets the value of the rnaViewer property.
+         * Sets the value of the value property.
          * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the rnaViewer property.</p>
+         * @param value
+         *          allowed object is {@link String }
          * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getRnaViewer().add(newItem);
-         * </pre>
+         */
+        public void setValue(String value)
+        {
+          this.value = value;
+        }
+
+        /**
+         * Gets the value of the visible property.
          * 
+         * @return possible object is {@link Boolean }
          * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.JSeq.RnaViewer }
-         * </p>
+         */
+        public Boolean isVisible()
+        {
+          return visible;
+        }
+
+        /**
+         * Sets the value of the visible property.
          * 
+         * @param value
+         *          allowed object is {@link Boolean }
          * 
-         * @return
-         *     The value of the rnaViewer property.
          */
-        public List<JalviewModel.JSeq.RnaViewer> getRnaViewer() {
-            if (rnaViewer == null) {
-                rnaViewer = new ArrayList<JalviewModel.JSeq.RnaViewer>();
-            }
-            return this.rnaViewer;
+        public void setVisible(Boolean value)
+        {
+          this.visible = value;
         }
 
         /**
-         * Gets the value of the colour property.
+         * additional identifier which properly disambiguates the structure view
+         * from any other view with the same attributes. This is not an ID,
+         * because it is possible to have many references to the same physical
+         * structure view from different sequences in an alignment. A
+         * structureState element citing the same viewId will appear for each
+         * instance.
+         * 
+         * @return possible object is {@link String }
          * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
          */
-        public Integer getColour() {
-            return colour;
+        public String getViewId()
+        {
+          return viewId;
         }
 
         /**
-         * Sets the value of the colour property.
+         * Sets the value of the viewId property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
+         *          allowed object is {@link String }
+         * 
+         * @see #getViewId()
          */
-        public void setColour(Integer value) {
-            this.colour = value;
+        public void setViewId(String value)
+        {
+          this.viewId = value;
         }
 
         /**
-         * Gets the value of the start property.
+         * Flag set if the alignment panel containing this JSeq should be
+         * included in those used to perform a structure superposition (since
+         * Jalview 2.7).
+         * 
+         * @return possible object is {@link Boolean }
          * 
          */
-        public int getStart() {
-            return start;
+        public boolean isAlignwithAlignPanel()
+        {
+          if (alignwithAlignPanel == null)
+          {
+            return true;
+          }
+          else
+          {
+            return alignwithAlignPanel;
+          }
         }
 
         /**
-         * Sets the value of the start property.
+         * Sets the value of the alignwithAlignPanel property.
+         * 
+         * @param value
+         *          allowed object is {@link Boolean }
          * 
+         * @see #isAlignwithAlignPanel()
          */
-        public void setStart(int value) {
-            this.start = value;
+        public void setAlignwithAlignPanel(Boolean value)
+        {
+          this.alignwithAlignPanel = value;
         }
 
         /**
-         * Gets the value of the end property.
+         * Flag set if the alignment panel containing this JSeq should be
+         * included in those used to colour its associated sequences in this
+         * structureState(since Jalview 2.7).
+         * 
+         * @return possible object is {@link Boolean }
          * 
          */
-        public int getEnd() {
-            return end;
+        public boolean isColourwithAlignPanel()
+        {
+          if (colourwithAlignPanel == null)
+          {
+            return false;
+          }
+          else
+          {
+            return colourwithAlignPanel;
+          }
         }
 
         /**
-         * Sets the value of the end property.
+         * Sets the value of the colourwithAlignPanel property.
+         * 
+         * @param value
+         *          allowed object is {@link Boolean }
          * 
+         * @see #isColourwithAlignPanel()
          */
-        public void setEnd(int value) {
-            this.end = value;
+        public void setColourwithAlignPanel(Boolean value)
+        {
+          this.colourwithAlignPanel = value;
         }
 
         /**
-         * Gets the value of the id property.
+         * Flag set if the structure display is coloured by the Jmol state,
+         * rather than by one or more linked alignment views.
+         * 
+         * @return possible object is {@link Boolean }
          * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
          */
-        public String getId() {
-            return id;
+        public boolean isColourByJmol()
+        {
+          if (colourByJmol == null)
+          {
+            return true;
+          }
+          else
+          {
+            return colourByJmol;
+          }
         }
 
         /**
-         * Sets the value of the id property.
+         * Sets the value of the colourByJmol property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
+         *          allowed object is {@link Boolean }
+         * 
+         * @see #isColourByJmol()
          */
-        public void setId(String value) {
-            this.id = value;
+        public void setColourByJmol(Boolean value)
+        {
+          this.colourByJmol = value;
         }
 
         /**
-         * Gets the value of the hidden property.
+         * An identifier for the viewer type, currently either JMOL or CHIMERA
+         * 
+         * @return possible object is {@link String }
          * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
          */
-        public Boolean isHidden() {
-            return hidden;
+        public String getType()
+        {
+          return type;
         }
 
         /**
-         * Sets the value of the hidden property.
+         * Sets the value of the type property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
+         *          allowed object is {@link String }
+         * 
+         * @see #getType()
          */
-        public void setHidden(Boolean value) {
-            this.hidden = value;
+        public void setType(String value)
+        {
+          this.type = value;
         }
 
         /**
-         * Gets the value of the viewreference property.
+         * Gets the value of the width property.
+         * 
+         * @return possible object is {@link Integer }
          * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
          */
-        public Boolean isViewreference() {
-            return viewreference;
+        public Integer getWidth()
+        {
+          return width;
         }
 
         /**
-         * Sets the value of the viewreference property.
+         * Sets the value of the width property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
+         *          allowed object is {@link Integer }
+         * 
          */
-        public void setViewreference(Boolean value) {
-            this.viewreference = value;
+        public void setWidth(Integer value)
+        {
+          this.width = value;
         }
 
-
         /**
-         * <p>Java class for anonymous complex type</p>.
+         * Gets the value of the height property.
          * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
+         * @return possible object is {@link Integer }
          * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;extension base="{www.jalview.org}pdbentry"&gt;
-         *       &lt;sequence&gt;
-         *         &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0"&gt;
-         *           &lt;complexType&gt;
-         *             &lt;simpleContent&gt;
-         *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
-         *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-         *                 &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *                 &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *                 &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-         *                 &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-         *                 &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-         *                 &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *               &lt;/extension&gt;
-         *             &lt;/simpleContent&gt;
-         *           &lt;/complexType&gt;
-         *         &lt;/element&gt;
-         *       &lt;/sequence&gt;
-         *     &lt;/extension&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
+         */
+        public Integer getHeight()
+        {
+          return height;
+        }
+
+        /**
+         * Sets the value of the height property.
          * 
+         * @param value
+         *          allowed object is {@link Integer }
          * 
          */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "", propOrder = {
-            "structureState"
-        })
-        public static class Pdbids
-            extends Pdbentry
+        public void setHeight(Integer value)
         {
-
-            @XmlElement(namespace = "www.jalview.org")
-            protected List<JalviewModel.JSeq.Pdbids.StructureState> structureState;
-
-            /**
-             * Gets the value of the structureState property.
-             * 
-             * <p>This accessor method returns a reference to the live list,
-             * not a snapshot. Therefore any modification you make to the
-             * returned list will be present inside the JAXB object.
-             * This is why there is not a <CODE>set</CODE> method for the structureState property.</p>
-             * 
-             * <p>
-             * For example, to add a new item, do as follows:
-             * </p>
-             * <pre>
-             * getStructureState().add(newItem);
-             * </pre>
-             * 
-             * 
-             * <p>
-             * Objects of the following type(s) are allowed in the list
-             * {@link JalviewModel.JSeq.Pdbids.StructureState }
-             * </p>
-             * 
-             * 
-             * @return
-             *     The value of the structureState property.
-             */
-            public List<JalviewModel.JSeq.Pdbids.StructureState> getStructureState() {
-                if (structureState == null) {
-                    structureState = new ArrayList<JalviewModel.JSeq.Pdbids.StructureState>();
-                }
-                return this.structureState;
-            }
-
-
-            /**
-             * <p>Java class for anonymous complex type</p>.
-             * 
-             * <p>The following schema fragment specifies the expected content contained within this class.</p>
-             * 
-             * <pre>
-             * &lt;complexType&gt;
-             *   &lt;simpleContent&gt;
-             *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
-             *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-             *       &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-             *       &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-             *       &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-             *       &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-             *       &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-             *       &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-             *     &lt;/extension&gt;
-             *   &lt;/simpleContent&gt;
-             * &lt;/complexType&gt;
-             * </pre>
-             * 
-             * 
-             */
-            @XmlAccessorType(XmlAccessType.FIELD)
-            @XmlType(name = "", propOrder = {
-                "value"
-            })
-            public static class StructureState {
-
-                @XmlValue
-                protected String value;
-                @XmlAttribute(name = "visible")
-                protected Boolean visible;
-                /**
-                 * additional
-                 *                                                                                                                                                     identifier
-                 *                                                                                                                                                     which
-                 *                                                                                                                                                     properly
-                 *                                                                                                                                                     disambiguates
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     view
-                 *                                                                                                                                                     from
-                 *                                                                                                                                                     any
-                 *                                                                                                                                                     other
-                 *                                                                                                                                                     view
-                 *                                                                                                                                                     with
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     same
-                 *                                                                                                                                                     attributes.
-                 *                                                                                                                                                     This
-                 *                                                                                                                                                     is
-                 *                                                                                                                                                     not
-                 *                                                                                                                                                     an
-                 *                                                                                                                                                     ID,
-                 *                                                                                                                                                     because
-                 *                                                                                                                                                     it
-                 *                                                                                                                                                     is
-                 *                                                                                                                                                     possible
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     have
-                 *                                                                                                                                                     many
-                 *                                                                                                                                                     references
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     same
-                 *                                                                                                                                                     physical
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     view
-                 *                                                                                                                                                     from
-                 *                                                                                                                                                     different
-                 *                                                                                                                                                     sequences
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     an
-                 *                                                                                                                                                     alignment.
-                 *                                                                                                                                                     A
-                 *                                                                                                                                                     structureState
-                 *                                                                                                                                                     element
-                 *                                                                                                                                                     citing
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     same
-                 *                                                                                                                                                     viewId
-                 *                                                                                                                                                     will
-                 *                                                                                                                                                     appear
-                 *                                                                                                                                                     for
-                 *                                                                                                                                                     each
-                 *                                                                                                                                                     instance.
-                 * 
-                 */
-                @XmlAttribute(name = "viewId")
-                protected String viewId;
-                /**
-                 * Flag
-                 *                                                                                                                                                     set
-                 *                                                                                                                                                     if
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     alignment
-                 *                                                                                                                                                     panel
-                 *                                                                                                                                                     containing
-                 *                                                                                                                                                     this
-                 *                                                                                                                                                     JSeq
-                 *                                                                                                                                                     should
-                 *                                                                                                                                                     be
-                 *                                                                                                                                                     included
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     those
-                 *                                                                                                                                                     used
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     perform
-                 *                                                                                                                                                     a
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     superposition
-                 *                                                                                                                                                     (since
-                 *                                                                                                                                                     Jalview
-                 *                                                                                                                                                     2.7).
-                 * 
-                 */
-                @XmlAttribute(name = "alignwithAlignPanel")
-                protected Boolean alignwithAlignPanel;
-                /**
-                 * Flag
-                 *                                                                                                                                                     set
-                 *                                                                                                                                                     if
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     alignment
-                 *                                                                                                                                                     panel
-                 *                                                                                                                                                     containing
-                 *                                                                                                                                                     this
-                 *                                                                                                                                                     JSeq
-                 *                                                                                                                                                     should
-                 *                                                                                                                                                     be
-                 *                                                                                                                                                     included
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     those
-                 *                                                                                                                                                     used
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     colour
-                 *                                                                                                                                                     its
-                 *                                                                                                                                                     associated
-                 *                                                                                                                                                     sequences
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     this
-                 *                                                                                                                                                     structureState(since
-                 *                                                                                                                                                     Jalview
-                 *                                                                                                                                                     2.7).
-                 * 
-                 */
-                @XmlAttribute(name = "colourwithAlignPanel")
-                protected Boolean colourwithAlignPanel;
-                /**
-                 * Flag
-                 *                                                                                                                                                     set
-                 *                                                                                                                                                     if
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     display
-                 *                                                                                                                                                     is
-                 *                                                                                                                                                     coloured
-                 *                                                                                                                                                     by
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     Jmol
-                 *                                                                                                                                                     state,
-                 *                                                                                                                                                     rather
-                 *                                                                                                                                                     than
-                 *                                                                                                                                                     by
-                 *                                                                                                                                                     one
-                 *                                                                                                                                                     or
-                 *                                                                                                                                                     more
-                 *                                                                                                                                                     linked
-                 *                                                                                                                                                     alignment
-                 *                                                                                                                                                     views.
-                 * 
-                 */
-                @XmlAttribute(name = "colourByJmol")
-                protected Boolean colourByJmol;
-                /**
-                 * An
-                 *                                                                                                                                                     identifier
-                 *                                                                                                                                                     for
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     viewer
-                 *                                                                                                                                                     type,
-                 *                                                                                                                                                     currently
-                 *                                                                                                                                                     either
-                 *                                                                                                                                                     JMOL
-                 *                                                                                                                                                     or
-                 *                                                                                                                                                     CHIMERA
-                 * 
-                 */
-                @XmlAttribute(name = "type")
-                protected String type;
-                @XmlAttribute(name = "width")
-                protected Integer width;
-                @XmlAttribute(name = "height")
-                protected Integer height;
-                @XmlAttribute(name = "xpos")
-                protected Integer xpos;
-                @XmlAttribute(name = "ypos")
-                protected Integer ypos;
-
-                /**
-                 * Gets the value of the value property.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link String }
-                 *     
-                 */
-                public String getValue() {
-                    return value;
-                }
-
-                /**
-                 * Sets the value of the value property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link String }
-                 *     
-                 */
-                public void setValue(String value) {
-                    this.value = value;
-                }
-
-                /**
-                 * Gets the value of the visible property.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Boolean }
-                 *     
-                 */
-                public Boolean isVisible() {
-                    return visible;
-                }
-
-                /**
-                 * Sets the value of the visible property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Boolean }
-                 *     
-                 */
-                public void setVisible(Boolean value) {
-                    this.visible = value;
-                }
-
-                /**
-                 * additional
-                 *                                                                                                                                                     identifier
-                 *                                                                                                                                                     which
-                 *                                                                                                                                                     properly
-                 *                                                                                                                                                     disambiguates
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     view
-                 *                                                                                                                                                     from
-                 *                                                                                                                                                     any
-                 *                                                                                                                                                     other
-                 *                                                                                                                                                     view
-                 *                                                                                                                                                     with
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     same
-                 *                                                                                                                                                     attributes.
-                 *                                                                                                                                                     This
-                 *                                                                                                                                                     is
-                 *                                                                                                                                                     not
-                 *                                                                                                                                                     an
-                 *                                                                                                                                                     ID,
-                 *                                                                                                                                                     because
-                 *                                                                                                                                                     it
-                 *                                                                                                                                                     is
-                 *                                                                                                                                                     possible
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     have
-                 *                                                                                                                                                     many
-                 *                                                                                                                                                     references
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     same
-                 *                                                                                                                                                     physical
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     view
-                 *                                                                                                                                                     from
-                 *                                                                                                                                                     different
-                 *                                                                                                                                                     sequences
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     an
-                 *                                                                                                                                                     alignment.
-                 *                                                                                                                                                     A
-                 *                                                                                                                                                     structureState
-                 *                                                                                                                                                     element
-                 *                                                                                                                                                     citing
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     same
-                 *                                                                                                                                                     viewId
-                 *                                                                                                                                                     will
-                 *                                                                                                                                                     appear
-                 *                                                                                                                                                     for
-                 *                                                                                                                                                     each
-                 *                                                                                                                                                     instance.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link String }
-                 *     
-                 */
-                public String getViewId() {
-                    return viewId;
-                }
-
-                /**
-                 * Sets the value of the viewId property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link String }
-                 *     
-                 * @see #getViewId()
-                 */
-                public void setViewId(String value) {
-                    this.viewId = value;
-                }
-
-                /**
-                 * Flag
-                 *                                                                                                                                                     set
-                 *                                                                                                                                                     if
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     alignment
-                 *                                                                                                                                                     panel
-                 *                                                                                                                                                     containing
-                 *                                                                                                                                                     this
-                 *                                                                                                                                                     JSeq
-                 *                                                                                                                                                     should
-                 *                                                                                                                                                     be
-                 *                                                                                                                                                     included
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     those
-                 *                                                                                                                                                     used
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     perform
-                 *                                                                                                                                                     a
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     superposition
-                 *                                                                                                                                                     (since
-                 *                                                                                                                                                     Jalview
-                 *                                                                                                                                                     2.7).
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Boolean }
-                 *     
-                 */
-                public boolean isAlignwithAlignPanel() {
-                    if (alignwithAlignPanel == null) {
-                        return true;
-                    } else {
-                        return alignwithAlignPanel;
-                    }
-                }
-
-                /**
-                 * Sets the value of the alignwithAlignPanel property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Boolean }
-                 *     
-                 * @see #isAlignwithAlignPanel()
-                 */
-                public void setAlignwithAlignPanel(Boolean value) {
-                    this.alignwithAlignPanel = value;
-                }
-
-                /**
-                 * Flag
-                 *                                                                                                                                                     set
-                 *                                                                                                                                                     if
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     alignment
-                 *                                                                                                                                                     panel
-                 *                                                                                                                                                     containing
-                 *                                                                                                                                                     this
-                 *                                                                                                                                                     JSeq
-                 *                                                                                                                                                     should
-                 *                                                                                                                                                     be
-                 *                                                                                                                                                     included
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     those
-                 *                                                                                                                                                     used
-                 *                                                                                                                                                     to
-                 *                                                                                                                                                     colour
-                 *                                                                                                                                                     its
-                 *                                                                                                                                                     associated
-                 *                                                                                                                                                     sequences
-                 *                                                                                                                                                     in
-                 *                                                                                                                                                     this
-                 *                                                                                                                                                     structureState(since
-                 *                                                                                                                                                     Jalview
-                 *                                                                                                                                                     2.7).
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Boolean }
-                 *     
-                 */
-                public boolean isColourwithAlignPanel() {
-                    if (colourwithAlignPanel == null) {
-                        return false;
-                    } else {
-                        return colourwithAlignPanel;
-                    }
-                }
-
-                /**
-                 * Sets the value of the colourwithAlignPanel property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Boolean }
-                 *     
-                 * @see #isColourwithAlignPanel()
-                 */
-                public void setColourwithAlignPanel(Boolean value) {
-                    this.colourwithAlignPanel = value;
-                }
-
-                /**
-                 * Flag
-                 *                                                                                                                                                     set
-                 *                                                                                                                                                     if
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     structure
-                 *                                                                                                                                                     display
-                 *                                                                                                                                                     is
-                 *                                                                                                                                                     coloured
-                 *                                                                                                                                                     by
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     Jmol
-                 *                                                                                                                                                     state,
-                 *                                                                                                                                                     rather
-                 *                                                                                                                                                     than
-                 *                                                                                                                                                     by
-                 *                                                                                                                                                     one
-                 *                                                                                                                                                     or
-                 *                                                                                                                                                     more
-                 *                                                                                                                                                     linked
-                 *                                                                                                                                                     alignment
-                 *                                                                                                                                                     views.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Boolean }
-                 *     
-                 */
-                public boolean isColourByJmol() {
-                    if (colourByJmol == null) {
-                        return true;
-                    } else {
-                        return colourByJmol;
-                    }
-                }
-
-                /**
-                 * Sets the value of the colourByJmol property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Boolean }
-                 *     
-                 * @see #isColourByJmol()
-                 */
-                public void setColourByJmol(Boolean value) {
-                    this.colourByJmol = value;
-                }
-
-                /**
-                 * An
-                 *                                                                                                                                                     identifier
-                 *                                                                                                                                                     for
-                 *                                                                                                                                                     the
-                 *                                                                                                                                                     viewer
-                 *                                                                                                                                                     type,
-                 *                                                                                                                                                     currently
-                 *                                                                                                                                                     either
-                 *                                                                                                                                                     JMOL
-                 *                                                                                                                                                     or
-                 *                                                                                                                                                     CHIMERA
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link String }
-                 *     
-                 */
-                public String getType() {
-                    return type;
-                }
-
-                /**
-                 * Sets the value of the type property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link String }
-                 *     
-                 * @see #getType()
-                 */
-                public void setType(String value) {
-                    this.type = value;
-                }
-
-                /**
-                 * Gets the value of the width property.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public Integer getWidth() {
-                    return width;
-                }
-
-                /**
-                 * Sets the value of the width property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public void setWidth(Integer value) {
-                    this.width = value;
-                }
-
-                /**
-                 * Gets the value of the height property.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public Integer getHeight() {
-                    return height;
-                }
-
-                /**
-                 * Sets the value of the height property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public void setHeight(Integer value) {
-                    this.height = value;
-                }
-
-                /**
-                 * Gets the value of the xpos property.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public Integer getXpos() {
-                    return xpos;
-                }
-
-                /**
-                 * Sets the value of the xpos property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public void setXpos(Integer value) {
-                    this.xpos = value;
-                }
-
-                /**
-                 * Gets the value of the ypos property.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public Integer getYpos() {
-                    return ypos;
-                }
-
-                /**
-                 * Sets the value of the ypos property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Integer }
-                 *     
-                 */
-                public void setYpos(Integer value) {
-                    this.ypos = value;
-                }
-
-            }
-
+          this.height = value;
         }
 
+        /**
+         * Gets the value of the xpos property.
+         * 
+         * @return possible object is {@link Integer }
+         * 
+         */
+        public Integer getXpos()
+        {
+          return xpos;
+        }
 
         /**
-         * <p>Java class for anonymous complex type</p>.
+         * Sets the value of the xpos property.
          * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
+         * @param value
+         *          allowed object is {@link Integer }
          * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;sequence&gt;
-         *         &lt;element name="secondaryStructure" maxOccurs="unbounded"&gt;
-         *           &lt;complexType&gt;
-         *             &lt;complexContent&gt;
-         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *                 &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *                 &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *                 &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *               &lt;/restriction&gt;
-         *             &lt;/complexContent&gt;
-         *           &lt;/complexType&gt;
-         *         &lt;/element&gt;
-         *       &lt;/sequence&gt;
-         *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-         *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *       &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *       &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
+         */
+        public void setXpos(Integer value)
+        {
+          this.xpos = value;
+        }
+
+        /**
+         * Gets the value of the ypos property.
          * 
+         * @return possible object is {@link Integer }
          * 
          */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "", propOrder = {
-            "secondaryStructure"
-        })
-        public static class RnaViewer {
-
-            @XmlElement(namespace = "www.jalview.org", required = true)
-            protected List<JalviewModel.JSeq.RnaViewer.SecondaryStructure> secondaryStructure;
-            @XmlAttribute(name = "title")
-            protected String title;
-            /**
-             * An id unique to the RNA
-             *                                                                                                 viewer panel
-             * 
-             */
-            @XmlAttribute(name = "viewId")
-            protected String viewId;
-            /**
-             * horizontal position of
-             *                                                                                                 split pane divider
-             * 
-             */
-            @XmlAttribute(name = "dividerLocation")
-            protected Integer dividerLocation;
-            /**
-             * Index of the selected
-             *                                                                                                 structure in the viewer
-             *                                                                                                 panel
-             * 
-             */
-            @XmlAttribute(name = "selectedRna")
-            protected Integer selectedRna;
-            @XmlAttribute(name = "width")
-            protected Integer width;
-            @XmlAttribute(name = "height")
-            protected Integer height;
-            @XmlAttribute(name = "xpos")
-            protected Integer xpos;
-            @XmlAttribute(name = "ypos")
-            protected Integer ypos;
-
-            /**
-             * Gets the value of the secondaryStructure property.
-             * 
-             * <p>This accessor method returns a reference to the live list,
-             * not a snapshot. Therefore any modification you make to the
-             * returned list will be present inside the JAXB object.
-             * This is why there is not a <CODE>set</CODE> method for the secondaryStructure property.</p>
-             * 
-             * <p>
-             * For example, to add a new item, do as follows:
-             * </p>
-             * <pre>
-             * getSecondaryStructure().add(newItem);
-             * </pre>
-             * 
-             * 
-             * <p>
-             * Objects of the following type(s) are allowed in the list
-             * {@link JalviewModel.JSeq.RnaViewer.SecondaryStructure }
-             * </p>
-             * 
-             * 
-             * @return
-             *     The value of the secondaryStructure property.
-             */
-            public List<JalviewModel.JSeq.RnaViewer.SecondaryStructure> getSecondaryStructure() {
-                if (secondaryStructure == null) {
-                    secondaryStructure = new ArrayList<JalviewModel.JSeq.RnaViewer.SecondaryStructure>();
-                }
-                return this.secondaryStructure;
-            }
-
-            /**
-             * Gets the value of the title property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link String }
-             *     
-             */
-            public String getTitle() {
-                return title;
-            }
-
-            /**
-             * Sets the value of the title property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link String }
-             *     
-             */
-            public void setTitle(String value) {
-                this.title = value;
-            }
-
-            /**
-             * An id unique to the RNA
-             *                                                                                                 viewer panel
-             * 
-             * @return
-             *     possible object is
-             *     {@link String }
-             *     
-             */
-            public String getViewId() {
-                return viewId;
-            }
-
-            /**
-             * Sets the value of the viewId property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link String }
-             *     
-             * @see #getViewId()
-             */
-            public void setViewId(String value) {
-                this.viewId = value;
-            }
-
-            /**
-             * horizontal position of
-             *                                                                                                 split pane divider
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getDividerLocation() {
-                return dividerLocation;
-            }
-
-            /**
-             * Sets the value of the dividerLocation property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             * @see #getDividerLocation()
-             */
-            public void setDividerLocation(Integer value) {
-                this.dividerLocation = value;
-            }
-
-            /**
-             * Index of the selected
-             *                                                                                                 structure in the viewer
-             *                                                                                                 panel
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getSelectedRna() {
-                return selectedRna;
-            }
-
-            /**
-             * Sets the value of the selectedRna property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             * @see #getSelectedRna()
-             */
-            public void setSelectedRna(Integer value) {
-                this.selectedRna = value;
-            }
-
-            /**
-             * Gets the value of the width property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getWidth() {
-                return width;
-            }
-
-            /**
-             * Sets the value of the width property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setWidth(Integer value) {
-                this.width = value;
-            }
-
-            /**
-             * Gets the value of the height property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getHeight() {
-                return height;
-            }
-
-            /**
-             * Sets the value of the height property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setHeight(Integer value) {
-                this.height = value;
-            }
-
-            /**
-             * Gets the value of the xpos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getXpos() {
-                return xpos;
-            }
-
-            /**
-             * Sets the value of the xpos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setXpos(Integer value) {
-                this.xpos = value;
-            }
-
-            /**
-             * Gets the value of the ypos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getYpos() {
-                return ypos;
-            }
-
-            /**
-             * Sets the value of the ypos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setYpos(Integer value) {
-                this.ypos = value;
-            }
-
-
-            /**
-             * <p>Java class for anonymous complex type</p>.
-             * 
-             * <p>The following schema fragment specifies the expected content contained within this class.</p>
-             * 
-             * <pre>
-             * &lt;complexType&gt;
-             *   &lt;complexContent&gt;
-             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-             *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-             *       &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-             *       &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-             *       &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-             *     &lt;/restriction&gt;
-             *   &lt;/complexContent&gt;
-             * &lt;/complexType&gt;
-             * </pre>
-             * 
-             * 
-             */
-            @XmlAccessorType(XmlAccessType.FIELD)
-            @XmlType(name = "")
-            public static class SecondaryStructure {
-
-                @XmlAttribute(name = "title")
-                protected String title;
-                /**
-                 * id attribute
-                 *                                                                                                                     of
-                 *                                                                                                                     Annotation
-                 *                                                                                                                     in
-                 *                                                                                                                     vamsasModel
-                 *                                                                                                                     for the
-                 *                                                                                                                     secondary
-                 *                                                                                                                     structure
-                 *                                                                                                                     annotation
-                 *                                                                                                                     shown in the
-                 *                                                                                                                     viewer
-                 * 
-                 */
-                @XmlAttribute(name = "annotationId", required = true)
-                protected String annotationId;
-                /**
-                 * if true the
-                 *                                                                                                                     RNA
-                 *                                                                                                                     structure is
-                 *                                                                                                                     shown with
-                 *                                                                                                                     gaps, if
-                 *                                                                                                                     false
-                 *                                                                                                                     without
-                 * 
-                 */
-                @XmlAttribute(name = "gapped")
-                protected Boolean gapped;
-                /**
-                 * name of the
-                 *                                                                                                                     project jar
-                 *                                                                                                                     entry that
-                 *                                                                                                                     holds the
-                 *                                                                                                                     VARNA viewer
-                 *                                                                                                                     state for
-                 *                                                                                                                     the
-                 *                                                                                                                     structure
-                 * 
-                 */
-                @XmlAttribute(name = "viewerState")
-                protected String viewerState;
-
-                /**
-                 * Gets the value of the title property.
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link String }
-                 *     
-                 */
-                public String getTitle() {
-                    return title;
-                }
-
-                /**
-                 * Sets the value of the title property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link String }
-                 *     
-                 */
-                public void setTitle(String value) {
-                    this.title = value;
-                }
-
-                /**
-                 * id attribute
-                 *                                                                                                                     of
-                 *                                                                                                                     Annotation
-                 *                                                                                                                     in
-                 *                                                                                                                     vamsasModel
-                 *                                                                                                                     for the
-                 *                                                                                                                     secondary
-                 *                                                                                                                     structure
-                 *                                                                                                                     annotation
-                 *                                                                                                                     shown in the
-                 *                                                                                                                     viewer
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link String }
-                 *     
-                 */
-                public String getAnnotationId() {
-                    return annotationId;
-                }
-
-                /**
-                 * Sets the value of the annotationId property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link String }
-                 *     
-                 * @see #getAnnotationId()
-                 */
-                public void setAnnotationId(String value) {
-                    this.annotationId = value;
-                }
-
-                /**
-                 * if true the
-                 *                                                                                                                     RNA
-                 *                                                                                                                     structure is
-                 *                                                                                                                     shown with
-                 *                                                                                                                     gaps, if
-                 *                                                                                                                     false
-                 *                                                                                                                     without
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link Boolean }
-                 *     
-                 */
-                public Boolean isGapped() {
-                    return gapped;
-                }
-
-                /**
-                 * Sets the value of the gapped property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link Boolean }
-                 *     
-                 * @see #isGapped()
-                 */
-                public void setGapped(Boolean value) {
-                    this.gapped = value;
-                }
-
-                /**
-                 * name of the
-                 *                                                                                                                     project jar
-                 *                                                                                                                     entry that
-                 *                                                                                                                     holds the
-                 *                                                                                                                     VARNA viewer
-                 *                                                                                                                     state for
-                 *                                                                                                                     the
-                 *                                                                                                                     structure
-                 * 
-                 * @return
-                 *     possible object is
-                 *     {@link String }
-                 *     
-                 */
-                public String getViewerState() {
-                    return viewerState;
-                }
-
-                /**
-                 * Sets the value of the viewerState property.
-                 * 
-                 * @param value
-                 *     allowed object is
-                 *     {@link String }
-                 *     
-                 * @see #getViewerState()
-                 */
-                public void setViewerState(String value) {
-                    this.viewerState = value;
-                }
-
-            }
+        public Integer getYpos()
+        {
+          return ypos;
+        }
 
+        /**
+         * Sets the value of the ypos property.
+         * 
+         * @param value
+         *          allowed object is {@link Integer }
+         * 
+         */
+        public void setYpos(Integer value)
+        {
+          this.ypos = value;
         }
 
-    }
+      }
 
+    }
 
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
      * 
      * <pre>
      * &lt;complexType&gt;
      *   &lt;complexContent&gt;
      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
      *       &lt;sequence&gt;
-     *         &lt;element name="sequencePoint" maxOccurs="unbounded"&gt;
+     *         &lt;element name="secondaryStructure" maxOccurs="unbounded"&gt;
      *           &lt;complexType&gt;
      *             &lt;complexContent&gt;
      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
-     *                 &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="axis" maxOccurs="3" minOccurs="3"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="seqPointMin"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="seqPointMax"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
+     *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *                 &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *                 &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *                 &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
      *               &lt;/restriction&gt;
      *             &lt;/complexContent&gt;
      *           &lt;/complexType&gt;
      *         &lt;/element&gt;
-     *         &lt;element name="pcaData" type="{www.jalview.org}PcaDataType"/&gt;
      *       &lt;/sequence&gt;
      *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-     *       &lt;attGroup ref="{www.jalview.org}SimilarityParams"/&gt;
      *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *       &lt;attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *       &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *       &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
      *     &lt;/restriction&gt;
      *   &lt;/complexContent&gt;
      * &lt;/complexType&gt;
@@ -3778,1636 +3122,1133 @@ public class JalviewModel {
      * 
      */
     @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "sequencePoint",
-        "axis",
-        "seqPointMin",
-        "seqPointMax",
-        "pcaData"
-    })
-    public static class PcaViewer {
-
-        @XmlElement(namespace = "www.jalview.org", required = true)
-        protected List<JalviewModel.PcaViewer.SequencePoint> sequencePoint;
-        /**
-         * endpoints of X, Y and Z axes in that order
-         * 
-         */
-        @XmlElement(namespace = "www.jalview.org", required = true)
-        protected List<JalviewModel.PcaViewer.Axis> axis;
-        @XmlElement(namespace = "www.jalview.org", required = true)
-        protected JalviewModel.PcaViewer.SeqPointMin seqPointMin;
-        @XmlElement(namespace = "www.jalview.org", required = true)
-        protected JalviewModel.PcaViewer.SeqPointMax seqPointMax;
-        @XmlElement(namespace = "www.jalview.org", required = true)
-        protected PcaDataType pcaData;
+    @XmlType(name = "", propOrder = { "secondaryStructure" })
+    public static class RnaViewer
+    {
+
+      @XmlElement(namespace = "www.jalview.org", required = true)
+      protected List<JalviewModel.JSeq.RnaViewer.SecondaryStructure> secondaryStructure;
+
+      @XmlAttribute(name = "title")
+      protected String title;
+
+      /**
+       * An id unique to the RNA viewer panel
+       * 
+       */
+      @XmlAttribute(name = "viewId")
+      protected String viewId;
+
+      /**
+       * horizontal position of split pane divider
+       * 
+       */
+      @XmlAttribute(name = "dividerLocation")
+      protected Integer dividerLocation;
+
+      /**
+       * Index of the selected structure in the viewer panel
+       * 
+       */
+      @XmlAttribute(name = "selectedRna")
+      protected Integer selectedRna;
+
+      @XmlAttribute(name = "width")
+      protected Integer width;
+
+      @XmlAttribute(name = "height")
+      protected Integer height;
+
+      @XmlAttribute(name = "xpos")
+      protected Integer xpos;
+
+      @XmlAttribute(name = "ypos")
+      protected Integer ypos;
+
+      /**
+       * Gets the value of the secondaryStructure property.
+       * 
+       * <p>
+       * This accessor method returns a reference to the live list, not a
+       * snapshot. Therefore any modification you make to the returned list will
+       * be present inside the JAXB object. This is why there is not a
+       * <CODE>set</CODE> method for the secondaryStructure property.
+       * </p>
+       * 
+       * <p>
+       * For example, to add a new item, do as follows:
+       * </p>
+       * 
+       * <pre>
+       * getSecondaryStructure().add(newItem);
+       * </pre>
+       * 
+       * 
+       * <p>
+       * Objects of the following type(s) are allowed in the list
+       * {@link JalviewModel.JSeq.RnaViewer.SecondaryStructure }
+       * </p>
+       * 
+       * 
+       * @return The value of the secondaryStructure property.
+       */
+      public List<JalviewModel.JSeq.RnaViewer.SecondaryStructure> getSecondaryStructure()
+      {
+        if (secondaryStructure == null)
+        {
+          secondaryStructure = new ArrayList<JalviewModel.JSeq.RnaViewer.SecondaryStructure>();
+        }
+        return this.secondaryStructure;
+      }
+
+      /**
+       * Gets the value of the title property.
+       * 
+       * @return possible object is {@link String }
+       * 
+       */
+      public String getTitle()
+      {
+        return title;
+      }
+
+      /**
+       * Sets the value of the title property.
+       * 
+       * @param value
+       *          allowed object is {@link String }
+       * 
+       */
+      public void setTitle(String value)
+      {
+        this.title = value;
+      }
+
+      /**
+       * An id unique to the RNA viewer panel
+       * 
+       * @return possible object is {@link String }
+       * 
+       */
+      public String getViewId()
+      {
+        return viewId;
+      }
+
+      /**
+       * Sets the value of the viewId property.
+       * 
+       * @param value
+       *          allowed object is {@link String }
+       * 
+       * @see #getViewId()
+       */
+      public void setViewId(String value)
+      {
+        this.viewId = value;
+      }
+
+      /**
+       * horizontal position of split pane divider
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getDividerLocation()
+      {
+        return dividerLocation;
+      }
+
+      /**
+       * Sets the value of the dividerLocation property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       * @see #getDividerLocation()
+       */
+      public void setDividerLocation(Integer value)
+      {
+        this.dividerLocation = value;
+      }
+
+      /**
+       * Index of the selected structure in the viewer panel
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getSelectedRna()
+      {
+        return selectedRna;
+      }
+
+      /**
+       * Sets the value of the selectedRna property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       * @see #getSelectedRna()
+       */
+      public void setSelectedRna(Integer value)
+      {
+        this.selectedRna = value;
+      }
+
+      /**
+       * Gets the value of the width property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getWidth()
+      {
+        return width;
+      }
+
+      /**
+       * Sets the value of the width property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setWidth(Integer value)
+      {
+        this.width = value;
+      }
+
+      /**
+       * Gets the value of the height property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getHeight()
+      {
+        return height;
+      }
+
+      /**
+       * Sets the value of the height property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setHeight(Integer value)
+      {
+        this.height = value;
+      }
+
+      /**
+       * Gets the value of the xpos property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getXpos()
+      {
+        return xpos;
+      }
+
+      /**
+       * Sets the value of the xpos property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setXpos(Integer value)
+      {
+        this.xpos = value;
+      }
+
+      /**
+       * Gets the value of the ypos property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getYpos()
+      {
+        return ypos;
+      }
+
+      /**
+       * Sets the value of the ypos property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setYpos(Integer value)
+      {
+        this.ypos = value;
+      }
+
+      /**
+       * <p>
+       * Java class for anonymous complex type
+       * </p>
+       * .
+       * 
+       * <p>
+       * The following schema fragment specifies the expected content contained
+       * within this class.
+       * </p>
+       * 
+       * <pre>
+       * &lt;complexType&gt;
+       *   &lt;complexContent&gt;
+       *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+       *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+       *       &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+       *       &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+       *       &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+       *     &lt;/restriction&gt;
+       *   &lt;/complexContent&gt;
+       * &lt;/complexType&gt;
+       * </pre>
+       * 
+       * 
+       */
+      @XmlAccessorType(XmlAccessType.FIELD)
+      @XmlType(name = "")
+      public static class SecondaryStructure
+      {
+
         @XmlAttribute(name = "title")
         protected String title;
-        @XmlAttribute(name = "scoreModelName")
-        protected String scoreModelName;
-        @XmlAttribute(name = "xDim")
-        protected Integer xDim;
-        @XmlAttribute(name = "yDim")
-        protected Integer yDim;
-        @XmlAttribute(name = "zDim")
-        protected Integer zDim;
-        @XmlAttribute(name = "bgColour")
-        protected Integer bgColour;
-        @XmlAttribute(name = "scaleFactor")
-        protected Float scaleFactor;
-        @XmlAttribute(name = "showLabels")
-        protected Boolean showLabels;
-        @XmlAttribute(name = "linkToAllViews")
-        protected Boolean linkToAllViews;
-        @XmlAttribute(name = "width")
-        protected Integer width;
-        @XmlAttribute(name = "height")
-        protected Integer height;
-        @XmlAttribute(name = "xpos")
-        protected Integer xpos;
-        @XmlAttribute(name = "ypos")
-        protected Integer ypos;
-        @XmlAttribute(name = "includeGaps")
-        protected Boolean includeGaps;
-        @XmlAttribute(name = "matchGaps")
-        protected Boolean matchGaps;
-        @XmlAttribute(name = "includeGappedColumns")
-        protected Boolean includeGappedColumns;
-        @XmlAttribute(name = "denominateByShortestLength")
-        protected Boolean denominateByShortestLength;
-
-        /**
-         * Gets the value of the sequencePoint property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the sequencePoint property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getSequencePoint().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.PcaViewer.SequencePoint }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the sequencePoint property.
-         */
-        public List<JalviewModel.PcaViewer.SequencePoint> getSequencePoint() {
-            if (sequencePoint == null) {
-                sequencePoint = new ArrayList<JalviewModel.PcaViewer.SequencePoint>();
-            }
-            return this.sequencePoint;
-        }
-
-        /**
-         * endpoints of X, Y and Z axes in that order
-         * 
-         * Gets the value of the axis property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the axis property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getAxis().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.PcaViewer.Axis }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the axis property.
-         */
-        public List<JalviewModel.PcaViewer.Axis> getAxis() {
-            if (axis == null) {
-                axis = new ArrayList<JalviewModel.PcaViewer.Axis>();
-            }
-            return this.axis;
-        }
-
-        /**
-         * Gets the value of the seqPointMin property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link JalviewModel.PcaViewer.SeqPointMin }
-         *     
-         */
-        public JalviewModel.PcaViewer.SeqPointMin getSeqPointMin() {
-            return seqPointMin;
-        }
-
-        /**
-         * Sets the value of the seqPointMin property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link JalviewModel.PcaViewer.SeqPointMin }
-         *     
-         */
-        public void setSeqPointMin(JalviewModel.PcaViewer.SeqPointMin value) {
-            this.seqPointMin = value;
-        }
-
-        /**
-         * Gets the value of the seqPointMax property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link JalviewModel.PcaViewer.SeqPointMax }
-         *     
-         */
-        public JalviewModel.PcaViewer.SeqPointMax getSeqPointMax() {
-            return seqPointMax;
-        }
 
         /**
-         * Sets the value of the seqPointMax property.
+         * id attribute of Annotation in vamsasModel for the secondary structure
+         * annotation shown in the viewer
          * 
-         * @param value
-         *     allowed object is
-         *     {@link JalviewModel.PcaViewer.SeqPointMax }
-         *     
          */
-        public void setSeqPointMax(JalviewModel.PcaViewer.SeqPointMax value) {
-            this.seqPointMax = value;
-        }
+        @XmlAttribute(name = "annotationId", required = true)
+        protected String annotationId;
 
         /**
-         * Gets the value of the pcaData property.
+         * if true the RNA structure is shown with gaps, if false without
          * 
-         * @return
-         *     possible object is
-         *     {@link PcaDataType }
-         *     
          */
-        public PcaDataType getPcaData() {
-            return pcaData;
-        }
+        @XmlAttribute(name = "gapped")
+        protected Boolean gapped;
 
         /**
-         * Sets the value of the pcaData property.
+         * name of the project jar entry that holds the VARNA viewer state for
+         * the structure
          * 
-         * @param value
-         *     allowed object is
-         *     {@link PcaDataType }
-         *     
          */
-        public void setPcaData(PcaDataType value) {
-            this.pcaData = value;
-        }
+        @XmlAttribute(name = "viewerState")
+        protected String viewerState;
 
         /**
          * Gets the value of the title property.
          * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getTitle() {
-            return title;
-        }
-
-        /**
-         * Sets the value of the title property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setTitle(String value) {
-            this.title = value;
-        }
-
-        /**
-         * Gets the value of the scoreModelName property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getScoreModelName() {
-            return scoreModelName;
-        }
-
-        /**
-         * Sets the value of the scoreModelName property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setScoreModelName(String value) {
-            this.scoreModelName = value;
-        }
-
-        /**
-         * Gets the value of the xDim property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getXDim() {
-            return xDim;
-        }
-
-        /**
-         * Sets the value of the xDim property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setXDim(Integer value) {
-            this.xDim = value;
-        }
-
-        /**
-         * Gets the value of the yDim property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getYDim() {
-            return yDim;
-        }
-
-        /**
-         * Sets the value of the yDim property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setYDim(Integer value) {
-            this.yDim = value;
-        }
-
-        /**
-         * Gets the value of the zDim property.
+         * @return possible object is {@link String }
          * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
          */
-        public Integer getZDim() {
-            return zDim;
+        public String getTitle()
+        {
+          return title;
         }
 
         /**
-         * Sets the value of the zDim property.
+         * Sets the value of the title property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setZDim(Integer value) {
-            this.zDim = value;
-        }
-
-        /**
-         * Gets the value of the bgColour property.
+         *          allowed object is {@link String }
          * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
          */
-        public Integer getBgColour() {
-            return bgColour;
+        public void setTitle(String value)
+        {
+          this.title = value;
         }
 
         /**
-         * Sets the value of the bgColour property.
+         * id attribute of Annotation in vamsasModel for the secondary structure
+         * annotation shown in the viewer
          * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setBgColour(Integer value) {
-            this.bgColour = value;
-        }
-
-        /**
-         * Gets the value of the scaleFactor property.
+         * @return possible object is {@link String }
          * 
-         * @return
-         *     possible object is
-         *     {@link Float }
-         *     
          */
-        public Float getScaleFactor() {
-            return scaleFactor;
+        public String getAnnotationId()
+        {
+          return annotationId;
         }
 
         /**
-         * Sets the value of the scaleFactor property.
+         * Sets the value of the annotationId property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link Float }
-         *     
-         */
-        public void setScaleFactor(Float value) {
-            this.scaleFactor = value;
-        }
-
-        /**
-         * Gets the value of the showLabels property.
+         *          allowed object is {@link String }
          * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
+         * @see #getAnnotationId()
          */
-        public Boolean isShowLabels() {
-            return showLabels;
+        public void setAnnotationId(String value)
+        {
+          this.annotationId = value;
         }
 
         /**
-         * Sets the value of the showLabels property.
+         * if true the RNA structure is shown with gaps, if false without
          * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowLabels(Boolean value) {
-            this.showLabels = value;
-        }
-
-        /**
-         * Gets the value of the linkToAllViews property.
+         * @return possible object is {@link Boolean }
          * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
          */
-        public Boolean isLinkToAllViews() {
-            return linkToAllViews;
+        public Boolean isGapped()
+        {
+          return gapped;
         }
 
         /**
-         * Sets the value of the linkToAllViews property.
+         * Sets the value of the gapped property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setLinkToAllViews(Boolean value) {
-            this.linkToAllViews = value;
-        }
-
-        /**
-         * Gets the value of the width property.
+         *          allowed object is {@link Boolean }
          * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
+         * @see #isGapped()
          */
-        public Integer getWidth() {
-            return width;
+        public void setGapped(Boolean value)
+        {
+          this.gapped = value;
         }
 
         /**
-         * Sets the value of the width property.
+         * name of the project jar entry that holds the VARNA viewer state for
+         * the structure
          * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setWidth(Integer value) {
-            this.width = value;
-        }
-
-        /**
-         * Gets the value of the height property.
+         * @return possible object is {@link String }
          * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
          */
-        public Integer getHeight() {
-            return height;
+        public String getViewerState()
+        {
+          return viewerState;
         }
 
         /**
-         * Sets the value of the height property.
+         * Sets the value of the viewerState property.
          * 
          * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setHeight(Integer value) {
-            this.height = value;
-        }
-
-        /**
-         * Gets the value of the xpos property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getXpos() {
-            return xpos;
-        }
-
-        /**
-         * Sets the value of the xpos property.
+         *          allowed object is {@link String }
          * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
+         * @see #getViewerState()
          */
-        public void setXpos(Integer value) {
-            this.xpos = value;
+        public void setViewerState(String value)
+        {
+          this.viewerState = value;
         }
 
-        /**
-         * Gets the value of the ypos property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getYpos() {
-            return ypos;
-        }
+      }
 
-        /**
-         * Sets the value of the ypos property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setYpos(Integer value) {
-            this.ypos = value;
-        }
+    }
 
-        /**
-         * Gets the value of the includeGaps property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isIncludeGaps() {
-            return includeGaps;
-        }
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="sequencePoint" maxOccurs="unbounded"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
+   *                 &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="axis" maxOccurs="3" minOccurs="3"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="seqPointMin"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="seqPointMax"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;attGroup ref="{www.jalview.org}position"/&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="pcaData" type="{www.jalview.org}PcaDataType"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+   *       &lt;attGroup ref="{www.jalview.org}SimilarityParams"/&gt;
+   *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *       &lt;attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(
+    name = "",
+    propOrder =
+    { "sequencePoint", "axis", "seqPointMin", "seqPointMax", "pcaData" })
+  public static class PcaViewer
+  {
+
+    @XmlElement(namespace = "www.jalview.org", required = true)
+    protected List<JalviewModel.PcaViewer.SequencePoint> sequencePoint;
 
-        /**
-         * Sets the value of the includeGaps property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setIncludeGaps(Boolean value) {
-            this.includeGaps = value;
-        }
+    /**
+     * endpoints of X, Y and Z axes in that order
+     * 
+     */
+    @XmlElement(namespace = "www.jalview.org", required = true)
+    protected List<JalviewModel.PcaViewer.Axis> axis;
 
-        /**
-         * Gets the value of the matchGaps property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isMatchGaps() {
-            return matchGaps;
-        }
+    @XmlElement(namespace = "www.jalview.org", required = true)
+    protected JalviewModel.PcaViewer.SeqPointMin seqPointMin;
 
-        /**
-         * Sets the value of the matchGaps property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setMatchGaps(Boolean value) {
-            this.matchGaps = value;
-        }
+    @XmlElement(namespace = "www.jalview.org", required = true)
+    protected JalviewModel.PcaViewer.SeqPointMax seqPointMax;
 
-        /**
-         * Gets the value of the includeGappedColumns property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isIncludeGappedColumns() {
-            return includeGappedColumns;
-        }
+    @XmlElement(namespace = "www.jalview.org", required = true)
+    protected PcaDataType pcaData;
 
-        /**
-         * Sets the value of the includeGappedColumns property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setIncludeGappedColumns(Boolean value) {
-            this.includeGappedColumns = value;
-        }
+    @XmlAttribute(name = "title")
+    protected String title;
 
-        /**
-         * Gets the value of the denominateByShortestLength property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isDenominateByShortestLength() {
-            return denominateByShortestLength;
-        }
+    @XmlAttribute(name = "scoreModelName")
+    protected String scoreModelName;
 
-        /**
-         * Sets the value of the denominateByShortestLength property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setDenominateByShortestLength(Boolean value) {
-            this.denominateByShortestLength = value;
-        }
+    @XmlAttribute(name = "xDim")
+    protected Integer xDim;
 
+    @XmlAttribute(name = "yDim")
+    protected Integer yDim;
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class Axis {
-
-            @XmlAttribute(name = "xPos")
-            protected Float xPos;
-            @XmlAttribute(name = "yPos")
-            protected Float yPos;
-            @XmlAttribute(name = "zPos")
-            protected Float zPos;
-
-            /**
-             * Gets the value of the xPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getXPos() {
-                return xPos;
-            }
-
-            /**
-             * Sets the value of the xPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setXPos(Float value) {
-                this.xPos = value;
-            }
-
-            /**
-             * Gets the value of the yPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getYPos() {
-                return yPos;
-            }
-
-            /**
-             * Sets the value of the yPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setYPos(Float value) {
-                this.yPos = value;
-            }
-
-            /**
-             * Gets the value of the zPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getZPos() {
-                return zPos;
-            }
-
-            /**
-             * Sets the value of the zPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setZPos(Float value) {
-                this.zPos = value;
-            }
+    @XmlAttribute(name = "zDim")
+    protected Integer zDim;
 
-        }
+    @XmlAttribute(name = "bgColour")
+    protected Integer bgColour;
 
+    @XmlAttribute(name = "scaleFactor")
+    protected Float scaleFactor;
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class SeqPointMax {
-
-            @XmlAttribute(name = "xPos")
-            protected Float xPos;
-            @XmlAttribute(name = "yPos")
-            protected Float yPos;
-            @XmlAttribute(name = "zPos")
-            protected Float zPos;
-
-            /**
-             * Gets the value of the xPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getXPos() {
-                return xPos;
-            }
-
-            /**
-             * Sets the value of the xPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setXPos(Float value) {
-                this.xPos = value;
-            }
-
-            /**
-             * Gets the value of the yPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getYPos() {
-                return yPos;
-            }
-
-            /**
-             * Sets the value of the yPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setYPos(Float value) {
-                this.yPos = value;
-            }
-
-            /**
-             * Gets the value of the zPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getZPos() {
-                return zPos;
-            }
-
-            /**
-             * Sets the value of the zPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setZPos(Float value) {
-                this.zPos = value;
-            }
+    @XmlAttribute(name = "showLabels")
+    protected Boolean showLabels;
 
-        }
+    @XmlAttribute(name = "linkToAllViews")
+    protected Boolean linkToAllViews;
 
+    @XmlAttribute(name = "width")
+    protected Integer width;
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class SeqPointMin {
-
-            @XmlAttribute(name = "xPos")
-            protected Float xPos;
-            @XmlAttribute(name = "yPos")
-            protected Float yPos;
-            @XmlAttribute(name = "zPos")
-            protected Float zPos;
-
-            /**
-             * Gets the value of the xPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getXPos() {
-                return xPos;
-            }
-
-            /**
-             * Sets the value of the xPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setXPos(Float value) {
-                this.xPos = value;
-            }
-
-            /**
-             * Gets the value of the yPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getYPos() {
-                return yPos;
-            }
-
-            /**
-             * Sets the value of the yPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setYPos(Float value) {
-                this.yPos = value;
-            }
-
-            /**
-             * Gets the value of the zPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getZPos() {
-                return zPos;
-            }
-
-            /**
-             * Sets the value of the zPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setZPos(Float value) {
-                this.zPos = value;
-            }
+    @XmlAttribute(name = "height")
+    protected Integer height;
 
-        }
+    @XmlAttribute(name = "xpos")
+    protected Integer xpos;
 
+    @XmlAttribute(name = "ypos")
+    protected Integer ypos;
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
-         *       &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class SequencePoint {
-
-            @XmlAttribute(name = "sequenceRef")
-            protected String sequenceRef;
-            @XmlAttribute(name = "xPos")
-            protected Float xPos;
-            @XmlAttribute(name = "yPos")
-            protected Float yPos;
-            @XmlAttribute(name = "zPos")
-            protected Float zPos;
-
-            /**
-             * Gets the value of the sequenceRef property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link String }
-             *     
-             */
-            public String getSequenceRef() {
-                return sequenceRef;
-            }
-
-            /**
-             * Sets the value of the sequenceRef property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link String }
-             *     
-             */
-            public void setSequenceRef(String value) {
-                this.sequenceRef = value;
-            }
-
-            /**
-             * Gets the value of the xPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getXPos() {
-                return xPos;
-            }
-
-            /**
-             * Sets the value of the xPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setXPos(Float value) {
-                this.xPos = value;
-            }
-
-            /**
-             * Gets the value of the yPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getYPos() {
-                return yPos;
-            }
-
-            /**
-             * Sets the value of the yPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setYPos(Float value) {
-                this.yPos = value;
-            }
-
-            /**
-             * Gets the value of the zPos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Float }
-             *     
-             */
-            public Float getZPos() {
-                return zPos;
-            }
-
-            /**
-             * Sets the value of the zPos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Float }
-             *     
-             */
-            public void setZPos(Float value) {
-                this.zPos = value;
-            }
+    @XmlAttribute(name = "includeGaps")
+    protected Boolean includeGaps;
 
-        }
+    @XmlAttribute(name = "matchGaps")
+    protected Boolean matchGaps;
 
-    }
+    @XmlAttribute(name = "includeGappedColumns")
+    protected Boolean includeGappedColumns;
 
+    @XmlAttribute(name = "denominateByShortestLength")
+    protected Boolean denominateByShortestLength;
 
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * Gets the value of the sequencePoint property.
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the sequencePoint property.
+     * </p>
      * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence minOccurs="0"&gt;
-     *         &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
-     *         &lt;element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-     *       &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *       &lt;attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="columnWise" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="columnReference" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
-     *       &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getSequencePoint().add(newItem);
      * </pre>
      * 
      * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JalviewModel.PcaViewer.SequencePoint }
+     * </p>
+     * 
+     * 
+     * @return The value of the sequencePoint property.
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "title",
-        "newick"
-    })
-    public static class Tree {
+    public List<JalviewModel.PcaViewer.SequencePoint> getSequencePoint()
+    {
+      if (sequencePoint == null)
+      {
+        sequencePoint = new ArrayList<JalviewModel.PcaViewer.SequencePoint>();
+      }
+      return this.sequencePoint;
+    }
 
-        @XmlElement(namespace = "www.jalview.org")
-        protected String title;
-        @XmlElement(namespace = "www.jalview.org")
-        protected String newick;
-        @XmlAttribute(name = "fontName")
-        protected String fontName;
-        @XmlAttribute(name = "fontSize")
-        protected Integer fontSize;
-        @XmlAttribute(name = "fontStyle")
-        protected Integer fontStyle;
-        @XmlAttribute(name = "threshold")
-        protected Float threshold;
-        @XmlAttribute(name = "showBootstrap")
-        protected Boolean showBootstrap;
-        @XmlAttribute(name = "showDistances")
-        protected Boolean showDistances;
-        @XmlAttribute(name = "markUnlinked")
-        protected Boolean markUnlinked;
-        @XmlAttribute(name = "fitToWindow")
-        protected Boolean fitToWindow;
-        @XmlAttribute(name = "currentTree")
-        protected Boolean currentTree;
-        /**
-         * Set for trees associated with columns of an alignment, sequence or annotation row
-         * 
-         */
-        @XmlAttribute(name = "columnWise")
-        protected Boolean columnWise;
-        /**
-         * Refers to annotation row the tree is provided by
-         * 
-         */
-        @XmlAttribute(name = "columnReference")
-        protected String columnReference;
-        /**
-         * Tree ID added for binding tree
-         *                                                                     visualization
-         *                                                                     settings to vamsas
-         *                                                                     document trees in jalview 2.4.1
-         * 
-         */
-        @XmlAttribute(name = "id")
-        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
-        @XmlID
-        @XmlSchemaType(name = "ID")
-        protected String id;
-        @XmlAttribute(name = "linkToAllViews")
-        protected Boolean linkToAllViews;
-        @XmlAttribute(name = "width")
-        protected Integer width;
-        @XmlAttribute(name = "height")
-        protected Integer height;
-        @XmlAttribute(name = "xpos")
-        protected Integer xpos;
-        @XmlAttribute(name = "ypos")
-        protected Integer ypos;
+    /**
+     * endpoints of X, Y and Z axes in that order
+     * 
+     * Gets the value of the axis property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the axis property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getAxis().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JalviewModel.PcaViewer.Axis }
+     * </p>
+     * 
+     * 
+     * @return The value of the axis property.
+     */
+    public List<JalviewModel.PcaViewer.Axis> getAxis()
+    {
+      if (axis == null)
+      {
+        axis = new ArrayList<JalviewModel.PcaViewer.Axis>();
+      }
+      return this.axis;
+    }
 
-        /**
-         * Gets the value of the title property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getTitle() {
-            return title;
-        }
+    /**
+     * Gets the value of the seqPointMin property.
+     * 
+     * @return possible object is {@link JalviewModel.PcaViewer.SeqPointMin }
+     * 
+     */
+    public JalviewModel.PcaViewer.SeqPointMin getSeqPointMin()
+    {
+      return seqPointMin;
+    }
 
-        /**
-         * Sets the value of the title property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setTitle(String value) {
-            this.title = value;
-        }
+    /**
+     * Sets the value of the seqPointMin property.
+     * 
+     * @param value
+     *          allowed object is {@link JalviewModel.PcaViewer.SeqPointMin }
+     * 
+     */
+    public void setSeqPointMin(JalviewModel.PcaViewer.SeqPointMin value)
+    {
+      this.seqPointMin = value;
+    }
 
-        /**
-         * Gets the value of the newick property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getNewick() {
-            return newick;
-        }
+    /**
+     * Gets the value of the seqPointMax property.
+     * 
+     * @return possible object is {@link JalviewModel.PcaViewer.SeqPointMax }
+     * 
+     */
+    public JalviewModel.PcaViewer.SeqPointMax getSeqPointMax()
+    {
+      return seqPointMax;
+    }
 
-        /**
-         * Sets the value of the newick property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setNewick(String value) {
-            this.newick = value;
-        }
+    /**
+     * Sets the value of the seqPointMax property.
+     * 
+     * @param value
+     *          allowed object is {@link JalviewModel.PcaViewer.SeqPointMax }
+     * 
+     */
+    public void setSeqPointMax(JalviewModel.PcaViewer.SeqPointMax value)
+    {
+      this.seqPointMax = value;
+    }
 
-        /**
-         * Gets the value of the fontName property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getFontName() {
-            return fontName;
-        }
+    /**
+     * Gets the value of the pcaData property.
+     * 
+     * @return possible object is {@link PcaDataType }
+     * 
+     */
+    public PcaDataType getPcaData()
+    {
+      return pcaData;
+    }
 
-        /**
-         * Sets the value of the fontName property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setFontName(String value) {
-            this.fontName = value;
-        }
+    /**
+     * Sets the value of the pcaData property.
+     * 
+     * @param value
+     *          allowed object is {@link PcaDataType }
+     * 
+     */
+    public void setPcaData(PcaDataType value)
+    {
+      this.pcaData = value;
+    }
 
-        /**
-         * Gets the value of the fontSize property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getFontSize() {
-            return fontSize;
-        }
+    /**
+     * Gets the value of the title property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getTitle()
+    {
+      return title;
+    }
 
-        /**
-         * Sets the value of the fontSize property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setFontSize(Integer value) {
-            this.fontSize = value;
-        }
+    /**
+     * Sets the value of the title property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setTitle(String value)
+    {
+      this.title = value;
+    }
 
-        /**
-         * Gets the value of the fontStyle property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getFontStyle() {
-            return fontStyle;
-        }
+    /**
+     * Gets the value of the scoreModelName property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getScoreModelName()
+    {
+      return scoreModelName;
+    }
 
-        /**
-         * Sets the value of the fontStyle property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setFontStyle(Integer value) {
-            this.fontStyle = value;
-        }
+    /**
+     * Sets the value of the scoreModelName property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setScoreModelName(String value)
+    {
+      this.scoreModelName = value;
+    }
 
-        /**
-         * Gets the value of the threshold property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Float }
-         *     
-         */
-        public Float getThreshold() {
-            return threshold;
-        }
+    /**
+     * Gets the value of the xDim property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getXDim()
+    {
+      return xDim;
+    }
 
-        /**
-         * Sets the value of the threshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Float }
-         *     
-         */
-        public void setThreshold(Float value) {
-            this.threshold = value;
-        }
+    /**
+     * Sets the value of the xDim property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setXDim(Integer value)
+    {
+      this.xDim = value;
+    }
 
-        /**
-         * Gets the value of the showBootstrap property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowBootstrap() {
-            return showBootstrap;
-        }
+    /**
+     * Gets the value of the yDim property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getYDim()
+    {
+      return yDim;
+    }
 
-        /**
-         * Sets the value of the showBootstrap property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowBootstrap(Boolean value) {
-            this.showBootstrap = value;
-        }
+    /**
+     * Sets the value of the yDim property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setYDim(Integer value)
+    {
+      this.yDim = value;
+    }
 
-        /**
-         * Gets the value of the showDistances property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowDistances() {
-            return showDistances;
-        }
+    /**
+     * Gets the value of the zDim property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getZDim()
+    {
+      return zDim;
+    }
 
-        /**
-         * Sets the value of the showDistances property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowDistances(Boolean value) {
-            this.showDistances = value;
-        }
+    /**
+     * Sets the value of the zDim property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setZDim(Integer value)
+    {
+      this.zDim = value;
+    }
 
-        /**
-         * Gets the value of the markUnlinked property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isMarkUnlinked() {
-            return markUnlinked;
-        }
+    /**
+     * Gets the value of the bgColour property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getBgColour()
+    {
+      return bgColour;
+    }
 
-        /**
-         * Sets the value of the markUnlinked property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setMarkUnlinked(Boolean value) {
-            this.markUnlinked = value;
-        }
+    /**
+     * Sets the value of the bgColour property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setBgColour(Integer value)
+    {
+      this.bgColour = value;
+    }
 
-        /**
-         * Gets the value of the fitToWindow property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isFitToWindow() {
-            return fitToWindow;
-        }
+    /**
+     * Gets the value of the scaleFactor property.
+     * 
+     * @return possible object is {@link Float }
+     * 
+     */
+    public Float getScaleFactor()
+    {
+      return scaleFactor;
+    }
 
-        /**
-         * Sets the value of the fitToWindow property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setFitToWindow(Boolean value) {
-            this.fitToWindow = value;
-        }
+    /**
+     * Sets the value of the scaleFactor property.
+     * 
+     * @param value
+     *          allowed object is {@link Float }
+     * 
+     */
+    public void setScaleFactor(Float value)
+    {
+      this.scaleFactor = value;
+    }
 
-        /**
-         * Gets the value of the currentTree property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isCurrentTree() {
-            return currentTree;
-        }
+    /**
+     * Gets the value of the showLabels property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowLabels()
+    {
+      return showLabels;
+    }
 
-        /**
-         * Sets the value of the currentTree property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setCurrentTree(Boolean value) {
-            this.currentTree = value;
-        }
+    /**
+     * Sets the value of the showLabels property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowLabels(Boolean value)
+    {
+      this.showLabels = value;
+    }
 
-        /**
-         * Set for trees associated with columns of an alignment, sequence or annotation row
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isColumnWise() {
-            if (columnWise == null) {
-                return false;
-            } else {
-                return columnWise;
-            }
-        }
+    /**
+     * Gets the value of the linkToAllViews property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isLinkToAllViews()
+    {
+      return linkToAllViews;
+    }
 
-        /**
-         * Sets the value of the columnWise property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isColumnWise()
-         */
-        public void setColumnWise(Boolean value) {
-            this.columnWise = value;
-        }
+    /**
+     * Sets the value of the linkToAllViews property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setLinkToAllViews(Boolean value)
+    {
+      this.linkToAllViews = value;
+    }
 
-        /**
-         * Refers to annotation row the tree is provided by
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getColumnReference() {
-            return columnReference;
-        }
+    /**
+     * Gets the value of the width property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getWidth()
+    {
+      return width;
+    }
 
-        /**
-         * Sets the value of the columnReference property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getColumnReference()
-         */
-        public void setColumnReference(String value) {
-            this.columnReference = value;
-        }
+    /**
+     * Sets the value of the width property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setWidth(Integer value)
+    {
+      this.width = value;
+    }
 
-        /**
-         * Tree ID added for binding tree
-         *                                                                     visualization
-         *                                                                     settings to vamsas
-         *                                                                     document trees in jalview 2.4.1
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getId() {
-            return id;
-        }
+    /**
+     * Gets the value of the height property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getHeight()
+    {
+      return height;
+    }
 
-        /**
-         * Sets the value of the id property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getId()
-         */
-        public void setId(String value) {
-            this.id = value;
-        }
+    /**
+     * Sets the value of the height property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setHeight(Integer value)
+    {
+      this.height = value;
+    }
 
-        /**
-         * Gets the value of the linkToAllViews property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isLinkToAllViews() {
-            if (linkToAllViews == null) {
-                return false;
-            } else {
-                return linkToAllViews;
-            }
-        }
+    /**
+     * Gets the value of the xpos property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getXpos()
+    {
+      return xpos;
+    }
 
-        /**
-         * Sets the value of the linkToAllViews property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setLinkToAllViews(Boolean value) {
-            this.linkToAllViews = value;
-        }
+    /**
+     * Sets the value of the xpos property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setXpos(Integer value)
+    {
+      this.xpos = value;
+    }
 
-        /**
-         * Gets the value of the width property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getWidth() {
-            return width;
-        }
+    /**
+     * Gets the value of the ypos property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getYpos()
+    {
+      return ypos;
+    }
 
-        /**
-         * Sets the value of the width property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setWidth(Integer value) {
-            this.width = value;
-        }
+    /**
+     * Sets the value of the ypos property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setYpos(Integer value)
+    {
+      this.ypos = value;
+    }
 
-        /**
-         * Gets the value of the height property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getHeight() {
-            return height;
-        }
+    /**
+     * Gets the value of the includeGaps property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isIncludeGaps()
+    {
+      return includeGaps;
+    }
 
-        /**
-         * Sets the value of the height property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setHeight(Integer value) {
-            this.height = value;
-        }
+    /**
+     * Sets the value of the includeGaps property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setIncludeGaps(Boolean value)
+    {
+      this.includeGaps = value;
+    }
 
-        /**
-         * Gets the value of the xpos property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getXpos() {
-            return xpos;
-        }
+    /**
+     * Gets the value of the matchGaps property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isMatchGaps()
+    {
+      return matchGaps;
+    }
 
-        /**
-         * Sets the value of the xpos property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setXpos(Integer value) {
-            this.xpos = value;
-        }
+    /**
+     * Sets the value of the matchGaps property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setMatchGaps(Boolean value)
+    {
+      this.matchGaps = value;
+    }
 
-        /**
-         * Gets the value of the ypos property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getYpos() {
-            return ypos;
-        }
+    /**
+     * Gets the value of the includeGappedColumns property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isIncludeGappedColumns()
+    {
+      return includeGappedColumns;
+    }
 
-        /**
-         * Sets the value of the ypos property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setYpos(Integer value) {
-            this.ypos = value;
-        }
+    /**
+     * Sets the value of the includeGappedColumns property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setIncludeGappedColumns(Boolean value)
+    {
+      this.includeGappedColumns = value;
+    }
 
+    /**
+     * Gets the value of the denominateByShortestLength property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isDenominateByShortestLength()
+    {
+      return denominateByShortestLength;
     }
 
+    /**
+     * Sets the value of the denominateByShortestLength property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setDenominateByShortestLength(Boolean value)
+    {
+      this.denominateByShortestLength = value;
+    }
 
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
      * 
      * <pre>
      * &lt;complexType&gt;
      *   &lt;complexContent&gt;
      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
      *     &lt;/restriction&gt;
      *   &lt;/complexContent&gt;
      * &lt;/complexType&gt;
@@ -5416,158 +4257,214 @@ public class JalviewModel {
      * 
      */
     @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "userColourScheme"
-    })
-    public static class UserColours {
-
-        @XmlElement(name = "UserColourScheme", namespace = "www.jalview.org", required = true)
-        protected JalviewUserColours userColourScheme;
-        @XmlAttribute(name = "id")
-        protected String id;
-
-        /**
-         * Gets the value of the userColourScheme property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link JalviewUserColours }
-         *     
-         */
-        public JalviewUserColours getUserColourScheme() {
-            return userColourScheme;
-        }
+    @XmlType(name = "")
+    public static class Axis
+    {
+
+      @XmlAttribute(name = "xPos")
+      protected Float xPos;
+
+      @XmlAttribute(name = "yPos")
+      protected Float yPos;
+
+      @XmlAttribute(name = "zPos")
+      protected Float zPos;
+
+      /**
+       * Gets the value of the xPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getXPos()
+      {
+        return xPos;
+      }
+
+      /**
+       * Sets the value of the xPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setXPos(Float value)
+      {
+        this.xPos = value;
+      }
+
+      /**
+       * Gets the value of the yPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getYPos()
+      {
+        return yPos;
+      }
+
+      /**
+       * Sets the value of the yPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setYPos(Float value)
+      {
+        this.yPos = value;
+      }
+
+      /**
+       * Gets the value of the zPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getZPos()
+      {
+        return zPos;
+      }
+
+      /**
+       * Sets the value of the zPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setZPos(Float value)
+      {
+        this.zPos = value;
+      }
 
-        /**
-         * Sets the value of the userColourScheme property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link JalviewUserColours }
-         *     
-         */
-        public void setUserColourScheme(JalviewUserColours value) {
-            this.userColourScheme = value;
-        }
-
-        /**
-         * Gets the value of the id property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getId() {
-            return id;
-        }
+    }
 
-        /**
-         * Sets the value of the id property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setId(String value) {
-            this.id = value;
-        }
+    /**
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
+     * 
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
+     * 
+     * <pre>
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+     *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
+     *     &lt;/restriction&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class SeqPointMax
+    {
+
+      @XmlAttribute(name = "xPos")
+      protected Float xPos;
+
+      @XmlAttribute(name = "yPos")
+      protected Float yPos;
+
+      @XmlAttribute(name = "zPos")
+      protected Float zPos;
+
+      /**
+       * Gets the value of the xPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getXPos()
+      {
+        return xPos;
+      }
+
+      /**
+       * Sets the value of the xPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setXPos(Float value)
+      {
+        this.xPos = value;
+      }
+
+      /**
+       * Gets the value of the yPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getYPos()
+      {
+        return yPos;
+      }
+
+      /**
+       * Sets the value of the yPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setYPos(Float value)
+      {
+        this.yPos = value;
+      }
+
+      /**
+       * Gets the value of the zPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getZPos()
+      {
+        return zPos;
+      }
+
+      /**
+       * Sets the value of the zPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setZPos(Float value)
+      {
+        this.zPos = value;
+      }
 
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
      * 
      * <pre>
      * &lt;complexType&gt;
      *   &lt;complexContent&gt;
      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
-     *         &lt;element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="calcIdParam" maxOccurs="unbounded" minOccurs="0"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet"&gt;
-     *                 &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *                 &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *                 &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *               &lt;/extension&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="overview" minOccurs="0"&gt;
-     *           &lt;complexType&gt;
-     *             &lt;complexContent&gt;
-     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-     *                 &lt;attribute name="showHidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *                 &lt;attribute name="residueColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="gapColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="hiddenColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *               &lt;/restriction&gt;
-     *             &lt;/complexContent&gt;
-     *           &lt;/complexType&gt;
-     *         &lt;/element&gt;
-     *         &lt;element name="SecStrProvider" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-     *       &lt;attGroup ref="{www.jalview.org}conservationShading"/&gt;
-     *       &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-     *       &lt;attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-     *       &lt;attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="showStructureProviders" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="showGroupSecStrConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="charWidth" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="charHeight" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="idWidth" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="idWidthManuallyAdjusted" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
-     *       &lt;attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
-     *       &lt;attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+     *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
      *     &lt;/restriction&gt;
      *   &lt;/complexContent&gt;
      * &lt;/complexType&gt;
@@ -5576,2181 +4473,3242 @@ public class JalviewModel {
      * 
      */
     @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "annotationColours",
-        "hiddenColumns",
-        "calcIdParam",
-        "overview",
-        "secStrProvider"
-    })
-    public static class Viewport {
-
-        @XmlElement(name = "AnnotationColours", namespace = "www.jalview.org")
-        protected AnnotationColourScheme annotationColours;
-        @XmlElement(namespace = "www.jalview.org")
-        protected List<JalviewModel.Viewport.HiddenColumns> hiddenColumns;
-        @XmlElement(namespace = "www.jalview.org")
-        protected List<JalviewModel.Viewport.CalcIdParam> calcIdParam;
-        @XmlElement(namespace = "www.jalview.org")
-        protected JalviewModel.Viewport.Overview overview;
-        @XmlElement(name = "SecStrProvider", namespace = "www.jalview.org")
-        protected List<String> secStrProvider;
-        @XmlAttribute(name = "bgColour")
-        protected String bgColour;
-        @XmlAttribute(name = "title")
-        protected String title;
-        @XmlAttribute(name = "showFullId")
-        protected Boolean showFullId;
-        @XmlAttribute(name = "rightAlignIds")
-        protected Boolean rightAlignIds;
-        @XmlAttribute(name = "showText")
-        protected Boolean showText;
-        @XmlAttribute(name = "showColourText")
-        protected Boolean showColourText;
-        @XmlAttribute(name = "showUnconserved")
-        protected Boolean showUnconserved;
-        @XmlAttribute(name = "showBoxes")
-        protected Boolean showBoxes;
-        @XmlAttribute(name = "wrapAlignment")
-        protected Boolean wrapAlignment;
-        @XmlAttribute(name = "renderGaps")
-        protected Boolean renderGaps;
-        @XmlAttribute(name = "showSequenceFeatures")
-        protected Boolean showSequenceFeatures;
-        @XmlAttribute(name = "showNPfeatureTooltip")
-        protected Boolean showNPfeatureTooltip;
-        @XmlAttribute(name = "showDbRefTooltip")
-        protected Boolean showDbRefTooltip;
-        @XmlAttribute(name = "followHighlight")
-        protected Boolean followHighlight;
-        @XmlAttribute(name = "followSelection")
-        protected Boolean followSelection;
-        @XmlAttribute(name = "showAnnotation")
-        protected Boolean showAnnotation;
-        @XmlAttribute(name = "showStructureProviders")
-        protected Boolean showStructureProviders;
-        @XmlAttribute(name = "centreColumnLabels")
-        protected Boolean centreColumnLabels;
-        /**
-         * whether a new group has conservation displayed by default
-         * 
-         */
-        @XmlAttribute(name = "showGroupConservation")
-        protected Boolean showGroupConservation;
-        /**
-         * whether a new group has consensus displayed by default
-         * 
-         */
-        @XmlAttribute(name = "showGroupConsensus")
-        protected Boolean showGroupConsensus;
-        /**
-         * whether a new group has secondary structure consensus displayed by default
-         * 
-         */
-        @XmlAttribute(name = "showGroupSecStrConsensus")
-        protected Boolean showGroupSecStrConsensus;
-        @XmlAttribute(name = "startRes")
-        protected Integer startRes;
-        @XmlAttribute(name = "startSeq")
-        protected Integer startSeq;
-        @XmlAttribute(name = "charWidth")
-        protected Integer charWidth;
-        @XmlAttribute(name = "charHeight")
-        protected Integer charHeight;
-        @XmlAttribute(name = "fontName")
-        protected String fontName;
-        @XmlAttribute(name = "fontSize")
-        protected Integer fontSize;
-        @XmlAttribute(name = "fontStyle")
-        protected Integer fontStyle;
-        @XmlAttribute(name = "idWidth")
-        protected Integer idWidth;
-        @XmlAttribute(name = "idWidthManuallyAdjusted")
-        protected Boolean idWidthManuallyAdjusted;
-        @XmlAttribute(name = "scaleProteinAsCdna")
-        protected Boolean scaleProteinAsCdna;
-        @XmlAttribute(name = "viewName")
-        protected String viewName;
-        @XmlAttribute(name = "sequenceSetId")
-        protected String sequenceSetId;
-        @XmlAttribute(name = "gatheredViews")
-        protected Boolean gatheredViews;
-        @XmlAttribute(name = "textCol1")
-        protected Integer textCol1;
-        @XmlAttribute(name = "textCol2")
-        protected Integer textCol2;
-        @XmlAttribute(name = "textColThreshold")
-        protected Integer textColThreshold;
-        /**
-         * unique id used by jalview to
-         *                                                                     synchronize
-         *                                                                     between stored and
-         *                                                                     instantiated views
-         * 
-         */
-        @XmlAttribute(name = "id")
-        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
-        @XmlID
-        @XmlSchemaType(name = "ID")
-        protected String id;
-        /**
-         * The viewport id of this viewport's
-         *                                                                     (cdna/protein) coding complement, if any
-         * 
-         */
-        @XmlAttribute(name = "complementId")
-        protected String complementId;
-        @XmlAttribute(name = "showComplementFeatures")
-        protected Boolean showComplementFeatures;
-        @XmlAttribute(name = "showComplementFeaturesOnTop")
-        protected Boolean showComplementFeaturesOnTop;
-        @XmlAttribute(name = "width")
-        protected Integer width;
-        @XmlAttribute(name = "height")
-        protected Integer height;
-        @XmlAttribute(name = "xpos")
-        protected Integer xpos;
-        @XmlAttribute(name = "ypos")
-        protected Integer ypos;
-        @XmlAttribute(name = "conservationSelected")
-        protected Boolean conservationSelected;
-        /**
-         * Conservation shading increment
-         * 
-         */
-        @XmlAttribute(name = "consThreshold")
-        protected Integer consThreshold;
-        @XmlAttribute(name = "pidSelected")
-        protected Boolean pidSelected;
-        /**
-         * Percent Identity Threshold
-         * 
-         */
-        @XmlAttribute(name = "pidThreshold")
-        protected Integer pidThreshold;
-        /**
-         * Secondary structure consensus shading - since 2.11.4
-         * 
-         */
-        @XmlAttribute(name = "secstrSelected")
-        protected Boolean secstrSelected;
-        /**
-         * Secondary structure consensus increment
-         * 
-         */
-        @XmlAttribute(name = "secstrThreshold")
-        protected Integer secstrThreshold;
-        @XmlAttribute(name = "showConsensusHistogram")
-        protected Boolean showConsensusHistogram;
-        @XmlAttribute(name = "showSequenceLogo")
-        protected Boolean showSequenceLogo;
-        @XmlAttribute(name = "normaliseSequenceLogo")
-        protected Boolean normaliseSequenceLogo;
-        @XmlAttribute(name = "ignoreGapsinConsensus")
-        protected Boolean ignoreGapsinConsensus;
+    @XmlType(name = "")
+    public static class SeqPointMin
+    {
+
+      @XmlAttribute(name = "xPos")
+      protected Float xPos;
+
+      @XmlAttribute(name = "yPos")
+      protected Float yPos;
+
+      @XmlAttribute(name = "zPos")
+      protected Float zPos;
+
+      /**
+       * Gets the value of the xPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getXPos()
+      {
+        return xPos;
+      }
+
+      /**
+       * Sets the value of the xPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setXPos(Float value)
+      {
+        this.xPos = value;
+      }
+
+      /**
+       * Gets the value of the yPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getYPos()
+      {
+        return yPos;
+      }
+
+      /**
+       * Sets the value of the yPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setYPos(Float value)
+      {
+        this.yPos = value;
+      }
+
+      /**
+       * Gets the value of the zPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getZPos()
+      {
+        return zPos;
+      }
+
+      /**
+       * Sets the value of the zPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setZPos(Float value)
+      {
+        this.zPos = value;
+      }
 
-        /**
-         * Gets the value of the annotationColours property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link AnnotationColourScheme }
-         *     
-         */
-        public AnnotationColourScheme getAnnotationColours() {
-            return annotationColours;
-        }
+    }
 
-        /**
-         * Sets the value of the annotationColours property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link AnnotationColourScheme }
-         *     
-         */
-        public void setAnnotationColours(AnnotationColourScheme value) {
-            this.annotationColours = value;
-        }
+    /**
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
+     * 
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
+     * 
+     * <pre>
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+     *       &lt;attGroup ref="{www.jalview.org}position"/&gt;
+     *       &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *     &lt;/restriction&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class SequencePoint
+    {
+
+      @XmlAttribute(name = "sequenceRef")
+      protected String sequenceRef;
+
+      @XmlAttribute(name = "xPos")
+      protected Float xPos;
+
+      @XmlAttribute(name = "yPos")
+      protected Float yPos;
+
+      @XmlAttribute(name = "zPos")
+      protected Float zPos;
+
+      /**
+       * Gets the value of the sequenceRef property.
+       * 
+       * @return possible object is {@link String }
+       * 
+       */
+      public String getSequenceRef()
+      {
+        return sequenceRef;
+      }
+
+      /**
+       * Sets the value of the sequenceRef property.
+       * 
+       * @param value
+       *          allowed object is {@link String }
+       * 
+       */
+      public void setSequenceRef(String value)
+      {
+        this.sequenceRef = value;
+      }
+
+      /**
+       * Gets the value of the xPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getXPos()
+      {
+        return xPos;
+      }
+
+      /**
+       * Sets the value of the xPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setXPos(Float value)
+      {
+        this.xPos = value;
+      }
+
+      /**
+       * Gets the value of the yPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getYPos()
+      {
+        return yPos;
+      }
+
+      /**
+       * Sets the value of the yPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setYPos(Float value)
+      {
+        this.yPos = value;
+      }
+
+      /**
+       * Gets the value of the zPos property.
+       * 
+       * @return possible object is {@link Float }
+       * 
+       */
+      public Float getZPos()
+      {
+        return zPos;
+      }
+
+      /**
+       * Sets the value of the zPos property.
+       * 
+       * @param value
+       *          allowed object is {@link Float }
+       * 
+       */
+      public void setZPos(Float value)
+      {
+        this.zPos = value;
+      }
 
-        /**
-         * Gets the value of the hiddenColumns property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the hiddenColumns property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getHiddenColumns().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.Viewport.HiddenColumns }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the hiddenColumns property.
-         */
-        public List<JalviewModel.Viewport.HiddenColumns> getHiddenColumns() {
-            if (hiddenColumns == null) {
-                hiddenColumns = new ArrayList<JalviewModel.Viewport.HiddenColumns>();
-            }
-            return this.hiddenColumns;
-        }
+    }
 
-        /**
-         * Gets the value of the calcIdParam property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the calcIdParam property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getCalcIdParam().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link JalviewModel.Viewport.CalcIdParam }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the calcIdParam property.
-         */
-        public List<JalviewModel.Viewport.CalcIdParam> getCalcIdParam() {
-            if (calcIdParam == null) {
-                calcIdParam = new ArrayList<JalviewModel.Viewport.CalcIdParam>();
-            }
-            return this.calcIdParam;
-        }
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence minOccurs="0"&gt;
+   *         &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+   *         &lt;element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+   *       &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *       &lt;attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="columnWise" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="columnReference" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
+   *       &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "title", "newick" })
+  public static class Tree
+  {
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected String title;
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected String newick;
+
+    @XmlAttribute(name = "fontName")
+    protected String fontName;
+
+    @XmlAttribute(name = "fontSize")
+    protected Integer fontSize;
+
+    @XmlAttribute(name = "fontStyle")
+    protected Integer fontStyle;
+
+    @XmlAttribute(name = "threshold")
+    protected Float threshold;
+
+    @XmlAttribute(name = "showBootstrap")
+    protected Boolean showBootstrap;
+
+    @XmlAttribute(name = "showDistances")
+    protected Boolean showDistances;
+
+    @XmlAttribute(name = "markUnlinked")
+    protected Boolean markUnlinked;
+
+    @XmlAttribute(name = "fitToWindow")
+    protected Boolean fitToWindow;
+
+    @XmlAttribute(name = "currentTree")
+    protected Boolean currentTree;
 
-        /**
-         * Gets the value of the overview property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link JalviewModel.Viewport.Overview }
-         *     
-         */
-        public JalviewModel.Viewport.Overview getOverview() {
-            return overview;
-        }
+    /**
+     * Set for trees associated with columns of an alignment, sequence or
+     * annotation row
+     * 
+     */
+    @XmlAttribute(name = "columnWise")
+    protected Boolean columnWise;
 
-        /**
-         * Sets the value of the overview property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link JalviewModel.Viewport.Overview }
-         *     
-         */
-        public void setOverview(JalviewModel.Viewport.Overview value) {
-            this.overview = value;
-        }
+    /**
+     * Refers to annotation row the tree is provided by
+     * 
+     */
+    @XmlAttribute(name = "columnReference")
+    protected String columnReference;
 
-        /**
-         * Gets the value of the secStrProvider property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the secStrProvider property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getSecStrProvider().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link String }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the secStrProvider property.
-         */
-        public List<String> getSecStrProvider() {
-            if (secStrProvider == null) {
-                secStrProvider = new ArrayList<String>();
-            }
-            return this.secStrProvider;
-        }
+    /**
+     * Tree ID added for binding tree visualization settings to vamsas document
+     * trees in jalview 2.4.1
+     * 
+     */
+    @XmlAttribute(name = "id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
 
-        /**
-         * Gets the value of the bgColour property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getBgColour() {
-            return bgColour;
-        }
+    @XmlAttribute(name = "linkToAllViews")
+    protected Boolean linkToAllViews;
 
-        /**
-         * Sets the value of the bgColour property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setBgColour(String value) {
-            this.bgColour = value;
-        }
+    @XmlAttribute(name = "width")
+    protected Integer width;
 
-        /**
-         * Gets the value of the title property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getTitle() {
-            return title;
-        }
+    @XmlAttribute(name = "height")
+    protected Integer height;
 
-        /**
-         * Sets the value of the title property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setTitle(String value) {
-            this.title = value;
-        }
+    @XmlAttribute(name = "xpos")
+    protected Integer xpos;
 
-        /**
-         * Gets the value of the showFullId property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowFullId() {
-            return showFullId;
-        }
+    @XmlAttribute(name = "ypos")
+    protected Integer ypos;
 
-        /**
-         * Sets the value of the showFullId property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowFullId(Boolean value) {
-            this.showFullId = value;
-        }
+    /**
+     * Gets the value of the title property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getTitle()
+    {
+      return title;
+    }
 
-        /**
-         * Gets the value of the rightAlignIds property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isRightAlignIds() {
-            return rightAlignIds;
-        }
+    /**
+     * Sets the value of the title property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setTitle(String value)
+    {
+      this.title = value;
+    }
 
-        /**
-         * Sets the value of the rightAlignIds property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setRightAlignIds(Boolean value) {
-            this.rightAlignIds = value;
-        }
+    /**
+     * Gets the value of the newick property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getNewick()
+    {
+      return newick;
+    }
 
-        /**
-         * Gets the value of the showText property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowText() {
-            return showText;
-        }
+    /**
+     * Sets the value of the newick property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setNewick(String value)
+    {
+      this.newick = value;
+    }
 
-        /**
-         * Sets the value of the showText property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowText(Boolean value) {
-            this.showText = value;
-        }
+    /**
+     * Gets the value of the fontName property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getFontName()
+    {
+      return fontName;
+    }
 
-        /**
-         * Gets the value of the showColourText property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowColourText() {
-            return showColourText;
-        }
+    /**
+     * Sets the value of the fontName property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setFontName(String value)
+    {
+      this.fontName = value;
+    }
 
-        /**
-         * Sets the value of the showColourText property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowColourText(Boolean value) {
-            this.showColourText = value;
-        }
+    /**
+     * Gets the value of the fontSize property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getFontSize()
+    {
+      return fontSize;
+    }
 
-        /**
-         * Gets the value of the showUnconserved property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowUnconserved() {
-            if (showUnconserved == null) {
-                return false;
-            } else {
-                return showUnconserved;
-            }
-        }
+    /**
+     * Sets the value of the fontSize property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setFontSize(Integer value)
+    {
+      this.fontSize = value;
+    }
 
-        /**
-         * Sets the value of the showUnconserved property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowUnconserved(Boolean value) {
-            this.showUnconserved = value;
-        }
+    /**
+     * Gets the value of the fontStyle property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getFontStyle()
+    {
+      return fontStyle;
+    }
 
-        /**
-         * Gets the value of the showBoxes property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowBoxes() {
-            return showBoxes;
-        }
+    /**
+     * Sets the value of the fontStyle property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setFontStyle(Integer value)
+    {
+      this.fontStyle = value;
+    }
 
-        /**
-         * Sets the value of the showBoxes property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowBoxes(Boolean value) {
-            this.showBoxes = value;
-        }
+    /**
+     * Gets the value of the threshold property.
+     * 
+     * @return possible object is {@link Float }
+     * 
+     */
+    public Float getThreshold()
+    {
+      return threshold;
+    }
 
-        /**
-         * Gets the value of the wrapAlignment property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isWrapAlignment() {
-            return wrapAlignment;
-        }
+    /**
+     * Sets the value of the threshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Float }
+     * 
+     */
+    public void setThreshold(Float value)
+    {
+      this.threshold = value;
+    }
 
-        /**
-         * Sets the value of the wrapAlignment property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setWrapAlignment(Boolean value) {
-            this.wrapAlignment = value;
-        }
+    /**
+     * Gets the value of the showBootstrap property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowBootstrap()
+    {
+      return showBootstrap;
+    }
 
-        /**
-         * Gets the value of the renderGaps property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isRenderGaps() {
-            return renderGaps;
-        }
+    /**
+     * Sets the value of the showBootstrap property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowBootstrap(Boolean value)
+    {
+      this.showBootstrap = value;
+    }
 
-        /**
-         * Sets the value of the renderGaps property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setRenderGaps(Boolean value) {
-            this.renderGaps = value;
-        }
+    /**
+     * Gets the value of the showDistances property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowDistances()
+    {
+      return showDistances;
+    }
 
-        /**
-         * Gets the value of the showSequenceFeatures property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowSequenceFeatures() {
-            return showSequenceFeatures;
-        }
+    /**
+     * Sets the value of the showDistances property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowDistances(Boolean value)
+    {
+      this.showDistances = value;
+    }
 
-        /**
-         * Sets the value of the showSequenceFeatures property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowSequenceFeatures(Boolean value) {
-            this.showSequenceFeatures = value;
-        }
+    /**
+     * Gets the value of the markUnlinked property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isMarkUnlinked()
+    {
+      return markUnlinked;
+    }
 
-        /**
-         * Gets the value of the showNPfeatureTooltip property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowNPfeatureTooltip() {
-            return showNPfeatureTooltip;
-        }
+    /**
+     * Sets the value of the markUnlinked property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setMarkUnlinked(Boolean value)
+    {
+      this.markUnlinked = value;
+    }
+
+    /**
+     * Gets the value of the fitToWindow property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isFitToWindow()
+    {
+      return fitToWindow;
+    }
+
+    /**
+     * Sets the value of the fitToWindow property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setFitToWindow(Boolean value)
+    {
+      this.fitToWindow = value;
+    }
+
+    /**
+     * Gets the value of the currentTree property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isCurrentTree()
+    {
+      return currentTree;
+    }
+
+    /**
+     * Sets the value of the currentTree property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setCurrentTree(Boolean value)
+    {
+      this.currentTree = value;
+    }
+
+    /**
+     * Set for trees associated with columns of an alignment, sequence or
+     * annotation row
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isColumnWise()
+    {
+      if (columnWise == null)
+      {
+        return false;
+      }
+      else
+      {
+        return columnWise;
+      }
+    }
+
+    /**
+     * Sets the value of the columnWise property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     * @see #isColumnWise()
+     */
+    public void setColumnWise(Boolean value)
+    {
+      this.columnWise = value;
+    }
+
+    /**
+     * Refers to annotation row the tree is provided by
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getColumnReference()
+    {
+      return columnReference;
+    }
+
+    /**
+     * Sets the value of the columnReference property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     * @see #getColumnReference()
+     */
+    public void setColumnReference(String value)
+    {
+      this.columnReference = value;
+    }
+
+    /**
+     * Tree ID added for binding tree visualization settings to vamsas document
+     * trees in jalview 2.4.1
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getId()
+    {
+      return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     * @see #getId()
+     */
+    public void setId(String value)
+    {
+      this.id = value;
+    }
+
+    /**
+     * Gets the value of the linkToAllViews property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isLinkToAllViews()
+    {
+      if (linkToAllViews == null)
+      {
+        return false;
+      }
+      else
+      {
+        return linkToAllViews;
+      }
+    }
+
+    /**
+     * Sets the value of the linkToAllViews property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setLinkToAllViews(Boolean value)
+    {
+      this.linkToAllViews = value;
+    }
+
+    /**
+     * Gets the value of the width property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getWidth()
+    {
+      return width;
+    }
+
+    /**
+     * Sets the value of the width property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setWidth(Integer value)
+    {
+      this.width = value;
+    }
+
+    /**
+     * Gets the value of the height property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getHeight()
+    {
+      return height;
+    }
+
+    /**
+     * Sets the value of the height property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setHeight(Integer value)
+    {
+      this.height = value;
+    }
+
+    /**
+     * Gets the value of the xpos property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getXpos()
+    {
+      return xpos;
+    }
+
+    /**
+     * Sets the value of the xpos property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setXpos(Integer value)
+    {
+      this.xpos = value;
+    }
+
+    /**
+     * Gets the value of the ypos property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getYpos()
+    {
+      return ypos;
+    }
+
+    /**
+     * Sets the value of the ypos property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setYpos(Integer value)
+    {
+      this.ypos = value;
+    }
+
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "userColourScheme" })
+  public static class UserColours
+  {
+
+    @XmlElement(
+      name = "UserColourScheme",
+      namespace = "www.jalview.org",
+      required = true)
+    protected JalviewUserColours userColourScheme;
+
+    @XmlAttribute(name = "id")
+    protected String id;
+
+    /**
+     * Gets the value of the userColourScheme property.
+     * 
+     * @return possible object is {@link JalviewUserColours }
+     * 
+     */
+    public JalviewUserColours getUserColourScheme()
+    {
+      return userColourScheme;
+    }
+
+    /**
+     * Sets the value of the userColourScheme property.
+     * 
+     * @param value
+     *          allowed object is {@link JalviewUserColours }
+     * 
+     */
+    public void setUserColourScheme(JalviewUserColours value)
+    {
+      this.userColourScheme = value;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getId()
+    {
+      return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setId(String value)
+    {
+      this.id = value;
+    }
+
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
+   *         &lt;element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="calcIdParam" maxOccurs="unbounded" minOccurs="0"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet"&gt;
+   *                 &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *                 &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *                 &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *               &lt;/extension&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="overview" minOccurs="0"&gt;
+   *           &lt;complexType&gt;
+   *             &lt;complexContent&gt;
+   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+   *                 &lt;attribute name="showHidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *                 &lt;attribute name="residueColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="gapColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="hiddenColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *               &lt;/restriction&gt;
+   *             &lt;/complexContent&gt;
+   *           &lt;/complexType&gt;
+   *         &lt;/element&gt;
+   *         &lt;element name="SecStrProvider" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+   *       &lt;attGroup ref="{www.jalview.org}conservationShading"/&gt;
+   *       &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+   *       &lt;attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+   *       &lt;attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="showStructureProviders" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="showGroupSecStrConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="charWidth" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="charHeight" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="idWidth" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="idWidthManuallyAdjusted" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+   *       &lt;attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
+   *       &lt;attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(
+    name = "",
+    propOrder =
+    { "annotationColours", "hiddenColumns", "calcIdParam", "overview",
+        "secStrProvider" })
+  public static class Viewport
+  {
+
+    @XmlElement(name = "AnnotationColours", namespace = "www.jalview.org")
+    protected AnnotationColourScheme annotationColours;
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected List<JalviewModel.Viewport.HiddenColumns> hiddenColumns;
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected List<JalviewModel.Viewport.CalcIdParam> calcIdParam;
+
+    @XmlElement(namespace = "www.jalview.org")
+    protected JalviewModel.Viewport.Overview overview;
+
+    @XmlElement(name = "SecStrProvider", namespace = "www.jalview.org")
+    protected List<String> secStrProvider;
+
+    @XmlAttribute(name = "bgColour")
+    protected String bgColour;
+
+    @XmlAttribute(name = "title")
+    protected String title;
+
+    @XmlAttribute(name = "showFullId")
+    protected Boolean showFullId;
+
+    @XmlAttribute(name = "rightAlignIds")
+    protected Boolean rightAlignIds;
+
+    @XmlAttribute(name = "showText")
+    protected Boolean showText;
+
+    @XmlAttribute(name = "showColourText")
+    protected Boolean showColourText;
+
+    @XmlAttribute(name = "showUnconserved")
+    protected Boolean showUnconserved;
+
+    @XmlAttribute(name = "showBoxes")
+    protected Boolean showBoxes;
+
+    @XmlAttribute(name = "wrapAlignment")
+    protected Boolean wrapAlignment;
+
+    @XmlAttribute(name = "renderGaps")
+    protected Boolean renderGaps;
+
+    @XmlAttribute(name = "showSequenceFeatures")
+    protected Boolean showSequenceFeatures;
+
+    @XmlAttribute(name = "showNPfeatureTooltip")
+    protected Boolean showNPfeatureTooltip;
+
+    @XmlAttribute(name = "showDbRefTooltip")
+    protected Boolean showDbRefTooltip;
+
+    @XmlAttribute(name = "followHighlight")
+    protected Boolean followHighlight;
+
+    @XmlAttribute(name = "followSelection")
+    protected Boolean followSelection;
+
+    @XmlAttribute(name = "showAnnotation")
+    protected Boolean showAnnotation;
+
+    @XmlAttribute(name = "showStructureProviders")
+    protected Boolean showStructureProviders;
+
+    @XmlAttribute(name = "centreColumnLabels")
+    protected Boolean centreColumnLabels;
+
+    /**
+     * whether a new group has conservation displayed by default
+     * 
+     */
+    @XmlAttribute(name = "showGroupConservation")
+    protected Boolean showGroupConservation;
+
+    /**
+     * whether a new group has consensus displayed by default
+     * 
+     */
+    @XmlAttribute(name = "showGroupConsensus")
+    protected Boolean showGroupConsensus;
+
+    /**
+     * whether a new group has secondary structure consensus displayed by
+     * default
+     * 
+     */
+    @XmlAttribute(name = "showGroupSecStrConsensus")
+    protected Boolean showGroupSecStrConsensus;
+
+    @XmlAttribute(name = "startRes")
+    protected Integer startRes;
+
+    @XmlAttribute(name = "startSeq")
+    protected Integer startSeq;
+
+    @XmlAttribute(name = "charWidth")
+    protected Integer charWidth;
+
+    @XmlAttribute(name = "charHeight")
+    protected Integer charHeight;
+
+    @XmlAttribute(name = "fontName")
+    protected String fontName;
+
+    @XmlAttribute(name = "fontSize")
+    protected Integer fontSize;
+
+    @XmlAttribute(name = "fontStyle")
+    protected Integer fontStyle;
+
+    @XmlAttribute(name = "idWidth")
+    protected Integer idWidth;
+
+    @XmlAttribute(name = "idWidthManuallyAdjusted")
+    protected Boolean idWidthManuallyAdjusted;
+
+    @XmlAttribute(name = "scaleProteinAsCdna")
+    protected Boolean scaleProteinAsCdna;
+
+    @XmlAttribute(name = "viewName")
+    protected String viewName;
+
+    @XmlAttribute(name = "sequenceSetId")
+    protected String sequenceSetId;
+
+    @XmlAttribute(name = "gatheredViews")
+    protected Boolean gatheredViews;
+
+    @XmlAttribute(name = "textCol1")
+    protected Integer textCol1;
+
+    @XmlAttribute(name = "textCol2")
+    protected Integer textCol2;
+
+    @XmlAttribute(name = "textColThreshold")
+    protected Integer textColThreshold;
+
+    /**
+     * unique id used by jalview to synchronize between stored and instantiated
+     * views
+     * 
+     */
+    @XmlAttribute(name = "id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * The viewport id of this viewport's (cdna/protein) coding complement, if
+     * any
+     * 
+     */
+    @XmlAttribute(name = "complementId")
+    protected String complementId;
+
+    @XmlAttribute(name = "showComplementFeatures")
+    protected Boolean showComplementFeatures;
+
+    @XmlAttribute(name = "showComplementFeaturesOnTop")
+    protected Boolean showComplementFeaturesOnTop;
+
+    @XmlAttribute(name = "width")
+    protected Integer width;
+
+    @XmlAttribute(name = "height")
+    protected Integer height;
+
+    @XmlAttribute(name = "xpos")
+    protected Integer xpos;
+
+    @XmlAttribute(name = "ypos")
+    protected Integer ypos;
+
+    @XmlAttribute(name = "conservationSelected")
+    protected Boolean conservationSelected;
+
+    /**
+     * Conservation shading increment
+     * 
+     */
+    @XmlAttribute(name = "consThreshold")
+    protected Integer consThreshold;
+
+    @XmlAttribute(name = "pidSelected")
+    protected Boolean pidSelected;
+
+    /**
+     * Percent Identity Threshold
+     * 
+     */
+    @XmlAttribute(name = "pidThreshold")
+    protected Integer pidThreshold;
+
+    /**
+     * Secondary structure consensus shading - since 2.11.4
+     * 
+     */
+    @XmlAttribute(name = "secstrSelected")
+    protected Boolean secstrSelected;
+
+    /**
+     * Secondary structure consensus increment
+     * 
+     */
+    @XmlAttribute(name = "secstrThreshold")
+    protected Integer secstrThreshold;
+
+    @XmlAttribute(name = "showConsensusHistogram")
+    protected Boolean showConsensusHistogram;
+
+    @XmlAttribute(name = "showSequenceLogo")
+    protected Boolean showSequenceLogo;
+
+    @XmlAttribute(name = "normaliseSequenceLogo")
+    protected Boolean normaliseSequenceLogo;
+
+    @XmlAttribute(name = "ignoreGapsinConsensus")
+    protected Boolean ignoreGapsinConsensus;
+
+    /**
+     * Gets the value of the annotationColours property.
+     * 
+     * @return possible object is {@link AnnotationColourScheme }
+     * 
+     */
+    public AnnotationColourScheme getAnnotationColours()
+    {
+      return annotationColours;
+    }
+
+    /**
+     * Sets the value of the annotationColours property.
+     * 
+     * @param value
+     *          allowed object is {@link AnnotationColourScheme }
+     * 
+     */
+    public void setAnnotationColours(AnnotationColourScheme value)
+    {
+      this.annotationColours = value;
+    }
+
+    /**
+     * Gets the value of the hiddenColumns property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the hiddenColumns property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getHiddenColumns().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JalviewModel.Viewport.HiddenColumns }
+     * </p>
+     * 
+     * 
+     * @return The value of the hiddenColumns property.
+     */
+    public List<JalviewModel.Viewport.HiddenColumns> getHiddenColumns()
+    {
+      if (hiddenColumns == null)
+      {
+        hiddenColumns = new ArrayList<JalviewModel.Viewport.HiddenColumns>();
+      }
+      return this.hiddenColumns;
+    }
+
+    /**
+     * Gets the value of the calcIdParam property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the calcIdParam property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getCalcIdParam().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JalviewModel.Viewport.CalcIdParam }
+     * </p>
+     * 
+     * 
+     * @return The value of the calcIdParam property.
+     */
+    public List<JalviewModel.Viewport.CalcIdParam> getCalcIdParam()
+    {
+      if (calcIdParam == null)
+      {
+        calcIdParam = new ArrayList<JalviewModel.Viewport.CalcIdParam>();
+      }
+      return this.calcIdParam;
+    }
+
+    /**
+     * Gets the value of the overview property.
+     * 
+     * @return possible object is {@link JalviewModel.Viewport.Overview }
+     * 
+     */
+    public JalviewModel.Viewport.Overview getOverview()
+    {
+      return overview;
+    }
+
+    /**
+     * Sets the value of the overview property.
+     * 
+     * @param value
+     *          allowed object is {@link JalviewModel.Viewport.Overview }
+     * 
+     */
+    public void setOverview(JalviewModel.Viewport.Overview value)
+    {
+      this.overview = value;
+    }
+
+    /**
+     * Gets the value of the secStrProvider property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the secStrProvider property.
+     * </p>
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * </p>
+     * 
+     * <pre>
+     * getSecStrProvider().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list {@link String }
+     * </p>
+     * 
+     * 
+     * @return The value of the secStrProvider property.
+     */
+    public List<String> getSecStrProvider()
+    {
+      if (secStrProvider == null)
+      {
+        secStrProvider = new ArrayList<String>();
+      }
+      return this.secStrProvider;
+    }
+
+    /**
+     * Gets the value of the bgColour property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getBgColour()
+    {
+      return bgColour;
+    }
+
+    /**
+     * Sets the value of the bgColour property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setBgColour(String value)
+    {
+      this.bgColour = value;
+    }
+
+    /**
+     * Gets the value of the title property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getTitle()
+    {
+      return title;
+    }
+
+    /**
+     * Sets the value of the title property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setTitle(String value)
+    {
+      this.title = value;
+    }
+
+    /**
+     * Gets the value of the showFullId property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowFullId()
+    {
+      return showFullId;
+    }
+
+    /**
+     * Sets the value of the showFullId property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowFullId(Boolean value)
+    {
+      this.showFullId = value;
+    }
+
+    /**
+     * Gets the value of the rightAlignIds property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isRightAlignIds()
+    {
+      return rightAlignIds;
+    }
+
+    /**
+     * Sets the value of the rightAlignIds property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setRightAlignIds(Boolean value)
+    {
+      this.rightAlignIds = value;
+    }
+
+    /**
+     * Gets the value of the showText property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowText()
+    {
+      return showText;
+    }
+
+    /**
+     * Sets the value of the showText property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowText(Boolean value)
+    {
+      this.showText = value;
+    }
+
+    /**
+     * Gets the value of the showColourText property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowColourText()
+    {
+      return showColourText;
+    }
+
+    /**
+     * Sets the value of the showColourText property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowColourText(Boolean value)
+    {
+      this.showColourText = value;
+    }
+
+    /**
+     * Gets the value of the showUnconserved property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowUnconserved()
+    {
+      if (showUnconserved == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showUnconserved;
+      }
+    }
 
-        /**
-         * Sets the value of the showNPfeatureTooltip property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowNPfeatureTooltip(Boolean value) {
-            this.showNPfeatureTooltip = value;
-        }
+    /**
+     * Sets the value of the showUnconserved property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowUnconserved(Boolean value)
+    {
+      this.showUnconserved = value;
+    }
 
-        /**
-         * Gets the value of the showDbRefTooltip property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowDbRefTooltip() {
-            return showDbRefTooltip;
-        }
+    /**
+     * Gets the value of the showBoxes property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowBoxes()
+    {
+      return showBoxes;
+    }
 
-        /**
-         * Sets the value of the showDbRefTooltip property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowDbRefTooltip(Boolean value) {
-            this.showDbRefTooltip = value;
-        }
+    /**
+     * Sets the value of the showBoxes property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowBoxes(Boolean value)
+    {
+      this.showBoxes = value;
+    }
 
-        /**
-         * Gets the value of the followHighlight property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isFollowHighlight() {
-            if (followHighlight == null) {
-                return true;
-            } else {
-                return followHighlight;
-            }
-        }
+    /**
+     * Gets the value of the wrapAlignment property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isWrapAlignment()
+    {
+      return wrapAlignment;
+    }
 
-        /**
-         * Sets the value of the followHighlight property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setFollowHighlight(Boolean value) {
-            this.followHighlight = value;
-        }
+    /**
+     * Sets the value of the wrapAlignment property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setWrapAlignment(Boolean value)
+    {
+      this.wrapAlignment = value;
+    }
 
-        /**
-         * Gets the value of the followSelection property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isFollowSelection() {
-            if (followSelection == null) {
-                return true;
-            } else {
-                return followSelection;
-            }
-        }
+    /**
+     * Gets the value of the renderGaps property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isRenderGaps()
+    {
+      return renderGaps;
+    }
 
-        /**
-         * Sets the value of the followSelection property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setFollowSelection(Boolean value) {
-            this.followSelection = value;
-        }
+    /**
+     * Sets the value of the renderGaps property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setRenderGaps(Boolean value)
+    {
+      this.renderGaps = value;
+    }
 
-        /**
-         * Gets the value of the showAnnotation property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowAnnotation() {
-            return showAnnotation;
-        }
+    /**
+     * Gets the value of the showSequenceFeatures property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowSequenceFeatures()
+    {
+      return showSequenceFeatures;
+    }
 
-        /**
-         * Sets the value of the showAnnotation property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowAnnotation(Boolean value) {
-            this.showAnnotation = value;
-        }
+    /**
+     * Sets the value of the showSequenceFeatures property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowSequenceFeatures(Boolean value)
+    {
+      this.showSequenceFeatures = value;
+    }
 
-        /**
-         * Gets the value of the showStructureProviders property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isShowStructureProviders() {
-            return showStructureProviders;
-        }
+    /**
+     * Gets the value of the showNPfeatureTooltip property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowNPfeatureTooltip()
+    {
+      return showNPfeatureTooltip;
+    }
 
-        /**
-         * Sets the value of the showStructureProviders property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowStructureProviders(Boolean value) {
-            this.showStructureProviders = value;
-        }
+    /**
+     * Sets the value of the showNPfeatureTooltip property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowNPfeatureTooltip(Boolean value)
+    {
+      this.showNPfeatureTooltip = value;
+    }
 
-        /**
-         * Gets the value of the centreColumnLabels property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isCentreColumnLabels() {
-            if (centreColumnLabels == null) {
-                return false;
-            } else {
-                return centreColumnLabels;
-            }
-        }
+    /**
+     * Gets the value of the showDbRefTooltip property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowDbRefTooltip()
+    {
+      return showDbRefTooltip;
+    }
 
-        /**
-         * Sets the value of the centreColumnLabels property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setCentreColumnLabels(Boolean value) {
-            this.centreColumnLabels = value;
-        }
+    /**
+     * Sets the value of the showDbRefTooltip property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowDbRefTooltip(Boolean value)
+    {
+      this.showDbRefTooltip = value;
+    }
 
-        /**
-         * whether a new group has conservation displayed by default
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowGroupConservation() {
-            if (showGroupConservation == null) {
-                return false;
-            } else {
-                return showGroupConservation;
-            }
-        }
+    /**
+     * Gets the value of the followHighlight property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isFollowHighlight()
+    {
+      if (followHighlight == null)
+      {
+        return true;
+      }
+      else
+      {
+        return followHighlight;
+      }
+    }
 
-        /**
-         * Sets the value of the showGroupConservation property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isShowGroupConservation()
-         */
-        public void setShowGroupConservation(Boolean value) {
-            this.showGroupConservation = value;
-        }
+    /**
+     * Sets the value of the followHighlight property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setFollowHighlight(Boolean value)
+    {
+      this.followHighlight = value;
+    }
 
-        /**
-         * whether a new group has consensus displayed by default
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowGroupConsensus() {
-            if (showGroupConsensus == null) {
-                return false;
-            } else {
-                return showGroupConsensus;
-            }
-        }
+    /**
+     * Gets the value of the followSelection property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isFollowSelection()
+    {
+      if (followSelection == null)
+      {
+        return true;
+      }
+      else
+      {
+        return followSelection;
+      }
+    }
 
-        /**
-         * Sets the value of the showGroupConsensus property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isShowGroupConsensus()
-         */
-        public void setShowGroupConsensus(Boolean value) {
-            this.showGroupConsensus = value;
-        }
+    /**
+     * Sets the value of the followSelection property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setFollowSelection(Boolean value)
+    {
+      this.followSelection = value;
+    }
 
-        /**
-         * whether a new group has secondary structure consensus displayed by default
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowGroupSecStrConsensus() {
-            if (showGroupSecStrConsensus == null) {
-                return false;
-            } else {
-                return showGroupSecStrConsensus;
-            }
-        }
+    /**
+     * Gets the value of the showAnnotation property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowAnnotation()
+    {
+      return showAnnotation;
+    }
 
-        /**
-         * Sets the value of the showGroupSecStrConsensus property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isShowGroupSecStrConsensus()
-         */
-        public void setShowGroupSecStrConsensus(Boolean value) {
-            this.showGroupSecStrConsensus = value;
-        }
+    /**
+     * Sets the value of the showAnnotation property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowAnnotation(Boolean value)
+    {
+      this.showAnnotation = value;
+    }
 
-        /**
-         * Gets the value of the startRes property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getStartRes() {
-            return startRes;
-        }
+    /**
+     * Gets the value of the showStructureProviders property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isShowStructureProviders()
+    {
+      return showStructureProviders;
+    }
 
-        /**
-         * Sets the value of the startRes property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setStartRes(Integer value) {
-            this.startRes = value;
-        }
+    /**
+     * Sets the value of the showStructureProviders property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowStructureProviders(Boolean value)
+    {
+      this.showStructureProviders = value;
+    }
 
-        /**
-         * Gets the value of the startSeq property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getStartSeq() {
-            return startSeq;
-        }
+    /**
+     * Gets the value of the centreColumnLabels property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isCentreColumnLabels()
+    {
+      if (centreColumnLabels == null)
+      {
+        return false;
+      }
+      else
+      {
+        return centreColumnLabels;
+      }
+    }
 
-        /**
-         * Sets the value of the startSeq property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setStartSeq(Integer value) {
-            this.startSeq = value;
-        }
+    /**
+     * Sets the value of the centreColumnLabels property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setCentreColumnLabels(Boolean value)
+    {
+      this.centreColumnLabels = value;
+    }
 
-        /**
-         * Gets the value of the charWidth property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getCharWidth() {
-            return charWidth;
-        }
+    /**
+     * whether a new group has conservation displayed by default
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowGroupConservation()
+    {
+      if (showGroupConservation == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showGroupConservation;
+      }
+    }
 
-        /**
-         * Sets the value of the charWidth property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setCharWidth(Integer value) {
-            this.charWidth = value;
-        }
+    /**
+     * Sets the value of the showGroupConservation property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     * @see #isShowGroupConservation()
+     */
+    public void setShowGroupConservation(Boolean value)
+    {
+      this.showGroupConservation = value;
+    }
+
+    /**
+     * whether a new group has consensus displayed by default
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowGroupConsensus()
+    {
+      if (showGroupConsensus == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showGroupConsensus;
+      }
+    }
 
-        /**
-         * Gets the value of the charHeight property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getCharHeight() {
-            return charHeight;
-        }
+    /**
+     * Sets the value of the showGroupConsensus property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     * @see #isShowGroupConsensus()
+     */
+    public void setShowGroupConsensus(Boolean value)
+    {
+      this.showGroupConsensus = value;
+    }
 
-        /**
-         * Sets the value of the charHeight property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setCharHeight(Integer value) {
-            this.charHeight = value;
-        }
+    /**
+     * whether a new group has secondary structure consensus displayed by
+     * default
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowGroupSecStrConsensus()
+    {
+      if (showGroupSecStrConsensus == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showGroupSecStrConsensus;
+      }
+    }
 
-        /**
-         * Gets the value of the fontName property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getFontName() {
-            return fontName;
-        }
+    /**
+     * Sets the value of the showGroupSecStrConsensus property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     * @see #isShowGroupSecStrConsensus()
+     */
+    public void setShowGroupSecStrConsensus(Boolean value)
+    {
+      this.showGroupSecStrConsensus = value;
+    }
 
-        /**
-         * Sets the value of the fontName property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setFontName(String value) {
-            this.fontName = value;
-        }
+    /**
+     * Gets the value of the startRes property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getStartRes()
+    {
+      return startRes;
+    }
 
-        /**
-         * Gets the value of the fontSize property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getFontSize() {
-            return fontSize;
-        }
+    /**
+     * Sets the value of the startRes property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setStartRes(Integer value)
+    {
+      this.startRes = value;
+    }
 
-        /**
-         * Sets the value of the fontSize property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setFontSize(Integer value) {
-            this.fontSize = value;
-        }
+    /**
+     * Gets the value of the startSeq property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getStartSeq()
+    {
+      return startSeq;
+    }
 
-        /**
-         * Gets the value of the fontStyle property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getFontStyle() {
-            return fontStyle;
-        }
+    /**
+     * Sets the value of the startSeq property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setStartSeq(Integer value)
+    {
+      this.startSeq = value;
+    }
 
-        /**
-         * Sets the value of the fontStyle property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setFontStyle(Integer value) {
-            this.fontStyle = value;
-        }
+    /**
+     * Gets the value of the charWidth property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getCharWidth()
+    {
+      return charWidth;
+    }
 
-        /**
-         * Gets the value of the idWidth property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getIdWidth() {
-            return idWidth;
-        }
+    /**
+     * Sets the value of the charWidth property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setCharWidth(Integer value)
+    {
+      this.charWidth = value;
+    }
 
-        /**
-         * Sets the value of the idWidth property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setIdWidth(Integer value) {
-            this.idWidth = value;
-        }
+    /**
+     * Gets the value of the charHeight property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getCharHeight()
+    {
+      return charHeight;
+    }
 
-        /**
-         * Gets the value of the idWidthManuallyAdjusted property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isIdWidthManuallyAdjusted() {
-            return idWidthManuallyAdjusted;
-        }
+    /**
+     * Sets the value of the charHeight property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setCharHeight(Integer value)
+    {
+      this.charHeight = value;
+    }
 
-        /**
-         * Sets the value of the idWidthManuallyAdjusted property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setIdWidthManuallyAdjusted(Boolean value) {
-            this.idWidthManuallyAdjusted = value;
-        }
+    /**
+     * Gets the value of the fontName property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getFontName()
+    {
+      return fontName;
+    }
 
-        /**
-         * Gets the value of the scaleProteinAsCdna property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isScaleProteinAsCdna() {
-            if (scaleProteinAsCdna == null) {
-                return true;
-            } else {
-                return scaleProteinAsCdna;
-            }
-        }
+    /**
+     * Sets the value of the fontName property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setFontName(String value)
+    {
+      this.fontName = value;
+    }
 
-        /**
-         * Sets the value of the scaleProteinAsCdna property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setScaleProteinAsCdna(Boolean value) {
-            this.scaleProteinAsCdna = value;
-        }
+    /**
+     * Gets the value of the fontSize property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getFontSize()
+    {
+      return fontSize;
+    }
 
-        /**
-         * Gets the value of the viewName property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getViewName() {
-            return viewName;
-        }
+    /**
+     * Sets the value of the fontSize property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setFontSize(Integer value)
+    {
+      this.fontSize = value;
+    }
 
-        /**
-         * Sets the value of the viewName property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setViewName(String value) {
-            this.viewName = value;
-        }
+    /**
+     * Gets the value of the fontStyle property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getFontStyle()
+    {
+      return fontStyle;
+    }
 
-        /**
-         * Gets the value of the sequenceSetId property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getSequenceSetId() {
-            return sequenceSetId;
-        }
+    /**
+     * Sets the value of the fontStyle property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setFontStyle(Integer value)
+    {
+      this.fontStyle = value;
+    }
 
-        /**
-         * Sets the value of the sequenceSetId property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setSequenceSetId(String value) {
-            this.sequenceSetId = value;
-        }
+    /**
+     * Gets the value of the idWidth property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getIdWidth()
+    {
+      return idWidth;
+    }
 
-        /**
-         * Gets the value of the gatheredViews property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isGatheredViews() {
-            return gatheredViews;
-        }
+    /**
+     * Sets the value of the idWidth property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setIdWidth(Integer value)
+    {
+      this.idWidth = value;
+    }
 
-        /**
-         * Sets the value of the gatheredViews property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setGatheredViews(Boolean value) {
-            this.gatheredViews = value;
-        }
+    /**
+     * Gets the value of the idWidthManuallyAdjusted property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isIdWidthManuallyAdjusted()
+    {
+      return idWidthManuallyAdjusted;
+    }
 
-        /**
-         * Gets the value of the textCol1 property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getTextCol1() {
-            return textCol1;
-        }
+    /**
+     * Sets the value of the idWidthManuallyAdjusted property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setIdWidthManuallyAdjusted(Boolean value)
+    {
+      this.idWidthManuallyAdjusted = value;
+    }
 
-        /**
-         * Sets the value of the textCol1 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setTextCol1(Integer value) {
-            this.textCol1 = value;
-        }
+    /**
+     * Gets the value of the scaleProteinAsCdna property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isScaleProteinAsCdna()
+    {
+      if (scaleProteinAsCdna == null)
+      {
+        return true;
+      }
+      else
+      {
+        return scaleProteinAsCdna;
+      }
+    }
 
-        /**
-         * Gets the value of the textCol2 property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getTextCol2() {
-            return textCol2;
-        }
+    /**
+     * Sets the value of the scaleProteinAsCdna property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setScaleProteinAsCdna(Boolean value)
+    {
+      this.scaleProteinAsCdna = value;
+    }
 
-        /**
-         * Sets the value of the textCol2 property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setTextCol2(Integer value) {
-            this.textCol2 = value;
-        }
+    /**
+     * Gets the value of the viewName property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getViewName()
+    {
+      return viewName;
+    }
 
-        /**
-         * Gets the value of the textColThreshold property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getTextColThreshold() {
-            return textColThreshold;
-        }
+    /**
+     * Sets the value of the viewName property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setViewName(String value)
+    {
+      this.viewName = value;
+    }
+
+    /**
+     * Gets the value of the sequenceSetId property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getSequenceSetId()
+    {
+      return sequenceSetId;
+    }
 
-        /**
-         * Sets the value of the textColThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setTextColThreshold(Integer value) {
-            this.textColThreshold = value;
-        }
+    /**
+     * Sets the value of the sequenceSetId property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setSequenceSetId(String value)
+    {
+      this.sequenceSetId = value;
+    }
 
-        /**
-         * unique id used by jalview to
-         *                                                                     synchronize
-         *                                                                     between stored and
-         *                                                                     instantiated views
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getId() {
-            return id;
-        }
+    /**
+     * Gets the value of the gatheredViews property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isGatheredViews()
+    {
+      return gatheredViews;
+    }
 
-        /**
-         * Sets the value of the id property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getId()
-         */
-        public void setId(String value) {
-            this.id = value;
-        }
+    /**
+     * Sets the value of the gatheredViews property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setGatheredViews(Boolean value)
+    {
+      this.gatheredViews = value;
+    }
 
-        /**
-         * The viewport id of this viewport's
-         *                                                                     (cdna/protein) coding complement, if any
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getComplementId() {
-            return complementId;
-        }
+    /**
+     * Gets the value of the textCol1 property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getTextCol1()
+    {
+      return textCol1;
+    }
 
-        /**
-         * Sets the value of the complementId property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getComplementId()
-         */
-        public void setComplementId(String value) {
-            this.complementId = value;
-        }
+    /**
+     * Sets the value of the textCol1 property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setTextCol1(Integer value)
+    {
+      this.textCol1 = value;
+    }
 
-        /**
-         * Gets the value of the showComplementFeatures property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowComplementFeatures() {
-            if (showComplementFeatures == null) {
-                return false;
-            } else {
-                return showComplementFeatures;
-            }
-        }
+    /**
+     * Gets the value of the textCol2 property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getTextCol2()
+    {
+      return textCol2;
+    }
 
-        /**
-         * Sets the value of the showComplementFeatures property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowComplementFeatures(Boolean value) {
-            this.showComplementFeatures = value;
-        }
+    /**
+     * Sets the value of the textCol2 property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setTextCol2(Integer value)
+    {
+      this.textCol2 = value;
+    }
 
-        /**
-         * Gets the value of the showComplementFeaturesOnTop property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowComplementFeaturesOnTop() {
-            if (showComplementFeaturesOnTop == null) {
-                return false;
-            } else {
-                return showComplementFeaturesOnTop;
-            }
-        }
+    /**
+     * Gets the value of the textColThreshold property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getTextColThreshold()
+    {
+      return textColThreshold;
+    }
 
-        /**
-         * Sets the value of the showComplementFeaturesOnTop property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowComplementFeaturesOnTop(Boolean value) {
-            this.showComplementFeaturesOnTop = value;
-        }
+    /**
+     * Sets the value of the textColThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setTextColThreshold(Integer value)
+    {
+      this.textColThreshold = value;
+    }
 
-        /**
-         * Gets the value of the width property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getWidth() {
-            return width;
-        }
+    /**
+     * unique id used by jalview to synchronize between stored and instantiated
+     * views
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getId()
+    {
+      return id;
+    }
 
-        /**
-         * Sets the value of the width property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setWidth(Integer value) {
-            this.width = value;
-        }
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     * @see #getId()
+     */
+    public void setId(String value)
+    {
+      this.id = value;
+    }
 
-        /**
-         * Gets the value of the height property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getHeight() {
-            return height;
-        }
+    /**
+     * The viewport id of this viewport's (cdna/protein) coding complement, if
+     * any
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getComplementId()
+    {
+      return complementId;
+    }
 
-        /**
-         * Sets the value of the height property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setHeight(Integer value) {
-            this.height = value;
-        }
+    /**
+     * Sets the value of the complementId property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     * @see #getComplementId()
+     */
+    public void setComplementId(String value)
+    {
+      this.complementId = value;
+    }
 
-        /**
-         * Gets the value of the xpos property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getXpos() {
-            return xpos;
-        }
+    /**
+     * Gets the value of the showComplementFeatures property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowComplementFeatures()
+    {
+      if (showComplementFeatures == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showComplementFeatures;
+      }
+    }
 
-        /**
-         * Sets the value of the xpos property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setXpos(Integer value) {
-            this.xpos = value;
-        }
+    /**
+     * Sets the value of the showComplementFeatures property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowComplementFeatures(Boolean value)
+    {
+      this.showComplementFeatures = value;
+    }
 
-        /**
-         * Gets the value of the ypos property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getYpos() {
-            return ypos;
-        }
+    /**
+     * Gets the value of the showComplementFeaturesOnTop property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowComplementFeaturesOnTop()
+    {
+      if (showComplementFeaturesOnTop == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showComplementFeaturesOnTop;
+      }
+    }
 
-        /**
-         * Sets the value of the ypos property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         */
-        public void setYpos(Integer value) {
-            this.ypos = value;
-        }
+    /**
+     * Sets the value of the showComplementFeaturesOnTop property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowComplementFeaturesOnTop(Boolean value)
+    {
+      this.showComplementFeaturesOnTop = value;
+    }
 
-        /**
-         * Gets the value of the conservationSelected property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isConservationSelected() {
-            return conservationSelected;
-        }
+    /**
+     * Gets the value of the width property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getWidth()
+    {
+      return width;
+    }
 
-        /**
-         * Sets the value of the conservationSelected property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setConservationSelected(Boolean value) {
-            this.conservationSelected = value;
-        }
+    /**
+     * Sets the value of the width property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setWidth(Integer value)
+    {
+      this.width = value;
+    }
 
-        /**
-         * Conservation shading increment
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getConsThreshold() {
-            return consThreshold;
-        }
+    /**
+     * Gets the value of the height property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getHeight()
+    {
+      return height;
+    }
 
-        /**
-         * Sets the value of the consThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         * @see #getConsThreshold()
-         */
-        public void setConsThreshold(Integer value) {
-            this.consThreshold = value;
-        }
+    /**
+     * Sets the value of the height property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setHeight(Integer value)
+    {
+      this.height = value;
+    }
 
-        /**
-         * Gets the value of the pidSelected property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isPidSelected() {
-            return pidSelected;
-        }
+    /**
+     * Gets the value of the xpos property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getXpos()
+    {
+      return xpos;
+    }
 
-        /**
-         * Sets the value of the pidSelected property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setPidSelected(Boolean value) {
-            this.pidSelected = value;
-        }
+    /**
+     * Sets the value of the xpos property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setXpos(Integer value)
+    {
+      this.xpos = value;
+    }
 
-        /**
-         * Percent Identity Threshold
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getPidThreshold() {
-            return pidThreshold;
-        }
+    /**
+     * Gets the value of the ypos property.
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getYpos()
+    {
+      return ypos;
+    }
+
+    /**
+     * Sets the value of the ypos property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     */
+    public void setYpos(Integer value)
+    {
+      this.ypos = value;
+    }
 
-        /**
-         * Sets the value of the pidThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         * @see #getPidThreshold()
-         */
-        public void setPidThreshold(Integer value) {
-            this.pidThreshold = value;
-        }
+    /**
+     * Gets the value of the conservationSelected property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isConservationSelected()
+    {
+      return conservationSelected;
+    }
 
-        /**
-         * Secondary structure consensus shading - since 2.11.4
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isSecstrSelected() {
-            if (secstrSelected == null) {
-                return false;
-            } else {
-                return secstrSelected;
-            }
-        }
+    /**
+     * Sets the value of the conservationSelected property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setConservationSelected(Boolean value)
+    {
+      this.conservationSelected = value;
+    }
 
-        /**
-         * Sets the value of the secstrSelected property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isSecstrSelected()
-         */
-        public void setSecstrSelected(Boolean value) {
-            this.secstrSelected = value;
-        }
+    /**
+     * Conservation shading increment
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getConsThreshold()
+    {
+      return consThreshold;
+    }
 
-        /**
-         * Secondary structure consensus increment
-         * 
-         * @return
-         *     possible object is
-         *     {@link Integer }
-         *     
-         */
-        public Integer getSecstrThreshold() {
-            return secstrThreshold;
-        }
+    /**
+     * Sets the value of the consThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     * @see #getConsThreshold()
+     */
+    public void setConsThreshold(Integer value)
+    {
+      this.consThreshold = value;
+    }
 
-        /**
-         * Sets the value of the secstrThreshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Integer }
-         *     
-         * @see #getSecstrThreshold()
-         */
-        public void setSecstrThreshold(Integer value) {
-            this.secstrThreshold = value;
-        }
+    /**
+     * Gets the value of the pidSelected property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isPidSelected()
+    {
+      return pidSelected;
+    }
 
-        /**
-         * Gets the value of the showConsensusHistogram property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowConsensusHistogram() {
-            if (showConsensusHistogram == null) {
-                return true;
-            } else {
-                return showConsensusHistogram;
-            }
-        }
+    /**
+     * Sets the value of the pidSelected property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setPidSelected(Boolean value)
+    {
+      this.pidSelected = value;
+    }
 
-        /**
-         * Sets the value of the showConsensusHistogram property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowConsensusHistogram(Boolean value) {
-            this.showConsensusHistogram = value;
-        }
+    /**
+     * Percent Identity Threshold
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getPidThreshold()
+    {
+      return pidThreshold;
+    }
 
-        /**
-         * Gets the value of the showSequenceLogo property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isShowSequenceLogo() {
-            if (showSequenceLogo == null) {
-                return false;
-            } else {
-                return showSequenceLogo;
-            }
-        }
+    /**
+     * Sets the value of the pidThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     * @see #getPidThreshold()
+     */
+    public void setPidThreshold(Integer value)
+    {
+      this.pidThreshold = value;
+    }
 
-        /**
-         * Sets the value of the showSequenceLogo property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setShowSequenceLogo(Boolean value) {
-            this.showSequenceLogo = value;
-        }
+    /**
+     * Secondary structure consensus shading - since 2.11.4
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isSecstrSelected()
+    {
+      if (secstrSelected == null)
+      {
+        return false;
+      }
+      else
+      {
+        return secstrSelected;
+      }
+    }
 
-        /**
-         * Gets the value of the normaliseSequenceLogo property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isNormaliseSequenceLogo() {
-            if (normaliseSequenceLogo == null) {
-                return false;
-            } else {
-                return normaliseSequenceLogo;
-            }
-        }
+    /**
+     * Sets the value of the secstrSelected property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     * @see #isSecstrSelected()
+     */
+    public void setSecstrSelected(Boolean value)
+    {
+      this.secstrSelected = value;
+    }
 
-        /**
-         * Sets the value of the normaliseSequenceLogo property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setNormaliseSequenceLogo(Boolean value) {
-            this.normaliseSequenceLogo = value;
-        }
+    /**
+     * Secondary structure consensus increment
+     * 
+     * @return possible object is {@link Integer }
+     * 
+     */
+    public Integer getSecstrThreshold()
+    {
+      return secstrThreshold;
+    }
 
-        /**
-         * Gets the value of the ignoreGapsinConsensus property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isIgnoreGapsinConsensus() {
-            if (ignoreGapsinConsensus == null) {
-                return true;
-            } else {
-                return ignoreGapsinConsensus;
-            }
-        }
+    /**
+     * Sets the value of the secstrThreshold property.
+     * 
+     * @param value
+     *          allowed object is {@link Integer }
+     * 
+     * @see #getSecstrThreshold()
+     */
+    public void setSecstrThreshold(Integer value)
+    {
+      this.secstrThreshold = value;
+    }
 
-        /**
-         * Sets the value of the ignoreGapsinConsensus property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setIgnoreGapsinConsensus(Boolean value) {
-            this.ignoreGapsinConsensus = value;
-        }
+    /**
+     * Gets the value of the showConsensusHistogram property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowConsensusHistogram()
+    {
+      if (showConsensusHistogram == null)
+      {
+        return true;
+      }
+      else
+      {
+        return showConsensusHistogram;
+      }
+    }
 
+    /**
+     * Sets the value of the showConsensusHistogram property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowConsensusHistogram(Boolean value)
+    {
+      this.showConsensusHistogram = value;
+    }
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet"&gt;
-         *       &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *       &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-         *       &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *     &lt;/extension&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class CalcIdParam
-            extends WebServiceParameterSet
-        {
+    /**
+     * Gets the value of the showSequenceLogo property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isShowSequenceLogo()
+    {
+      if (showSequenceLogo == null)
+      {
+        return false;
+      }
+      else
+      {
+        return showSequenceLogo;
+      }
+    }
 
-            /**
-             * handle for the calculation which uses
-             *                                                                                                                 this parameter set
-             * 
-             */
-            @XmlAttribute(name = "calcId", required = true)
-            protected String calcId;
-            /**
-             * should the calculation be performed
-             *                                                                                                                 immediately after loading in order to refresh results
-             * 
-             */
-            @XmlAttribute(name = "needsUpdate")
-            protected Boolean needsUpdate;
-            /**
-             * should the calculation be automatically
-             *                                                                                                                 performed on edits
-             * 
-             */
-            @XmlAttribute(name = "autoUpdate", required = true)
-            protected boolean autoUpdate;
-
-            /**
-             * handle for the calculation which uses
-             *                                                                                                                 this parameter set
-             * 
-             * @return
-             *     possible object is
-             *     {@link String }
-             *     
-             */
-            public String getCalcId() {
-                return calcId;
-            }
-
-            /**
-             * Sets the value of the calcId property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link String }
-             *     
-             * @see #getCalcId()
-             */
-            public void setCalcId(String value) {
-                this.calcId = value;
-            }
-
-            /**
-             * should the calculation be performed
-             *                                                                                                                 immediately after loading in order to refresh results
-             * 
-             * @return
-             *     possible object is
-             *     {@link Boolean }
-             *     
-             */
-            public boolean isNeedsUpdate() {
-                if (needsUpdate == null) {
-                    return false;
-                } else {
-                    return needsUpdate;
-                }
-            }
-
-            /**
-             * Sets the value of the needsUpdate property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Boolean }
-             *     
-             * @see #isNeedsUpdate()
-             */
-            public void setNeedsUpdate(Boolean value) {
-                this.needsUpdate = value;
-            }
-
-            /**
-             * should the calculation be automatically
-             *                                                                                                                 performed on edits
-             * 
-             */
-            public boolean isAutoUpdate() {
-                return autoUpdate;
-            }
-
-            /**
-             * Sets the value of the autoUpdate property.
-             * 
-             */
-            public void setAutoUpdate(boolean value) {
-                this.autoUpdate = value;
-            }
+    /**
+     * Sets the value of the showSequenceLogo property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setShowSequenceLogo(Boolean value)
+    {
+      this.showSequenceLogo = value;
+    }
 
-        }
+    /**
+     * Gets the value of the normaliseSequenceLogo property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isNormaliseSequenceLogo()
+    {
+      if (normaliseSequenceLogo == null)
+      {
+        return false;
+      }
+      else
+      {
+        return normaliseSequenceLogo;
+      }
+    }
 
+    /**
+     * Sets the value of the normaliseSequenceLogo property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setNormaliseSequenceLogo(Boolean value)
+    {
+      this.normaliseSequenceLogo = value;
+    }
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class HiddenColumns {
-
-            @XmlAttribute(name = "start")
-            protected Integer start;
-            @XmlAttribute(name = "end")
-            protected Integer end;
-
-            /**
-             * Gets the value of the start property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getStart() {
-                return start;
-            }
-
-            /**
-             * Sets the value of the start property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setStart(Integer value) {
-                this.start = value;
-            }
-
-            /**
-             * Gets the value of the end property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getEnd() {
-                return end;
-            }
-
-            /**
-             * Sets the value of the end property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setEnd(Integer value) {
-                this.end = value;
-            }
+    /**
+     * Gets the value of the ignoreGapsinConsensus property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isIgnoreGapsinConsensus()
+    {
+      if (ignoreGapsinConsensus == null)
+      {
+        return true;
+      }
+      else
+      {
+        return ignoreGapsinConsensus;
+      }
+    }
+
+    /**
+     * Sets the value of the ignoreGapsinConsensus property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setIgnoreGapsinConsensus(Boolean value)
+    {
+      this.ignoreGapsinConsensus = value;
+    }
 
+    /**
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
+     * 
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
+     * 
+     * <pre>
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet"&gt;
+     *       &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *       &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+     *       &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *     &lt;/extension&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class CalcIdParam extends WebServiceParameterSet
+    {
+
+      /**
+       * handle for the calculation which uses this parameter set
+       * 
+       */
+      @XmlAttribute(name = "calcId", required = true)
+      protected String calcId;
+
+      /**
+       * should the calculation be performed immediately after loading in order
+       * to refresh results
+       * 
+       */
+      @XmlAttribute(name = "needsUpdate")
+      protected Boolean needsUpdate;
+
+      /**
+       * should the calculation be automatically performed on edits
+       * 
+       */
+      @XmlAttribute(name = "autoUpdate", required = true)
+      protected boolean autoUpdate;
+
+      /**
+       * handle for the calculation which uses this parameter set
+       * 
+       * @return possible object is {@link String }
+       * 
+       */
+      public String getCalcId()
+      {
+        return calcId;
+      }
+
+      /**
+       * Sets the value of the calcId property.
+       * 
+       * @param value
+       *          allowed object is {@link String }
+       * 
+       * @see #getCalcId()
+       */
+      public void setCalcId(String value)
+      {
+        this.calcId = value;
+      }
+
+      /**
+       * should the calculation be performed immediately after loading in order
+       * to refresh results
+       * 
+       * @return possible object is {@link Boolean }
+       * 
+       */
+      public boolean isNeedsUpdate()
+      {
+        if (needsUpdate == null)
+        {
+          return false;
         }
+        else
+        {
+          return needsUpdate;
+        }
+      }
+
+      /**
+       * Sets the value of the needsUpdate property.
+       * 
+       * @param value
+       *          allowed object is {@link Boolean }
+       * 
+       * @see #isNeedsUpdate()
+       */
+      public void setNeedsUpdate(Boolean value)
+      {
+        this.needsUpdate = value;
+      }
+
+      /**
+       * should the calculation be automatically performed on edits
+       * 
+       */
+      public boolean isAutoUpdate()
+      {
+        return autoUpdate;
+      }
+
+      /**
+       * Sets the value of the autoUpdate property.
+       * 
+       */
+      public void setAutoUpdate(boolean value)
+      {
+        this.autoUpdate = value;
+      }
 
+    }
 
-        /**
-         * <p>Java class for anonymous complex type</p>.
-         * 
-         * <p>The following schema fragment specifies the expected content contained within this class.</p>
-         * 
-         * <pre>
-         * &lt;complexType&gt;
-         *   &lt;complexContent&gt;
-         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-         *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
-         *       &lt;attribute name="showHidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-         *       &lt;attribute name="residueColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="gapColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="hiddenColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-         *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-         *     &lt;/restriction&gt;
-         *   &lt;/complexContent&gt;
-         * &lt;/complexType&gt;
-         * </pre>
-         * 
-         * 
-         */
-        @XmlAccessorType(XmlAccessType.FIELD)
-        @XmlType(name = "")
-        public static class Overview {
-
-            @XmlAttribute(name = "showHidden")
-            protected Boolean showHidden;
-            @XmlAttribute(name = "residueColour")
-            protected Integer residueColour;
-            @XmlAttribute(name = "gapColour")
-            protected Integer gapColour;
-            @XmlAttribute(name = "hiddenColour")
-            protected Integer hiddenColour;
-            @XmlAttribute(name = "title")
-            protected String title;
-            @XmlAttribute(name = "width")
-            protected Integer width;
-            @XmlAttribute(name = "height")
-            protected Integer height;
-            @XmlAttribute(name = "xpos")
-            protected Integer xpos;
-            @XmlAttribute(name = "ypos")
-            protected Integer ypos;
-
-            /**
-             * Gets the value of the showHidden property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Boolean }
-             *     
-             */
-            public Boolean isShowHidden() {
-                return showHidden;
-            }
-
-            /**
-             * Sets the value of the showHidden property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Boolean }
-             *     
-             */
-            public void setShowHidden(Boolean value) {
-                this.showHidden = value;
-            }
-
-            /**
-             * Gets the value of the residueColour property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getResidueColour() {
-                return residueColour;
-            }
-
-            /**
-             * Sets the value of the residueColour property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setResidueColour(Integer value) {
-                this.residueColour = value;
-            }
-
-            /**
-             * Gets the value of the gapColour property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getGapColour() {
-                return gapColour;
-            }
-
-            /**
-             * Sets the value of the gapColour property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setGapColour(Integer value) {
-                this.gapColour = value;
-            }
-
-            /**
-             * Gets the value of the hiddenColour property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getHiddenColour() {
-                return hiddenColour;
-            }
-
-            /**
-             * Sets the value of the hiddenColour property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setHiddenColour(Integer value) {
-                this.hiddenColour = value;
-            }
-
-            /**
-             * Gets the value of the title property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link String }
-             *     
-             */
-            public String getTitle() {
-                return title;
-            }
-
-            /**
-             * Sets the value of the title property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link String }
-             *     
-             */
-            public void setTitle(String value) {
-                this.title = value;
-            }
-
-            /**
-             * Gets the value of the width property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getWidth() {
-                return width;
-            }
-
-            /**
-             * Sets the value of the width property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setWidth(Integer value) {
-                this.width = value;
-            }
-
-            /**
-             * Gets the value of the height property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getHeight() {
-                return height;
-            }
-
-            /**
-             * Sets the value of the height property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setHeight(Integer value) {
-                this.height = value;
-            }
-
-            /**
-             * Gets the value of the xpos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getXpos() {
-                return xpos;
-            }
-
-            /**
-             * Sets the value of the xpos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setXpos(Integer value) {
-                this.xpos = value;
-            }
-
-            /**
-             * Gets the value of the ypos property.
-             * 
-             * @return
-             *     possible object is
-             *     {@link Integer }
-             *     
-             */
-            public Integer getYpos() {
-                return ypos;
-            }
-
-            /**
-             * Sets the value of the ypos property.
-             * 
-             * @param value
-             *     allowed object is
-             *     {@link Integer }
-             *     
-             */
-            public void setYpos(Integer value) {
-                this.ypos = value;
-            }
+    /**
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
+     * 
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
+     * 
+     * <pre>
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+     *       &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *     &lt;/restriction&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class HiddenColumns
+    {
+
+      @XmlAttribute(name = "start")
+      protected Integer start;
+
+      @XmlAttribute(name = "end")
+      protected Integer end;
+
+      /**
+       * Gets the value of the start property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getStart()
+      {
+        return start;
+      }
+
+      /**
+       * Sets the value of the start property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setStart(Integer value)
+      {
+        this.start = value;
+      }
+
+      /**
+       * Gets the value of the end property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getEnd()
+      {
+        return end;
+      }
+
+      /**
+       * Sets the value of the end property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setEnd(Integer value)
+      {
+        this.end = value;
+      }
 
-        }
+    }
+
+    /**
+     * <p>
+     * Java class for anonymous complex type
+     * </p>
+     * .
+     * 
+     * <p>
+     * The following schema fragment specifies the expected content contained
+     * within this class.
+     * </p>
+     * 
+     * <pre>
+     * &lt;complexType&gt;
+     *   &lt;complexContent&gt;
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+     *       &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+     *       &lt;attribute name="showHidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+     *       &lt;attribute name="residueColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="gapColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="hiddenColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+     *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+     *     &lt;/restriction&gt;
+     *   &lt;/complexContent&gt;
+     * &lt;/complexType&gt;
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class Overview
+    {
+
+      @XmlAttribute(name = "showHidden")
+      protected Boolean showHidden;
+
+      @XmlAttribute(name = "residueColour")
+      protected Integer residueColour;
+
+      @XmlAttribute(name = "gapColour")
+      protected Integer gapColour;
+
+      @XmlAttribute(name = "hiddenColour")
+      protected Integer hiddenColour;
+
+      @XmlAttribute(name = "title")
+      protected String title;
+
+      @XmlAttribute(name = "width")
+      protected Integer width;
+
+      @XmlAttribute(name = "height")
+      protected Integer height;
+
+      @XmlAttribute(name = "xpos")
+      protected Integer xpos;
+
+      @XmlAttribute(name = "ypos")
+      protected Integer ypos;
+
+      /**
+       * Gets the value of the showHidden property.
+       * 
+       * @return possible object is {@link Boolean }
+       * 
+       */
+      public Boolean isShowHidden()
+      {
+        return showHidden;
+      }
+
+      /**
+       * Sets the value of the showHidden property.
+       * 
+       * @param value
+       *          allowed object is {@link Boolean }
+       * 
+       */
+      public void setShowHidden(Boolean value)
+      {
+        this.showHidden = value;
+      }
+
+      /**
+       * Gets the value of the residueColour property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getResidueColour()
+      {
+        return residueColour;
+      }
+
+      /**
+       * Sets the value of the residueColour property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setResidueColour(Integer value)
+      {
+        this.residueColour = value;
+      }
+
+      /**
+       * Gets the value of the gapColour property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getGapColour()
+      {
+        return gapColour;
+      }
+
+      /**
+       * Sets the value of the gapColour property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setGapColour(Integer value)
+      {
+        this.gapColour = value;
+      }
+
+      /**
+       * Gets the value of the hiddenColour property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getHiddenColour()
+      {
+        return hiddenColour;
+      }
+
+      /**
+       * Sets the value of the hiddenColour property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setHiddenColour(Integer value)
+      {
+        this.hiddenColour = value;
+      }
+
+      /**
+       * Gets the value of the title property.
+       * 
+       * @return possible object is {@link String }
+       * 
+       */
+      public String getTitle()
+      {
+        return title;
+      }
+
+      /**
+       * Sets the value of the title property.
+       * 
+       * @param value
+       *          allowed object is {@link String }
+       * 
+       */
+      public void setTitle(String value)
+      {
+        this.title = value;
+      }
+
+      /**
+       * Gets the value of the width property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getWidth()
+      {
+        return width;
+      }
+
+      /**
+       * Sets the value of the width property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setWidth(Integer value)
+      {
+        this.width = value;
+      }
+
+      /**
+       * Gets the value of the height property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getHeight()
+      {
+        return height;
+      }
+
+      /**
+       * Sets the value of the height property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setHeight(Integer value)
+      {
+        this.height = value;
+      }
+
+      /**
+       * Gets the value of the xpos property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getXpos()
+      {
+        return xpos;
+      }
+
+      /**
+       * Sets the value of the xpos property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setXpos(Integer value)
+      {
+        this.xpos = value;
+      }
+
+      /**
+       * Gets the value of the ypos property.
+       * 
+       * @return possible object is {@link Integer }
+       * 
+       */
+      public Integer getYpos()
+      {
+        return ypos;
+      }
+
+      /**
+       * Sets the value of the ypos property.
+       * 
+       * @param value
+       *          allowed object is {@link Integer }
+       * 
+       */
+      public void setYpos(Integer value)
+      {
+        this.ypos = value;
+      }
 
     }
 
+  }
+
 }
index b48ca13..f7bac13 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -16,11 +15,16 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for JalviewUserColours complex type</p>.
+ * <p>
+ * Java class for JalviewUserColours complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="JalviewUserColours"&gt;
@@ -71,567 +75,592 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "JalviewUserColours", namespace = "www.jalview.org/colours", propOrder = {
-    "version",
-    "colour",
-    "filter"
-})
-public class JalviewUserColours {
+@XmlType(
+  name = "JalviewUserColours",
+  namespace = "www.jalview.org/colours",
+  propOrder =
+  { "version", "colour", "filter" })
+public class JalviewUserColours
+{
+
+  /**
+   * Jalview colour scheme document version.
+   * 
+   */
+  @XmlElement(name = "Version", namespace = "")
+  protected String version;
+
+  @XmlElement(namespace = "")
+  protected List<JalviewUserColours.Colour> colour;
+
+  @XmlElement(namespace = "")
+  protected List<JalviewUserColours.Filter> filter;
+
+  @XmlAttribute(name = "schemeName")
+  protected String schemeName;
+
+  /**
+   * Jalview colour scheme document version.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getVersion()
+  {
+    return version;
+  }
+
+  /**
+   * Sets the value of the version property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getVersion()
+   */
+  public void setVersion(String value)
+  {
+    this.version = value;
+  }
+
+  /**
+   * Gets the value of the colour property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the colour property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getColour().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewUserColours.Colour }
+   * </p>
+   * 
+   * 
+   * @return The value of the colour property.
+   */
+  public List<JalviewUserColours.Colour> getColour()
+  {
+    if (colour == null)
+    {
+      colour = new ArrayList<JalviewUserColours.Colour>();
+    }
+    return this.colour;
+  }
+
+  /**
+   * Gets the value of the filter property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the filter property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getFilter().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link JalviewUserColours.Filter }
+   * </p>
+   * 
+   * 
+   * @return The value of the filter property.
+   */
+  public List<JalviewUserColours.Filter> getFilter()
+  {
+    if (filter == null)
+    {
+      filter = new ArrayList<JalviewUserColours.Filter>();
+    }
+    return this.filter;
+  }
+
+  /**
+   * Gets the value of the schemeName property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getSchemeName()
+  {
+    return schemeName;
+  }
+
+  /**
+   * Sets the value of the schemeName property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setSchemeName(String value)
+  {
+    this.schemeName = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attribute name="Name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="RGB" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+   *       &lt;attribute name="threshType" type="{www.jalview.org/colours}ThresholdType" /&gt;
+   *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+   *       &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *       &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "attributeName" })
+  public static class Colour
+  {
 
     /**
-     * Jalview colour scheme document version.
+     * name of feature attribute to colour by, or attribute and sub-attribute
      * 
      */
-    @XmlElement(name = "Version", namespace = "")
-    protected String version;
-    @XmlElement(namespace = "")
-    protected List<JalviewUserColours.Colour> colour;
     @XmlElement(namespace = "")
-    protected List<JalviewUserColours.Filter> filter;
-    @XmlAttribute(name = "schemeName")
-    protected String schemeName;
+    protected List<String> attributeName;
 
     /**
-     * Jalview colour scheme document version.
+     * Single letter residue code for an alignment colour scheme, or feature
+     * type for a feature colour scheme
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getVersion() {
-        return version;
-    }
+    @XmlAttribute(name = "Name")
+    protected String name;
 
-    /**
-     * Sets the value of the version property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getVersion()
-     */
-    public void setVersion(String value) {
-        this.version = value;
-    }
+    @XmlAttribute(name = "RGB", required = true)
+    protected String rgb;
+
+    @XmlAttribute(name = "minRGB")
+    protected String minRGB;
+
+    @XmlAttribute(name = "noValueColour")
+    protected NoValueColour noValueColour;
+
+    @XmlAttribute(name = "threshType")
+    protected ThresholdType threshType;
+
+    @XmlAttribute(name = "threshold")
+    protected Float threshold;
+
+    @XmlAttribute(name = "max")
+    protected Float max;
+
+    @XmlAttribute(name = "min")
+    protected Float min;
+
+    @XmlAttribute(name = "colourByLabel")
+    protected Boolean colourByLabel;
+
+    @XmlAttribute(name = "autoScale")
+    protected Boolean autoScale;
 
     /**
-     * Gets the value of the colour property.
+     * name of feature attribute to colour by, or attribute and sub-attribute
      * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the colour property.</p>
+     * Gets the value of the attributeName property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list, not a
+     * snapshot. Therefore any modification you make to the returned list will
+     * be present inside the JAXB object. This is why there is not a
+     * <CODE>set</CODE> method for the attributeName property.
+     * </p>
      * 
      * <p>
      * For example, to add a new item, do as follows:
      * </p>
+     * 
      * <pre>
-     * getColour().add(newItem);
+     * getAttributeName().add(newItem);
      * </pre>
      * 
      * 
      * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link JalviewUserColours.Colour }
+     * Objects of the following type(s) are allowed in the list {@link String }
      * </p>
      * 
      * 
-     * @return
-     *     The value of the colour property.
+     * @return The value of the attributeName property.
      */
-    public List<JalviewUserColours.Colour> getColour() {
-        if (colour == null) {
-            colour = new ArrayList<JalviewUserColours.Colour>();
-        }
-        return this.colour;
+    public List<String> getAttributeName()
+    {
+      if (attributeName == null)
+      {
+        attributeName = new ArrayList<String>();
+      }
+      return this.attributeName;
     }
 
     /**
-     * Gets the value of the filter property.
+     * Single letter residue code for an alignment colour scheme, or feature
+     * type for a feature colour scheme
      * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the filter property.</p>
+     * @return possible object is {@link String }
      * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getFilter().add(newItem);
-     * </pre>
+     */
+    public String getName()
+    {
+      return name;
+    }
+
+    /**
+     * Sets the value of the name property.
      * 
+     * @param value
+     *          allowed object is {@link String }
      * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link JalviewUserColours.Filter }
-     * </p>
+     * @see #getName()
+     */
+    public void setName(String value)
+    {
+      this.name = value;
+    }
+
+    /**
+     * Gets the value of the rgb property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getRGB()
+    {
+      return rgb;
+    }
+
+    /**
+     * Sets the value of the rgb property.
      * 
+     * @param value
+     *          allowed object is {@link String }
      * 
-     * @return
-     *     The value of the filter property.
      */
-    public List<JalviewUserColours.Filter> getFilter() {
-        if (filter == null) {
-            filter = new ArrayList<JalviewUserColours.Filter>();
-        }
-        return this.filter;
+    public void setRGB(String value)
+    {
+      this.rgb = value;
     }
 
     /**
-     * Gets the value of the schemeName property.
+     * Gets the value of the minRGB property.
+     * 
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getSchemeName() {
-        return schemeName;
+    public String getMinRGB()
+    {
+      return minRGB;
     }
 
     /**
-     * Sets the value of the schemeName property.
+     * Sets the value of the minRGB property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
+     *          allowed object is {@link String }
+     * 
      */
-    public void setSchemeName(String value) {
-        this.schemeName = value;
+    public void setMinRGB(String value)
+    {
+      this.minRGB = value;
     }
 
+    /**
+     * Gets the value of the noValueColour property.
+     * 
+     * @return possible object is {@link NoValueColour }
+     * 
+     */
+    public NoValueColour getNoValueColour()
+    {
+      if (noValueColour == null)
+      {
+        return NoValueColour.MIN;
+      }
+      else
+      {
+        return noValueColour;
+      }
+    }
 
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * Sets the value of the noValueColour property.
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * @param value
+     *          allowed object is {@link NoValueColour }
      * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attribute name="Name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="RGB" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
-     *       &lt;attribute name="threshType" type="{www.jalview.org/colours}ThresholdType" /&gt;
-     *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
-     *       &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *       &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     */
+    public void setNoValueColour(NoValueColour value)
+    {
+      this.noValueColour = value;
+    }
+
+    /**
+     * Gets the value of the threshType property.
      * 
+     * @return possible object is {@link ThresholdType }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "attributeName"
-    })
-    public static class Colour {
-
-        /**
-         * name of feature attribute to colour by, or attribute and sub-attribute
-         * 
-         */
-        @XmlElement(namespace = "")
-        protected List<String> attributeName;
-        /**
-         * Single letter residue code for an alignment colour scheme, or feature type for a feature colour scheme
-         * 
-         */
-        @XmlAttribute(name = "Name")
-        protected String name;
-        @XmlAttribute(name = "RGB", required = true)
-        protected String rgb;
-        @XmlAttribute(name = "minRGB")
-        protected String minRGB;
-        @XmlAttribute(name = "noValueColour")
-        protected NoValueColour noValueColour;
-        @XmlAttribute(name = "threshType")
-        protected ThresholdType threshType;
-        @XmlAttribute(name = "threshold")
-        protected Float threshold;
-        @XmlAttribute(name = "max")
-        protected Float max;
-        @XmlAttribute(name = "min")
-        protected Float min;
-        @XmlAttribute(name = "colourByLabel")
-        protected Boolean colourByLabel;
-        @XmlAttribute(name = "autoScale")
-        protected Boolean autoScale;
-
-        /**
-         * name of feature attribute to colour by, or attribute and sub-attribute
-         * 
-         * Gets the value of the attributeName property.
-         * 
-         * <p>This accessor method returns a reference to the live list,
-         * not a snapshot. Therefore any modification you make to the
-         * returned list will be present inside the JAXB object.
-         * This is why there is not a <CODE>set</CODE> method for the attributeName property.</p>
-         * 
-         * <p>
-         * For example, to add a new item, do as follows:
-         * </p>
-         * <pre>
-         * getAttributeName().add(newItem);
-         * </pre>
-         * 
-         * 
-         * <p>
-         * Objects of the following type(s) are allowed in the list
-         * {@link String }
-         * </p>
-         * 
-         * 
-         * @return
-         *     The value of the attributeName property.
-         */
-        public List<String> getAttributeName() {
-            if (attributeName == null) {
-                attributeName = new ArrayList<String>();
-            }
-            return this.attributeName;
-        }
-
-        /**
-         * Single letter residue code for an alignment colour scheme, or feature type for a feature colour scheme
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getName() {
-            return name;
-        }
-
-        /**
-         * Sets the value of the name property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         * @see #getName()
-         */
-        public void setName(String value) {
-            this.name = value;
-        }
-
-        /**
-         * Gets the value of the rgb property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getRGB() {
-            return rgb;
-        }
-
-        /**
-         * Sets the value of the rgb property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setRGB(String value) {
-            this.rgb = value;
-        }
-
-        /**
-         * Gets the value of the minRGB property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getMinRGB() {
-            return minRGB;
-        }
-
-        /**
-         * Sets the value of the minRGB property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setMinRGB(String value) {
-            this.minRGB = value;
-        }
-
-        /**
-         * Gets the value of the noValueColour property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link NoValueColour }
-         *     
-         */
-        public NoValueColour getNoValueColour() {
-            if (noValueColour == null) {
-                return NoValueColour.MIN;
-            } else {
-                return noValueColour;
-            }
-        }
-
-        /**
-         * Sets the value of the noValueColour property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link NoValueColour }
-         *     
-         */
-        public void setNoValueColour(NoValueColour value) {
-            this.noValueColour = value;
-        }
-
-        /**
-         * Gets the value of the threshType property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link ThresholdType }
-         *     
-         */
-        public ThresholdType getThreshType() {
-            return threshType;
-        }
-
-        /**
-         * Sets the value of the threshType property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link ThresholdType }
-         *     
-         */
-        public void setThreshType(ThresholdType value) {
-            this.threshType = value;
-        }
-
-        /**
-         * Gets the value of the threshold property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Float }
-         *     
-         */
-        public Float getThreshold() {
-            return threshold;
-        }
-
-        /**
-         * Sets the value of the threshold property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Float }
-         *     
-         */
-        public void setThreshold(Float value) {
-            this.threshold = value;
-        }
-
-        /**
-         * Gets the value of the max property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Float }
-         *     
-         */
-        public Float getMax() {
-            return max;
-        }
-
-        /**
-         * Sets the value of the max property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Float }
-         *     
-         */
-        public void setMax(Float value) {
-            this.max = value;
-        }
-
-        /**
-         * Gets the value of the min property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Float }
-         *     
-         */
-        public Float getMin() {
-            return min;
-        }
-
-        /**
-         * Sets the value of the min property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Float }
-         *     
-         */
-        public void setMin(Float value) {
-            this.min = value;
-        }
-
-        /**
-         * Gets the value of the colourByLabel property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isColourByLabel() {
-            return colourByLabel;
-        }
-
-        /**
-         * Sets the value of the colourByLabel property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setColourByLabel(Boolean value) {
-            this.colourByLabel = value;
-        }
-
-        /**
-         * Gets the value of the autoScale property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public Boolean isAutoScale() {
-            return autoScale;
-        }
-
-        /**
-         * Sets the value of the autoScale property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         */
-        public void setAutoScale(Boolean value) {
-            this.autoScale = value;
-        }
+    public ThresholdType getThreshType()
+    {
+      return threshType;
+    }
 
+    /**
+     * Sets the value of the threshType property.
+     * 
+     * @param value
+     *          allowed object is {@link ThresholdType }
+     * 
+     */
+    public void setThreshType(ThresholdType value)
+    {
+      this.threshType = value;
     }
 
+    /**
+     * Gets the value of the threshold property.
+     * 
+     * @return possible object is {@link Float }
+     * 
+     */
+    public Float getThreshold()
+    {
+      return threshold;
+    }
 
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * Sets the value of the threshold property.
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * @param value
+     *          allowed object is {@link Float }
      * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attribute name="featureType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     */
+    public void setThreshold(Float value)
+    {
+      this.threshold = value;
+    }
+
+    /**
+     * Gets the value of the max property.
+     * 
+     * @return possible object is {@link Float }
+     * 
+     */
+    public Float getMax()
+    {
+      return max;
+    }
+
+    /**
+     * Sets the value of the max property.
+     * 
+     * @param value
+     *          allowed object is {@link Float }
+     * 
+     */
+    public void setMax(Float value)
+    {
+      this.max = value;
+    }
+
+    /**
+     * Gets the value of the min property.
+     * 
+     * @return possible object is {@link Float }
+     * 
+     */
+    public Float getMin()
+    {
+      return min;
+    }
+
+    /**
+     * Sets the value of the min property.
      * 
+     * @param value
+     *          allowed object is {@link Float }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "matcherSet"
-    })
-    public static class Filter {
-
-        @XmlElement(namespace = "", required = true)
-        protected FeatureMatcherSet matcherSet;
-        @XmlAttribute(name = "featureType", required = true)
-        protected String featureType;
-
-        /**
-         * Gets the value of the matcherSet property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link FeatureMatcherSet }
-         *     
-         */
-        public FeatureMatcherSet getMatcherSet() {
-            return matcherSet;
-        }
-
-        /**
-         * Sets the value of the matcherSet property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link FeatureMatcherSet }
-         *     
-         */
-        public void setMatcherSet(FeatureMatcherSet value) {
-            this.matcherSet = value;
-        }
-
-        /**
-         * Gets the value of the featureType property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getFeatureType() {
-            return featureType;
-        }
-
-        /**
-         * Sets the value of the featureType property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setFeatureType(String value) {
-            this.featureType = value;
-        }
+    public void setMin(Float value)
+    {
+      this.min = value;
+    }
 
+    /**
+     * Gets the value of the colourByLabel property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isColourByLabel()
+    {
+      return colourByLabel;
     }
 
+    /**
+     * Sets the value of the colourByLabel property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setColourByLabel(Boolean value)
+    {
+      this.colourByLabel = value;
+    }
+
+    /**
+     * Gets the value of the autoScale property.
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public Boolean isAutoScale()
+    {
+      return autoScale;
+    }
+
+    /**
+     * Sets the value of the autoScale property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     */
+    public void setAutoScale(Boolean value)
+    {
+      this.autoScale = value;
+    }
+
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attribute name="featureType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "matcherSet" })
+  public static class Filter
+  {
+
+    @XmlElement(namespace = "", required = true)
+    protected FeatureMatcherSet matcherSet;
+
+    @XmlAttribute(name = "featureType", required = true)
+    protected String featureType;
+
+    /**
+     * Gets the value of the matcherSet property.
+     * 
+     * @return possible object is {@link FeatureMatcherSet }
+     * 
+     */
+    public FeatureMatcherSet getMatcherSet()
+    {
+      return matcherSet;
+    }
+
+    /**
+     * Sets the value of the matcherSet property.
+     * 
+     * @param value
+     *          allowed object is {@link FeatureMatcherSet }
+     * 
+     */
+    public void setMatcherSet(FeatureMatcherSet value)
+    {
+      this.matcherSet = value;
+    }
+
+    /**
+     * Gets the value of the featureType property.
+     * 
+     * @return possible object is {@link String }
+     * 
+     */
+    public String getFeatureType()
+    {
+      return featureType;
+    }
+
+    /**
+     * Sets the value of the featureType property.
+     * 
+     * @param value
+     *          allowed object is {@link String }
+     * 
+     */
+    public void setFeatureType(String value)
+    {
+      this.featureType = value;
+    }
+
+  }
+
 }
index 72fada5..e6e6125 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.math.BigInteger;
@@ -18,14 +17,18 @@ import javax.xml.bind.annotation.XmlSchemaType;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * This effectively represents a java.util.MapList
- *                             object
+ * This effectively represents a java.util.MapList object
  * 
- * <p>Java class for mapListType complex type</p>.
+ * <p>
+ * Java class for mapListType complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="mapListType"&gt;
@@ -63,312 +66,323 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "mapListType", propOrder = {
-    "mapListFrom",
-    "mapListTo"
-})
-@XmlSeeAlso({
-    Mapping.class
-})
-public class MapListType {
+@XmlType(name = "mapListType", propOrder = { "mapListFrom", "mapListTo" })
+@XmlSeeAlso({ Mapping.class })
+public class MapListType
+{
 
-    /**
-     * a region from start to end inclusive
-     * 
-     */
-    protected List<MapListType.MapListFrom> mapListFrom;
-    /**
-     * a region from start to end inclusive
-     * 
-     */
-    protected List<MapListType.MapListTo> mapListTo;
-    /**
-     * number of dictionary symbol widths involved in
-     *                                         each
-     *                                         mapped position on this sequence (for example, 3 for a dna
-     *                                         sequence exon
-     *                                         region that is being mapped to a protein sequence).
-     *                                         This is optional,
-     *                                         since the unit can be usually be inferred from the
-     *                                         dictionary type of
-     *                                         each sequence involved in the mapping.
-     * 
-     */
-    @XmlAttribute(name = "mapFromUnit", required = true)
-    @XmlSchemaType(name = "positiveInteger")
-    protected BigInteger mapFromUnit;
-    /**
-     * number of dictionary symbol widths involved in
-     *                                         each
-     *                                         mapped position on this sequence (for example, 3 for a dna
-     *                                         sequence exon
-     *                                         region that is being mapped to a protein sequence).
-     *                                         This is optional,
-     *                                         since the unit can be usually be inferred from the
-     *                                         dictionary type of
-     *                                         each sequence involved in the mapping.
-     * 
-     */
-    @XmlAttribute(name = "mapToUnit", required = true)
-    @XmlSchemaType(name = "positiveInteger")
-    protected BigInteger mapToUnit;
+  /**
+   * a region from start to end inclusive
+   * 
+   */
+  protected List<MapListType.MapListFrom> mapListFrom;
+
+  /**
+   * a region from start to end inclusive
+   * 
+   */
+  protected List<MapListType.MapListTo> mapListTo;
+
+  /**
+   * number of dictionary symbol widths involved in each mapped position on this
+   * sequence (for example, 3 for a dna sequence exon region that is being
+   * mapped to a protein sequence). This is optional, since the unit can be
+   * usually be inferred from the dictionary type of each sequence involved in
+   * the mapping.
+   * 
+   */
+  @XmlAttribute(name = "mapFromUnit", required = true)
+  @XmlSchemaType(name = "positiveInteger")
+  protected BigInteger mapFromUnit;
+
+  /**
+   * number of dictionary symbol widths involved in each mapped position on this
+   * sequence (for example, 3 for a dna sequence exon region that is being
+   * mapped to a protein sequence). This is optional, since the unit can be
+   * usually be inferred from the dictionary type of each sequence involved in
+   * the mapping.
+   * 
+   */
+  @XmlAttribute(name = "mapToUnit", required = true)
+  @XmlSchemaType(name = "positiveInteger")
+  protected BigInteger mapToUnit;
+
+  /**
+   * a region from start to end inclusive
+   * 
+   * Gets the value of the mapListFrom property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the mapListFrom property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getMapListFrom().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link MapListType.MapListFrom }
+   * </p>
+   * 
+   * 
+   * @return The value of the mapListFrom property.
+   */
+  public List<MapListType.MapListFrom> getMapListFrom()
+  {
+    if (mapListFrom == null)
+    {
+      mapListFrom = new ArrayList<MapListType.MapListFrom>();
+    }
+    return this.mapListFrom;
+  }
+
+  /**
+   * a region from start to end inclusive
+   * 
+   * Gets the value of the mapListTo property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the mapListTo property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getMapListTo().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link MapListType.MapListTo }
+   * </p>
+   * 
+   * 
+   * @return The value of the mapListTo property.
+   */
+  public List<MapListType.MapListTo> getMapListTo()
+  {
+    if (mapListTo == null)
+    {
+      mapListTo = new ArrayList<MapListType.MapListTo>();
+    }
+    return this.mapListTo;
+  }
+
+  /**
+   * number of dictionary symbol widths involved in each mapped position on this
+   * sequence (for example, 3 for a dna sequence exon region that is being
+   * mapped to a protein sequence). This is optional, since the unit can be
+   * usually be inferred from the dictionary type of each sequence involved in
+   * the mapping.
+   * 
+   * @return possible object is {@link BigInteger }
+   * 
+   */
+  public BigInteger getMapFromUnit()
+  {
+    return mapFromUnit;
+  }
+
+  /**
+   * Sets the value of the mapFromUnit property.
+   * 
+   * @param value
+   *          allowed object is {@link BigInteger }
+   * 
+   * @see #getMapFromUnit()
+   */
+  public void setMapFromUnit(BigInteger value)
+  {
+    this.mapFromUnit = value;
+  }
+
+  /**
+   * number of dictionary symbol widths involved in each mapped position on this
+   * sequence (for example, 3 for a dna sequence exon region that is being
+   * mapped to a protein sequence). This is optional, since the unit can be
+   * usually be inferred from the dictionary type of each sequence involved in
+   * the mapping.
+   * 
+   * @return possible object is {@link BigInteger }
+   * 
+   */
+  public BigInteger getMapToUnit()
+  {
+    return mapToUnit;
+  }
+
+  /**
+   * Sets the value of the mapToUnit property.
+   * 
+   * @param value
+   *          allowed object is {@link BigInteger }
+   * 
+   * @see #getMapToUnit()
+   */
+  public void setMapToUnit(BigInteger value)
+  {
+    this.mapToUnit = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "")
+  public static class MapListFrom
+  {
+
+    @XmlAttribute(name = "start", required = true)
+    protected int start;
+
+    @XmlAttribute(name = "end", required = true)
+    protected int end;
 
     /**
-     * a region from start to end inclusive
-     * 
-     * Gets the value of the mapListFrom property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the mapListFrom property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getMapListFrom().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link MapListType.MapListFrom }
-     * </p>
+     * Gets the value of the start property.
      * 
-     * 
-     * @return
-     *     The value of the mapListFrom property.
      */
-    public List<MapListType.MapListFrom> getMapListFrom() {
-        if (mapListFrom == null) {
-            mapListFrom = new ArrayList<MapListType.MapListFrom>();
-        }
-        return this.mapListFrom;
+    public int getStart()
+    {
+      return start;
     }
 
     /**
-     * a region from start to end inclusive
-     * 
-     * Gets the value of the mapListTo property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the mapListTo property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getMapListTo().add(newItem);
-     * </pre>
+     * Sets the value of the start property.
      * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link MapListType.MapListTo }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the mapListTo property.
      */
-    public List<MapListType.MapListTo> getMapListTo() {
-        if (mapListTo == null) {
-            mapListTo = new ArrayList<MapListType.MapListTo>();
-        }
-        return this.mapListTo;
+    public void setStart(int value)
+    {
+      this.start = value;
     }
 
     /**
-     * number of dictionary symbol widths involved in
-     *                                         each
-     *                                         mapped position on this sequence (for example, 3 for a dna
-     *                                         sequence exon
-     *                                         region that is being mapped to a protein sequence).
-     *                                         This is optional,
-     *                                         since the unit can be usually be inferred from the
-     *                                         dictionary type of
-     *                                         each sequence involved in the mapping.
+     * Gets the value of the end property.
      * 
-     * @return
-     *     possible object is
-     *     {@link BigInteger }
-     *     
      */
-    public BigInteger getMapFromUnit() {
-        return mapFromUnit;
+    public int getEnd()
+    {
+      return end;
     }
 
     /**
-     * Sets the value of the mapFromUnit property.
+     * Sets the value of the end property.
      * 
-     * @param value
-     *     allowed object is
-     *     {@link BigInteger }
-     *     
-     * @see #getMapFromUnit()
      */
-    public void setMapFromUnit(BigInteger value) {
-        this.mapFromUnit = value;
+    public void setEnd(int value)
+    {
+      this.end = value;
     }
 
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "")
+  public static class MapListTo
+  {
+
+    @XmlAttribute(name = "start", required = true)
+    protected int start;
+
+    @XmlAttribute(name = "end", required = true)
+    protected int end;
+
     /**
-     * number of dictionary symbol widths involved in
-     *                                         each
-     *                                         mapped position on this sequence (for example, 3 for a dna
-     *                                         sequence exon
-     *                                         region that is being mapped to a protein sequence).
-     *                                         This is optional,
-     *                                         since the unit can be usually be inferred from the
-     *                                         dictionary type of
-     *                                         each sequence involved in the mapping.
+     * Gets the value of the start property.
      * 
-     * @return
-     *     possible object is
-     *     {@link BigInteger }
-     *     
      */
-    public BigInteger getMapToUnit() {
-        return mapToUnit;
+    public int getStart()
+    {
+      return start;
     }
 
     /**
-     * Sets the value of the mapToUnit property.
+     * Sets the value of the start property.
      * 
-     * @param value
-     *     allowed object is
-     *     {@link BigInteger }
-     *     
-     * @see #getMapToUnit()
      */
-    public void setMapToUnit(BigInteger value) {
-        this.mapToUnit = value;
+    public void setStart(int value)
+    {
+      this.start = value;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
-     * 
+     * Gets the value of the end property.
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class MapListFrom {
-
-        @XmlAttribute(name = "start", required = true)
-        protected int start;
-        @XmlAttribute(name = "end", required = true)
-        protected int end;
-
-        /**
-         * Gets the value of the start property.
-         * 
-         */
-        public int getStart() {
-            return start;
-        }
-
-        /**
-         * Sets the value of the start property.
-         * 
-         */
-        public void setStart(int value) {
-            this.start = value;
-        }
-
-        /**
-         * Gets the value of the end property.
-         * 
-         */
-        public int getEnd() {
-            return end;
-        }
-
-        /**
-         * Sets the value of the end property.
-         * 
-         */
-        public void setEnd(int value) {
-            this.end = value;
-        }
-
+    public int getEnd()
+    {
+      return end;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
-     * 
+     * Sets the value of the end property.
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class MapListTo {
-
-        @XmlAttribute(name = "start", required = true)
-        protected int start;
-        @XmlAttribute(name = "end", required = true)
-        protected int end;
-
-        /**
-         * Gets the value of the start property.
-         * 
-         */
-        public int getStart() {
-            return start;
-        }
-
-        /**
-         * Sets the value of the start property.
-         * 
-         */
-        public void setStart(int value) {
-            this.start = value;
-        }
-
-        /**
-         * Gets the value of the end property.
-         * 
-         */
-        public int getEnd() {
-            return end;
-        }
-
-        /**
-         * Sets the value of the end property.
-         * 
-         */
-        public void setEnd(int value) {
-            this.end = value;
-        }
-
+    public void setEnd(int value)
+    {
+      this.end = value;
     }
 
+  }
+
 }
index b4b1105..c7e9e33 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -15,14 +14,19 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * Defines a mapping from the local frame to a matrix
- *                             and its associated data specified by MatrixType
+ * Defines a mapping from the local frame to a matrix and its associated data
+ * specified by MatrixType
  * 
- * <p>Java class for MapOnAMatrixType complex type</p>.
+ * <p>
+ * Java class for MapOnAMatrixType complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="MapOnAMatrixType"&gt;
@@ -42,135 +46,134 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "MapOnAMatrixType", propOrder = {
-    "property",
-    "mapping"
-})
-public class MapOnAMatrixType {
+@XmlType(name = "MapOnAMatrixType", propOrder = { "property", "mapping" })
+public class MapOnAMatrixType
+{
 
-    protected List<Property> property;
-    /**
-     * mapping from the matrix row and column positions
-     *                                                 to
-     *                                                 associated reference frame
-     * 
-     */
-    protected MapListType mapping;
-    /**
-     * reference to the matrix type this Map refers to
-     * 
-     */
-    @XmlAttribute(name = "matrix", required = true)
-    protected String matrix;
-    @XmlAttribute(name = "id")
-    protected String id;
+  protected List<Property> property;
 
-    /**
-     * Gets the value of the property property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the property property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getProperty().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Property }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the property property.
-     */
-    public List<Property> getProperty() {
-        if (property == null) {
-            property = new ArrayList<Property>();
-        }
-        return this.property;
-    }
+  /**
+   * mapping from the matrix row and column positions to associated reference
+   * frame
+   * 
+   */
+  protected MapListType mapping;
 
-    /**
-     * mapping from the matrix row and column positions
-     *                                                 to
-     *                                                 associated reference frame
-     * 
-     * @return
-     *     possible object is
-     *     {@link MapListType }
-     *     
-     */
-    public MapListType getMapping() {
-        return mapping;
-    }
+  /**
+   * reference to the matrix type this Map refers to
+   * 
+   */
+  @XmlAttribute(name = "matrix", required = true)
+  protected String matrix;
 
-    /**
-     * Sets the value of the mapping property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link MapListType }
-     *     
-     * @see #getMapping()
-     */
-    public void setMapping(MapListType value) {
-        this.mapping = value;
-    }
+  @XmlAttribute(name = "id")
+  protected String id;
 
-    /**
-     * reference to the matrix type this Map refers to
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getMatrix() {
-        return matrix;
+  /**
+   * Gets the value of the property property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the property property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getProperty().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link Property }
+   * </p>
+   * 
+   * 
+   * @return The value of the property property.
+   */
+  public List<Property> getProperty()
+  {
+    if (property == null)
+    {
+      property = new ArrayList<Property>();
     }
+    return this.property;
+  }
 
-    /**
-     * Sets the value of the matrix property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getMatrix()
-     */
-    public void setMatrix(String value) {
-        this.matrix = value;
-    }
+  /**
+   * mapping from the matrix row and column positions to associated reference
+   * frame
+   * 
+   * @return possible object is {@link MapListType }
+   * 
+   */
+  public MapListType getMapping()
+  {
+    return mapping;
+  }
 
-    /**
-     * Gets the value of the id property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getId() {
-        return id;
-    }
+  /**
+   * Sets the value of the mapping property.
+   * 
+   * @param value
+   *          allowed object is {@link MapListType }
+   * 
+   * @see #getMapping()
+   */
+  public void setMapping(MapListType value)
+  {
+    this.mapping = value;
+  }
 
-    /**
-     * Sets the value of the id property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setId(String value) {
-        this.id = value;
-    }
+  /**
+   * reference to the matrix type this Map refers to
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getMatrix()
+  {
+    return matrix;
+  }
+
+  /**
+   * Sets the value of the matrix property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getMatrix()
+   */
+  public void setMatrix(String value)
+  {
+    this.matrix = value;
+  }
+
+  /**
+   * Gets the value of the id property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getId()
+  {
+    return id;
+  }
+
+  /**
+   * Sets the value of the id property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setId(String value)
+  {
+    this.id = value;
+  }
 
 }
index fcfd7e4..0e7cfff 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -15,18 +14,20 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * Represent the jalview.datamodel.Mapping object -
- *                                     it also provides
- *                                     a way of storing sequences that are mapped 'to'
- *                                     without adding them
- *                                     to the sequence set (which will mean they are
- *                                     then added to the alignment too).
+ * Represent the jalview.datamodel.Mapping object - it also provides a way of
+ * storing sequences that are mapped 'to' without adding them to the sequence
+ * set (which will mean they are then added to the alignment too).
  * 
- * <p>Java class for anonymous complex type</p>.
+ * <p>
+ * Java class for anonymous complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType&gt;
@@ -52,96 +53,91 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "sequence",
-    "dseqFor"
-})
+@XmlType(name = "", propOrder = { "sequence", "dseqFor" })
 @XmlRootElement(name = "Mapping")
-public class Mapping
-    extends MapListType
+public class Mapping extends MapListType
 {
 
-    @XmlElement(name = "Sequence")
-    protected Sequence sequence;
-    protected String dseqFor;
-    /**
-     * Biotype of the mapping e.g. CdsToPeptide
-     * 
-     */
-    @XmlAttribute(name = "mappingType")
-    protected String mappingType;
+  @XmlElement(name = "Sequence")
+  protected Sequence sequence;
+
+  protected String dseqFor;
+
+  /**
+   * Biotype of the mapping e.g. CdsToPeptide
+   * 
+   */
+  @XmlAttribute(name = "mappingType")
+  protected String mappingType;
 
-    /**
-     * Gets the value of the sequence property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Sequence }
-     *     
-     */
-    public Sequence getSequence() {
-        return sequence;
-    }
+  /**
+   * Gets the value of the sequence property.
+   * 
+   * @return possible object is {@link Sequence }
+   * 
+   */
+  public Sequence getSequence()
+  {
+    return sequence;
+  }
 
-    /**
-     * Sets the value of the sequence property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Sequence }
-     *     
-     */
-    public void setSequence(Sequence value) {
-        this.sequence = value;
-    }
+  /**
+   * Sets the value of the sequence property.
+   * 
+   * @param value
+   *          allowed object is {@link Sequence }
+   * 
+   */
+  public void setSequence(Sequence value)
+  {
+    this.sequence = value;
+  }
 
-    /**
-     * Gets the value of the dseqFor property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDseqFor() {
-        return dseqFor;
-    }
+  /**
+   * Gets the value of the dseqFor property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDseqFor()
+  {
+    return dseqFor;
+  }
 
-    /**
-     * Sets the value of the dseqFor property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDseqFor(String value) {
-        this.dseqFor = value;
-    }
+  /**
+   * Sets the value of the dseqFor property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setDseqFor(String value)
+  {
+    this.dseqFor = value;
+  }
 
-    /**
-     * Biotype of the mapping e.g. CdsToPeptide
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getMappingType() {
-        return mappingType;
-    }
+  /**
+   * Biotype of the mapping e.g. CdsToPeptide
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getMappingType()
+  {
+    return mappingType;
+  }
 
-    /**
-     * Sets the value of the mappingType property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getMappingType()
-     */
-    public void setMappingType(String value) {
-        this.mappingType = value;
-    }
+  /**
+   * Sets the value of the mappingType property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getMappingType()
+   */
+  public void setMappingType(String value)
+  {
+    this.mappingType = value;
+  }
 
 }
index 0fd8ef5..b781bea 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.math.BigInteger;
@@ -17,16 +16,19 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * Represents matrix data imported to Jalview, and the
- *                             results of any derived calculations (independent of a particular
- *                             view
- *                             on the matrix).
+ * Represents matrix data imported to Jalview, and the results of any derived
+ * calculations (independent of a particular view on the matrix).
  * 
- * <p>Java class for MatrixType complex type</p>.
+ * <p>
+ * Java class for MatrixType complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="MatrixType"&gt;
@@ -52,315 +54,325 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "MatrixType", propOrder = {
-    "elements",
-    "groups",
-    "newick",
-    "property"
-})
-public class MatrixType {
+@XmlType(
+  name = "MatrixType",
+  propOrder =
+  { "elements", "groups", "newick", "property" })
+public class MatrixType
+{
 
-    /**
-     * serialised representation of matrix as one or
-     *                                                 more sets of comma separated values
-     * 
-     */
-    @XmlElement(required = true)
-    protected String elements;
-    /**
-     * Comma separated series of longs formed from
-     *                                                 bitsets defining partitions on the rows/columns of the matrix
-     * 
-     */
-    protected List<String> groups;
-    /**
-     * tree computed for this
-     * 
-     */
-    protected List<String> newick;
-    protected List<Property> property;
-    @XmlAttribute(name = "type", required = true)
-    protected String type;
-    @XmlAttribute(name = "rows", required = true)
-    protected BigInteger rows;
-    @XmlAttribute(name = "cols", required = true)
-    protected BigInteger cols;
-    @XmlAttribute(name = "treeMethod")
-    protected String treeMethod;
-    @XmlAttribute(name = "cutHeight")
-    protected Double cutHeight;
-    @XmlAttribute(name = "id", required = true)
-    protected String id;
+  /**
+   * serialised representation of matrix as one or more sets of comma separated
+   * values
+   * 
+   */
+  @XmlElement(required = true)
+  protected String elements;
 
-    /**
-     * serialised representation of matrix as one or
-     *                                                 more sets of comma separated values
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getElements() {
-        return elements;
-    }
+  /**
+   * Comma separated series of longs formed from bitsets defining partitions on
+   * the rows/columns of the matrix
+   * 
+   */
+  protected List<String> groups;
 
-    /**
-     * Sets the value of the elements property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getElements()
-     */
-    public void setElements(String value) {
-        this.elements = value;
-    }
+  /**
+   * tree computed for this
+   * 
+   */
+  protected List<String> newick;
 
-    /**
-     * Comma separated series of longs formed from
-     *                                                 bitsets defining partitions on the rows/columns of the matrix
-     * 
-     * Gets the value of the groups property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the groups property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getGroups().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link String }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the groups property.
-     */
-    public List<String> getGroups() {
-        if (groups == null) {
-            groups = new ArrayList<String>();
-        }
-        return this.groups;
-    }
+  protected List<Property> property;
 
-    /**
-     * tree computed for this
-     * 
-     * Gets the value of the newick property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the newick property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getNewick().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link String }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the newick property.
-     */
-    public List<String> getNewick() {
-        if (newick == null) {
-            newick = new ArrayList<String>();
-        }
-        return this.newick;
-    }
+  @XmlAttribute(name = "type", required = true)
+  protected String type;
 
-    /**
-     * Gets the value of the property property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the property property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getProperty().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Property }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the property property.
-     */
-    public List<Property> getProperty() {
-        if (property == null) {
-            property = new ArrayList<Property>();
-        }
-        return this.property;
-    }
+  @XmlAttribute(name = "rows", required = true)
+  protected BigInteger rows;
 
-    /**
-     * Gets the value of the type property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getType() {
-        return type;
-    }
+  @XmlAttribute(name = "cols", required = true)
+  protected BigInteger cols;
 
-    /**
-     * Sets the value of the type property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setType(String value) {
-        this.type = value;
-    }
+  @XmlAttribute(name = "treeMethod")
+  protected String treeMethod;
 
-    /**
-     * Gets the value of the rows property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link BigInteger }
-     *     
-     */
-    public BigInteger getRows() {
-        return rows;
-    }
+  @XmlAttribute(name = "cutHeight")
+  protected Double cutHeight;
 
-    /**
-     * Sets the value of the rows property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link BigInteger }
-     *     
-     */
-    public void setRows(BigInteger value) {
-        this.rows = value;
-    }
+  @XmlAttribute(name = "id", required = true)
+  protected String id;
 
-    /**
-     * Gets the value of the cols property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link BigInteger }
-     *     
-     */
-    public BigInteger getCols() {
-        return cols;
-    }
+  /**
+   * serialised representation of matrix as one or more sets of comma separated
+   * values
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getElements()
+  {
+    return elements;
+  }
 
-    /**
-     * Sets the value of the cols property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link BigInteger }
-     *     
-     */
-    public void setCols(BigInteger value) {
-        this.cols = value;
-    }
+  /**
+   * Sets the value of the elements property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getElements()
+   */
+  public void setElements(String value)
+  {
+    this.elements = value;
+  }
 
-    /**
-     * Gets the value of the treeMethod property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getTreeMethod() {
-        return treeMethod;
+  /**
+   * Comma separated series of longs formed from bitsets defining partitions on
+   * the rows/columns of the matrix
+   * 
+   * Gets the value of the groups property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the groups property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getGroups().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link String }
+   * </p>
+   * 
+   * 
+   * @return The value of the groups property.
+   */
+  public List<String> getGroups()
+  {
+    if (groups == null)
+    {
+      groups = new ArrayList<String>();
     }
+    return this.groups;
+  }
 
-    /**
-     * Sets the value of the treeMethod property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setTreeMethod(String value) {
-        this.treeMethod = value;
+  /**
+   * tree computed for this
+   * 
+   * Gets the value of the newick property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the newick property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getNewick().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link String }
+   * </p>
+   * 
+   * 
+   * @return The value of the newick property.
+   */
+  public List<String> getNewick()
+  {
+    if (newick == null)
+    {
+      newick = new ArrayList<String>();
     }
+    return this.newick;
+  }
 
-    /**
-     * Gets the value of the cutHeight property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link Double }
-     *     
-     */
-    public Double getCutHeight() {
-        return cutHeight;
+  /**
+   * Gets the value of the property property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the property property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getProperty().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link Property }
+   * </p>
+   * 
+   * 
+   * @return The value of the property property.
+   */
+  public List<Property> getProperty()
+  {
+    if (property == null)
+    {
+      property = new ArrayList<Property>();
     }
+    return this.property;
+  }
 
-    /**
-     * Sets the value of the cutHeight property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link Double }
-     *     
-     */
-    public void setCutHeight(Double value) {
-        this.cutHeight = value;
-    }
+  /**
+   * Gets the value of the type property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getType()
+  {
+    return type;
+  }
 
-    /**
-     * Gets the value of the id property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getId() {
-        return id;
-    }
+  /**
+   * Sets the value of the type property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setType(String value)
+  {
+    this.type = value;
+  }
 
-    /**
-     * Sets the value of the id property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setId(String value) {
-        this.id = value;
-    }
+  /**
+   * Gets the value of the rows property.
+   * 
+   * @return possible object is {@link BigInteger }
+   * 
+   */
+  public BigInteger getRows()
+  {
+    return rows;
+  }
+
+  /**
+   * Sets the value of the rows property.
+   * 
+   * @param value
+   *          allowed object is {@link BigInteger }
+   * 
+   */
+  public void setRows(BigInteger value)
+  {
+    this.rows = value;
+  }
+
+  /**
+   * Gets the value of the cols property.
+   * 
+   * @return possible object is {@link BigInteger }
+   * 
+   */
+  public BigInteger getCols()
+  {
+    return cols;
+  }
+
+  /**
+   * Sets the value of the cols property.
+   * 
+   * @param value
+   *          allowed object is {@link BigInteger }
+   * 
+   */
+  public void setCols(BigInteger value)
+  {
+    this.cols = value;
+  }
+
+  /**
+   * Gets the value of the treeMethod property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getTreeMethod()
+  {
+    return treeMethod;
+  }
+
+  /**
+   * Sets the value of the treeMethod property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setTreeMethod(String value)
+  {
+    this.treeMethod = value;
+  }
+
+  /**
+   * Gets the value of the cutHeight property.
+   * 
+   * @return possible object is {@link Double }
+   * 
+   */
+  public Double getCutHeight()
+  {
+    return cutHeight;
+  }
+
+  /**
+   * Sets the value of the cutHeight property.
+   * 
+   * @param value
+   *          allowed object is {@link Double }
+   * 
+   */
+  public void setCutHeight(Double value)
+  {
+    this.cutHeight = value;
+  }
+
+  /**
+   * Gets the value of the id property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getId()
+  {
+    return id;
+  }
+
+  /**
+   * Sets the value of the id property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setId(String value)
+  {
+    this.id = value;
+  }
 
 }
index baa9eed..29d8d1f 100644 (file)
@@ -5,20 +5,25 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlEnum;
 import javax.xml.bind.annotation.XmlEnumValue;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
  * Graduated feature colour if no score (or attribute) value
  * 
- * <p>Java class for NoValueColour</p>.
+ * <p>
+ * Java class for NoValueColour
+ * </p>
+ * .
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
  * <pre>
  * &lt;simpleType name="NoValueColour"&gt;
  *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
@@ -32,47 +37,50 @@ import javax.xml.bind.annotation.XmlType;
  */
 @XmlType(name = "NoValueColour", namespace = "www.jalview.org/colours")
 @XmlEnum
-public enum NoValueColour {
+public enum NoValueColour
+{
 
-    @XmlEnumValue("None")
-    NONE("None"),
-    @XmlEnumValue("Min")
-    MIN("Min"),
-    @XmlEnumValue("Max")
-    MAX("Max");
-    private final String value;
+  @XmlEnumValue("None")
+  NONE("None"), @XmlEnumValue("Min")
+  MIN("Min"), @XmlEnumValue("Max")
+  MAX("Max");
 
-    NoValueColour(String v) {
-        value = v;
-    }
+  private final String value;
 
-    /**
-     * Gets the value associated to the enum constant.
-     * 
-     * @return
-     *     The value linked to the enum.
-     */
-    public String value() {
-        return value;
-    }
+  NoValueColour(String v)
+  {
+    value = v;
+  }
+
+  /**
+   * Gets the value associated to the enum constant.
+   * 
+   * @return The value linked to the enum.
+   */
+  public String value()
+  {
+    return value;
+  }
 
-    /**
-     * Gets the enum associated to the value passed as parameter.
-     * 
-     * @param v
-     *     The value to get the enum from.
-     * @return
-     *     The enum which corresponds to the value, if it exists.
-     * @throws IllegalArgumentException
-     *     If no value matches in the enum declaration.
-     */
-    public static NoValueColour fromValue(String v) {
-        for (NoValueColour c: NoValueColour.values()) {
-            if (c.value.equals(v)) {
-                return c;
-            }
-        }
-        throw new IllegalArgumentException(v);
+  /**
+   * Gets the enum associated to the value passed as parameter.
+   * 
+   * @param v
+   *          The value to get the enum from.
+   * @return The enum which corresponds to the value, if it exists.
+   * @throws IllegalArgumentException
+   *           If no value matches in the enum declaration.
+   */
+  public static NoValueColour fromValue(String v)
+  {
+    for (NoValueColour c : NoValueColour.values())
+    {
+      if (c.value.equals(v))
+      {
+        return c;
+      }
     }
+    throw new IllegalArgumentException(v);
+  }
 
 }
index 8ac2701..31706a5 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.JAXBElement;
@@ -13,512 +12,588 @@ import javax.xml.bind.annotation.XmlElementDecl;
 import javax.xml.bind.annotation.XmlRegistry;
 import javax.xml.namespace.QName;
 
-
 /**
- * This object contains factory methods for each 
- * Java content interface and Java element interface 
- * generated in the jalview.xml.binding.jalview package. 
- * <p>An ObjectFactory allows you to programatically 
- * construct new instances of the Java representation 
- * for XML content. The Java representation of XML 
- * content can consist of schema derived interfaces 
- * and classes representing the binding of schema 
- * type definitions, element declarations and model 
- * groups.  Factory methods for each of these are 
- * provided in this class.
+ * This object contains factory methods for each Java content interface and Java
+ * element interface generated in the jalview.xml.binding.jalview package.
+ * <p>
+ * An ObjectFactory allows you to programatically construct new instances of the
+ * Java representation for XML content. The Java representation of XML content
+ * can consist of schema derived interfaces and classes representing the binding
+ * of schema type definitions, element declarations and model groups. Factory
+ * methods for each of these are provided in this class.
  * 
  */
 @XmlRegistry
-public class ObjectFactory {
-
-    private static final QName _JalviewModel_QNAME = new QName("www.jalview.org", "JalviewModel");
-    private static final QName _JalviewUserColours_QNAME = new QName("www.jalview.org/colours", "JalviewUserColours");
-    private static final QName _WebServiceParameterSet_QNAME = new QName("www.jalview.org/xml/wsparamset", "WebServiceParameterSet");
-
-    /**
-     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: jalview.xml.binding.jalview
-     * 
-     */
-    public ObjectFactory() {
-    }
-
-    /**
-     * Create an instance of {@link MapListType }
-     * 
-     */
-    public MapListType createMapListType() {
-        return new MapListType();
-    }
-
-    /**
-     * Create an instance of {@link Sequence }
-     * 
-     */
-    public Sequence createSequence() {
-        return new Sequence();
-    }
-
-    /**
-     * Create an instance of {@link AlcodonFrame }
-     * 
-     */
-    public AlcodonFrame createAlcodonFrame() {
-        return new AlcodonFrame();
-    }
-
-    /**
-     * Create an instance of {@link Annotation }
-     * 
-     */
-    public Annotation createAnnotation() {
-        return new Annotation();
-    }
-
-    /**
-     * Create an instance of {@link SequenceSet }
-     * 
-     */
-    public SequenceSet createSequenceSet() {
-        return new SequenceSet();
-    }
-
-    /**
-     * Create an instance of {@link FeatureMatcherSet }
-     * 
-     */
-    public FeatureMatcherSet createFeatureMatcherSet() {
-        return new FeatureMatcherSet();
-    }
-
-    /**
-     * Create an instance of {@link JalviewUserColours }
-     * 
-     */
-    public JalviewUserColours createJalviewUserColours() {
-        return new JalviewUserColours();
-    }
-
-    /**
-     * Create an instance of {@link Pdbentry }
-     * 
-     */
-    public Pdbentry createPdbentry() {
-        return new Pdbentry();
-    }
-
-    /**
-     * Create an instance of {@link Feature }
-     * 
-     */
-    public Feature createFeature() {
-        return new Feature();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel }
-     * 
-     */
-    public JalviewModel createJalviewModel() {
-        return new JalviewModel();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.FeatureSettings }
-     * 
-     */
-    public JalviewModel.FeatureSettings createJalviewModelFeatureSettings() {
-        return new JalviewModel.FeatureSettings();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.PcaViewer }
-     * 
-     */
-    public JalviewModel.PcaViewer createJalviewModelPcaViewer() {
-        return new JalviewModel.PcaViewer();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.Viewport }
-     * 
-     */
-    public JalviewModel.Viewport createJalviewModelViewport() {
-        return new JalviewModel.Viewport();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.JSeq }
-     * 
-     */
-    public JalviewModel.JSeq createJalviewModelJSeq() {
-        return new JalviewModel.JSeq();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.JSeq.RnaViewer }
-     * 
-     */
-    public JalviewModel.JSeq.RnaViewer createJalviewModelJSeqRnaViewer() {
-        return new JalviewModel.JSeq.RnaViewer();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.JSeq.Pdbids }
-     * 
-     */
-    public JalviewModel.JSeq.Pdbids createJalviewModelJSeqPdbids() {
-        return new JalviewModel.JSeq.Pdbids();
-    }
-
-    /**
-     * Create an instance of {@link AnnotationColourScheme }
-     * 
-     */
-    public AnnotationColourScheme createAnnotationColourScheme() {
-        return new AnnotationColourScheme();
-    }
-
-    /**
-     * Create an instance of {@link PcaDataType }
-     * 
-     */
-    public PcaDataType createPcaDataType() {
-        return new PcaDataType();
-    }
-
-    /**
-     * Create an instance of {@link DoubleVector }
-     * 
-     */
-    public DoubleVector createDoubleVector() {
-        return new DoubleVector();
-    }
-
-    /**
-     * Create an instance of {@link DoubleMatrix }
-     * 
-     */
-    public DoubleMatrix createDoubleMatrix() {
-        return new DoubleMatrix();
-    }
-
-    /**
-     * Create an instance of {@link Mapping }
-     * 
-     */
-    public Mapping createMapping() {
-        return new Mapping();
-    }
-
-    /**
-     * Create an instance of {@link MapListType.MapListFrom }
-     * 
-     */
-    public MapListType.MapListFrom createMapListTypeMapListFrom() {
-        return new MapListType.MapListFrom();
-    }
-
-    /**
-     * Create an instance of {@link MapListType.MapListTo }
-     * 
-     */
-    public MapListType.MapListTo createMapListTypeMapListTo() {
-        return new MapListType.MapListTo();
-    }
-
-    /**
-     * Create an instance of {@link SequenceType }
-     * 
-     */
-    public SequenceType createSequenceType() {
-        return new SequenceType();
-    }
-
-    /**
-     * Create an instance of {@link Sequence.DBRef }
-     * 
-     */
-    public Sequence.DBRef createSequenceDBRef() {
-        return new Sequence.DBRef();
-    }
-
-    /**
-     * Create an instance of {@link AlcodonFrame.Alcodon }
-     * 
-     */
-    public AlcodonFrame.Alcodon createAlcodonFrameAlcodon() {
-        return new AlcodonFrame.Alcodon();
-    }
-
-    /**
-     * Create an instance of {@link AlcodonFrame.AlcodMap }
-     * 
-     */
-    public AlcodonFrame.AlcodMap createAlcodonFrameAlcodMap() {
-        return new AlcodonFrame.AlcodMap();
-    }
-
-    /**
-     * Create an instance of {@link AnnotationElement }
-     * 
-     */
-    public AnnotationElement createAnnotationElement() {
-        return new AnnotationElement();
-    }
-
-    /**
-     * Create an instance of {@link Annotation.ThresholdLine }
-     * 
-     */
-    public Annotation.ThresholdLine createAnnotationThresholdLine() {
-        return new Annotation.ThresholdLine();
-    }
-
-    /**
-     * Create an instance of {@link MapOnAMatrixType }
-     * 
-     */
-    public MapOnAMatrixType createMapOnAMatrixType() {
-        return new MapOnAMatrixType();
-    }
-
-    /**
-     * Create an instance of {@link jalview.xml.binding.jalview.Property }
-     * 
-     */
-    public jalview.xml.binding.jalview.Property createProperty() {
-        return new jalview.xml.binding.jalview.Property();
-    }
-
-    /**
-     * Create an instance of {@link SequenceSet.SequenceSetProperties }
-     * 
-     */
-    public SequenceSet.SequenceSetProperties createSequenceSetSequenceSetProperties() {
-        return new SequenceSet.SequenceSetProperties();
-    }
-
-    /**
-     * Create an instance of {@link MatrixType }
-     * 
-     */
-    public MatrixType createMatrixType() {
-        return new MatrixType();
-    }
-
-    /**
-     * Create an instance of {@link VAMSAS }
-     * 
-     */
-    public VAMSAS createVAMSAS() {
-        return new VAMSAS();
-    }
-
-    /**
-     * Create an instance of {@link FeatureMatcher }
-     * 
-     */
-    public FeatureMatcher createFeatureMatcher() {
-        return new FeatureMatcher();
-    }
-
-    /**
-     * Create an instance of {@link WebServiceParameterSet }
-     * 
-     */
-    public WebServiceParameterSet createWebServiceParameterSet() {
-        return new WebServiceParameterSet();
-    }
-
-    /**
-     * Create an instance of {@link FeatureMatcherSet.CompoundMatcher }
-     * 
-     */
-    public FeatureMatcherSet.CompoundMatcher createFeatureMatcherSetCompoundMatcher() {
-        return new FeatureMatcherSet.CompoundMatcher();
-    }
-
-    /**
-     * Create an instance of {@link JalviewUserColours.Colour }
-     * 
-     */
-    public JalviewUserColours.Colour createJalviewUserColoursColour() {
-        return new JalviewUserColours.Colour();
-    }
-
-    /**
-     * Create an instance of {@link JalviewUserColours.Filter }
-     * 
-     */
-    public JalviewUserColours.Filter createJalviewUserColoursFilter() {
-        return new JalviewUserColours.Filter();
-    }
-
-    /**
-     * Create an instance of {@link Pdbentry.Property }
-     * 
-     */
-    public Pdbentry.Property createPdbentryProperty() {
-        return new Pdbentry.Property();
-    }
-
-    /**
-     * Create an instance of {@link Feature.OtherData }
-     * 
-     */
-    public Feature.OtherData createFeatureOtherData() {
-        return new Feature.OtherData();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.JGroup }
-     * 
-     */
-    public JalviewModel.JGroup createJalviewModelJGroup() {
-        return new JalviewModel.JGroup();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.UserColours }
-     * 
-     */
-    public JalviewModel.UserColours createJalviewModelUserColours() {
-        return new JalviewModel.UserColours();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.Tree }
-     * 
-     */
-    public JalviewModel.Tree createJalviewModelTree() {
-        return new JalviewModel.Tree();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.FeatureSettings.Setting }
-     * 
-     */
-    public JalviewModel.FeatureSettings.Setting createJalviewModelFeatureSettingsSetting() {
-        return new JalviewModel.FeatureSettings.Setting();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.FeatureSettings.Group }
-     * 
-     */
-    public JalviewModel.FeatureSettings.Group createJalviewModelFeatureSettingsGroup() {
-        return new JalviewModel.FeatureSettings.Group();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.PcaViewer.SequencePoint }
-     * 
-     */
-    public JalviewModel.PcaViewer.SequencePoint createJalviewModelPcaViewerSequencePoint() {
-        return new JalviewModel.PcaViewer.SequencePoint();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.PcaViewer.Axis }
-     * 
-     */
-    public JalviewModel.PcaViewer.Axis createJalviewModelPcaViewerAxis() {
-        return new JalviewModel.PcaViewer.Axis();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.PcaViewer.SeqPointMin }
-     * 
-     */
-    public JalviewModel.PcaViewer.SeqPointMin createJalviewModelPcaViewerSeqPointMin() {
-        return new JalviewModel.PcaViewer.SeqPointMin();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.PcaViewer.SeqPointMax }
-     * 
-     */
-    public JalviewModel.PcaViewer.SeqPointMax createJalviewModelPcaViewerSeqPointMax() {
-        return new JalviewModel.PcaViewer.SeqPointMax();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.Viewport.HiddenColumns }
-     * 
-     */
-    public JalviewModel.Viewport.HiddenColumns createJalviewModelViewportHiddenColumns() {
-        return new JalviewModel.Viewport.HiddenColumns();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.Viewport.CalcIdParam }
-     * 
-     */
-    public JalviewModel.Viewport.CalcIdParam createJalviewModelViewportCalcIdParam() {
-        return new JalviewModel.Viewport.CalcIdParam();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.Viewport.Overview }
-     * 
-     */
-    public JalviewModel.Viewport.Overview createJalviewModelViewportOverview() {
-        return new JalviewModel.Viewport.Overview();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.JSeq.RnaViewer.SecondaryStructure }
-     * 
-     */
-    public JalviewModel.JSeq.RnaViewer.SecondaryStructure createJalviewModelJSeqRnaViewerSecondaryStructure() {
-        return new JalviewModel.JSeq.RnaViewer.SecondaryStructure();
-    }
-
-    /**
-     * Create an instance of {@link JalviewModel.JSeq.Pdbids.StructureState }
-     * 
-     */
-    public JalviewModel.JSeq.Pdbids.StructureState createJalviewModelJSeqPdbidsStructureState() {
-        return new JalviewModel.JSeq.Pdbids.StructureState();
-    }
-
-    /**
-     * Create an instance of {@link JAXBElement }{@code <}{@link JalviewModel }{@code >}
-     * 
-     * @param value
-     *     Java instance representing xml element's value.
-     * @return
-     *     the new instance of {@link JAXBElement }{@code <}{@link JalviewModel }{@code >}
-     */
-    @XmlElementDecl(namespace = "www.jalview.org", name = "JalviewModel")
-    public JAXBElement<JalviewModel> createJalviewModel(JalviewModel value) {
-        return new JAXBElement<JalviewModel>(_JalviewModel_QNAME, JalviewModel.class, null, value);
-    }
-
-    /**
-     * Create an instance of {@link JAXBElement }{@code <}{@link JalviewUserColours }{@code >}
-     * 
-     * @param value
-     *     Java instance representing xml element's value.
-     * @return
-     *     the new instance of {@link JAXBElement }{@code <}{@link JalviewUserColours }{@code >}
-     */
-    @XmlElementDecl(namespace = "www.jalview.org/colours", name = "JalviewUserColours")
-    public JAXBElement<JalviewUserColours> createJalviewUserColours(JalviewUserColours value) {
-        return new JAXBElement<JalviewUserColours>(_JalviewUserColours_QNAME, JalviewUserColours.class, null, value);
-    }
-
-    /**
-     * Create an instance of {@link JAXBElement }{@code <}{@link WebServiceParameterSet }{@code >}
-     * 
-     * @param value
-     *     Java instance representing xml element's value.
-     * @return
-     *     the new instance of {@link JAXBElement }{@code <}{@link WebServiceParameterSet }{@code >}
-     */
-    @XmlElementDecl(namespace = "www.jalview.org/xml/wsparamset", name = "WebServiceParameterSet")
-    public JAXBElement<WebServiceParameterSet> createWebServiceParameterSet(WebServiceParameterSet value) {
-        return new JAXBElement<WebServiceParameterSet>(_WebServiceParameterSet_QNAME, WebServiceParameterSet.class, null, value);
-    }
+public class ObjectFactory
+{
+
+  private static final QName _JalviewModel_QNAME = new QName(
+          "www.jalview.org", "JalviewModel");
+
+  private static final QName _JalviewUserColours_QNAME = new QName(
+          "www.jalview.org/colours", "JalviewUserColours");
+
+  private static final QName _WebServiceParameterSet_QNAME = new QName(
+          "www.jalview.org/xml/wsparamset", "WebServiceParameterSet");
+
+  /**
+   * Create a new ObjectFactory that can be used to create new instances of
+   * schema derived classes for package: jalview.xml.binding.jalview
+   * 
+   */
+  public ObjectFactory()
+  {
+  }
+
+  /**
+   * Create an instance of {@link MapListType }
+   * 
+   */
+  public MapListType createMapListType()
+  {
+    return new MapListType();
+  }
+
+  /**
+   * Create an instance of {@link Sequence }
+   * 
+   */
+  public Sequence createSequence()
+  {
+    return new Sequence();
+  }
+
+  /**
+   * Create an instance of {@link AlcodonFrame }
+   * 
+   */
+  public AlcodonFrame createAlcodonFrame()
+  {
+    return new AlcodonFrame();
+  }
+
+  /**
+   * Create an instance of {@link Annotation }
+   * 
+   */
+  public Annotation createAnnotation()
+  {
+    return new Annotation();
+  }
+
+  /**
+   * Create an instance of {@link SequenceSet }
+   * 
+   */
+  public SequenceSet createSequenceSet()
+  {
+    return new SequenceSet();
+  }
+
+  /**
+   * Create an instance of {@link FeatureMatcherSet }
+   * 
+   */
+  public FeatureMatcherSet createFeatureMatcherSet()
+  {
+    return new FeatureMatcherSet();
+  }
+
+  /**
+   * Create an instance of {@link JalviewUserColours }
+   * 
+   */
+  public JalviewUserColours createJalviewUserColours()
+  {
+    return new JalviewUserColours();
+  }
+
+  /**
+   * Create an instance of {@link Pdbentry }
+   * 
+   */
+  public Pdbentry createPdbentry()
+  {
+    return new Pdbentry();
+  }
+
+  /**
+   * Create an instance of {@link Feature }
+   * 
+   */
+  public Feature createFeature()
+  {
+    return new Feature();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel }
+   * 
+   */
+  public JalviewModel createJalviewModel()
+  {
+    return new JalviewModel();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.FeatureSettings }
+   * 
+   */
+  public JalviewModel.FeatureSettings createJalviewModelFeatureSettings()
+  {
+    return new JalviewModel.FeatureSettings();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.PcaViewer }
+   * 
+   */
+  public JalviewModel.PcaViewer createJalviewModelPcaViewer()
+  {
+    return new JalviewModel.PcaViewer();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.Viewport }
+   * 
+   */
+  public JalviewModel.Viewport createJalviewModelViewport()
+  {
+    return new JalviewModel.Viewport();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.JSeq }
+   * 
+   */
+  public JalviewModel.JSeq createJalviewModelJSeq()
+  {
+    return new JalviewModel.JSeq();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.JSeq.RnaViewer }
+   * 
+   */
+  public JalviewModel.JSeq.RnaViewer createJalviewModelJSeqRnaViewer()
+  {
+    return new JalviewModel.JSeq.RnaViewer();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.JSeq.Pdbids }
+   * 
+   */
+  public JalviewModel.JSeq.Pdbids createJalviewModelJSeqPdbids()
+  {
+    return new JalviewModel.JSeq.Pdbids();
+  }
+
+  /**
+   * Create an instance of {@link AnnotationColourScheme }
+   * 
+   */
+  public AnnotationColourScheme createAnnotationColourScheme()
+  {
+    return new AnnotationColourScheme();
+  }
+
+  /**
+   * Create an instance of {@link PcaDataType }
+   * 
+   */
+  public PcaDataType createPcaDataType()
+  {
+    return new PcaDataType();
+  }
+
+  /**
+   * Create an instance of {@link DoubleVector }
+   * 
+   */
+  public DoubleVector createDoubleVector()
+  {
+    return new DoubleVector();
+  }
+
+  /**
+   * Create an instance of {@link DoubleMatrix }
+   * 
+   */
+  public DoubleMatrix createDoubleMatrix()
+  {
+    return new DoubleMatrix();
+  }
+
+  /**
+   * Create an instance of {@link Mapping }
+   * 
+   */
+  public Mapping createMapping()
+  {
+    return new Mapping();
+  }
+
+  /**
+   * Create an instance of {@link MapListType.MapListFrom }
+   * 
+   */
+  public MapListType.MapListFrom createMapListTypeMapListFrom()
+  {
+    return new MapListType.MapListFrom();
+  }
+
+  /**
+   * Create an instance of {@link MapListType.MapListTo }
+   * 
+   */
+  public MapListType.MapListTo createMapListTypeMapListTo()
+  {
+    return new MapListType.MapListTo();
+  }
+
+  /**
+   * Create an instance of {@link SequenceType }
+   * 
+   */
+  public SequenceType createSequenceType()
+  {
+    return new SequenceType();
+  }
+
+  /**
+   * Create an instance of {@link Sequence.DBRef }
+   * 
+   */
+  public Sequence.DBRef createSequenceDBRef()
+  {
+    return new Sequence.DBRef();
+  }
+
+  /**
+   * Create an instance of {@link AlcodonFrame.Alcodon }
+   * 
+   */
+  public AlcodonFrame.Alcodon createAlcodonFrameAlcodon()
+  {
+    return new AlcodonFrame.Alcodon();
+  }
+
+  /**
+   * Create an instance of {@link AlcodonFrame.AlcodMap }
+   * 
+   */
+  public AlcodonFrame.AlcodMap createAlcodonFrameAlcodMap()
+  {
+    return new AlcodonFrame.AlcodMap();
+  }
+
+  /**
+   * Create an instance of {@link AnnotationElement }
+   * 
+   */
+  public AnnotationElement createAnnotationElement()
+  {
+    return new AnnotationElement();
+  }
+
+  /**
+   * Create an instance of {@link Annotation.ThresholdLine }
+   * 
+   */
+  public Annotation.ThresholdLine createAnnotationThresholdLine()
+  {
+    return new Annotation.ThresholdLine();
+  }
+
+  /**
+   * Create an instance of {@link MapOnAMatrixType }
+   * 
+   */
+  public MapOnAMatrixType createMapOnAMatrixType()
+  {
+    return new MapOnAMatrixType();
+  }
+
+  /**
+   * Create an instance of {@link jalview.xml.binding.jalview.Property }
+   * 
+   */
+  public jalview.xml.binding.jalview.Property createProperty()
+  {
+    return new jalview.xml.binding.jalview.Property();
+  }
+
+  /**
+   * Create an instance of {@link SequenceSet.SequenceSetProperties }
+   * 
+   */
+  public SequenceSet.SequenceSetProperties createSequenceSetSequenceSetProperties()
+  {
+    return new SequenceSet.SequenceSetProperties();
+  }
+
+  /**
+   * Create an instance of {@link MatrixType }
+   * 
+   */
+  public MatrixType createMatrixType()
+  {
+    return new MatrixType();
+  }
+
+  /**
+   * Create an instance of {@link VAMSAS }
+   * 
+   */
+  public VAMSAS createVAMSAS()
+  {
+    return new VAMSAS();
+  }
+
+  /**
+   * Create an instance of {@link FeatureMatcher }
+   * 
+   */
+  public FeatureMatcher createFeatureMatcher()
+  {
+    return new FeatureMatcher();
+  }
+
+  /**
+   * Create an instance of {@link WebServiceParameterSet }
+   * 
+   */
+  public WebServiceParameterSet createWebServiceParameterSet()
+  {
+    return new WebServiceParameterSet();
+  }
+
+  /**
+   * Create an instance of {@link FeatureMatcherSet.CompoundMatcher }
+   * 
+   */
+  public FeatureMatcherSet.CompoundMatcher createFeatureMatcherSetCompoundMatcher()
+  {
+    return new FeatureMatcherSet.CompoundMatcher();
+  }
+
+  /**
+   * Create an instance of {@link JalviewUserColours.Colour }
+   * 
+   */
+  public JalviewUserColours.Colour createJalviewUserColoursColour()
+  {
+    return new JalviewUserColours.Colour();
+  }
+
+  /**
+   * Create an instance of {@link JalviewUserColours.Filter }
+   * 
+   */
+  public JalviewUserColours.Filter createJalviewUserColoursFilter()
+  {
+    return new JalviewUserColours.Filter();
+  }
+
+  /**
+   * Create an instance of {@link Pdbentry.Property }
+   * 
+   */
+  public Pdbentry.Property createPdbentryProperty()
+  {
+    return new Pdbentry.Property();
+  }
+
+  /**
+   * Create an instance of {@link Feature.OtherData }
+   * 
+   */
+  public Feature.OtherData createFeatureOtherData()
+  {
+    return new Feature.OtherData();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.JGroup }
+   * 
+   */
+  public JalviewModel.JGroup createJalviewModelJGroup()
+  {
+    return new JalviewModel.JGroup();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.UserColours }
+   * 
+   */
+  public JalviewModel.UserColours createJalviewModelUserColours()
+  {
+    return new JalviewModel.UserColours();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.Tree }
+   * 
+   */
+  public JalviewModel.Tree createJalviewModelTree()
+  {
+    return new JalviewModel.Tree();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.FeatureSettings.Setting }
+   * 
+   */
+  public JalviewModel.FeatureSettings.Setting createJalviewModelFeatureSettingsSetting()
+  {
+    return new JalviewModel.FeatureSettings.Setting();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.FeatureSettings.Group }
+   * 
+   */
+  public JalviewModel.FeatureSettings.Group createJalviewModelFeatureSettingsGroup()
+  {
+    return new JalviewModel.FeatureSettings.Group();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.PcaViewer.SequencePoint }
+   * 
+   */
+  public JalviewModel.PcaViewer.SequencePoint createJalviewModelPcaViewerSequencePoint()
+  {
+    return new JalviewModel.PcaViewer.SequencePoint();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.PcaViewer.Axis }
+   * 
+   */
+  public JalviewModel.PcaViewer.Axis createJalviewModelPcaViewerAxis()
+  {
+    return new JalviewModel.PcaViewer.Axis();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.PcaViewer.SeqPointMin }
+   * 
+   */
+  public JalviewModel.PcaViewer.SeqPointMin createJalviewModelPcaViewerSeqPointMin()
+  {
+    return new JalviewModel.PcaViewer.SeqPointMin();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.PcaViewer.SeqPointMax }
+   * 
+   */
+  public JalviewModel.PcaViewer.SeqPointMax createJalviewModelPcaViewerSeqPointMax()
+  {
+    return new JalviewModel.PcaViewer.SeqPointMax();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.Viewport.HiddenColumns }
+   * 
+   */
+  public JalviewModel.Viewport.HiddenColumns createJalviewModelViewportHiddenColumns()
+  {
+    return new JalviewModel.Viewport.HiddenColumns();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.Viewport.CalcIdParam }
+   * 
+   */
+  public JalviewModel.Viewport.CalcIdParam createJalviewModelViewportCalcIdParam()
+  {
+    return new JalviewModel.Viewport.CalcIdParam();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.Viewport.Overview }
+   * 
+   */
+  public JalviewModel.Viewport.Overview createJalviewModelViewportOverview()
+  {
+    return new JalviewModel.Viewport.Overview();
+  }
+
+  /**
+   * Create an instance of
+   * {@link JalviewModel.JSeq.RnaViewer.SecondaryStructure }
+   * 
+   */
+  public JalviewModel.JSeq.RnaViewer.SecondaryStructure createJalviewModelJSeqRnaViewerSecondaryStructure()
+  {
+    return new JalviewModel.JSeq.RnaViewer.SecondaryStructure();
+  }
+
+  /**
+   * Create an instance of {@link JalviewModel.JSeq.Pdbids.StructureState }
+   * 
+   */
+  public JalviewModel.JSeq.Pdbids.StructureState createJalviewModelJSeqPdbidsStructureState()
+  {
+    return new JalviewModel.JSeq.Pdbids.StructureState();
+  }
+
+  /**
+   * Create an instance of {@link JAXBElement }{@code <}{@link JalviewModel
+   * }{@code >}
+   * 
+   * @param value
+   *          Java instance representing xml element's value.
+   * @return the new instance of {@link JAXBElement
+   *         }{@code <}{@link JalviewModel }{@code >}
+   */
+  @XmlElementDecl(namespace = "www.jalview.org", name = "JalviewModel")
+  public JAXBElement<JalviewModel> createJalviewModel(JalviewModel value)
+  {
+    return new JAXBElement<JalviewModel>(_JalviewModel_QNAME,
+            JalviewModel.class, null, value);
+  }
+
+  /**
+   * Create an instance of {@link JAXBElement
+   * }{@code <}{@link JalviewUserColours }{@code >}
+   * 
+   * @param value
+   *          Java instance representing xml element's value.
+   * @return the new instance of {@link JAXBElement
+   *         }{@code <}{@link JalviewUserColours }{@code >}
+   */
+  @XmlElementDecl(
+    namespace = "www.jalview.org/colours",
+    name = "JalviewUserColours")
+  public JAXBElement<JalviewUserColours> createJalviewUserColours(
+          JalviewUserColours value)
+  {
+    return new JAXBElement<JalviewUserColours>(_JalviewUserColours_QNAME,
+            JalviewUserColours.class, null, value);
+  }
+
+  /**
+   * Create an instance of {@link JAXBElement
+   * }{@code <}{@link WebServiceParameterSet }{@code >}
+   * 
+   * @param value
+   *          Java instance representing xml element's value.
+   * @return the new instance of {@link JAXBElement
+   *         }{@code <}{@link WebServiceParameterSet }{@code >}
+   */
+  @XmlElementDecl(
+    namespace = "www.jalview.org/xml/wsparamset",
+    name = "WebServiceParameterSet")
+  public JAXBElement<WebServiceParameterSet> createWebServiceParameterSet(
+          WebServiceParameterSet value)
+  {
+    return new JAXBElement<WebServiceParameterSet>(
+            _WebServiceParameterSet_QNAME, WebServiceParameterSet.class,
+            null, value);
+  }
 
 }
index b807190..dc175e2 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -13,13 +12,18 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
  * The results of a PCA calculation
  * 
- * <p>Java class for PcaDataType complex type</p>.
+ * <p>
+ * Java class for PcaDataType complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="PcaDataType"&gt;
@@ -38,90 +42,90 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "PcaDataType", namespace = "www.jalview.org", propOrder = {
-    "pairwiseMatrix",
-    "tridiagonalMatrix",
-    "eigenMatrix"
-})
-public class PcaDataType {
+@XmlType(
+  name = "PcaDataType",
+  namespace = "www.jalview.org",
+  propOrder =
+  { "pairwiseMatrix", "tridiagonalMatrix", "eigenMatrix" })
+public class PcaDataType
+{
+
+  @XmlElement(required = true)
+  protected DoubleMatrix pairwiseMatrix;
+
+  @XmlElement(required = true)
+  protected DoubleMatrix tridiagonalMatrix;
 
-    @XmlElement(required = true)
-    protected DoubleMatrix pairwiseMatrix;
-    @XmlElement(required = true)
-    protected DoubleMatrix tridiagonalMatrix;
-    @XmlElement(required = true)
-    protected DoubleMatrix eigenMatrix;
+  @XmlElement(required = true)
+  protected DoubleMatrix eigenMatrix;
 
-    /**
-     * Gets the value of the pairwiseMatrix property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link DoubleMatrix }
-     *     
-     */
-    public DoubleMatrix getPairwiseMatrix() {
-        return pairwiseMatrix;
-    }
+  /**
+   * Gets the value of the pairwiseMatrix property.
+   * 
+   * @return possible object is {@link DoubleMatrix }
+   * 
+   */
+  public DoubleMatrix getPairwiseMatrix()
+  {
+    return pairwiseMatrix;
+  }
 
-    /**
-     * Sets the value of the pairwiseMatrix property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link DoubleMatrix }
-     *     
-     */
-    public void setPairwiseMatrix(DoubleMatrix value) {
-        this.pairwiseMatrix = value;
-    }
+  /**
+   * Sets the value of the pairwiseMatrix property.
+   * 
+   * @param value
+   *          allowed object is {@link DoubleMatrix }
+   * 
+   */
+  public void setPairwiseMatrix(DoubleMatrix value)
+  {
+    this.pairwiseMatrix = value;
+  }
 
-    /**
-     * Gets the value of the tridiagonalMatrix property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link DoubleMatrix }
-     *     
-     */
-    public DoubleMatrix getTridiagonalMatrix() {
-        return tridiagonalMatrix;
-    }
+  /**
+   * Gets the value of the tridiagonalMatrix property.
+   * 
+   * @return possible object is {@link DoubleMatrix }
+   * 
+   */
+  public DoubleMatrix getTridiagonalMatrix()
+  {
+    return tridiagonalMatrix;
+  }
 
-    /**
-     * Sets the value of the tridiagonalMatrix property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link DoubleMatrix }
-     *     
-     */
-    public void setTridiagonalMatrix(DoubleMatrix value) {
-        this.tridiagonalMatrix = value;
-    }
+  /**
+   * Sets the value of the tridiagonalMatrix property.
+   * 
+   * @param value
+   *          allowed object is {@link DoubleMatrix }
+   * 
+   */
+  public void setTridiagonalMatrix(DoubleMatrix value)
+  {
+    this.tridiagonalMatrix = value;
+  }
 
-    /**
-     * Gets the value of the eigenMatrix property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link DoubleMatrix }
-     *     
-     */
-    public DoubleMatrix getEigenMatrix() {
-        return eigenMatrix;
-    }
+  /**
+   * Gets the value of the eigenMatrix property.
+   * 
+   * @return possible object is {@link DoubleMatrix }
+   * 
+   */
+  public DoubleMatrix getEigenMatrix()
+  {
+    return eigenMatrix;
+  }
 
-    /**
-     * Sets the value of the eigenMatrix property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link DoubleMatrix }
-     *     
-     */
-    public void setEigenMatrix(DoubleMatrix value) {
-        this.eigenMatrix = value;
-    }
+  /**
+   * Sets the value of the eigenMatrix property.
+   * 
+   * @param value
+   *          allowed object is {@link DoubleMatrix }
+   * 
+   */
+  public void setEigenMatrix(DoubleMatrix value)
+  {
+    this.eigenMatrix = value;
+  }
 
 }
index f7e4d73..032b932 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -16,11 +15,16 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for pdbentry complex type</p>.
+ * <p>
+ * Java class for pdbentry complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="pdbentry"&gt;
@@ -49,202 +53,212 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "pdbentry", namespace = "www.jalview.org", propOrder = {
-    "property"
-})
-@XmlSeeAlso({
-    jalview.xml.binding.jalview.JalviewModel.JSeq.Pdbids.class
-})
-public class Pdbentry {
-
-    protected List<Pdbentry.Property> property;
-    @XmlAttribute(name = "id", required = true)
-    protected String id;
-    @XmlAttribute(name = "type")
-    protected String type;
-    @XmlAttribute(name = "file")
-    protected String file;
+@XmlType(
+  name = "pdbentry",
+  namespace = "www.jalview.org",
+  propOrder =
+  { "property" })
+@XmlSeeAlso({ jalview.xml.binding.jalview.JalviewModel.JSeq.Pdbids.class })
+public class Pdbentry
+{
 
-    /**
-     * Gets the value of the property property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the property property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getProperty().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Pdbentry.Property }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the property property.
-     */
-    public List<Pdbentry.Property> getProperty() {
-        if (property == null) {
-            property = new ArrayList<Pdbentry.Property>();
-        }
-        return this.property;
-    }
+  protected List<Pdbentry.Property> property;
 
-    /**
-     * Gets the value of the id property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getId() {
-        return id;
-    }
+  @XmlAttribute(name = "id", required = true)
+  protected String id;
 
-    /**
-     * Sets the value of the id property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setId(String value) {
-        this.id = value;
+  @XmlAttribute(name = "type")
+  protected String type;
+
+  @XmlAttribute(name = "file")
+  protected String file;
+
+  /**
+   * Gets the value of the property property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the property property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getProperty().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link Pdbentry.Property }
+   * </p>
+   * 
+   * 
+   * @return The value of the property property.
+   */
+  public List<Pdbentry.Property> getProperty()
+  {
+    if (property == null)
+    {
+      property = new ArrayList<Pdbentry.Property>();
     }
+    return this.property;
+  }
+
+  /**
+   * Gets the value of the id property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getId()
+  {
+    return id;
+  }
+
+  /**
+   * Sets the value of the id property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setId(String value)
+  {
+    this.id = value;
+  }
+
+  /**
+   * Gets the value of the type property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getType()
+  {
+    return type;
+  }
+
+  /**
+   * Sets the value of the type property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setType(String value)
+  {
+    this.type = value;
+  }
+
+  /**
+   * Gets the value of the file property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getFile()
+  {
+    return file;
+  }
+
+  /**
+   * Sets the value of the file property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setFile(String value)
+  {
+    this.file = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "")
+  public static class Property
+  {
+
+    @XmlAttribute(name = "name", required = true)
+    protected String name;
+
+    @XmlAttribute(name = "value", required = true)
+    protected String value;
 
     /**
-     * Gets the value of the type property.
+     * Gets the value of the name property.
+     * 
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getType() {
-        return type;
+    public String getName()
+    {
+      return name;
     }
 
     /**
-     * Sets the value of the type property.
+     * Sets the value of the name property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setType(String value) {
-        this.type = value;
-    }
-
-    /**
-     * Gets the value of the file property.
+     *          allowed object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getFile() {
-        return file;
+    public void setName(String value)
+    {
+      this.name = value;
     }
 
     /**
-     * Sets the value of the file property.
+     * Gets the value of the value property.
+     * 
+     * @return possible object is {@link String }
      * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
      */
-    public void setFile(String value) {
-        this.file = value;
+    public String getValue()
+    {
+      return value;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     * Sets the value of the value property.
      * 
+     * @param value
+     *          allowed object is {@link String }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class Property {
-
-        @XmlAttribute(name = "name", required = true)
-        protected String name;
-        @XmlAttribute(name = "value", required = true)
-        protected String value;
-
-        /**
-         * Gets the value of the name property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getName() {
-            return name;
-        }
-
-        /**
-         * Sets the value of the name property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setName(String value) {
-            this.name = value;
-        }
-
-        /**
-         * Gets the value of the value property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getValue() {
-            return value;
-        }
-
-        /**
-         * Sets the value of the value property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setValue(String value) {
-            this.value = value;
-        }
-
+    public void setValue(String value)
+    {
+      this.value = value;
     }
 
+  }
+
 }
index d63c051..7807e1e 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -13,11 +12,16 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for property complex type</p>.
+ * <p>
+ * Java class for property complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="property"&gt;
@@ -34,59 +38,59 @@ import javax.xml.bind.annotation.XmlType;
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "property")
-public class Property {
+public class Property
+{
+
+  @XmlAttribute(name = "name")
+  protected String name;
 
-    @XmlAttribute(name = "name")
-    protected String name;
-    @XmlAttribute(name = "value")
-    protected String value;
+  @XmlAttribute(name = "value")
+  protected String value;
 
-    /**
-     * Gets the value of the name property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getName() {
-        return name;
-    }
+  /**
+   * Gets the value of the name property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getName()
+  {
+    return name;
+  }
 
-    /**
-     * Sets the value of the name property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setName(String value) {
-        this.name = value;
-    }
+  /**
+   * Sets the value of the name property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setName(String value)
+  {
+    this.name = value;
+  }
 
-    /**
-     * Gets the value of the value property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getValue() {
-        return value;
-    }
+  /**
+   * Gets the value of the value property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getValue()
+  {
+    return value;
+  }
 
-    /**
-     * Sets the value of the value property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setValue(String value) {
-        this.value = value;
-    }
+  /**
+   * Sets the value of the value property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setValue(String value)
+  {
+    this.value = value;
+  }
 
 }
index 3b9e3f5..09a68df 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -17,11 +16,16 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for anonymous complex type</p>.
+ * <p>
+ * Java class for anonymous complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType&gt;
@@ -55,325 +59,333 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "dbRef"
-})
+@XmlType(name = "", propOrder = { "dbRef" })
 @XmlRootElement(name = "Sequence")
-public class Sequence
-    extends SequenceType
+public class Sequence extends SequenceType
 {
 
-    @XmlElement(name = "DBRef")
-    protected List<Sequence.DBRef> dbRef;
+  @XmlElement(name = "DBRef")
+  protected List<Sequence.DBRef> dbRef;
+
+  /**
+   * dataset sequence id for this sequence. Will be created as union of
+   * sequences.
+   * 
+   */
+  @XmlAttribute(name = "dsseqid")
+  protected String dsseqid;
+
+  /**
+   * Biotype of the sequence (if known)
+   * 
+   */
+  @XmlAttribute(name = "biotype")
+  protected String biotype;
+
+  /**
+   * Gets the value of the dbRef property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the dbRef property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getDBRef().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link Sequence.DBRef }
+   * </p>
+   * 
+   * 
+   * @return The value of the dbRef property.
+   */
+  public List<Sequence.DBRef> getDBRef()
+  {
+    if (dbRef == null)
+    {
+      dbRef = new ArrayList<Sequence.DBRef>();
+    }
+    return this.dbRef;
+  }
+
+  /**
+   * dataset sequence id for this sequence. Will be created as union of
+   * sequences.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDsseqid()
+  {
+    return dsseqid;
+  }
+
+  /**
+   * Sets the value of the dsseqid property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getDsseqid()
+   */
+  public void setDsseqid(String value)
+  {
+    this.dsseqid = value;
+  }
+
+  /**
+   * Biotype of the sequence (if known)
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getBiotype()
+  {
+    return biotype;
+  }
+
+  /**
+   * Sets the value of the biotype property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getBiotype()
+   */
+  public void setBiotype(String value)
+  {
+    this.biotype = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;sequence&gt;
+   *         &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping" minOccurs="0"/&gt;
+   *       &lt;/sequence&gt;
+   *       &lt;attribute name="source" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="accessionId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="locus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *       &lt;attribute name="canonical" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "", propOrder = { "mapping" })
+  public static class DBRef
+  {
+
+    @XmlElement(name = "Mapping")
+    protected Mapping mapping;
+
+    @XmlAttribute(name = "source")
+    protected String source;
+
+    @XmlAttribute(name = "version")
+    protected String version;
+
+    @XmlAttribute(name = "accessionId")
+    protected String accessionId;
+
     /**
-     * dataset sequence id for this sequence. Will be
-     *                                                                 created as union of sequences.
+     * true for gene locus mapping, source=species, version=assembly,
+     * accession=chromosome
      * 
      */
-    @XmlAttribute(name = "dsseqid")
-    protected String dsseqid;
+    @XmlAttribute(name = "locus")
+    protected Boolean locus;
+
     /**
-     * Biotype of the sequence (if known)
+     * true for the representative accession for databases where multiple
+     * accessions map to the same entry (eg. Uniprot)
      * 
      */
-    @XmlAttribute(name = "biotype")
-    protected String biotype;
+    @XmlAttribute(name = "canonical")
+    protected Boolean canonical;
 
     /**
-     * Gets the value of the dbRef property.
+     * Gets the value of the mapping property.
      * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the dbRef property.</p>
+     * @return possible object is {@link Mapping }
      * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getDBRef().add(newItem);
-     * </pre>
+     */
+    public Mapping getMapping()
+    {
+      return mapping;
+    }
+
+    /**
+     * Sets the value of the mapping property.
+     * 
+     * @param value
+     *          allowed object is {@link Mapping }
+     * 
+     */
+    public void setMapping(Mapping value)
+    {
+      this.mapping = value;
+    }
+
+    /**
+     * Gets the value of the source property.
      * 
+     * @return possible object is {@link String }
      * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Sequence.DBRef }
-     * </p>
+     */
+    public String getSource()
+    {
+      return source;
+    }
+
+    /**
+     * Sets the value of the source property.
      * 
+     * @param value
+     *          allowed object is {@link String }
      * 
-     * @return
-     *     The value of the dbRef property.
      */
-    public List<Sequence.DBRef> getDBRef() {
-        if (dbRef == null) {
-            dbRef = new ArrayList<Sequence.DBRef>();
-        }
-        return this.dbRef;
+    public void setSource(String value)
+    {
+      this.source = value;
     }
 
     /**
-     * dataset sequence id for this sequence. Will be
-     *                                                                 created as union of sequences.
+     * Gets the value of the version property.
+     * 
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getDsseqid() {
-        return dsseqid;
+    public String getVersion()
+    {
+      return version;
     }
 
     /**
-     * Sets the value of the dsseqid property.
+     * Sets the value of the version property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getDsseqid()
+     *          allowed object is {@link String }
+     * 
      */
-    public void setDsseqid(String value) {
-        this.dsseqid = value;
+    public void setVersion(String value)
+    {
+      this.version = value;
     }
 
     /**
-     * Biotype of the sequence (if known)
+     * Gets the value of the accessionId property.
+     * 
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getBiotype() {
-        return biotype;
+    public String getAccessionId()
+    {
+      return accessionId;
     }
 
     /**
-     * Sets the value of the biotype property.
+     * Sets the value of the accessionId property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getBiotype()
+     *          allowed object is {@link String }
+     * 
      */
-    public void setBiotype(String value) {
-        this.biotype = value;
+    public void setAccessionId(String value)
+    {
+      this.accessionId = value;
     }
 
+    /**
+     * true for gene locus mapping, source=species, version=assembly,
+     * accession=chromosome
+     * 
+     * @return possible object is {@link Boolean }
+     * 
+     */
+    public boolean isLocus()
+    {
+      if (locus == null)
+      {
+        return false;
+      }
+      else
+      {
+        return locus;
+      }
+    }
 
     /**
-     * <p>Java class for anonymous complex type</p>.
+     * Sets the value of the locus property.
      * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
+     * @param value
+     *          allowed object is {@link Boolean }
      * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;sequence&gt;
-     *         &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping" minOccurs="0"/&gt;
-     *       &lt;/sequence&gt;
-     *       &lt;attribute name="source" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="accessionId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="locus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *       &lt;attribute name="canonical" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     * @see #isLocus()
+     */
+    public void setLocus(Boolean value)
+    {
+      this.locus = value;
+    }
+
+    /**
+     * true for the representative accession for databases where multiple
+     * accessions map to the same entry (eg. Uniprot)
      * 
+     * @return possible object is {@link Boolean }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "", propOrder = {
-        "mapping"
-    })
-    public static class DBRef {
-
-        @XmlElement(name = "Mapping")
-        protected Mapping mapping;
-        @XmlAttribute(name = "source")
-        protected String source;
-        @XmlAttribute(name = "version")
-        protected String version;
-        @XmlAttribute(name = "accessionId")
-        protected String accessionId;
-        /**
-         * true for gene locus mapping, source=species,
-         *                                                                                     version=assembly, accession=chromosome
-         * 
-         */
-        @XmlAttribute(name = "locus")
-        protected Boolean locus;
-        /**
-         * true for the representative accession for
-         *                                                                                     databases where multiple accessions map to the same entry
-         *                                                                                     (eg. Uniprot)
-         * 
-         */
-        @XmlAttribute(name = "canonical")
-        protected Boolean canonical;
-
-        /**
-         * Gets the value of the mapping property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link Mapping }
-         *     
-         */
-        public Mapping getMapping() {
-            return mapping;
-        }
-
-        /**
-         * Sets the value of the mapping property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Mapping }
-         *     
-         */
-        public void setMapping(Mapping value) {
-            this.mapping = value;
-        }
-
-        /**
-         * Gets the value of the source property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getSource() {
-            return source;
-        }
-
-        /**
-         * Sets the value of the source property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setSource(String value) {
-            this.source = value;
-        }
-
-        /**
-         * Gets the value of the version property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getVersion() {
-            return version;
-        }
-
-        /**
-         * Sets the value of the version property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setVersion(String value) {
-            this.version = value;
-        }
-
-        /**
-         * Gets the value of the accessionId property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getAccessionId() {
-            return accessionId;
-        }
-
-        /**
-         * Sets the value of the accessionId property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setAccessionId(String value) {
-            this.accessionId = value;
-        }
-
-        /**
-         * true for gene locus mapping, source=species,
-         *                                                                                     version=assembly, accession=chromosome
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isLocus() {
-            if (locus == null) {
-                return false;
-            } else {
-                return locus;
-            }
-        }
-
-        /**
-         * Sets the value of the locus property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isLocus()
-         */
-        public void setLocus(Boolean value) {
-            this.locus = value;
-        }
-
-        /**
-         * true for the representative accession for
-         *                                                                                     databases where multiple accessions map to the same entry
-         *                                                                                     (eg. Uniprot)
-         * 
-         * @return
-         *     possible object is
-         *     {@link Boolean }
-         *     
-         */
-        public boolean isCanonical() {
-            if (canonical == null) {
-                return false;
-            } else {
-                return canonical;
-            }
-        }
-
-        /**
-         * Sets the value of the canonical property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link Boolean }
-         *     
-         * @see #isCanonical()
-         */
-        public void setCanonical(Boolean value) {
-            this.canonical = value;
-        }
+    public boolean isCanonical()
+    {
+      if (canonical == null)
+      {
+        return false;
+      }
+      else
+      {
+        return canonical;
+      }
+    }
 
+    /**
+     * Sets the value of the canonical property.
+     * 
+     * @param value
+     *          allowed object is {@link Boolean }
+     * 
+     * @see #isCanonical()
+     */
+    public void setCanonical(Boolean value)
+    {
+      this.canonical = value;
     }
 
+  }
+
 }
index 8629a7e..46c7007 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -17,11 +16,16 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for anonymous complex type</p>.
+ * <p>
+ * Java class for anonymous complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType&gt;
@@ -53,327 +57,354 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {
-    "sequence",
-    "annotation",
-    "sequenceSetProperties",
-    "alcodonFrame",
-    "matrix"
-})
+@XmlType(
+  name = "",
+  propOrder =
+  { "sequence", "annotation", "sequenceSetProperties", "alcodonFrame",
+      "matrix" })
 @XmlRootElement(name = "SequenceSet")
-public class SequenceSet {
+public class SequenceSet
+{
 
-    @XmlElement(name = "Sequence")
-    protected List<Sequence> sequence;
-    @XmlElement(name = "Annotation")
-    protected List<Annotation> annotation;
-    protected List<SequenceSet.SequenceSetProperties> sequenceSetProperties;
-    @XmlElement(name = "AlcodonFrame")
-    protected List<AlcodonFrame> alcodonFrame;
-    /**
-     * Matrices referred to by this set of sequences.
-     * 
-     */
-    @XmlElement(name = "Matrix")
-    protected List<MatrixType> matrix;
-    @XmlAttribute(name = "gapChar", required = true)
-    protected String gapChar;
-    /**
-     * reference to set where jalview will gather the
-     *                                                 dataset sequences for all sequences in the set.
-     * 
-     */
-    @XmlAttribute(name = "datasetId")
-    protected String datasetId;
+  @XmlElement(name = "Sequence")
+  protected List<Sequence> sequence;
 
-    /**
-     * Gets the value of the sequence property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the sequence property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getSequence().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Sequence }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the sequence property.
-     */
-    public List<Sequence> getSequence() {
-        if (sequence == null) {
-            sequence = new ArrayList<Sequence>();
-        }
-        return this.sequence;
+  @XmlElement(name = "Annotation")
+  protected List<Annotation> annotation;
+
+  protected List<SequenceSet.SequenceSetProperties> sequenceSetProperties;
+
+  @XmlElement(name = "AlcodonFrame")
+  protected List<AlcodonFrame> alcodonFrame;
+
+  /**
+   * Matrices referred to by this set of sequences.
+   * 
+   */
+  @XmlElement(name = "Matrix")
+  protected List<MatrixType> matrix;
+
+  @XmlAttribute(name = "gapChar", required = true)
+  protected String gapChar;
+
+  /**
+   * reference to set where jalview will gather the dataset sequences for all
+   * sequences in the set.
+   * 
+   */
+  @XmlAttribute(name = "datasetId")
+  protected String datasetId;
+
+  /**
+   * Gets the value of the sequence property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the sequence property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getSequence().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link Sequence }
+   * </p>
+   * 
+   * 
+   * @return The value of the sequence property.
+   */
+  public List<Sequence> getSequence()
+  {
+    if (sequence == null)
+    {
+      sequence = new ArrayList<Sequence>();
     }
+    return this.sequence;
+  }
 
-    /**
-     * Gets the value of the annotation property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the annotation property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getAnnotation().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link Annotation }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the annotation property.
-     */
-    public List<Annotation> getAnnotation() {
-        if (annotation == null) {
-            annotation = new ArrayList<Annotation>();
-        }
-        return this.annotation;
+  /**
+   * Gets the value of the annotation property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the annotation property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getAnnotation().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link Annotation
+   * }
+   * </p>
+   * 
+   * 
+   * @return The value of the annotation property.
+   */
+  public List<Annotation> getAnnotation()
+  {
+    if (annotation == null)
+    {
+      annotation = new ArrayList<Annotation>();
     }
+    return this.annotation;
+  }
 
-    /**
-     * Gets the value of the sequenceSetProperties property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the sequenceSetProperties property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getSequenceSetProperties().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link SequenceSet.SequenceSetProperties }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the sequenceSetProperties property.
-     */
-    public List<SequenceSet.SequenceSetProperties> getSequenceSetProperties() {
-        if (sequenceSetProperties == null) {
-            sequenceSetProperties = new ArrayList<SequenceSet.SequenceSetProperties>();
-        }
-        return this.sequenceSetProperties;
+  /**
+   * Gets the value of the sequenceSetProperties property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the sequenceSetProperties property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getSequenceSetProperties().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link SequenceSet.SequenceSetProperties }
+   * </p>
+   * 
+   * 
+   * @return The value of the sequenceSetProperties property.
+   */
+  public List<SequenceSet.SequenceSetProperties> getSequenceSetProperties()
+  {
+    if (sequenceSetProperties == null)
+    {
+      sequenceSetProperties = new ArrayList<SequenceSet.SequenceSetProperties>();
     }
+    return this.sequenceSetProperties;
+  }
 
-    /**
-     * Gets the value of the alcodonFrame property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the alcodonFrame property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getAlcodonFrame().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link AlcodonFrame }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the alcodonFrame property.
-     */
-    public List<AlcodonFrame> getAlcodonFrame() {
-        if (alcodonFrame == null) {
-            alcodonFrame = new ArrayList<AlcodonFrame>();
-        }
-        return this.alcodonFrame;
+  /**
+   * Gets the value of the alcodonFrame property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the alcodonFrame property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getAlcodonFrame().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list
+   * {@link AlcodonFrame }
+   * </p>
+   * 
+   * 
+   * @return The value of the alcodonFrame property.
+   */
+  public List<AlcodonFrame> getAlcodonFrame()
+  {
+    if (alcodonFrame == null)
+    {
+      alcodonFrame = new ArrayList<AlcodonFrame>();
     }
+    return this.alcodonFrame;
+  }
 
-    /**
-     * Matrices referred to by this set of sequences.
-     * 
-     * Gets the value of the matrix property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the matrix property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getMatrix().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link MatrixType }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the matrix property.
-     */
-    public List<MatrixType> getMatrix() {
-        if (matrix == null) {
-            matrix = new ArrayList<MatrixType>();
-        }
-        return this.matrix;
+  /**
+   * Matrices referred to by this set of sequences.
+   * 
+   * Gets the value of the matrix property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the matrix property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getMatrix().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link MatrixType
+   * }
+   * </p>
+   * 
+   * 
+   * @return The value of the matrix property.
+   */
+  public List<MatrixType> getMatrix()
+  {
+    if (matrix == null)
+    {
+      matrix = new ArrayList<MatrixType>();
     }
+    return this.matrix;
+  }
+
+  /**
+   * Gets the value of the gapChar property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getGapChar()
+  {
+    return gapChar;
+  }
+
+  /**
+   * Sets the value of the gapChar property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setGapChar(String value)
+  {
+    this.gapChar = value;
+  }
+
+  /**
+   * reference to set where jalview will gather the dataset sequences for all
+   * sequences in the set.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDatasetId()
+  {
+    return datasetId;
+  }
+
+  /**
+   * Sets the value of the datasetId property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getDatasetId()
+   */
+  public void setDatasetId(String value)
+  {
+    this.datasetId = value;
+  }
+
+  /**
+   * <p>
+   * Java class for anonymous complex type
+   * </p>
+   * .
+   * 
+   * <p>
+   * The following schema fragment specifies the expected content contained
+   * within this class.
+   * </p>
+   * 
+   * <pre>
+   * &lt;complexType&gt;
+   *   &lt;complexContent&gt;
+   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+   *       &lt;attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+   *     &lt;/restriction&gt;
+   *   &lt;/complexContent&gt;
+   * &lt;/complexType&gt;
+   * </pre>
+   * 
+   * 
+   */
+  @XmlAccessorType(XmlAccessType.FIELD)
+  @XmlType(name = "")
+  public static class SequenceSetProperties
+  {
+
+    @XmlAttribute(name = "key")
+    protected String key;
+
+    @XmlAttribute(name = "value")
+    protected String value;
 
     /**
-     * Gets the value of the gapChar property.
+     * Gets the value of the key property.
+     * 
+     * @return possible object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getGapChar() {
-        return gapChar;
+    public String getKey()
+    {
+      return key;
     }
 
     /**
-     * Sets the value of the gapChar property.
+     * Sets the value of the key property.
      * 
      * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setGapChar(String value) {
-        this.gapChar = value;
-    }
-
-    /**
-     * reference to set where jalview will gather the
-     *                                                 dataset sequences for all sequences in the set.
+     *          allowed object is {@link String }
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getDatasetId() {
-        return datasetId;
+    public void setKey(String value)
+    {
+      this.key = value;
     }
 
     /**
-     * Sets the value of the datasetId property.
+     * Gets the value of the value property.
+     * 
+     * @return possible object is {@link String }
      * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getDatasetId()
      */
-    public void setDatasetId(String value) {
-        this.datasetId = value;
+    public String getValue()
+    {
+      return value;
     }
 
-
     /**
-     * <p>Java class for anonymous complex type</p>.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.</p>
-     * 
-     * <pre>
-     * &lt;complexType&gt;
-     *   &lt;complexContent&gt;
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
-     *       &lt;attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
-     *     &lt;/restriction&gt;
-     *   &lt;/complexContent&gt;
-     * &lt;/complexType&gt;
-     * </pre>
+     * Sets the value of the value property.
      * 
+     * @param value
+     *          allowed object is {@link String }
      * 
      */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class SequenceSetProperties {
-
-        @XmlAttribute(name = "key")
-        protected String key;
-        @XmlAttribute(name = "value")
-        protected String value;
-
-        /**
-         * Gets the value of the key property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getKey() {
-            return key;
-        }
-
-        /**
-         * Sets the value of the key property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setKey(String value) {
-            this.key = value;
-        }
-
-        /**
-         * Gets the value of the value property.
-         * 
-         * @return
-         *     possible object is
-         *     {@link String }
-         *     
-         */
-        public String getValue() {
-            return value;
-        }
-
-        /**
-         * Sets the value of the value property.
-         * 
-         * @param value
-         *     allowed object is
-         *     {@link String }
-         *     
-         */
-        public void setValue(String value) {
-            this.value = value;
-        }
-
+    public void setValue(String value)
+    {
+      this.value = value;
     }
 
+  }
+
 }
index 590ea6d..703d9f0 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -14,11 +13,16 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for SequenceType complex type</p>.
+ * <p>
+ * Java class for SequenceType complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="SequenceType"&gt;
@@ -38,116 +42,111 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "SequenceType", propOrder = {
-    "sequence",
-    "name"
-})
-@XmlSeeAlso({
-    Sequence.class
-})
-public class SequenceType {
-
-    protected String sequence;
-    protected String name;
-    @XmlAttribute(name = "id")
-    protected String id;
-    @XmlAttribute(name = "description")
-    protected String description;
-
-    /**
-     * Gets the value of the sequence property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getSequence() {
-        return sequence;
-    }
-
-    /**
-     * Sets the value of the sequence property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setSequence(String value) {
-        this.sequence = value;
-    }
-
-    /**
-     * Gets the value of the name property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Sets the value of the name property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setName(String value) {
-        this.name = value;
-    }
-
-    /**
-     * Gets the value of the id property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Sets the value of the id property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setId(String value) {
-        this.id = value;
-    }
-
-    /**
-     * Gets the value of the description property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Sets the value of the description property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDescription(String value) {
-        this.description = value;
-    }
+@XmlType(name = "SequenceType", propOrder = { "sequence", "name" })
+@XmlSeeAlso({ Sequence.class })
+public class SequenceType
+{
+
+  protected String sequence;
+
+  protected String name;
+
+  @XmlAttribute(name = "id")
+  protected String id;
+
+  @XmlAttribute(name = "description")
+  protected String description;
+
+  /**
+   * Gets the value of the sequence property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getSequence()
+  {
+    return sequence;
+  }
+
+  /**
+   * Sets the value of the sequence property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setSequence(String value)
+  {
+    this.sequence = value;
+  }
+
+  /**
+   * Gets the value of the name property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Sets the value of the name property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setName(String value)
+  {
+    this.name = value;
+  }
+
+  /**
+   * Gets the value of the id property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getId()
+  {
+    return id;
+  }
+
+  /**
+   * Sets the value of the id property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setId(String value)
+  {
+    this.id = value;
+  }
+
+  /**
+   * Gets the value of the description property.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDescription()
+  {
+    return description;
+  }
+
+  /**
+   * Sets the value of the description property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   */
+  public void setDescription(String value)
+  {
+    this.description = value;
+  }
 
 }
index 345ede6..fd5a31a 100644 (file)
@@ -5,20 +5,24 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import javax.xml.bind.annotation.XmlEnum;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * Whether filter has a threshold, and if so is it
- *                             above or below
+ * Whether filter has a threshold, and if so is it above or below
+ * 
+ * <p>
+ * Java class for ThresholdType
+ * </p>
+ * .
  * 
- * <p>Java class for ThresholdType</p>.
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
  * <pre>
  * &lt;simpleType name="ThresholdType"&gt;
  *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
@@ -32,18 +36,19 @@ import javax.xml.bind.annotation.XmlType;
  */
 @XmlType(name = "ThresholdType", namespace = "www.jalview.org/colours")
 @XmlEnum
-public enum ThresholdType {
+public enum ThresholdType
+{
 
-    NONE,
-    ABOVE,
-    BELOW;
+  NONE, ABOVE, BELOW;
 
-    public String value() {
-        return name();
-    }
+  public String value()
+  {
+    return name();
+  }
 
-    public static ThresholdType fromValue(String v) {
-        return valueOf(v);
-    }
+  public static ThresholdType fromValue(String v)
+  {
+    return valueOf(v);
+  }
 
 }
index bd17cc2..621339a 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -15,11 +14,16 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for VAMSAS complex type</p>.
+ * <p>
+ * Java class for VAMSAS complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="VAMSAS"&gt;
@@ -37,79 +41,85 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "VAMSAS", propOrder = {
-    "tree",
-    "sequenceSet"
-})
-public class VAMSAS {
+@XmlType(name = "VAMSAS", propOrder = { "tree", "sequenceSet" })
+public class VAMSAS
+{
+
+  @XmlElement(name = "Tree")
+  protected List<String> tree;
 
-    @XmlElement(name = "Tree")
-    protected List<String> tree;
-    @XmlElement(name = "SequenceSet")
-    protected List<SequenceSet> sequenceSet;
+  @XmlElement(name = "SequenceSet")
+  protected List<SequenceSet> sequenceSet;
 
-    /**
-     * Gets the value of the tree property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the tree property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getTree().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link String }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the tree property.
-     */
-    public List<String> getTree() {
-        if (tree == null) {
-            tree = new ArrayList<String>();
-        }
-        return this.tree;
+  /**
+   * Gets the value of the tree property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the tree property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getTree().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link String }
+   * </p>
+   * 
+   * 
+   * @return The value of the tree property.
+   */
+  public List<String> getTree()
+  {
+    if (tree == null)
+    {
+      tree = new ArrayList<String>();
     }
+    return this.tree;
+  }
 
-    /**
-     * Gets the value of the sequenceSet property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the sequenceSet property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getSequenceSet().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link SequenceSet }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the sequenceSet property.
-     */
-    public List<SequenceSet> getSequenceSet() {
-        if (sequenceSet == null) {
-            sequenceSet = new ArrayList<SequenceSet>();
-        }
-        return this.sequenceSet;
+  /**
+   * Gets the value of the sequenceSet property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the sequenceSet property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getSequenceSet().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link SequenceSet
+   * }
+   * </p>
+   * 
+   * 
+   * @return The value of the sequenceSet property.
+   */
+  public List<SequenceSet> getSequenceSet()
+  {
+    if (sequenceSet == null)
+    {
+      sequenceSet = new ArrayList<SequenceSet>();
     }
+    return this.sequenceSet;
+  }
 
 }
index 78833f6..4489516 100644 (file)
@@ -5,7 +5,6 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-
 package jalview.xml.binding.jalview;
 
 import java.util.ArrayList;
@@ -18,11 +17,16 @@ import javax.xml.bind.annotation.XmlSchemaType;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlType;
 
-
 /**
- * <p>Java class for WebServiceParameterSet complex type</p>.
+ * <p>
+ * Java class for WebServiceParameterSet complex type
+ * </p>
+ * .
  * 
- * <p>The following schema fragment specifies the expected content contained within this class.</p>
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * </p>
  * 
  * <pre>
  * &lt;complexType name="WebServiceParameterSet"&gt;
@@ -43,201 +47,197 @@ import javax.xml.bind.annotation.XmlType;
  * 
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "WebServiceParameterSet", namespace = "www.jalview.org/xml/wsparamset", propOrder = {
-    "version",
-    "description",
-    "serviceURL",
-    "parameters"
-})
+@XmlType(
+  name = "WebServiceParameterSet",
+  namespace = "www.jalview.org/xml/wsparamset",
+  propOrder =
+  { "version", "description", "serviceURL", "parameters" })
 @XmlSeeAlso({
-    jalview.xml.binding.jalview.JalviewModel.Viewport.CalcIdParam.class
-})
-public class WebServiceParameterSet {
-
-    /**
-     * A Jalview Web Service Parameter Set container
-     *                                                 version number.
-     *                                                 Version 1 created for storing Jaba user presets.
-     * 
-     */
-    @XmlElement(name = "Version", namespace = "")
-    protected String version;
-    /**
-     * Short description - as utf8 encoded text. This is
-     *                                                 usually displayed
-     *                                                 in the body of an HTML capable tooltip, so HTML tags may be embedded
-     *                                                 using standard UTF8 encoding.
-     * 
-     */
-    @XmlElement(namespace = "")
-    protected String description;
-    /**
-     * URL for which the parameter set is valid. Jalview will use it to
-     *                                                 match up parameter sets to service instances that can parse the
-     *                                                 parameter set payload.
-     * 
-     */
-    @XmlElement(namespace = "", required = true)
-    @XmlSchemaType(name = "anyURI")
-    protected List<String> serviceURL;
-    /**
-     * UTF8 encoded string to be processed into a specific web services'
-     *                                                 parameter set. Note - newlines may be important to the structure
-     *                                                 of this file.
-     * 
-     */
-    @XmlElement(namespace = "", required = true)
-    protected String parameters;
-    /**
-     * The short name for the parameter set. This will be shown amongst the
-     *                                         other presets for the web service.
-     * 
-     */
-    @XmlAttribute(name = "name", required = true)
-    protected String name;
-
-    /**
-     * A Jalview Web Service Parameter Set container
-     *                                                 version number.
-     *                                                 Version 1 created for storing Jaba user presets.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getVersion() {
-        return version;
-    }
-
-    /**
-     * Sets the value of the version property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getVersion()
-     */
-    public void setVersion(String value) {
-        this.version = value;
-    }
-
-    /**
-     * Short description - as utf8 encoded text. This is
-     *                                                 usually displayed
-     *                                                 in the body of an HTML capable tooltip, so HTML tags may be embedded
-     *                                                 using standard UTF8 encoding.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Sets the value of the description property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getDescription()
-     */
-    public void setDescription(String value) {
-        this.description = value;
-    }
-
-    /**
-     * URL for which the parameter set is valid. Jalview will use it to
-     *                                                 match up parameter sets to service instances that can parse the
-     *                                                 parameter set payload.
-     * 
-     * Gets the value of the serviceURL property.
-     * 
-     * <p>This accessor method returns a reference to the live list,
-     * not a snapshot. Therefore any modification you make to the
-     * returned list will be present inside the JAXB object.
-     * This is why there is not a <CODE>set</CODE> method for the serviceURL property.</p>
-     * 
-     * <p>
-     * For example, to add a new item, do as follows:
-     * </p>
-     * <pre>
-     * getServiceURL().add(newItem);
-     * </pre>
-     * 
-     * 
-     * <p>
-     * Objects of the following type(s) are allowed in the list
-     * {@link String }
-     * </p>
-     * 
-     * 
-     * @return
-     *     The value of the serviceURL property.
-     */
-    public List<String> getServiceURL() {
-        if (serviceURL == null) {
-            serviceURL = new ArrayList<String>();
-        }
-        return this.serviceURL;
-    }
-
-    /**
-     * UTF8 encoded string to be processed into a specific web services'
-     *                                                 parameter set. Note - newlines may be important to the structure
-     *                                                 of this file.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getParameters() {
-        return parameters;
-    }
-
-    /**
-     * Sets the value of the parameters property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getParameters()
-     */
-    public void setParameters(String value) {
-        this.parameters = value;
-    }
-
-    /**
-     * The short name for the parameter set. This will be shown amongst the
-     *                                         other presets for the web service.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Sets the value of the name property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     * @see #getName()
-     */
-    public void setName(String value) {
-        this.name = value;
+    jalview.xml.binding.jalview.JalviewModel.Viewport.CalcIdParam.class })
+public class WebServiceParameterSet
+{
+
+  /**
+   * A Jalview Web Service Parameter Set container version number. Version 1
+   * created for storing Jaba user presets.
+   * 
+   */
+  @XmlElement(name = "Version", namespace = "")
+  protected String version;
+
+  /**
+   * Short description - as utf8 encoded text. This is usually displayed in the
+   * body of an HTML capable tooltip, so HTML tags may be embedded using
+   * standard UTF8 encoding.
+   * 
+   */
+  @XmlElement(namespace = "")
+  protected String description;
+
+  /**
+   * URL for which the parameter set is valid. Jalview will use it to match up
+   * parameter sets to service instances that can parse the parameter set
+   * payload.
+   * 
+   */
+  @XmlElement(namespace = "", required = true)
+  @XmlSchemaType(name = "anyURI")
+  protected List<String> serviceURL;
+
+  /**
+   * UTF8 encoded string to be processed into a specific web services' parameter
+   * set. Note - newlines may be important to the structure of this file.
+   * 
+   */
+  @XmlElement(namespace = "", required = true)
+  protected String parameters;
+
+  /**
+   * The short name for the parameter set. This will be shown amongst the other
+   * presets for the web service.
+   * 
+   */
+  @XmlAttribute(name = "name", required = true)
+  protected String name;
+
+  /**
+   * A Jalview Web Service Parameter Set container version number. Version 1
+   * created for storing Jaba user presets.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getVersion()
+  {
+    return version;
+  }
+
+  /**
+   * Sets the value of the version property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getVersion()
+   */
+  public void setVersion(String value)
+  {
+    this.version = value;
+  }
+
+  /**
+   * Short description - as utf8 encoded text. This is usually displayed in the
+   * body of an HTML capable tooltip, so HTML tags may be embedded using
+   * standard UTF8 encoding.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getDescription()
+  {
+    return description;
+  }
+
+  /**
+   * Sets the value of the description property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getDescription()
+   */
+  public void setDescription(String value)
+  {
+    this.description = value;
+  }
+
+  /**
+   * URL for which the parameter set is valid. Jalview will use it to match up
+   * parameter sets to service instances that can parse the parameter set
+   * payload.
+   * 
+   * Gets the value of the serviceURL property.
+   * 
+   * <p>
+   * This accessor method returns a reference to the live list, not a snapshot.
+   * Therefore any modification you make to the returned list will be present
+   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
+   * for the serviceURL property.
+   * </p>
+   * 
+   * <p>
+   * For example, to add a new item, do as follows:
+   * </p>
+   * 
+   * <pre>
+   * getServiceURL().add(newItem);
+   * </pre>
+   * 
+   * 
+   * <p>
+   * Objects of the following type(s) are allowed in the list {@link String }
+   * </p>
+   * 
+   * 
+   * @return The value of the serviceURL property.
+   */
+  public List<String> getServiceURL()
+  {
+    if (serviceURL == null)
+    {
+      serviceURL = new ArrayList<String>();
     }
+    return this.serviceURL;
+  }
+
+  /**
+   * UTF8 encoded string to be processed into a specific web services' parameter
+   * set. Note - newlines may be important to the structure of this file.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getParameters()
+  {
+    return parameters;
+  }
+
+  /**
+   * Sets the value of the parameters property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getParameters()
+   */
+  public void setParameters(String value)
+  {
+    this.parameters = value;
+  }
+
+  /**
+   * The short name for the parameter set. This will be shown amongst the other
+   * presets for the web service.
+   * 
+   * @return possible object is {@link String }
+   * 
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Sets the value of the name property.
+   * 
+   * @param value
+   *          allowed object is {@link String }
+   * 
+   * @see #getName()
+   */
+  public void setName(String value)
+  {
+    this.name = value;
+  }
 
 }
index cdebe06..d2cfb8b 100644 (file)
@@ -5,5 +5,7 @@
 // Generated on: 2024.07.25 at 04:43:38 PM BST 
 //
 
-@javax.xml.bind.annotation.XmlSchema(namespace = "www.vamsas.ac.uk/jalview/version2", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+@javax.xml.bind.annotation.XmlSchema(
+  namespace = "www.vamsas.ac.uk/jalview/version2",
+  elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
 package jalview.xml.binding.jalview;
index 03bdd0b..1f94601 100644 (file)
@@ -76,16 +76,18 @@ public class AlignSeqTest
     String s = "aArRnNzZxX *.-?";
     assertArrayEquals(expected, as.indexEncode(s));
   }
-  @Test(groups= {"Functional"})
+
+  @Test(groups = { "Functional" })
   public void testGlobalAlignment()
   {
-    String seq1="CAGCTAGCG",seq2="CCATACGA";
-    Sequence sq1=new Sequence("s1",seq1),sq2=new Sequence("s2",seq2);
+    String seq1 = "CAGCTAGCG", seq2 = "CCATACGA";
+    Sequence sq1 = new Sequence("s1", seq1), sq2 = new Sequence("s2", seq2);
     // AlignSeq doesn't report the unaligned regions at either end of sequences
-    //String alseq1="-CAGCTAGCG-",alseq2="CCA--TA-CGA";
+    // String alseq1="-CAGCTAGCG-",alseq2="CCA--TA-CGA";
     // so we check we have the aligned segment correct only
-    String alseq1="CAGCTAGCG",alseq2="CA--TA-CG";
-    AlignSeq as = AlignSeq.doGlobalNWAlignment(sq1,sq2,AlignSeq.DNA);
-    assertEquals(as.getAStr1()+"\n"+as.getAStr2(),alseq1+"\n"+alseq2);
+    String alseq1 = "CAGCTAGCG", alseq2 = "CA--TA-CG";
+    AlignSeq as = AlignSeq.doGlobalNWAlignment(sq1, sq2, AlignSeq.DNA);
+    assertEquals(as.getAStr1() + "\n" + as.getAStr2(),
+            alseq1 + "\n" + alseq2);
   }
 }
index 1cf9a80..fc2a577 100644 (file)
@@ -83,25 +83,29 @@ public class AlignmentUtilsTests
   {
     JvOptionPane.setInteractiveMode(false);
     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
-    
-    AlignmentAnnotation ann1 = new AlignmentAnnotation("Secondary Structure", "Secondary Structure",
-            new Annotation[] {});
-    AlignmentAnnotation ann2 = new AlignmentAnnotation("jnetpred", "jnetpred",
+
+    AlignmentAnnotation ann1 = new AlignmentAnnotation(
+            "Secondary Structure", "Secondary Structure",
             new Annotation[] {});
+    AlignmentAnnotation ann2 = new AlignmentAnnotation("jnetpred",
+            "jnetpred", new Annotation[] {});
     AlignmentAnnotation ann3 = new AlignmentAnnotation("Temp", "Temp",
             new Annotation[] {});
     AlignmentAnnotation ann4 = new AlignmentAnnotation("Temp", "Temp",
             new Annotation[] {});
-    
-    AlignmentAnnotation[] anns1 = new AlignmentAnnotation[] {ann1, ann3, ann4};
 
-    AlignmentAnnotation[] anns2 = new AlignmentAnnotation[] {ann2, ann3, ann4};
-    
-    AlignmentAnnotation[] anns3 = new AlignmentAnnotation[] {ann3, ann4};
-    
+    AlignmentAnnotation[] anns1 = new AlignmentAnnotation[] { ann1, ann3,
+        ann4 };
+
+    AlignmentAnnotation[] anns2 = new AlignmentAnnotation[] { ann2, ann3,
+        ann4 };
+
+    AlignmentAnnotation[] anns3 = new AlignmentAnnotation[] { ann3, ann4 };
+
     AlignmentAnnotation[] anns4 = new AlignmentAnnotation[0];
-    
-    AlignmentAnnotation[] anns5 = new AlignmentAnnotation[] {ann1, ann2, ann3, ann4};
+
+    AlignmentAnnotation[] anns5 = new AlignmentAnnotation[] { ann1, ann2,
+        ann3, ann4 };
   }
 
   @Test(groups = { "Functional" })
@@ -2775,139 +2779,179 @@ public class AlignmentUtilsTests
                     && al.getAlignmentAnnotation().length == 2);
 
   }
-    
-    @Test(groups = "Functional", dataProvider = "SecondaryStructureAnnotations")
-    public void testSecondaryStructurePresentAndSources(AlignmentAnnotation[] annotations, boolean expectedSSPresent, ArrayList<String> expectedSSSources) {
-        Assert.assertEquals(expectedSSPresent, AlignmentUtils.isSecondaryStructurePresent(annotations));
-    }
 
-    @DataProvider(name = "SecondaryStructureAnnotations")
-    public static Object[][] provideSecondaryStructureAnnotations() {
-        AlignmentAnnotation ann1 = new AlignmentAnnotation("Secondary Structure", "Secondary Structure", new Annotation[]{});
-        AlignmentAnnotation ann2 = new AlignmentAnnotation("jnetpred", "jnetpred", new Annotation[]{});
-        AlignmentAnnotation ann3 = new AlignmentAnnotation("Temp", "Temp", new Annotation[]{});
-        AlignmentAnnotation ann4 = new AlignmentAnnotation("Temp", "Temp", new Annotation[]{});
-
-        List<String> ssSources1 = new ArrayList<>(Arrays.asList("3D Structures"));
-        List<String> ssSources2 = new ArrayList<>(Arrays.asList("JPred"));
-        List<String> ssSources3 = new ArrayList<>(Arrays.asList("3D Structures", "JPred"));
-        List<String> ssSources4 = new ArrayList<>();
-
-        return new Object[][]{
-            {new AlignmentAnnotation[]{ann1, ann3, ann4}, true, ssSources1},
-            {new AlignmentAnnotation[]{ann2, ann3, ann4}, true, ssSources2},
-            {new AlignmentAnnotation[]{ann3, ann4}, false, ssSources4},
-            {new AlignmentAnnotation[]{}, false, ssSources4},
-            {new AlignmentAnnotation[]{ann1, ann2, ann3, ann4}, true, ssSources3}
-        };
-    }
-    
-    @Test(dataProvider = "SecondaryStructureAnnotationColours")
-    public void testSecondaryStructureAnnotationColour(char symbol, Color expectedColor) {
-        Color actualColor = AlignmentUtils.getSecondaryStructureAnnotationColour(symbol);
-        Assert.assertEquals(actualColor, expectedColor);
-    }
+  @Test(
+    groups = "Functional",
+    dataProvider = "SecondaryStructureAnnotations")
+  public void testSecondaryStructurePresentAndSources(
+          AlignmentAnnotation[] annotations, boolean expectedSSPresent,
+          ArrayList<String> expectedSSSources)
+  {
+    Assert.assertEquals(expectedSSPresent,
+            AlignmentUtils.isSecondaryStructurePresent(annotations));
+  }
 
-    @DataProvider(name = "SecondaryStructureAnnotationColours")
-    public static Object[][] provideSecondaryStructureAnnotationColours() {
-        return new Object[][]{
-            {'C', Color.gray},
-            {'E', Color.green},
-            {'H', Color.red},
-            {'-', Color.gray}
-        };
-    }
-    
-    @Test(dataProvider = "SSAnnotationPresence")
-    public void testIsSSAnnotationPresent(Map<SequenceI, List<AlignmentAnnotation>> annotations, boolean expectedPresence) {
-        boolean actualPresence = AlignmentUtils.isSSAnnotationPresent(annotations);
-        Assert.assertEquals(actualPresence, expectedPresence);
-    }
+  @DataProvider(name = "SecondaryStructureAnnotations")
+  public static Object[][] provideSecondaryStructureAnnotations()
+  {
+    AlignmentAnnotation ann1 = new AlignmentAnnotation(
+            "Secondary Structure", "Secondary Structure",
+            new Annotation[] {});
+    AlignmentAnnotation ann2 = new AlignmentAnnotation("jnetpred",
+            "jnetpred", new Annotation[] {});
+    AlignmentAnnotation ann3 = new AlignmentAnnotation("Temp", "Temp",
+            new Annotation[] {});
+    AlignmentAnnotation ann4 = new AlignmentAnnotation("Temp", "Temp",
+            new Annotation[] {});
 
-    @DataProvider(name = "SSAnnotationPresence")
-    public static Object[][] provideSSAnnotationPresence() {
-        Map<SequenceI, List<AlignmentAnnotation>> annotations1 = new HashMap<>();
-        SequenceI seq1 = new Sequence("Seq1", "ASD---ASD---ASD", 37, 45);
-        List<AlignmentAnnotation> annotationsList1 = new ArrayList<>();
-        annotationsList1.add(new AlignmentAnnotation("Secondary Structure", "Secondary Structure", new Annotation[]{}));
-        annotations1.put(seq1, annotationsList1); // Annotation present secondary structure for seq1
-
-        Map<SequenceI, List<AlignmentAnnotation>> annotations2 = new HashMap<>();
-        SequenceI seq2 = new Sequence("Seq2", "ASD---ASD------", 37, 42);
-        List<AlignmentAnnotation> annotationsList2 = new ArrayList<>();
-        annotationsList2.add(new AlignmentAnnotation("Other Annotation", "Other Annotation", new Annotation[]{}));
-        annotations2.put(seq2, annotationsList2); // Annotation not related to any of secondary structure for seq2
-
-        Map<SequenceI, List<AlignmentAnnotation>> annotations3 = new HashMap<>();
-        // Empty annotation map
-        
-        Map<SequenceI, List<AlignmentAnnotation>> annotations4 = new HashMap<>();
-        SequenceI seq4 = new Sequence("Seq4", "ASD---ASD---AS-", 37, 44);
-        List<AlignmentAnnotation> annotationsList4 = new ArrayList<>();
-        annotationsList4.add(new AlignmentAnnotation("jnetpred", "jnetpred", new Annotation[]{}));
-        annotations4.put(seq4, annotationsList4); // Annotation present from JPred for seq4
-
-
-        return new Object[][]{
-            {annotations1, true}, // Annotations present secondary structure present
-            {annotations2, false}, // No annotations related to any of the secondary structure present
-            {annotations3, false},  // Empty annotation map
-            {annotations4, true}, // Annotations present from JPred secondary structure present
-        };
-    }
-    
-    @Test
-    public void testGetSSSourceFromAnnotationDescription(AlignmentAnnotation[] annotations, String expectedSSSource) {
-        List<String> actualSSSource = AlignmentUtils.extractSSSourceInAlignmentAnnotation(annotations);
-        Assert.assertEquals(actualSSSource, expectedSSSource);
-    }
-    
-    @DataProvider(name = "SSSourceFromAnnotationDescription")
-    public static Object[][] provideSSSourceFromAnnotationDescription() {
-        Map<SequenceI, List<AlignmentAnnotation>> annotations1 = new HashMap<>();
-        SequenceI seq1 = new Sequence("Seq1", "ASD---ASD---ASD", 37, 45);
-        List<AlignmentAnnotation> annotationsList1 = new ArrayList<>();
-        annotationsList1.add(new AlignmentAnnotation("jnetpred", "JPred Output", new Annotation[]{}));
-        annotations1.put(seq1, annotationsList1); // Annotation present from JPred for seq1
-
-        Map<SequenceI, List<AlignmentAnnotation>> annotations2 = new HashMap<>();
-        SequenceI seq2 = new Sequence("Seq2", "ASD---ASD------", 37, 42);
-        List<AlignmentAnnotation> annotationsList2 = new ArrayList<>();
-        annotationsList2.add(new AlignmentAnnotation("Secondary Structure", 
-                "Secondary Structure for af-q43517-f1A", new Annotation[]{}));
-        annotations2.put(seq2, annotationsList2); // Annotation present secondary structure from Alphafold for seq2
-
-        Map<SequenceI, List<AlignmentAnnotation>> annotations3 = new HashMap<>();
-        // Empty annotation map
-        
-        Map<SequenceI, List<AlignmentAnnotation>> annotations4 = new HashMap<>();
-        SequenceI seq4 = new Sequence("Seq4", "ASD---ASD---AS-", 37, 44);
-        List<AlignmentAnnotation> annotationsList4 = new ArrayList<>();
-        annotationsList4.add(new AlignmentAnnotation("Secondary Structure", 
-                "Secondary Structure for 4zhpA", new Annotation[]{}));
-        annotations4.put(seq4, annotationsList4); // Annotation present secondary structure from pdb for seq4
-        
-        Map<SequenceI, List<AlignmentAnnotation>> annotations5 = new HashMap<>();
-        SequenceI seq5 = new Sequence("Seq5", "ASD---ASD---AS-", 37, 44);
-        List<AlignmentAnnotation> annotationsList5 = new ArrayList<>();
-        annotationsList5.add(new AlignmentAnnotation("Secondary Structure", 
-                "Secondary Structure for p09911_54-147__3a7wzn.1.p3502557454997462030P", 
-                new Annotation[]{}));
-        annotations5.put(seq5, annotationsList5); // Annotation present secondary structure from Swiss model for seq5
-        
-
-        //JPred Output - JPred
-        //Secondary Structure for af-q43517-f1A - Alphafold
-        //Secondary Structure for 4zhpA - Experimental
-        //Secondary Structure for p09911_54-147__3a7wzn.1.p3502557454997462030P - Swiss Model
-        
-        return new Object[][]{
-            {annotations1, "JPred"}, 
-            {annotations2, "Alphafold"}, 
-            {annotations3, null},  
-            {annotations4, "PDB"},
-            {annotations5, "Swiss Model"}
-        };
-    }   
+    List<String> ssSources1 = new ArrayList<>(
+            Arrays.asList("3D Structures"));
+    List<String> ssSources2 = new ArrayList<>(Arrays.asList("JPred"));
+    List<String> ssSources3 = new ArrayList<>(
+            Arrays.asList("3D Structures", "JPred"));
+    List<String> ssSources4 = new ArrayList<>();
+
+    return new Object[][] {
+        { new AlignmentAnnotation[]
+        { ann1, ann3, ann4 }, true, ssSources1 },
+        { new AlignmentAnnotation[]
+        { ann2, ann3, ann4 }, true, ssSources2 },
+        { new AlignmentAnnotation[]
+        { ann3, ann4 }, false, ssSources4 },
+        { new AlignmentAnnotation[] {}, false, ssSources4 },
+        { new AlignmentAnnotation[]
+        { ann1, ann2, ann3, ann4 }, true, ssSources3 } };
+  }
+
+  @Test(dataProvider = "SecondaryStructureAnnotationColours")
+  public void testSecondaryStructureAnnotationColour(char symbol,
+          Color expectedColor)
+  {
+    Color actualColor = AlignmentUtils
+            .getSecondaryStructureAnnotationColour(symbol);
+    Assert.assertEquals(actualColor, expectedColor);
+  }
+
+  @DataProvider(name = "SecondaryStructureAnnotationColours")
+  public static Object[][] provideSecondaryStructureAnnotationColours()
+  {
+    return new Object[][] { { 'C', Color.gray }, { 'E', Color.green },
+        { 'H', Color.red },
+        { '-', Color.gray } };
+  }
+
+  @Test(dataProvider = "SSAnnotationPresence")
+  public void testIsSSAnnotationPresent(
+          Map<SequenceI, List<AlignmentAnnotation>> annotations,
+          boolean expectedPresence)
+  {
+    boolean actualPresence = AlignmentUtils
+            .isSSAnnotationPresent(annotations);
+    Assert.assertEquals(actualPresence, expectedPresence);
+  }
+
+  @DataProvider(name = "SSAnnotationPresence")
+  public static Object[][] provideSSAnnotationPresence()
+  {
+    Map<SequenceI, List<AlignmentAnnotation>> annotations1 = new HashMap<>();
+    SequenceI seq1 = new Sequence("Seq1", "ASD---ASD---ASD", 37, 45);
+    List<AlignmentAnnotation> annotationsList1 = new ArrayList<>();
+    annotationsList1.add(new AlignmentAnnotation("Secondary Structure",
+            "Secondary Structure", new Annotation[] {}));
+    annotations1.put(seq1, annotationsList1); // Annotation present secondary
+                                              // structure for seq1
+
+    Map<SequenceI, List<AlignmentAnnotation>> annotations2 = new HashMap<>();
+    SequenceI seq2 = new Sequence("Seq2", "ASD---ASD------", 37, 42);
+    List<AlignmentAnnotation> annotationsList2 = new ArrayList<>();
+    annotationsList2.add(new AlignmentAnnotation("Other Annotation",
+            "Other Annotation", new Annotation[] {}));
+    annotations2.put(seq2, annotationsList2); // Annotation not related to any
+                                              // of secondary structure for seq2
+
+    Map<SequenceI, List<AlignmentAnnotation>> annotations3 = new HashMap<>();
+    // Empty annotation map
+
+    Map<SequenceI, List<AlignmentAnnotation>> annotations4 = new HashMap<>();
+    SequenceI seq4 = new Sequence("Seq4", "ASD---ASD---AS-", 37, 44);
+    List<AlignmentAnnotation> annotationsList4 = new ArrayList<>();
+    annotationsList4.add(new AlignmentAnnotation("jnetpred", "jnetpred",
+            new Annotation[] {}));
+    annotations4.put(seq4, annotationsList4); // Annotation present from JPred
+                                              // for seq4
+
+    return new Object[][] { { annotations1, true }, // Annotations present
+                                                    // secondary structure
+                                                    // present
+        { annotations2, false }, // No annotations related to any of the
+                                 // secondary structure present
+        { annotations3, false }, // Empty annotation map
+        { annotations4, true }, // Annotations present from JPred secondary
+                                // structure present
+    };
+  }
+
+  @Test
+  public void testGetSSSourceFromAnnotationDescription(
+          AlignmentAnnotation[] annotations, String expectedSSSource)
+  {
+    List<String> actualSSSource = AlignmentUtils
+            .extractSSSourceInAlignmentAnnotation(annotations);
+    Assert.assertEquals(actualSSSource, expectedSSSource);
+  }
+
+  @DataProvider(name = "SSSourceFromAnnotationDescription")
+  public static Object[][] provideSSSourceFromAnnotationDescription()
+  {
+    Map<SequenceI, List<AlignmentAnnotation>> annotations1 = new HashMap<>();
+    SequenceI seq1 = new Sequence("Seq1", "ASD---ASD---ASD", 37, 45);
+    List<AlignmentAnnotation> annotationsList1 = new ArrayList<>();
+    annotationsList1.add(new AlignmentAnnotation("jnetpred", "JPred Output",
+            new Annotation[] {}));
+    annotations1.put(seq1, annotationsList1); // Annotation present from JPred
+                                              // for seq1
+
+    Map<SequenceI, List<AlignmentAnnotation>> annotations2 = new HashMap<>();
+    SequenceI seq2 = new Sequence("Seq2", "ASD---ASD------", 37, 42);
+    List<AlignmentAnnotation> annotationsList2 = new ArrayList<>();
+    annotationsList2.add(new AlignmentAnnotation("Secondary Structure",
+            "Secondary Structure for af-q43517-f1A", new Annotation[] {}));
+    annotations2.put(seq2, annotationsList2); // Annotation present secondary
+                                              // structure from Alphafold for
+                                              // seq2
+
+    Map<SequenceI, List<AlignmentAnnotation>> annotations3 = new HashMap<>();
+    // Empty annotation map
+
+    Map<SequenceI, List<AlignmentAnnotation>> annotations4 = new HashMap<>();
+    SequenceI seq4 = new Sequence("Seq4", "ASD---ASD---AS-", 37, 44);
+    List<AlignmentAnnotation> annotationsList4 = new ArrayList<>();
+    annotationsList4.add(new AlignmentAnnotation("Secondary Structure",
+            "Secondary Structure for 4zhpA", new Annotation[] {}));
+    annotations4.put(seq4, annotationsList4); // Annotation present secondary
+                                              // structure from pdb for seq4
+
+    Map<SequenceI, List<AlignmentAnnotation>> annotations5 = new HashMap<>();
+    SequenceI seq5 = new Sequence("Seq5", "ASD---ASD---AS-", 37, 44);
+    List<AlignmentAnnotation> annotationsList5 = new ArrayList<>();
+    annotationsList5.add(new AlignmentAnnotation("Secondary Structure",
+            "Secondary Structure for p09911_54-147__3a7wzn.1.p3502557454997462030P",
+            new Annotation[] {}));
+    annotations5.put(seq5, annotationsList5); // Annotation present secondary
+                                              // structure from Swiss model for
+                                              // seq5
+
+    // JPred Output - JPred
+    // Secondary Structure for af-q43517-f1A - Alphafold
+    // Secondary Structure for 4zhpA - Experimental
+    // Secondary Structure for p09911_54-147__3a7wzn.1.p3502557454997462030P -
+    // Swiss Model
+
+    return new Object[][] { { annotations1, "JPred" },
+        { annotations2, "Alphafold" },
+        { annotations3, null },
+        { annotations4, "PDB" },
+        { annotations5, "Swiss Model" } };
+  }
 
 }
index d0a8047..f82a18a 100644 (file)
@@ -83,7 +83,7 @@ public class ScoreModelsTest
     assertFalse(sm instanceof PairwiseScoreModelI);
     assertTrue(sm instanceof DistanceScoreModel);
     assertEquals(sm.getName(), "Sequence Feature Similarity");
-    
+
     sm = models.next();
     assertFalse(sm instanceof SimilarityScoreModel);
     assertFalse(sm instanceof PairwiseScoreModelI);
index f32be37..03dcdc7 100644 (file)
@@ -48,7 +48,7 @@ import org.testng.annotations.Test;
 // This class tests methods in Class SecondaryStructureDistanceModel 
 public class SecondaryStructureDistanceModelTest
 {
-  
+
   /**
    * Verify computed distances of sequences with gap
    */
@@ -62,7 +62,7 @@ public class SecondaryStructureDistanceModelTest
     ScoreModelI sm = new SecondaryStructureDistanceModel();
     sm = ScoreModels.getInstance().getScoreModel(sm.getName(),
             af.alignPanel);
-    
+
     /*
      * feature distance model always normalises by region width
      * gap-gap is always included (but scores zero)
@@ -73,27 +73,28 @@ public class SecondaryStructureDistanceModelTest
      * include gaps
      * score = 0 + 0 + 1 + 0 = 1/4
      */
-    SimilarityParamsI params = new SimilarityParams(false, true, true, true);
+    SimilarityParamsI params = new SimilarityParams(false, true, true,
+            true);
     params.setSecondaryStructureSource("3D Structures");
     MatrixI distances = sm.findDistances(view, params);
     assertEquals(distances.getValue(0, 0), 1d);
     assertEquals(distances.getValue(1, 1), 1d);
-    assertEquals(distances.getValue(0, 1), 0d); 
+    assertEquals(distances.getValue(0, 1), 0d);
     assertEquals(distances.getValue(1, 0), 0d);
-    
+
     /*
      * exclude gaps
      * score = 0 + 0 + 0 + 0 = 0/4
      */
-    
-    SimilarityParamsI params2 = new SimilarityParams(false, true, false, true);
+
+    SimilarityParamsI params2 = new SimilarityParams(false, true, false,
+            true);
     params2.setSecondaryStructureSource("3D Structures");
     MatrixI distances2 = sm.findDistances(view, params2);
-    assertEquals(distances2.getValue(0, 1), 0d); 
+    assertEquals(distances2.getValue(0, 1), 0d);
     assertEquals(distances2.getValue(1, 0), 0d);
   }
-  
-  
+
   /**
    * Verify computed distances of sequences with gap
    */
@@ -107,7 +108,7 @@ public class SecondaryStructureDistanceModelTest
     ScoreModelI sm = new SecondaryStructureDistanceModel();
     sm = ScoreModels.getInstance().getScoreModel(sm.getName(),
             af.alignPanel);
-    
+
     /*
      * feature distance model always normalises by region width
      * gap-gap is always included (but scores zero)
@@ -118,27 +119,28 @@ public class SecondaryStructureDistanceModelTest
      * include gaps
      * score = 0 + 0 + 2 + 2 = 2/4
      */
-    SimilarityParamsI params = new SimilarityParams(false, true, true, true);
+    SimilarityParamsI params = new SimilarityParams(false, true, true,
+            true);
     params.setSecondaryStructureSource("3D Structures");
     MatrixI distances = sm.findDistances(view, params);
     assertEquals(distances.getValue(0, 0), 1d);
     assertEquals(distances.getValue(1, 1), 1d);
-    assertEquals(distances.getValue(0, 1), 0d); 
+    assertEquals(distances.getValue(0, 1), 0d);
     assertEquals(distances.getValue(1, 0), 0d);
-    
+
     /*
      * exclude gaps
      * score = 0 + 0 + 2 + 2 = 2/4
      */
-    
-    SimilarityParamsI params2 = new SimilarityParams(false, true, false, true);
+
+    SimilarityParamsI params2 = new SimilarityParams(false, true, false,
+            true);
     params2.setSecondaryStructureSource("3D Structures");
     MatrixI distances2 = sm.findDistances(view, params2);
-    assertEquals(distances2.getValue(0, 1), 0d); 
+    assertEquals(distances2.getValue(0, 1), 0d);
     assertEquals(distances2.getValue(1, 0), 0d);
   }
 
-  
   /**
    * Verify computed distances of sequences with gap
    */
@@ -152,7 +154,7 @@ public class SecondaryStructureDistanceModelTest
     ScoreModelI sm = new SecondaryStructureDistanceModel();
     sm = ScoreModels.getInstance().getScoreModel(sm.getName(),
             af.alignPanel);
-    
+
     /*
      * feature distance model always normalises by region width
      * gap-gap is always included (but scores zero)
@@ -163,28 +165,28 @@ public class SecondaryStructureDistanceModelTest
      * include gaps
      * score = 0 + 0 + 2 + 2 = 2/4
      */
-    SimilarityParamsI params = new SimilarityParams(false, true, true, true);
+    SimilarityParamsI params = new SimilarityParams(false, true, true,
+            true);
     params.setSecondaryStructureSource("3D Structures");
     MatrixI distances = sm.findDistances(view, params);
     assertEquals(distances.getValue(0, 0), 1d);
     assertEquals(distances.getValue(1, 1), 1d);
-    assertEquals(distances.getValue(0, 1), 0d); 
+    assertEquals(distances.getValue(0, 1), 0d);
     assertEquals(distances.getValue(1, 0), 0d);
-    
+
     /*
      * exclude gaps
      * score = 0 + 0 + 2 + 2 = 2/4
      */
-    
-    SimilarityParamsI params2 = new SimilarityParams(false, true, false, true);
+
+    SimilarityParamsI params2 = new SimilarityParams(false, true, false,
+            true);
     params2.setSecondaryStructureSource("3D Structures");
     MatrixI distances2 = sm.findDistances(view, params2);
-    assertEquals(distances2.getValue(0, 1), 0d); 
+    assertEquals(distances2.getValue(0, 1), 0d);
     assertEquals(distances2.getValue(1, 0), 0d);
   }
 
-
-  
   /**
    * <pre>
    * Set up
@@ -214,18 +216,17 @@ public class SecondaryStructureDistanceModelTest
             new SequenceFeature("metal", null, 1, 4, 0f, null));
     s2.addSequenceFeature(
             new SequenceFeature("Pfam", null, 1, 4, 0f, null));
-    
-    
+
     /*
      * Set up secondary structure annotations
      */
-    Annotation ssE = new Annotation("","",'E',0);
-    Annotation ssH = new Annotation("","",'H',0);
-    Annotation ssC = new Annotation(".","",' ',0);
-    
+    Annotation ssE = new Annotation("", "", 'E', 0);
+    Annotation ssH = new Annotation("", "", 'H', 0);
+    Annotation ssC = new Annotation(".", "", ' ', 0);
+
     Annotation[] anns1;
     Annotation[] anns2;
-    
+
     /* All secondary structure annotations are similar for each column
      * Set up
     *   column      1 2 3 4 
@@ -235,13 +236,14 @@ public class SecondaryStructureDistanceModelTest
     *        seq s2 F S J L
     *           ss E H S E
     */
-    if(similar == "All Similar") {
-    
-       anns1 = new Annotation[] { ssE, ssH, ssC, ssE};
-       anns2 = new Annotation[] { ssE, ssH, ssC, ssE};
-    
+    if (similar == "All Similar")
+    {
+
+      anns1 = new Annotation[] { ssE, ssH, ssC, ssE };
+      anns2 = new Annotation[] { ssE, ssH, ssC, ssE };
+
     }
-    
+
     /* All secondary structure annotations are dissimilar for each column
      * Set up
      *   column      1 2 3 4 
@@ -251,13 +253,14 @@ public class SecondaryStructureDistanceModelTest
      *        seq s2 F S J L
      *           ss H E E C
      */
-    else if(similar == "Not Similar") {
-        
-       anns1 = new Annotation[] { ssE, ssE, ssC, ssE};
-       anns2 = new Annotation[] { ssH, ssH, ssE, ssC};
-    
+    else if (similar == "Not Similar")
+    {
+
+      anns1 = new Annotation[] { ssE, ssE, ssC, ssE };
+      anns2 = new Annotation[] { ssH, ssH, ssE, ssC };
+
     }
-    
+
     /* All secondary structure annotations are dissimilar for each column
      * Set up
      *   column      1 2 3 4 
@@ -267,13 +270,14 @@ public class SecondaryStructureDistanceModelTest
      *        seq s2 F S J L
      *            ss H E E C
      */
-    else if(similar == "With Coil") {
-        
-      anns1 = new Annotation[] { ssE, ssE, null, ssE};
-      anns2 = new Annotation[] { ssH, ssH, ssE, null};
-    
+    else if (similar == "With Coil")
+    {
+
+      anns1 = new Annotation[] { ssE, ssE, null, ssE };
+      anns2 = new Annotation[] { ssH, ssH, ssE, null };
+
     }
-    
+
     /*  Set up
      *   column      1 2 3 4 
      *        seq s1 F R K S
@@ -282,28 +286,27 @@ public class SecondaryStructureDistanceModelTest
      *        seq s2 F S J L
      *           ss H E E C
      */
-    else {
-       
-       anns1 = new Annotation[] { ssH, ssE, ssC, ssE};
-       anns2 = new Annotation[] { ssH, ssE, ssE, ssC};
+    else
+    {
+
+      anns1 = new Annotation[] { ssH, ssE, ssC, ssE };
+      anns2 = new Annotation[] { ssH, ssE, ssE, ssC };
     }
-    
-    
-    AlignmentAnnotation ann1 = new AlignmentAnnotation("Secondary Structure",
-            "Secondary Structure", anns1);
-    AlignmentAnnotation ann2 = new AlignmentAnnotation("Secondary Structure",
-            "Secondary Structure", anns2);
-    
+
+    AlignmentAnnotation ann1 = new AlignmentAnnotation(
+            "Secondary Structure", "Secondary Structure", anns1);
+    AlignmentAnnotation ann2 = new AlignmentAnnotation(
+            "Secondary Structure", "Secondary Structure", anns2);
+
     s1.addAlignmentAnnotation(ann1);
-    s2.addAlignmentAnnotation(ann2);    
-    
+    s2.addAlignmentAnnotation(ann2);
+
     AlignmentI al = new Alignment(new SequenceI[] { s1, s2 });
     AlignFrame af = new AlignFrame(al, 300, 300);
     af.setShowSeqFeatures(true);
     af.getFeatureRenderer().findAllFeatures(true);
     return af;
   }
-  
 
   /**
    * <pre>
@@ -320,7 +323,7 @@ public class SecondaryStructureDistanceModelTest
    */
   protected AlignFrame setupAlignmentViewWithGap()
   {
-    
+
     SequenceI s1 = new Sequence("s1", "FR S");
     SequenceI s2 = new Sequence("s2", "FSJL");
 
@@ -334,39 +337,39 @@ public class SecondaryStructureDistanceModelTest
             new SequenceFeature("metal", null, 1, 4, 0f, null));
     s2.addSequenceFeature(
             new SequenceFeature("Pfam", null, 1, 4, 0f, null));
-    
-    
-    Annotation ssE = new Annotation("","",'E',0);
-    Annotation ssH = new Annotation("","",'H',0);
-    Annotation ssC = new Annotation(".","",' ',0);
-    
+
+    Annotation ssE = new Annotation("", "", 'E', 0);
+    Annotation ssH = new Annotation("", "", 'H', 0);
+    Annotation ssC = new Annotation(".", "", ' ', 0);
+
     Annotation[] anns1;
     Annotation[] anns2;
-       
-    anns1 = new Annotation[] { ssH, ssE, ssC};
-    anns2 = new Annotation[] { ssH, ssE, ssE, ssC};    
-    
-    AlignmentAnnotation ann1 = new AlignmentAnnotation("Secondary Structure",
-            "Secondary Structure", anns1);
-    AlignmentAnnotation ann2 = new AlignmentAnnotation("Secondary Structure",
-            "Secondary Structure", anns2);
-    
+
+    anns1 = new Annotation[] { ssH, ssE, ssC };
+    anns2 = new Annotation[] { ssH, ssE, ssE, ssC };
+
+    AlignmentAnnotation ann1 = new AlignmentAnnotation(
+            "Secondary Structure", "Secondary Structure", anns1);
+    AlignmentAnnotation ann2 = new AlignmentAnnotation(
+            "Secondary Structure", "Secondary Structure", anns2);
+
     s1.addAlignmentAnnotation(ann1);
-    s2.addAlignmentAnnotation(ann2);    
-        
+    s2.addAlignmentAnnotation(ann2);
+
     AlignmentI al = new Alignment(new SequenceI[] { s1, s2 });
     AlignFrame af = new AlignFrame(al, 300, 300);
     af.setShowSeqFeatures(true);
     af.getFeatureRenderer().findAllFeatures(true);
-    
+
     return af;
   }
-  
-  protected AlignFrame setupAlignmentViewWithoutSS(String type) {
-    
+
+  protected AlignFrame setupAlignmentViewWithoutSS(String type)
+  {
+
     SequenceI s1 = new Sequence("s1", "FR S");
     SequenceI s2 = new Sequence("s2", "FSJL");
-    
+
     s1.addSequenceFeature(
             new SequenceFeature("chain", null, 1, 3, 0f, null));
     s1.addSequenceFeature(
@@ -377,60 +380,61 @@ public class SecondaryStructureDistanceModelTest
             new SequenceFeature("metal", null, 1, 4, 0f, null));
     s2.addSequenceFeature(
             new SequenceFeature("Pfam", null, 1, 4, 0f, null));
-    
-    if(!type.equals("both")) {    
-      Annotation ssE = new Annotation("","",'E',0);
-      Annotation ssH = new Annotation("","",'H',0);
-      Annotation ssC = new Annotation(".","",' ',0);
-      
+
+    if (!type.equals("both"))
+    {
+      Annotation ssE = new Annotation("", "", 'E', 0);
+      Annotation ssH = new Annotation("", "", 'H', 0);
+      Annotation ssC = new Annotation(".", "", ' ', 0);
+
       Annotation[] anns1;
-        
-      anns1 = new Annotation[] { ssH, ssE, ssC};
-          
-      AlignmentAnnotation ann1 = new AlignmentAnnotation("Secondary Structure",
-              "Secondary Structure", anns1);    
-  
-      s1.addAlignmentAnnotation(ann1);    
+
+      anns1 = new Annotation[] { ssH, ssE, ssC };
+
+      AlignmentAnnotation ann1 = new AlignmentAnnotation(
+              "Secondary Structure", "Secondary Structure", anns1);
+
+      s1.addAlignmentAnnotation(ann1);
     }
-    
+
     AlignmentI al = new Alignment(new SequenceI[] { s1, s2 });
     AlignFrame af = new AlignFrame(al, 300, 300);
     af.setShowSeqFeatures(true);
     af.getFeatureRenderer().findAllFeatures(true);
     return af;
   }
-  
-  
+
   @DataProvider(name = "testData")
-  public Object[][] testData() {
-      return new Object[][] {
-              {"All Similar", 1d, 1d, 0d, 0d / 4},
-              {"Partially Similar", 1d, 1d, 0d, 0d},
-              {"Not Similar", 1d, 1d, 0d, 0d},
-              {"With Coil", 1d, 1d, 0d, 0d},
-      };
+  public Object[][] testData()
+  {
+    return new Object[][] { { "All Similar", 1d, 1d, 0d, 0d / 4 },
+        { "Partially Similar", 1d, 1d, 0d, 0d },
+        { "Not Similar", 1d, 1d, 0d, 0d },
+        { "With Coil", 1d, 1d, 0d, 0d }, };
   }
 
   @Test(dataProvider = "testData")
-  public void testFindDistances(String scenario, double expectedValue00, double expectedValue11,
-                                 double expectedValue01, double expectedValue10) {
-      AlignFrame af = setupAlignmentView(scenario);
-      AlignViewport viewport = af.getViewport();
-      AlignmentView view = viewport.getAlignmentView(false);
-
-      ScoreModelI sm = new SecondaryStructureDistanceModel();
-      sm = ScoreModels.getInstance().getScoreModel(sm.getName(),
-              af.alignPanel);
-
-      SimilarityParamsI params = new SimilarityParams(false, true, true, true);
-      params.setSecondaryStructureSource("3D Structures");
-      MatrixI distances = sm.findDistances(view, params);
-
-      assertEquals(distances.getValue(0, 0), expectedValue00);
-      assertEquals(distances.getValue(1, 1), expectedValue11);
-      assertEquals(distances.getValue(0, 1), expectedValue01);
-      assertEquals(distances.getValue(1, 0), expectedValue10);
+  public void testFindDistances(String scenario, double expectedValue00,
+          double expectedValue11, double expectedValue01,
+          double expectedValue10)
+  {
+    AlignFrame af = setupAlignmentView(scenario);
+    AlignViewport viewport = af.getViewport();
+    AlignmentView view = viewport.getAlignmentView(false);
+
+    ScoreModelI sm = new SecondaryStructureDistanceModel();
+    sm = ScoreModels.getInstance().getScoreModel(sm.getName(),
+            af.alignPanel);
+
+    SimilarityParamsI params = new SimilarityParams(false, true, true,
+            true);
+    params.setSecondaryStructureSource("3D Structures");
+    MatrixI distances = sm.findDistances(view, params);
+
+    assertEquals(distances.getValue(0, 0), expectedValue00);
+    assertEquals(distances.getValue(1, 1), expectedValue11);
+    assertEquals(distances.getValue(0, 1), expectedValue01);
+    assertEquals(distances.getValue(1, 0), expectedValue10);
   }
 
-  
 }
index 1255c58..2e36111 100644 (file)
@@ -1182,12 +1182,14 @@ public class EditCommandTest
     assertEquals(10, sf.getBegin());
     assertEquals(11, sf.getEnd());
   }
+
   private SequenceI mkDs(SequenceI as)
   {
     SequenceI ds = as.createDatasetSequence();
     ds.setSequence(ds.getSequenceAsString().toUpperCase(Locale.ROOT));
     return ds;
   }
+
   /**
    * Test that mimics 'remove all gapped columns' action. This generates a
    * series Delete Gap edits that each act on all sequences that share a gapped
@@ -1210,35 +1212,38 @@ public class EditCommandTest
      * and check we are preserving data - if the calls below fail, something has broken the Jalview dataset derivation process
      */
     assertEquals("ABCDEF", seq1.getDatasetSequence().getSequenceAsString());
-    assertEquals(original1,seq1.getSequenceAsString());
-    SequenceI seq2 = new Sequence("sq2",original2);
+    assertEquals(original1, seq1.getSequenceAsString());
+    SequenceI seq2 = new Sequence("sq2", original2);
     SequenceI ds2 = mkDs(seq2);
     SequenceI seq3 = new Sequence("sq3", original3);
     SequenceI ds3 = mkDs(seq3);
-    List<SequenceI> sqs = Arrays.asList( seq1, seq2, seq3 );
+    List<SequenceI> sqs = Arrays.asList(seq1, seq2, seq3);
     Alignment al = new Alignment(sqs.toArray(new SequenceI[0]));
-    EditCommand lefj = new JustifyLeftOrRightCommand("Left J", true, sqs, 1, 7, al);
+    EditCommand lefj = new JustifyLeftOrRightCommand("Left J", true, sqs, 1,
+            7, al);
     String exp = "-ABcD---EF";
     // check without case conservation
-    assertEquals(exp.toUpperCase(Locale.ROOT),seq1.getSequenceAsString().toUpperCase(Locale.ROOT));
+    assertEquals(exp.toUpperCase(Locale.ROOT),
+            seq1.getSequenceAsString().toUpperCase(Locale.ROOT));
     // check case
-    assertEquals(exp,seq1.getSequenceAsString());
+    assertEquals(exp, seq1.getSequenceAsString());
     // and other seqs
-    assertEquals("-GHiJ---",seq2.getSequenceAsString());
-    assertEquals("-MNoP---Q",seq3.getSequenceAsString());
-    lefj.undoCommand(new AlignmentI[] { al});
-    assertEquals(original3,seq3.getSequenceAsString());
-    assertEquals(original1,seq1.getSequenceAsString());
-    assertEquals(original2,seq2.getSequenceAsString());
-    
-    EditCommand righj = new JustifyLeftOrRightCommand("Right J", false, sqs, 2, 7, al);
-    assertEquals("----ABcDEF",seq1.getSequenceAsString());
-    assertEquals("-G---HiJ",seq2.getSequenceAsString());
-    assertEquals("-M---NoPQ",seq3.getSequenceAsString());
-    righj.undoCommand(new AlignmentI[] { al});
-    assertEquals(original3,seq3.getSequenceAsString());
-    assertEquals(original1,seq1.getSequenceAsString());
-    assertEquals(original2,seq2.getSequenceAsString());
-        
+    assertEquals("-GHiJ---", seq2.getSequenceAsString());
+    assertEquals("-MNoP---Q", seq3.getSequenceAsString());
+    lefj.undoCommand(new AlignmentI[] { al });
+    assertEquals(original3, seq3.getSequenceAsString());
+    assertEquals(original1, seq1.getSequenceAsString());
+    assertEquals(original2, seq2.getSequenceAsString());
+
+    EditCommand righj = new JustifyLeftOrRightCommand("Right J", false, sqs,
+            2, 7, al);
+    assertEquals("----ABcDEF", seq1.getSequenceAsString());
+    assertEquals("-G---HiJ", seq2.getSequenceAsString());
+    assertEquals("-M---NoPQ", seq3.getSequenceAsString());
+    righj.undoCommand(new AlignmentI[] { al });
+    assertEquals(original3, seq3.getSequenceAsString());
+    assertEquals(original1, seq1.getSequenceAsString());
+    assertEquals(original2, seq2.getSequenceAsString());
+
   }
 }
index 0e6791b..c1b5b6e 100644 (file)
@@ -20,7 +20,6 @@
  */
 package jalview.gui;
 
-
 import java.awt.Color;
 import java.io.File;
 import java.util.Iterator;
@@ -92,18 +91,14 @@ public class AssociatePDBFileTest
             + "KVRLYSIASSAIGDFGDSKTVSLCVKRLIYTNDAGEIVKGVCSNFLCDLQPGDNVQITGPVGKEMLMPKDPN\n"
             + "ATIIMLATGTGIAPFRSFLWKMFFEKHDDYKFNGLGWLFLGVPTSSSLLYKEEFGKMKERAPENFRVDYAVS\n"
             + "REQTNAAGERMYIQTRMAEYKEELWELLKKDNTYVYMCGLKGMEKGIDDIMVSLAEKDGIDWFDYKKQLKRG\n"
-            + "DQWNVEVY\n"
-            + ">1GAQ|B/1-98\n"
+            + "DQWNVEVY\n" + ">1GAQ|B/1-98\n"
             + "ATYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADG\n"
-            + "WVLTCHAYPTSDVVIETHKEEELTGA\n"
-            + ">1GAQ|C/19-314\n"
+            + "WVLTCHAYPTSDVVIETHKEEELTGA\n" + ">1GAQ|C/19-314\n"
             + "ESKKQEEGVVTNLYKPKEPYVGRCLLNTKITGDDAPGETWHMVFSTEGKIPYREGQSIGVIADGVDKNGKPH\n"
             + "KVRLYSIASSAIGDFGDSKTVSLCVKRLIYTNDAGEIVKGVCSNFLCDLQPGDNVQITGPVGKEMLMPKDPN\n"
             + "ATIIMLATGTGIAPFRSFLWKMFFEKHDDYKFNGLGWLFLGVPTSSSLLYKEEFGKMKERAPENFRVDYAVS\n"
             + "REQTNAAGERMYIQTRMAEYKEELWELLKKDNTYVYMCGLKGMEKGIDDIMVSLAEKDGIDWFDYKKQLKRG\n"
-            + "DQWNVEVY\n"
-            ,
-            DataSourceType.PASTE);
+            + "DQWNVEVY\n", DataSourceType.PASTE);
 
     /*
      * wait for Consensus thread to complete
@@ -128,15 +123,15 @@ public class AssociatePDBFileTest
   @Test(groups = "Functional")
   public void testAssociatePDBFile()
   {
-    String assoc_file="examples/1gaq.txt";
-    for (SequenceI toassoc:af.getViewport().getAlignment().getSequences())
+    String assoc_file = "examples/1gaq.txt";
+    for (SequenceI toassoc : af.getViewport().getAlignment().getSequences())
     {
-      PDBEntry pe = new AssociatePdbFileWithSeq()
-              .associatePdbWithSeq(assoc_file,
-                      DataSourceType.FILE, toassoc, false,
-                      Desktop.instance);
+      PDBEntry pe = new AssociatePdbFileWithSeq().associatePdbWithSeq(
+              assoc_file, DataSourceType.FILE, toassoc, false,
+              Desktop.instance);
       Assert.assertNotNull(pe);
-      Assert.assertNotEquals(toassoc.getDatasetSequence().getAnnotation().length,0);
+      Assert.assertNotEquals(
+              toassoc.getDatasetSequence().getAnnotation().length, 0);
     }
   }
 }
index ac02c03..e6316f3 100644 (file)
@@ -55,29 +55,33 @@ public class CalculationChooserTest
      * peptide models for PCA
      */
     List<ScoreModelI> filtered = CalculationChooser
-            .getApplicableScoreModels(false, true, true,false);
+            .getApplicableScoreModels(false, true, true, false);
     assertEquals(filtered.size(), 5);
     assertSame(filtered.get(0), blosum62);
     assertSame(filtered.get(1), pam250);
     assertEquals(filtered.get(2).getName(), "PID");
     assertEquals(filtered.get(3).getName(), "Sequence Feature Similarity");
-    assertEquals(filtered.get(4).getName(), "Secondary Structure Similarity");
+    assertEquals(filtered.get(4).getName(),
+            "Secondary Structure Similarity");
 
     /*
      * peptide models for Tree are the same
      */
-    filtered = CalculationChooser.getApplicableScoreModels(false, false, true,false);
+    filtered = CalculationChooser.getApplicableScoreModels(false, false,
+            true, false);
     assertEquals(filtered.size(), 5);
     assertSame(filtered.get(0), blosum62);
     assertSame(filtered.get(1), pam250);
     assertEquals(filtered.get(2).getName(), "PID");
     assertEquals(filtered.get(3).getName(), "Sequence Feature Similarity");
-    assertEquals(filtered.get(4).getName(), "Secondary Structure Similarity");
+    assertEquals(filtered.get(4).getName(),
+            "Secondary Structure Similarity");
 
     /*
      * nucleotide models for PCA
      */
-    filtered = CalculationChooser.getApplicableScoreModels(true, true, false,false);
+    filtered = CalculationChooser.getApplicableScoreModels(true, true,
+            false, false);
     assertEquals(filtered.size(), 3);
     assertSame(filtered.get(0), dna);
     assertEquals(filtered.get(1).getName(), "PID");
@@ -86,7 +90,8 @@ public class CalculationChooserTest
     /*
      * nucleotide models for Tree are the same
      */
-    filtered = CalculationChooser.getApplicableScoreModels(true, false, false,false);
+    filtered = CalculationChooser.getApplicableScoreModels(true, false,
+            false, false);
     assertEquals(filtered.size(), 3);
     assertSame(filtered.get(0), dna);
     assertEquals(filtered.get(1).getName(), "PID");
@@ -101,30 +106,37 @@ public class CalculationChooserTest
     /*
      * nucleotide models for Tree are unchanged
      */
-    filtered = CalculationChooser.getApplicableScoreModels(true, false, true,false);
+    filtered = CalculationChooser.getApplicableScoreModels(true, false,
+            true, false);
     assertEquals(filtered.size(), 4);
     assertSame(filtered.get(0), dna);
     assertEquals(filtered.get(1).getName(), "PID");
     assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity");
-    assertEquals(filtered.get(3).getName(), "Secondary Structure Similarity");
+    assertEquals(filtered.get(3).getName(),
+            "Secondary Structure Similarity");
 
     /*
      * nucleotide models for PCA add BLOSUM62 as last option
      */
-    filtered = CalculationChooser.getApplicableScoreModels(true, true, false,false);
+    filtered = CalculationChooser.getApplicableScoreModels(true, true,
+            false, false);
     assertEquals(filtered.size(), 4);
     assertSame(filtered.get(0), dna);
     assertEquals(filtered.get(1).getName(), "PID");
     assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity");
     assertSame(filtered.get(3), blosum62);
-    
-    filtered = CalculationChooser.getApplicableScoreModels(true, true, false,true);
+
+    filtered = CalculationChooser.getApplicableScoreModels(true, true,
+            false, true);
     assertEquals(filtered.size(), 1); // DNA matrix for DNA pasimap
-    for (int i=0; i<=8;i++)
+    for (int i = 0; i <= 8; i++)
     {
-      boolean isDna = (i & 1) != 0,isPca = (i & 2) != 0,isSS = (i & 4) != 0;
-     
-      assertEquals(CalculationChooser.getApplicableScoreModels(isDna,isPca,isSS,true).size(), (isDna) ? 1: 2);
+      boolean isDna = (i & 1) != 0, isPca = (i & 2) != 0,
+              isSS = (i & 4) != 0;
+
+      assertEquals(CalculationChooser
+              .getApplicableScoreModels(isDna, isPca, isSS, true).size(),
+              (isDna) ? 1 : 2);
     }
   }
 }
index 8b2fa74..ca90d8a 100644 (file)
@@ -250,9 +250,8 @@ public class Jalview2xmlTests extends Jalview2xmlBase
 
     boolean diffseqcols = false, diffgseqcols = false;
     SequenceI[] sqs = af.getViewport().getAlignment().getSequencesArray();
-    for (int p = 0,
-            pSize = af.getViewport().getAlignment().getWidth(); p < pSize
-                    && (!diffseqcols || !diffgseqcols); p++)
+    for (int p = 0, pSize = af.getViewport().getAlignment()
+            .getWidth(); p < pSize && (!diffseqcols || !diffgseqcols); p++)
     {
       if (_rcs.findColour(sqs[0].getCharAt(p), p, sqs[0], null, 0f) != _rcs
               .findColour(sqs[5].getCharAt(p), p, sqs[5], null, 0f))
@@ -271,9 +270,8 @@ public class Jalview2xmlTests extends Jalview2xmlBase
     assertTrue(__rcs.isSeqAssociated(),
             "Group Annotation colourscheme wasn't sequence associated");
 
-    for (int p = 0,
-            pSize = af.getViewport().getAlignment().getWidth(); p < pSize
-                    && (!diffseqcols || !diffgseqcols); p++)
+    for (int p = 0, pSize = af.getViewport().getAlignment()
+            .getWidth(); p < pSize && (!diffseqcols || !diffgseqcols); p++)
     {
       if (_rgcs.findColour(sqs[1].getCharAt(p), p, sqs[1], null,
               0f) != _rgcs.findColour(sqs[2].getCharAt(p), p, sqs[2], null,
index 9ff93e1..a198d3c 100644 (file)
@@ -345,7 +345,7 @@ public class ResidueShaderTest
                   SecondaryStructureCount secondaryStructureCount)
           {
             // TODO Auto-generated method stub
-            
+
           }
 
           @Override
index d476d6e..983f94c 100644 (file)
@@ -151,6 +151,7 @@ public class ClustalxColourSchemeTest
     // viewport
     // assertEquals(cs.findColour('C', 0, al.getSequenceAt(0)), clustalPink);
   }
+
   @Test
   public void testDocString()
   {