JAL-4124 Dataset holds list of MatrixType instances, MapOnAMatrixType allows multiple...
authorJames Procter <j.procter@dundee.ac.uk>
Tue, 29 Aug 2023 17:27:38 +0000 (18:27 +0100)
committerJames Procter <j.procter@dundee.ac.uk>
Tue, 29 Aug 2023 17:27:38 +0000 (18:27 +0100)
30 files changed:
schemas/vamsas.xsd
src/jalview/project/Jalview2XML.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

index c4a5d3e..38152fd 100755 (executable)
        Note this also generates code for included schemas
 -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" targetNamespace="www.vamsas.ac.uk/jalview/version2" elementFormDefault="qualified" attributeFormDefault="unqualified">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+       xmlns:vamsas="www.vamsas.ac.uk/jalview/version2"
+       targetNamespace="www.vamsas.ac.uk/jalview/version2"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:complexType name="VAMSAS">
                <xs:sequence>
-                       <xs:element name="Tree" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element ref="vamsas:SequenceSet" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Tree" type="xs:string" minOccurs="0"
+                               maxOccurs="unbounded" />
+                       <xs:element ref="vamsas:SequenceSet" minOccurs="0"
+                               maxOccurs="unbounded" />
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="mapListType">
                <xs:annotation>
-                       <xs:documentation> 
-                               developed after mapRangeType from http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes
+                       <xs:documentation>
+                               developed after mapRangeType from
+                               http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes
                        </xs:documentation>
                        <xs:documentation>
-                               This effectively represents a java.util.MapList object
+                               This effectively represents a java.util.MapList
+                               object
                        </xs:documentation>
                </xs:annotation>
                <xs:sequence>
-                       <xs:element name="mapListFrom" minOccurs="0" maxOccurs="unbounded">
+                       <xs:element name="mapListFrom" minOccurs="0"
+                               maxOccurs="unbounded">
                                <xs:annotation>
-                                       <xs:documentation> a region from start to end inclusive</xs:documentation>
+                                       <xs:documentation> a region from start to end inclusive
+                                       </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
-                                       <xs:attribute name="start" type="xs:int" use="required"/>
-                                       <xs:attribute name="end" type="xs:int" use="required"/>
+                                       <xs:attribute name="start" type="xs:int"
+                                               use="required" />
+                                       <xs:attribute name="end" type="xs:int" use="required" />
                                </xs:complexType>
-                       </xs:element>                                   
-                       <xs:element name="mapListTo" minOccurs="0" maxOccurs="unbounded">
+                       </xs:element>
+                       <xs:element name="mapListTo" minOccurs="0"
+                               maxOccurs="unbounded">
                                <xs:annotation>
-                                       <xs:documentation> a region from start to end inclusive</xs:documentation>
+                                       <xs:documentation> a region from start to end inclusive
+                                       </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
-                                       <xs:attribute name="start" type="xs:int" use="required"/>
-                                       <xs:attribute name="end" type="xs:int" use="required"/>
+                                       <xs:attribute name="start" type="xs:int"
+                                               use="required" />
+                                       <xs:attribute name="end" type="xs:int" use="required" />
                                </xs:complexType>
-                       </xs:element>                                   
+                       </xs:element>
                </xs:sequence>
-               <xs:attribute name="mapFromUnit" type="xs:positiveInteger" use="required">
+               <xs:attribute name="mapFromUnit"
+                       type="xs:positiveInteger" use="required">
                        <xs:annotation>
-                               <xs:documentation>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. </xs:documentation>
+                               <xs:documentation>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.
+                               </xs:documentation>
                        </xs:annotation>
                </xs:attribute>
-               <xs:attribute name="mapToUnit" type="xs:positiveInteger" use="required">
+               <xs:attribute name="mapToUnit" type="xs:positiveInteger"
+                       use="required">
                        <xs:annotation>
-                               <xs:documentation>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. </xs:documentation>
+                               <xs:documentation>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.
+                               </xs:documentation>
                        </xs:annotation>
                </xs:attribute>
        </xs:complexType>
                <xs:complexType>
                        <xs:annotation>
                                <xs:documentation>
-                                       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).
                                </xs:documentation>
                        </xs:annotation>
                        <xs:complexContent>
                                <xs:extension base="vamsas:mapListType">
                                        <xs:sequence>
                                                <xs:choice minOccurs="0" maxOccurs="1">
-                                                       <xs:element ref="vamsas:Sequence"/>
+                                                       <xs:element ref="vamsas:Sequence" />
                                                        <xs:element name="dseqFor">
                                                                <xs:simpleType>
                                                                        <xs:restriction base="xs:string">
                                                                                <xs:annotation>
-                                                                                       <xs:documentation>The sequence whose dataset sequence is to be referenced here</xs:documentation>
+                                                                                       <xs:documentation>The sequence whose dataset sequence is to
+                                                                                               be referenced here
+                                                                                       </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:restriction>
                                                                </xs:simpleType>
                                                        </xs:element>
                                                </xs:choice>
                                        </xs:sequence>
-                                       <xs:attribute name="mappingType" type="xs:string" use="optional">
+                                       <xs:attribute name="mappingType" type="xs:string"
+                                               use="optional">
                                                <xs:annotation>
-                                                       <xs:documentation>Biotype of the mapping e.g. CdsToPeptide</xs:documentation>
+                                                       <xs:documentation>Biotype of the mapping e.g. CdsToPeptide
+                                                       </xs:documentation>
                                                </xs:annotation>
                                        </xs:attribute>
                                </xs:extension>
-                       </xs:complexContent>    
+                       </xs:complexContent>
                </xs:complexType>
        </xs:element>
        <xs:element name="AlcodonFrame">
                <xs:complexType>
                        <xs:sequence>
-                               <xs:element name="alcodon" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="alcodon" minOccurs="0"
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:annotation>
                                                        <xs:documentation>
-                                                               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).
+                                                               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).
                                                        </xs:documentation>
                                                </xs:annotation>
-                                               <xs:attribute name="pos1" type="xs:integer" use="optional"/>
-                                               <xs:attribute name="pos2" type="xs:integer" use="optional"/>
-                                               <xs:attribute name="pos3" type="xs:integer" use="optional"/>
+                                               <xs:attribute name="pos1" type="xs:integer"
+                                                       use="optional" />
+                                               <xs:attribute name="pos2" type="xs:integer"
+                                                       use="optional" />
+                                               <xs:attribute name="pos3" type="xs:integer"
+                                                       use="optional" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="alcodMap" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="alcodMap" minOccurs="0"
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element ref="vamsas:Mapping" maxOccurs="1" minOccurs="1">
+                                                       <xs:element ref="vamsas:Mapping" maxOccurs="1"
+                                                               minOccurs="1">
                                                                <xs:annotation>
                                                                        <xs:documentation>
-                                                                               a Mapping entry and an associated protein sequence
+                                                                               a Mapping entry and an associated protein
+                                                                               sequence
                                                                        </xs:documentation>
                                                                </xs:annotation>
                                                        </xs:element>
                                                </xs:sequence>
-                                               <xs:attribute name="dnasq" type="xs:string" use="required">
+                                               <xs:attribute name="dnasq" type="xs:string"
+                                                       use="required">
                                                        <xs:annotation>
                                                                <xs:documentation>
-                                                                       internal jalview id for the dnasq for this mapping.
+                                                                       internal jalview id for the dnasq for this
+                                                                       mapping.
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                </xs:attribute>
                                        </xs:complexType>
-                                       
+
                                </xs:element>
-                               
+
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
                        <xs:complexContent>
                                <xs:extension base="vamsas:SequenceType">
                                        <xs:sequence>
-                                               <xs:element name="DBRef" minOccurs="0" maxOccurs="unbounded">
+                                               <xs:element name="DBRef" minOccurs="0"
+                                                       maxOccurs="unbounded">
                                                        <xs:complexType>
                                                                <xs:sequence>
-                                                                       <xs:element ref="vamsas:Mapping" minOccurs="0" maxOccurs="1"/>
-                                                               </xs:sequence>                                                                                                  
-                                                               <xs:attribute name="source" type="xs:string"/>
-                                                               <xs:attribute name="version" type="xs:string"/>
-                                                               <xs:attribute name="accessionId" type="xs:string"/>
-                                                               <xs:attribute name="locus" type="xs:boolean" default="false">
+                                                                       <xs:element ref="vamsas:Mapping" minOccurs="0"
+                                                                               maxOccurs="1" />
+                                                               </xs:sequence>
+                                                               <xs:attribute name="source" type="xs:string" />
+                                                               <xs:attribute name="version" type="xs:string" />
+                                                               <xs:attribute name="accessionId" type="xs:string" />
+                                                               <xs:attribute name="locus" type="xs:boolean"
+                                                                       default="false">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
-                                                                                       true for gene locus mapping, source=species, version=assembly, accession=chromosome
+                                                                                       true for gene locus mapping, source=species,
+                                                                                       version=assembly, accession=chromosome
                                                                                </xs:documentation>
                                                                        </xs:annotation>
                                                                </xs:attribute>
-                                                               <xs:attribute name="canonical" type="xs:boolean" default="false">
+                                                               <xs:attribute name="canonical" type="xs:boolean"
+                                                                       default="false">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
-                                                                                       true for the representative accession for databases where multiple accessions map to the same entry (eg. Uniprot)
+                                                                                       true for the representative accession for
+                                                                                       databases where multiple accessions map to the same entry
+                                                                                       (eg. Uniprot)
                                                                                </xs:documentation>
                                                                        </xs:annotation>
                                                                </xs:attribute>
                                                        </xs:complexType>
                                                </xs:element>
                                        </xs:sequence>
-                                       <xs:attribute name="dsseqid" type="xs:string" use="optional">
+                                       <xs:attribute name="dsseqid" type="xs:string"
+                                               use="optional">
                                                <xs:annotation>
                                                        <xs:documentation>
-                                                               dataset sequence id for this sequence. Will be created as union of sequences.
+                                                               dataset sequence id for this sequence. Will be
+                                                               created as union of sequences.
                                                        </xs:documentation>
                                                </xs:annotation>
                                        </xs:attribute>
-                                       <xs:attribute name="biotype" type="xs:string" use="optional">
+                                       <xs:attribute name="biotype" type="xs:string"
+                                               use="optional">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Biotype of the sequence (if known)
                                                <xs:attribute name="colour" type="xs:int" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="contactmatrix" type="vamsas:MatrixType"
-                                       maxOccurs="unbounded" minOccurs="0">
+                               <xs:element name="contactmatrix"
+                                       type="vamsas:MapOnAMatrixType" maxOccurs="unbounded" minOccurs="0">
                                </xs:element>
-                               <xs:element name="property" type="vamsas:property" minOccurs="0" maxOccurs="unbounded"/>
+                               <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="graph" type="xs:boolean"
+                               use="required" />
+                       <xs:attribute name="graphType" type="xs:int"
+                               use="optional" />
                        <xs:attribute name="sequenceRef" type="xs:string"
                                use="optional" />
                        <xs:attribute name="groupRef" type="xs:string"
                                use="optional" />
                        <xs:attribute name="graphGroup" type="xs:int"
                                use="optional" />
-                       <xs:attribute name="graphHeight" type="xs:int" use="optional">
-                       <xs:annotation><xs:documentation>height in pixels for the graph if this is a graph-type annotation.</xs:documentation></xs:annotation></xs:attribute>
+                       <xs:attribute name="graphHeight" type="xs:int"
+                               use="optional">
+                               <xs:annotation>
+                                       <xs:documentation>height in pixels for the graph if this is a
+                                               graph-type annotation.
+                                       </xs:documentation>
+                               </xs:annotation>
+                       </xs:attribute>
                        <xs:attribute name="id" type="xs:string" use="optional" />
                        <xs:attribute name="scoreOnly" type="xs:boolean"
                                use="optional" default="false" />
-                       <xs:attribute name="score" type="xs:double" use="optional" />
+                       <xs:attribute name="score" type="xs:double"
+                               use="optional" />
                        <xs:attribute name="visible" type="xs:boolean"
                                use="optional" />
                        <xs:attribute name="centreColLabels" type="xs:boolean"
                                use="optional" />
 
 
-                       <xs:attribute name="autoCalculated" type="xs:boolean" use="optional" default="false">
-                       <xs:annotation><xs:documentation>is an autocalculated annotation row</xs:documentation>
-                       </xs:annotation></xs:attribute>
-                       <xs:attribute name="belowAlignment" type="xs:boolean" use="optional" default="true">
-                       <xs:annotation><xs:documentation>is to be shown below the alignment - introduced in Jalview 2.8 for visualizing T-COFFEE alignment scores</xs:documentation></xs:annotation></xs:attribute>
-                       <xs:attribute name="calcId" type="xs:string" use="optional">
-                       <xs:annotation><xs:documentation>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.</xs:documentation></xs:annotation>
+                       <xs:attribute name="autoCalculated" type="xs:boolean"
+                               use="optional" default="false">
+                               <xs:annotation>
+                                       <xs:documentation>is an autocalculated annotation row
+                                       </xs:documentation>
+                               </xs:annotation>
+                       </xs:attribute>
+                       <xs:attribute name="belowAlignment" type="xs:boolean"
+                               use="optional" default="true">
+                               <xs:annotation>
+                                       <xs:documentation>is to be shown below the alignment - introduced
+                                               in Jalview 2.8 for visualizing T-COFFEE alignment scores
+                                       </xs:documentation>
+                               </xs:annotation>
+                       </xs:attribute>
+                       <xs:attribute name="calcId" type="xs:string"
+                               use="optional">
+                               <xs:annotation>
+                                       <xs:documentation>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.
+                                       </xs:documentation>
+                               </xs:annotation>
                        </xs:attribute>
                </xs:complexType>
-       </xs:element>   
+       </xs:element>
        <xs:element name="SequenceSet">
                <xs:complexType>
                        <xs:sequence>
-                               <xs:element ref="vamsas:Sequence" minOccurs="0" maxOccurs="unbounded"/>
-                               <xs:element ref="vamsas:Annotation" minOccurs="0" maxOccurs="unbounded"/>
-                               <xs:element name="sequenceSetProperties" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element ref="vamsas:Sequence" minOccurs="0"
+                                       maxOccurs="unbounded" />
+                               <xs:element ref="vamsas:Annotation" minOccurs="0"
+                                       maxOccurs="unbounded" />
+                               <xs:element name="sequenceSetProperties" minOccurs="0"
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
-                                               <xs:attribute name="key" type="xs:string"/>
-                                               <xs:attribute name="value" type="xs:string"/>
+                                               <xs:attribute name="key" type="xs:string" />
+                                               <xs:attribute name="value" type="xs:string" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element ref="vamsas:AlcodonFrame" minOccurs="0" maxOccurs="unbounded"/>
-                               <xs:element name="Matrices" type="vamsas:MatrixType" minOccurs="0" maxOccurs="unbounded"/>
+                               <xs:element ref="vamsas:AlcodonFrame" minOccurs="0"
+                                       maxOccurs="unbounded" />
+                               <xs:element name="Matrices" type="vamsas:MatrixType"
+                                       minOccurs="0" maxOccurs="unbounded">
+                                       <xs:annotation>
+                                               <xs:documentation>Matrices referred to by this set of sequences.
+                                               </xs:documentation>
+                                       </xs:annotation>
+                               </xs:element>
                        </xs:sequence>
-                       <xs:attribute name="gapChar" type="xs:string" use="required"/>
-                       <xs:attribute name="datasetId" type="xs:string" use="optional">
+                       <xs:attribute name="gapChar" type="xs:string"
+                               use="required" />
+                       <xs:attribute name="datasetId" type="xs:string"
+                               use="optional">
                                <xs:annotation>
                                        <xs:documentation>
-                                               reference to set where jalview will gather the dataset sequences for all sequences in the set. 
+                                               reference to set where jalview will gather the
+                                               dataset sequences for all sequences in the set.
                                        </xs:documentation>
                                </xs:annotation>
                        </xs:attribute>
        <xs:element name="annotationElement">
                <xs:complexType>
                        <xs:sequence>
-                               <xs:element name="displayCharacter" type="xs:string" minOccurs="0"/>
-                               <xs:element name="description" type="xs:string" minOccurs="0"/>
+                               <xs:element name="displayCharacter" type="xs:string"
+                                       minOccurs="0" />
+                               <xs:element name="description" type="xs:string"
+                                       minOccurs="0" />
                                <xs:element name="secondaryStructure" minOccurs="0">
                                        <xs:simpleType>
                                                <xs:restriction base="xs:string">
-                                                       <xs:length value="1"/>
+                                                       <xs:length value="1" />
                                                </xs:restriction>
                                        </xs:simpleType>
                                </xs:element>
-                               <xs:element name="value" type="xs:float" minOccurs="0"/>
+                               <xs:element name="value" type="xs:float" minOccurs="0" />
                        </xs:sequence>
-                       <xs:attribute name="position" type="xs:int" use="required"/>
-                       <xs:attribute name="colour" type="xs:int" use="optional"/>
+                       <xs:attribute name="position" type="xs:int"
+                               use="required" />
+                       <xs:attribute name="colour" type="xs:int" use="optional" />
                </xs:complexType>
        </xs:element>
        <xs:complexType name="SequenceType">
                <xs:sequence>
-                       <xs:element name="sequence" type="xs:string" minOccurs="0"/>
-                       <xs:element name="name" type="xs:string" minOccurs="0"/>
+                       <xs:element name="sequence" type="xs:string" minOccurs="0" />
+                       <xs:element name="name" type="xs:string" minOccurs="0" />
                </xs:sequence>
-               <xs:attribute name="id" type="xs:string"/>
-               <xs:attribute name="description" type="xs:string"/>
+               <xs:attribute name="id" type="xs:string" />
+               <xs:attribute name="description" type="xs:string" />
        </xs:complexType>
        <xs:complexType name="MatrixType">
+               <xs:annotation>
+                       <xs:documentation>Represents matrix data imported to Jalview, and the
+                               results of any derived calculations (independent of a particular
+                               view
+                               on the matrix).
+                       </xs:documentation>
+               </xs:annotation>
                <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>
+                                               more sets of comma separated values
+                                       </xs:documentation>
                                </xs:annotation>
                        </xs:element>
                        <xs:element name="groups" type="xs:string" minOccurs="0"
                        </xs:element>
                        <xs:element name="property" type="vamsas:property"
                                minOccurs="0" maxOccurs="unbounded" />
-                       <xs:element name="mapping" type="vamsas:mapListType"
-                               minOccurs="0" maxOccurs="1">
-                       <xs:annotation>
-                               <xs:documentation>mapping from the matrix row and column positions to
-                                       associated reference frame</xs:documentation>
-                               </xs:annotation>
-                       </xs:element>
                </xs:sequence>
 
                <xs:attribute name="type" type="xs:string" use="required" />
 
        </xs:complexType>
        <xs:complexType name="MapOnAMatrixType">
+               <xs:annotation>
+                       <xs:documentation>Defines a mapping from the local frame to a matrix
+                               and its associated data specified by MatrixType
+                       </xs:documentation>
+               </xs:annotation>
                <xs:sequence>
                        <xs:element name="property" type="vamsas:property"
                                minOccurs="0" maxOccurs="unbounded" />
                                </xs:annotation>
                        </xs:element>
                </xs:sequence>
-       
+
                <xs:attribute name="matrix" type="xs:string"
                        use="required">
-       
+
                        <xs:annotation>
                                <xs:documentation>reference to the matrix type this Map refers to
                                </xs:documentation>
                <xs:attribute name="name" type="xs:string" />
                <xs:attribute name="value" type="xs:string" />
        </xs:complexType>
-                               
-       
+
+
 </xs:schema>
index b9e1f46..f8be544 100644 (file)
@@ -91,12 +91,15 @@ import jalview.datamodel.AlignedCodonFrame;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ContactListI;
 import jalview.datamodel.ContactMatrix;
 import jalview.datamodel.ContactMatrixI;
 import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.FloatContactMatrix;
 import jalview.datamodel.GeneLocus;
 import jalview.datamodel.GraphLine;
 import jalview.datamodel.GroupSet;
+import jalview.datamodel.GroupSetI;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.Point;
 import jalview.datamodel.RnaViewerModel;
@@ -199,6 +202,7 @@ import jalview.xml.binding.jalview.JalviewUserColours.Colour;
 import jalview.xml.binding.jalview.MapListType;
 import jalview.xml.binding.jalview.MapListType.MapListFrom;
 import jalview.xml.binding.jalview.MapListType.MapListTo;
+import jalview.xml.binding.jalview.MapOnAMatrixType;
 import jalview.xml.binding.jalview.Mapping;
 import jalview.xml.binding.jalview.MatrixType;
 import jalview.xml.binding.jalview.NoValueColour;
@@ -2432,39 +2436,47 @@ public class Jalview2XML
   {
     String cmId = contactMatrices.get(cm);
     MatrixType xmlmat=null;
-    if (cmId==null)
+    
+    // first create an xml ref for the matrix data, if none exist
+    if (cmId == null)
     {
-xmlmat = new MatrixType();
-    xmlmat.setType(cm.getType());
-    xmlmat.setRows(BigInteger.valueOf(cm.getWidth()));
-    xmlmat.setCols(BigInteger.valueOf(cm.getHeight()));
-    // 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())
+      xmlmat = new MatrixType();
+      xmlmat.setType(cm.getType());
+      xmlmat.setRows(BigInteger.valueOf(cm.getWidth()));
+      xmlmat.setCols(BigInteger.valueOf(cm.getHeight()));
+      // consider using an opaque to/from -> allow instance to control
+      // its representation ?
+      xmlmat.setElements(ContactMatrix.contactToFloatString(cm));
+      if (cm.hasGroups())
       {
-        xmlmat.getGroups().add(stringifyBitset(gp));
+        for (BitSet gp : cm.getGroups())
+        {
+          xmlmat.getGroups().add(stringifyBitset(gp));
+        }
       }
-    }
-    if (cm.hasTree())
-    {
-      // provenance object for tree ?
-      xmlmat.getNewick().add(cm.getNewick());
-      xmlmat.setTreeMethod(cm.getTreeMethod());
-    }
-    if (cm.hasCutHeight())
-    {
-      xmlmat.setCutHeight(cm.getCutHeight());
-    }
-      xmlmat.setId(makeHashCode(cm, cm.get));
+      if (cm.hasTree())
+      {
+        // provenance object for tree ?
+        xmlmat.getNewick().add(cm.getNewick());
+        xmlmat.setTreeMethod(cm.getTreeMethod());
+      }
+      if (cm.hasCutHeight())
+      {
+        xmlmat.setCutHeight(cm.getCutHeight());
+      }
+      xmlmat.setId(cmId = makeHashCode(cm, null));
+      contactMatrices.put(cm, cmId);
+      contactMatrixRefs.put(cmId, cm);
       root.getMatrices().add(xmlmat);
     }
-    else {
-      
-    }
-    // set/get properties
+
+    // now store mapping
+
+    MapOnAMatrixType xmlmatmapping = new MapOnAMatrixType();
+    xmlmatmapping.setMatrix(cmId);
+    
+    // Pretty much all matrices currently managed in this way are
+    // mappableContactMatrixI implementations - but check anyway
     if (cm instanceof MappableContactMatrixI)
     {
       jalview.util.MapList mlst = ((MappableContactMatrixI) cm)
@@ -2490,14 +2502,13 @@ xmlmat = new MatrixType();
           // mp.addMapListTo(mto);
           mp.getMapListTo().add(mto);
         }
-        mp.setMapFromUnit(
-                BigInteger.valueOf(mlst.getFromRatio()));
+        mp.setMapFromUnit(BigInteger.valueOf(mlst.getFromRatio()));
         mp.setMapToUnit(BigInteger.valueOf(mlst.getToRatio()));
-        xmlmat.setMapping(mp);
+        xmlmatmapping.setMapping(mp);
       }
     }
     // and add to model
-    an.getContactmatrix().add(xmlmat);    
+    an.getContactmatrix().add(xmlmatmapping);
   }
 
   private String stringifyBitset(BitSet gp)
@@ -3521,6 +3532,14 @@ xmlmat = new MatrixType();
     }
 
     // ////////////////////////////////
+    // LOAD MATRICES (IF ANY)
+    
+    if (vamsasSet.getMatrices()!=null && vamsasSet.getMatrices().size()>0)
+    {
+      importMatrixData(vamsasSet.getMatrices());
+    }
+    
+    // ////////////////////////////////
     // LOAD SEQUENCES
 
     List<SequenceI> hiddenSeqs = null;
@@ -4052,80 +4071,10 @@ xmlmat = new MatrixType();
           if (annotation.getContactmatrix() != null
                   && annotation.getContactmatrix().size() > 0)
           {
-            for (MatrixType xmlmat : annotation.getContactmatrix())
+            for (MapOnAMatrixType xmlmat : annotation.getContactmatrix())
             {
-              if (PAEContactMatrix.PAEMATRIX.equals(xmlmat.getType()))
-              {
-                if (!xmlmat.getRows().equals(xmlmat.getCols()))
-                {
-                  Console.error("Can't handle non square PAE Matrices");
-                }
-                else
-                {
-                  float[][] elements = ContactMatrix
-                          .fromFloatStringToContacts(xmlmat.getElements(),
-                                  xmlmat.getCols().intValue(),
-                                  xmlmat.getRows().intValue());
-                  jalview.util.MapList mapping = null;
-                  if (xmlmat.getMapping() != null)
-                  {
-                    MapListType m = xmlmat.getMapping();
-                    // Mapping m = dr.getMapping();
-                    int fr[] = new int[m.getMapListFrom().size() * 2];
-                    Iterator<MapListFrom> from = m.getMapListFrom()
-                            .iterator();// enumerateMapListFrom();
-                    for (int _i = 0; from.hasNext(); _i += 2)
-                    {
-                      MapListFrom mf = from.next();
-                      fr[_i] = mf.getStart();
-                      fr[_i + 1] = mf.getEnd();
-                    }
-                    int fto[] = new int[m.getMapListTo().size() * 2];
-                    Iterator<MapListTo> to = m.getMapListTo().iterator();// enumerateMapListTo();
-                    for (int _i = 0; to.hasNext(); _i += 2)
-                    {
-                      MapListTo mf = to.next();
-                      fto[_i] = mf.getStart();
-                      fto[_i + 1] = mf.getEnd();
-                    }
-
-                    mapping = new jalview.util.MapList(fr, fto,
-                            m.getMapFromUnit().intValue(),
-                            m.getMapToUnit().intValue());
-                  }
-                  List<BitSet> newgroups = new ArrayList<BitSet>();
-                  if (xmlmat.getGroups().size() > 0)
-                  {
-                    for (String sgroup : xmlmat.getGroups())
-                    {
-                      newgroups.add(deStringifyBitset(sgroup));
-                    }
-                  }
-                  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;
-                  GroupSet grpset = new GroupSet();
-                  grpset.restoreGroups(newgroups, treeMethod, nwk, thresh);
-                  PAEContactMatrix newpae = new PAEContactMatrix(
-                          jaa.sequenceRef, mapping, elements, grpset);
-                  jaa.sequenceRef.addContactListFor(jaa, newpae);
-                }
-              }
-              else
-              {
-                Console.error("Ignoring CONTACT_MAP annotation with type "
-                        + xmlmat.getType());
-              }
-            }
+              restoreMatrixFor(jaa.sequenceRef, jaa, xmlmat);
+            } 
           }
         }
 
@@ -4355,6 +4304,103 @@ xmlmat = new MatrixType();
     return af;
   }
 
+  private void importMatrixData(List<MatrixType> xmlmatrices)
+  {
+    for (MatrixType xmlmat:xmlmatrices)
+    {
+      if (!PAEContactMatrix.PAEMATRIX.equals(xmlmat.getType()))
+      {
+        Console.error("Ignoring matrix '"+xmlmat.getId()+"' of type '"+xmlmat.getType());
+        continue;
+      }
+
+      if (!xmlmat.getRows().equals(xmlmat.getCols()))
+      {
+        Console.error("Can't handle non square matrices");
+        continue;
+      }
+
+      float[][] elements = ContactMatrix
+              .fromFloatStringToContacts(xmlmat.getElements(),
+                      xmlmat.getCols().intValue(),
+                      xmlmat.getRows().intValue());
+      
+      List<BitSet> newgroups = new ArrayList<BitSet>();
+      if (xmlmat.getGroups().size() > 0)
+      {
+        for (String sgroup : xmlmat.getGroups())
+        {
+          newgroups.add(deStringifyBitset(sgroup));
+        }
+      }
+      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;
+      GroupSet grpset = new GroupSet();
+      grpset.restoreGroups(newgroups, treeMethod, nwk, thresh);
+      
+      FloatContactMatrix newcm = new FloatContactMatrix(elements, grpset);
+      contactMatrixRefs.put(xmlmat.getId(), newcm);
+      Console.trace("Restored base contact matrix "+xmlmat.getId());
+    }
+  }
+
+  private void restoreMatrixFor(SequenceI sequenceRef,
+          AlignmentAnnotation jaa, MapOnAMatrixType xmlmatmapping)
+  {
+    MatrixType xmlmat;
+
+    // locate matrix data in project XML and import
+    ContactMatrixI cm = contactMatrixRefs.get(xmlmatmapping.getMatrix());
+    if (cm == null)
+    {
+      Console.error("Cannot restore mapping to matrix "
+              + xmlmatmapping.getMatrix() + " - not found in project.");
+    }
+
+    // restore mapping data to matrix data
+    jalview.util.MapList mapping = null;
+    if (xmlmatmapping.getMapping() != null)
+    {
+      MapListType m = xmlmatmapping.getMapping();
+      // Mapping m = dr.getMapping();
+      int fr[] = new int[m.getMapListFrom().size() * 2];
+      Iterator<MapListFrom> from = m.getMapListFrom().iterator();// enumerateMapListFrom();
+      for (int _i = 0; from.hasNext(); _i += 2)
+      {
+        MapListFrom mf = from.next();
+        fr[_i] = mf.getStart();
+        fr[_i + 1] = mf.getEnd();
+      }
+      int fto[] = new int[m.getMapListTo().size() * 2];
+      Iterator<MapListTo> to = m.getMapListTo().iterator();// enumerateMapListTo();
+      for (int _i = 0; to.hasNext(); _i += 2)
+      {
+        MapListTo mf = to.next();
+        fto[_i] = mf.getStart();
+        fto[_i + 1] = mf.getEnd();
+      }
+
+      mapping = new jalview.util.MapList(fr, fto,
+              m.getMapFromUnit().intValue(), m.getMapToUnit().intValue());
+    }
+    PAEContactMatrix newpae = new PAEContactMatrix(jaa.sequenceRef, mapping,
+            cm);
+
+    jaa.sequenceRef.addContactListFor(jaa, newpae);
+
+    return;
+  }
+
   /**
    * Load Overview window, restoring colours, 'show hidden regions' flag, title
    * and geometry as saved
index 77ea749..9d356a0 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
@@ -163,7 +163,8 @@ public class AlcodonFrame {
 
         /**
          * 
-         *                                                                             a Mapping entry and an associated protein sequence
+         *                                                                             a Mapping entry and an associated protein
+         *                                                                             sequence
          *                                                                     
          * 
          * @return
@@ -216,8 +217,12 @@ public class AlcodonFrame {
 
     /**
      * 
-     *                                                                 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).
+     *                                                                 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.
index 8a5d9b2..dc485c5 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
@@ -42,7 +42,7 @@ import javax.xml.bind.annotation.XmlType;
  *             &lt;/complexContent>
  *           &lt;/complexType>
  *         &lt;/element>
- *         &lt;element name="contactmatrix" type="{www.vamsas.ac.uk/jalview/version2}MatrixType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="contactmatrix" type="{www.vamsas.ac.uk/jalview/version2}MapOnAMatrixType" 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="graph" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
@@ -86,7 +86,7 @@ public class Annotation {
     protected String label;
     protected String description;
     protected Annotation.ThresholdLine thresholdLine;
-    protected List<MatrixType> contactmatrix;
+    protected List<MapOnAMatrixType> contactmatrix;
     protected List<Property> property;
     @XmlAttribute(name = "graph", required = true)
     protected boolean graph;
@@ -242,13 +242,13 @@ public class Annotation {
      * 
      * <p>
      * Objects of the following type(s) are allowed in the list
-     * {@link MatrixType }
+     * {@link MapOnAMatrixType }
      * 
      * 
      */
-    public List<MatrixType> getContactmatrix() {
+    public List<MapOnAMatrixType> getContactmatrix() {
         if (contactmatrix == null) {
-            contactmatrix = new ArrayList<MatrixType>();
+            contactmatrix = new ArrayList<MapOnAMatrixType>();
         }
         return this.contactmatrix;
     }
index a9f545d..5bfa180 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 912be73..cdb697e 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index cb0fe86..c96d6fa 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 83a2476..12dd58d 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 5902d10..70c35dc 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 9d28efa..b560eb9 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 6499485..cb6375a 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index f2b113f..3982b52 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 9241fdd..2b4b89e 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 481a7b7..703178c 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 498e6e2..ac05ff5 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
@@ -21,7 +21,8 @@ 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.
index 91ac690..d94f60e 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
@@ -17,6 +17,10 @@ import javax.xml.bind.annotation.XmlType;
 
 
 /**
+ * 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>The following schema fragment specifies the expected content contained within this class.
index a3ce15f..c7b1386 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
@@ -18,9 +18,12 @@ 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.
index 973456e..aac0c43 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
@@ -19,6 +19,12 @@ 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).
+ *                     
+ * 
  * <p>Java class for MatrixType complex type.
  * 
  * <p>The following schema fragment specifies the expected content contained within this class.
@@ -32,7 +38,6 @@ import javax.xml.bind.annotation.XmlType;
  *         &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;element name="mapping" type="{www.vamsas.ac.uk/jalview/version2}mapListType" 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" />
@@ -52,8 +57,7 @@ import javax.xml.bind.annotation.XmlType;
     "elements",
     "groups",
     "newick",
-    "property",
-    "mapping"
+    "property"
 })
 public class MatrixType {
 
@@ -62,7 +66,6 @@ public class MatrixType {
     protected List<String> groups;
     protected List<String> newick;
     protected List<Property> property;
-    protected MapListType mapping;
     @XmlAttribute(name = "type", required = true)
     protected String type;
     @XmlAttribute(name = "rows", required = true)
@@ -188,30 +191,6 @@ public class MatrixType {
     }
 
     /**
-     * Gets the value of the mapping property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link MapListType }
-     *     
-     */
-    public MapListType getMapping() {
-        return mapping;
-    }
-
-    /**
-     * Sets the value of the mapping property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link MapListType }
-     *     
-     */
-    public void setMapping(MapListType value) {
-        this.mapping = value;
-    }
-
-    /**
      * Gets the value of the type property.
      * 
      * @return
index 3bede57..f626036 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 4cb7753..bb6c7be 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
@@ -275,11 +275,11 @@ public class ObjectFactory {
     }
 
     /**
-     * Create an instance of {@link MatrixType }
+     * Create an instance of {@link MapOnAMatrixType }
      * 
      */
-    public MatrixType createMatrixType() {
-        return new MatrixType();
+    public MapOnAMatrixType createMapOnAMatrixType() {
+        return new MapOnAMatrixType();
     }
 
     /**
@@ -299,11 +299,11 @@ public class ObjectFactory {
     }
 
     /**
-     * Create an instance of {@link MapOnAMatrixType }
+     * Create an instance of {@link MatrixType }
      * 
      */
-    public MapOnAMatrixType createMapOnAMatrixType() {
-        return new MapOnAMatrixType();
+    public MatrixType createMatrixType() {
+        return new MatrixType();
     }
 
     /**
index b7e2881..e4952bd 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 19c44fb..5c7a219 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index d171a73..095d48b 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 98390ef..a9ed23d 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 8322ca7..78df533 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index ca7e899..3d3e616 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 42cf56a..0a9aa13 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 84fe566..a56f957 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index 0c61ab1..d067e81 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 
index d2c51bc..817f533 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.07.18 at 05:07:54 PM BST 
+// Generated on: 2023.08.28 at 01:52:46 PM BST 
 //
 
 @javax.xml.bind.annotation.XmlSchema(namespace = "www.vamsas.ac.uk/jalview/version2", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)