JAL-4134 JAL-3855 store/restore groups, tree and threshold used to cluster a PAE...
authorJames Procter <j.procter@dundee.ac.uk>
Wed, 15 Mar 2023 10:54:19 +0000 (10:54 +0000)
committerJames Procter <j.procter@dundee.ac.uk>
Wed, 15 Mar 2023 10:54:19 +0000 (10:54 +0000)
74 files changed:
schemas/vamsas.xsd
src/jalview/datamodel/ContactMatrixI.java
src/jalview/project/Jalview2XML.java
src/jalview/ws/datamodel/alphafold/PAEContactMatrix.java
src/jalview/xml/binding/embl/EntrySetType.java
src/jalview/xml/binding/embl/EntryType.java
src/jalview/xml/binding/embl/ObjectFactory.java
src/jalview/xml/binding/embl/ROOT.java
src/jalview/xml/binding/embl/XrefType.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/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/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
src/jalview/xml/binding/uniprot/CitationType.java
src/jalview/xml/binding/uniprot/CofactorType.java
src/jalview/xml/binding/uniprot/CommentType.java
src/jalview/xml/binding/uniprot/ConsortiumType.java
src/jalview/xml/binding/uniprot/DbReferenceType.java
src/jalview/xml/binding/uniprot/Entry.java
src/jalview/xml/binding/uniprot/EventType.java
src/jalview/xml/binding/uniprot/EvidenceType.java
src/jalview/xml/binding/uniprot/EvidencedStringType.java
src/jalview/xml/binding/uniprot/FeatureType.java
src/jalview/xml/binding/uniprot/GeneLocationType.java
src/jalview/xml/binding/uniprot/GeneNameType.java
src/jalview/xml/binding/uniprot/GeneType.java
src/jalview/xml/binding/uniprot/ImportedFromType.java
src/jalview/xml/binding/uniprot/InteractantType.java
src/jalview/xml/binding/uniprot/IsoformType.java
src/jalview/xml/binding/uniprot/KeywordType.java
src/jalview/xml/binding/uniprot/LocationType.java
src/jalview/xml/binding/uniprot/MoleculeType.java
src/jalview/xml/binding/uniprot/NameListType.java
src/jalview/xml/binding/uniprot/ObjectFactory.java
src/jalview/xml/binding/uniprot/OrganismNameType.java
src/jalview/xml/binding/uniprot/OrganismType.java
src/jalview/xml/binding/uniprot/PersonType.java
src/jalview/xml/binding/uniprot/PhysiologicalReactionType.java
src/jalview/xml/binding/uniprot/PositionType.java
src/jalview/xml/binding/uniprot/PropertyType.java
src/jalview/xml/binding/uniprot/ProteinExistenceType.java
src/jalview/xml/binding/uniprot/ProteinType.java
src/jalview/xml/binding/uniprot/ReactionType.java
src/jalview/xml/binding/uniprot/ReferenceType.java
src/jalview/xml/binding/uniprot/SequenceType.java
src/jalview/xml/binding/uniprot/SourceDataType.java
src/jalview/xml/binding/uniprot/SourceType.java
src/jalview/xml/binding/uniprot/StatusType.java
src/jalview/xml/binding/uniprot/SubcellularLocationType.java
src/jalview/xml/binding/uniprot/Uniprot.java
src/jalview/xml/binding/uniprot/package-info.java
test/jalview/project/Jalview2xmlTests.java

index 5fd2bab..abfabb1 100755 (executable)
                                <xs:element name="contactmatrix" type="vamsas:MatrixType"
                                        maxOccurs="unbounded" minOccurs="0">
                                </xs:element>
-                               <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
-                                       <xs:complexType>
-                                               <xs:attribute name="name" type="xs:string" />
-                                               <xs:attribute name="value" type="xs:string" />
-                                       </xs:complexType>
-                               </xs:element>
+                               <xs:element name="property" type="vamsas:property" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="graph" type="xs:boolean" use="required" />
                        <xs:attribute name="graphType" type="xs:int" use="optional" />
                <xs:attribute name="description" type="xs:string"/>
        </xs:complexType>
        <xs:complexType name="MatrixType">
-       <xs:simpleContent><xs:extension base="xs:string">
-       <xs:attribute name="id" type="xs:string"/>
-       <xs:attribute name="type" type="xs:string" use="required"/>
-       <xs:attribute name="rows" type="xs:integer" use="required"/>
-       <xs:attribute name="cols" type="xs:integer" use="required"/>
-       </xs:extension>
-       </xs:simpleContent>
+               <xs:sequence>
+                       <xs:element name="elements" type="xs:string" minOccurs="1"
+                               maxOccurs="1">
+                               <xs:annotation>
+                                       <xs:documentation>serialised representation of matrix as one or
+                                               more sets of comma separated values</xs:documentation>
+                               </xs:annotation>
+                       </xs:element>
+                       <xs:element name="groups" type="xs:string" minOccurs="0"
+                               maxOccurs="unbounded">
+                               <xs:annotation>
+                                       <xs:documentation>Comma separated series of BigIntegers formed from
+                                               bitsets defining partitions on the rows/columns of the matrix
+                                       </xs:documentation>
+                               </xs:annotation>
+                       </xs:element>
+                       <xs:element name="newick" type="xs:string" minOccurs="0"
+                               maxOccurs="unbounded">
+                               <xs:annotation>
+                                       <xs:documentation>tree computed for this</xs:documentation>
+                               </xs:annotation>
+                       </xs:element>
+                       <xs:element name="property" type="vamsas:property"
+                               minOccurs="0" maxOccurs="unbounded" />
+               </xs:sequence>
+
+               <xs:attribute name="type" type="xs:string" use="required" />
+               <xs:attribute name="rows" type="xs:integer"
+                       use="required" />
+               <xs:attribute name="cols" type="xs:integer"
+                       use="required" />
+               <xs:attribute name="treeMethod" type="xs:string"
+                       use="optional" />
+               <xs:attribute name="cutHeight" type="xs:double"
+                       use="optional" />
+               <xs:attribute name="id" type="xs:string" use="optional" />
+
        </xs:complexType>
+       <xs:complexType name="property">
+               <xs:attribute name="name" type="xs:string" />
+               <xs:attribute name="value" type="xs:string" />
+       </xs:complexType>
+                               
        
 </xs:schema>
index 4e2076d..9eabb10 100644 (file)
@@ -1,6 +1,8 @@
 package jalview.datamodel;
 
+import java.util.Arrays;
 import java.util.BitSet;
+import java.util.List;
 
 public interface ContactMatrixI
 {
@@ -37,4 +39,31 @@ public interface ContactMatrixI
     return colbitset;
   }
 
+  default List<BitSet> getGroups() {
+    return Arrays.asList();
+  }
+
+  default boolean hasTree() {
+    return false;
+  }
+
+  /**
+   * Newick representation of clustered matrix
+   * @return null unless hasTree is true
+   */
+  default String getNewick() {
+    return null;
+  }
+
+  default String getTreeMethod() {
+    return null;
+  }
+
+  default boolean hasCutHeight() {
+    return false;
+  }
+
+  default double getCutHeight() {
+    return 0;
+  }
 }
index 14803df..36c87ce 100644 (file)
@@ -45,6 +45,7 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.BitSet;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.GregorianCalendar;
@@ -2307,7 +2308,28 @@ public class Jalview2XML
               xmlmat.setType(cm.getType());
               xmlmat.setRows(BigInteger.valueOf(cm.getWidth()));
               xmlmat.setCols(BigInteger.valueOf(cm.getHeight()));
-              xmlmat.setValue(ContactMatrix.contactToFloatString(cm));
+              // consider using an opaque to/from -> allow instance to control its representation ?
+              xmlmat.setElements(ContactMatrix.contactToFloatString(cm));
+              if (cm.hasGroups())
+              {
+                for (BitSet gp: cm.getGroups())
+                {
+                  BigInteger val = new BigInteger(gp.toByteArray());
+                  xmlmat.getGroups().add(val.toString());
+                }
+              }
+              if (cm.hasTree())
+              {
+                // provenance object for tree ?
+                xmlmat.getNewick().add(cm.getNewick());
+                xmlmat.setTreeMethod(cm.getTreeMethod());
+              }
+              if (cm.hasCutHeight())
+              {
+                xmlmat.setCutHeight(cm.getCutHeight());
+              }
+              
+              // set/get properties
               an.getContactmatrix().add(xmlmat);
             }
           }
@@ -2342,10 +2364,9 @@ public class Jalview2XML
       {
         for (String pr : annotation.getProperties())
         {
-          jalview.xml.binding.jalview.Annotation.Property prop = new jalview.xml.binding.jalview.Annotation.Property();
+          jalview.xml.binding.jalview.Property prop = new jalview.xml.binding.jalview.Property();
           prop.setName(pr);
           prop.setValue(annotation.getProperty(pr));
-          // an.addProperty(prop);
           an.getProperty().add(prop);
         }
       }
@@ -3920,7 +3941,7 @@ public class Jalview2XML
         jaa.setCalcId(annotation.getCalcId());
         if (annotation.getProperty().size() > 0)
         {
-          for (Annotation.Property prop : annotation.getProperty())
+          for (jalview.xml.binding.jalview.Property prop : annotation.getProperty())
           {
             jaa.setProperty(prop.getName(), prop.getValue());
           }
@@ -3941,12 +3962,36 @@ public class Jalview2XML
                 else
                 {
                   float[][] elements = ContactMatrix
-                          .fromFloatStringToContacts(xmlmat.getValue(),
+                          .fromFloatStringToContacts(xmlmat.getElements(),
                                   xmlmat.getCols().intValue(),
                                   xmlmat.getRows().intValue());
 
                   PAEContactMatrix newpae = new PAEContactMatrix(
                           jaa.sequenceRef, elements);
+                  List<BitSet> newgroups=new ArrayList<BitSet>();
+                  if (xmlmat.getGroups().size()>0)
+                  {
+                    for (String sgroup:xmlmat.getGroups())
+                    {
+                      try {
+                        BigInteger group = new BigInteger(sgroup);
+                        newgroups.add(BitSet.valueOf(group.toByteArray()));
+                      } catch (NumberFormatException nfe)
+                      {
+                        Console.error("Problem parsing groups for a contact matrix (\""+sgroup+"\"",nfe);
+                      }
+                    }
+                  }
+                  String nwk=xmlmat.getNewick().size()>0 ? xmlmat.getNewick().get(0):null;
+                  if  (xmlmat.getNewick().size()>1)
+                  {
+                    Console.log.info(
+                            "Ignoring additional clusterings for contact matrix");
+                  }
+
+                  String treeMethod = xmlmat.getTreeMethod();
+                  double thresh = xmlmat.getCutHeight()!=null ? xmlmat.getCutHeight() : 0;
+                  newpae.restoreGroups(newgroups, treeMethod, nwk, thresh);
                   jaa.sequenceRef.addContactListFor(jaa, newpae);
                 }
               }
index db3addc..87ccab6 100644 (file)
@@ -228,9 +228,11 @@ public class PAEContactMatrix implements ContactMatrixI
   @Override
   public String getAnnotLabel()
   {
-    StringBuilder label = new StringBuilder("pAE Matrix");
+    StringBuilder label = new StringBuilder("PAE Matrix");
     if (this.getReferenceSeq() != null)
+    {
       label.append(":").append(this.getReferenceSeq().getDisplayId(false));
+    }
     return label.toString();
   }
 
@@ -264,12 +266,15 @@ public class PAEContactMatrix implements ContactMatrixI
   {
     return newick;
   }
+  boolean abs;
+  double thresh;
+  String treeType=null;
   public void makeGroups(float thresh,boolean abs)
   {
     AverageDistanceEngine clusterer = new AverageDistanceEngine(null, null, this);
     double height = clusterer.findHeight(clusterer.getTopNode());
     newick = new jalview.io.NewickFile(clusterer.getTopNode(),false,true).print();
-
+    treeType = "UPGMA";
     Console.trace("Newick string\n"+newick);
 
     List<BinaryNode> nodegroups;
@@ -285,7 +290,8 @@ public class PAEContactMatrix implements ContactMatrixI
       nodegroups = new ArrayList<BinaryNode>();
       nodegroups.add(clusterer.getTopNode());
     }
-
+    this.abs=abs;
+    this.thresh=thresh;
     groups = new ArrayList<>();
     for (BinaryNode root:nodegroups)
     {
@@ -309,4 +315,28 @@ public class PAEContactMatrix implements ContactMatrixI
     }
     return ContactMatrixI.super.getGroupsFor(column);
   }
+
+  public void restoreGroups(List<BitSet> newgroups, String treeMethod,
+          String tree, double thresh2)
+  {
+    treeType=treeMethod;
+    groups = newgroups;
+    thresh=thresh2;
+    newick =tree;
+    
+  }
+  @Override
+  public boolean hasCutHeight() {
+    return groups!=null && thresh!=0;
+  }
+  @Override
+  public double getCutHeight()
+  {
+    return thresh;
+  }
+  @Override
+  public String getTreeMethod()
+  {
+    return treeType;
+  }
 }
index d72dd8d..5e1b3ea 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:03 AM GMT 
 //
 
 
index f744eb5..84a1ab3 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:03 AM GMT 
 //
 
 
index 4a5bf19..234c721 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:03 AM GMT 
 //
 
 
index 6d98c82..76cb42d 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:03 AM GMT 
 //
 
 
index a53c82b..56a9539 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:03 AM GMT 
 //
 
 
index 53bc217..cdc21a5 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 8df1313..ba54d37 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
@@ -43,16 +43,7 @@ import javax.xml.bind.annotation.XmlType;
  *           &lt;/complexType>
  *         &lt;/element>
  *         &lt;element name="contactmatrix" type="{www.vamsas.ac.uk/jalview/version2}MatrixType" maxOccurs="unbounded" minOccurs="0"/>
- *         &lt;element name="property" maxOccurs="unbounded" minOccurs="0">
- *           &lt;complexType>
- *             &lt;complexContent>
- *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
- *                 &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" />
- *               &lt;/restriction>
- *             &lt;/complexContent>
- *           &lt;/complexType>
- *         &lt;/element>
+ *         &lt;element name="property" type="{www.vamsas.ac.uk/jalview/version2}property" maxOccurs="unbounded" minOccurs="0"/>
  *       &lt;/sequence>
  *       &lt;attribute name="graph" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
  *       &lt;attribute name="graphType" type="{http://www.w3.org/2001/XMLSchema}int" />
@@ -96,7 +87,7 @@ public class Annotation {
     protected String description;
     protected Annotation.ThresholdLine thresholdLine;
     protected List<MatrixType> contactmatrix;
-    protected List<Annotation.Property> property;
+    protected List<Property> property;
     @XmlAttribute(name = "graph", required = true)
     protected boolean graph;
     @XmlAttribute(name = "graphType")
@@ -280,13 +271,13 @@ public class Annotation {
      * 
      * <p>
      * Objects of the following type(s) are allowed in the list
-     * {@link Annotation.Property }
+     * {@link Property }
      * 
      * 
      */
-    public List<Annotation.Property> getProperty() {
+    public List<Property> getProperty() {
         if (property == null) {
-            property = new ArrayList<Annotation.Property>();
+            property = new ArrayList<Property>();
         }
         return this.property;
     }
@@ -713,84 +704,6 @@ public class Annotation {
      * &lt;complexType>
      *   &lt;complexContent>
      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
-     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
-     *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" />
-     *     &lt;/restriction>
-     *   &lt;/complexContent>
-     * &lt;/complexType>
-     * </pre>
-     * 
-     * 
-     */
-    @XmlAccessorType(XmlAccessType.FIELD)
-    @XmlType(name = "")
-    public static class Property {
-
-        @XmlAttribute(name = "name")
-        protected String name;
-        @XmlAttribute(name = "value")
-        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;
-        }
-
-    }
-
-
-    /**
-     * <p>Java class for anonymous complex type.
-     * 
-     * <p>The following schema fragment specifies the expected content contained within this class.
-     * 
-     * <pre>
-     * &lt;complexType>
-     *   &lt;complexContent>
-     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
      *       &lt;attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" />
      *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float" />
      *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
index fe0f49d..ccd6222 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 4d34ce2..72a3e73 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 8ab2f67..c304ff8 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 5c34abf..2a8d1eb 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 41771fd..09701ba 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 94c26e0..2e41fe0 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index ea26bed..faf4182 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index e13905d..e4ea645 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index cbe06b4..0bf4211 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index f383f52..c5177ba 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 752b37d..22242eb 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index b1dbda2..a147ab4 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index f201c32..fcf9958 100644 (file)
@@ -2,18 +2,20 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
 package jalview.xml.binding.jalview;
 
 import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.XmlValue;
 
 
 /**
@@ -23,14 +25,22 @@ import javax.xml.bind.annotation.XmlValue;
  * 
  * <pre>
  * &lt;complexType name="MatrixType">
- *   &lt;simpleContent>
- *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
- *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="elements" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="groups" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="newick" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="property" type="{www.vamsas.ac.uk/jalview/version2}property" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
  *       &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
  *       &lt;attribute name="rows" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
  *       &lt;attribute name="cols" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
- *     &lt;/extension>
- *   &lt;/simpleContent>
+ *       &lt;attribute name="treeMethod" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="cutHeight" type="{http://www.w3.org/2001/XMLSchema}double" />
+ *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
  * &lt;/complexType>
  * </pre>
  * 
@@ -38,67 +48,140 @@ import javax.xml.bind.annotation.XmlValue;
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "MatrixType", propOrder = {
-    "value"
+    "elements",
+    "groups",
+    "newick",
+    "property"
 })
 public class MatrixType {
 
-    @XmlValue
-    protected String value;
-    @XmlAttribute(name = "id")
-    protected String id;
+    @XmlElement(required = true)
+    protected String elements;
+    protected List<String> groups;
+    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")
+    protected String id;
 
     /**
-     * Gets the value of the value property.
+     * Gets the value of the elements property.
      * 
      * @return
      *     possible object is
      *     {@link String }
      *     
      */
-    public String getValue() {
-        return value;
+    public String getElements() {
+        return elements;
     }
 
     /**
-     * Sets the value of the value property.
+     * Sets the value of the elements property.
      * 
      * @param value
      *     allowed object is
      *     {@link String }
      *     
      */
-    public void setValue(String value) {
-        this.value = value;
+    public void setElements(String value) {
+        this.elements = value;
     }
 
     /**
-     * Gets the value of the id property.
+     * 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>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getGroups().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
      * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
      */
-    public String getId() {
-        return id;
+    public List<String> getGroups() {
+        if (groups == null) {
+            groups = new ArrayList<String>();
+        }
+        return this.groups;
     }
 
     /**
-     * Sets the value of the id property.
+     * 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>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getNewick().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
      * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
      */
-    public void setId(String value) {
-        this.id = value;
+    public List<String> getNewick() {
+        if (newick == null) {
+            newick = new ArrayList<String>();
+        }
+        return this.newick;
+    }
+
+    /**
+     * 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>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getProperty().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Property }
+     * 
+     * 
+     */
+    public List<Property> getProperty() {
+        if (property == null) {
+            property = new ArrayList<Property>();
+        }
+        return this.property;
     }
 
     /**
@@ -173,4 +256,76 @@ public class MatrixType {
         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 dd1357d..935adc5 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index ea5428a..3a2f81b 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
@@ -283,11 +283,11 @@ public class ObjectFactory {
     }
 
     /**
-     * Create an instance of {@link Annotation.Property }
+     * Create an instance of {@link jalview.xml.binding.jalview.Property }
      * 
      */
-    public Annotation.Property createAnnotationProperty() {
-        return new Annotation.Property();
+    public jalview.xml.binding.jalview.Property createProperty() {
+        return new jalview.xml.binding.jalview.Property();
     }
 
     /**
index a510399..3d19c58 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 8c3a499..544b568 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 09fdcb5..5851659 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index f50e4cb..f96550a 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 0a360ed..62c04c8 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index f717f2e..304d653 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 0983075..0571f85 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 9baa3bc..21b35d7 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 
index 5bb7db6..a8e5b9f 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:57 PM GMT 
+// Generated on: 2023.03.09 at 07:45:02 AM GMT 
 //
 
 @javax.xml.bind.annotation.XmlSchema(namespace = "www.vamsas.ac.uk/jalview/version2", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
index a7381a1..15940c7 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 693e586..f2ecd0c 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 72ca25c..7ce7ebc 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index a2db65a..022099d 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index d3c111e..b623d2c 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 7c485d5..74efb7c 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index ed97121..f8d37c5 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 4e99255..afe1b60 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index caa9d94..78ed315 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index ca03a54..0632ac3 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 998d1b9..1094851 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index dc03075..6547333 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index d419e09..0dbe520 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 1dacab8..4c493d5 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index d579506..038f37f 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 69b251e..b3aa4e8 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 5497e6d..7f3c265 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 78a388b..38c1665 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index e734c27..285b8d3 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index c638af7..eddabb2 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 0459e04..d18fdcd 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 312c0ee..06a0470 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 55774e3..80171d4 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 2b130f2..63ea683 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 445f99f..f5a126a 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 05b6afc..33c194e 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index c9324b0..45f654f 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index f7f989a..7cdaabd 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 5f1a018..9edfb71 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 806a8f7..933a013 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index e00e9a7..8315a1c 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index e747820..fbd840b 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 9598976..ef8f052 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 755ca21..711afca 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 63c281d..dc8f920 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index bebbd62..27ea148 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 1de89de..a7bc828 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 
index 560368d..3f8b048 100644 (file)
@@ -2,7 +2,7 @@
 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
 // Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2023.02.22 at 10:08:58 PM GMT 
+// Generated on: 2023.03.09 at 07:45:04 AM GMT 
 //
 
 @javax.xml.bind.annotation.XmlSchema(namespace = "http://uniprot.org/uniprot", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
index 510b21d..0ab9dcb 100644 (file)
@@ -1567,7 +1567,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase
     Assert.assertTrue(content.contains("\t1.")); // at least one element must be 1
     float[][] vals = ContactMatrix.fromFloatStringToContacts(content, sq.getLength(), sq.getLength());
     assertEquals(vals[3][4],paevals[3][4]);
-    
+    dummyMat.makeGroups(0.5f, false);
     AlignmentAnnotation paeCm = sq.addContactList(dummyMat);
     al.addAnnotation(paeCm);
     File tfile = File.createTempFile("testStoreAndRecoverPAEmatrix",
@@ -1598,6 +1598,11 @@ public class Jalview2xmlTests extends Jalview2xmlBase
         Assert.assertEquals(oldCM.getContactAt(j), newCM.getContactAt(j));
       }
     }
+    Assert.assertEquals(dummyMat.hasGroups(), restoredMat.hasGroups());
+    Assert.assertEquals(dummyMat.getGroups(), restoredMat.getGroups());
+    Assert.assertEquals(dummyMat.hasTree(), restoredMat.hasTree());
+    Assert.assertEquals(dummyMat.getNewick(), restoredMat.getNewick());
+    
     
   }