</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" />
}
/**
+ * add a series of start,end (inclusive) ranges to the column selection
+ * @param rng [start_0, end_0, start_1, end_1, ... ]
+ * @param baseOne - when true, ranges are base 1 and will be mapped to base 0
+ */
+ public void addRangeOfElements(int[] rng,boolean baseOne)
+ {
+ int base=baseOne ? -1 : 0;
+ for (int c = 0; c < rng.length; c += 2)
+ {
+ for (int p = rng[c]; p <= rng[c + 1]; p++)
+ {
+ selection.add(base+p);
+ }
+ }
+
+ }
+ /**
* clears column selection
*/
public void clear()
to = Math.max(cXci.cStart, cXci.cEnd);
// double click selects the whole group
- if (evt.getClickCount()==2)
+ if (evt.getClickCount() == 2)
{
ContactMatrixI matrix = av.getContactMatrix(clicked);
{
SequenceI rseq = clicked.sequenceRef;
BitSet grp = matrix.getGroupsFor(currentX);
+ // TODO: cXci needs to be mapped to real groups
for (int c = fr; c <= to; c++)
{
BitSet additionalGrp = matrix.getGroupsFor(c);
{
// select corresponding range in segment under mouse
{
- for (int c = fr; c <= to; c++)
+ int[] rng = forCurrentX.getMappedPositionsFor(fr, to);
+ if (rng != null)
{
- av.getColumnSelection().addElement(c);
+ av.getColumnSelection().addRangeOfElements(rng, true);
}
av.getColumnSelection().addElement(currentX);
}
// PAE SPECIFIC
// and also select everything lower than the max range adjacent
// (kind of works)
- if (evt.isControlDown() && PAEContactMatrix.PAEMATRIX.equals(clicked.getCalcId()))
+ if (evt.isControlDown()
+ && PAEContactMatrix.PAEMATRIX.equals(clicked.getCalcId()))
{
int c = fr - 1;
ContactRange cr = forCurrentX.getRangeFor(fr, to);
if (// cr.getMin() <= cval &&
cval <= thresh)
{
- av.getColumnSelection().addElement(c--);
- }
- else
- {
- break;
+ int[] cols = forCurrentX.getMappedPositionsFor(c, c);
+ if (cols != null)
+ {
+ av.getColumnSelection().addRangeOfElements(cols, true);
+ }
+ else
+ {
+ break;
+ }
}
+ c--;
}
- c = to;
- while (c < forCurrentX.getContactHeight())
- {
- cval = forCurrentX.getContactAt(c);
- if (// cr.getMin() <= cval &&
- cval <= thresh)
+ c = to;
+ while (c < forCurrentX.getContactHeight())
{
- av.getColumnSelection().addElement(c++);
- }
- else
- {
- break;
+ cval = forCurrentX.getContactAt(c);
+ if (// cr.getMin() <= cval &&
+ cval <= thresh)
+ {
+ int[] cols = forCurrentX.getMappedPositionsFor(c, c);
+ if (cols != null)
+ {
+ av.getColumnSelection().addRangeOfElements(cols, true);
+ }
+ }
+ else
+ {
+ break;
+ }
+ c++;
+
}
}
- }
}
}
ap.paintAlignment(false, false);
rowIndex[1] - deltaY);
// mark rectangular region formed by drag
- jalview.bin.Console.trace("Matrix Selection from last(" + fromXc + ",["
- + lastXci.cStart + "," + lastXci.cEnd + "]) to cur(" + toXc
- + ",[" + cXci.cStart + "," + cXci.cEnd + "])");
+ jalview.bin.Console.trace("Matrix Selection from last(" + fromXc
+ + ",[" + lastXci.cStart + "," + lastXci.cEnd + "]) to cur("
+ + toXc + ",[" + cXci.cStart + "," + cXci.cEnd + "])");
int fr, to;
fr = Math.min(lastXci.cStart, lastXci.cEnd);
to = Math.max(lastXci.cStart, lastXci.cEnd);
- jalview.bin.Console.trace("Marking " + fr + " to " + to);
- for (int c = fr; c <= to; c++)
+ int[] mappedPos = forFromX.getMappedPositionsFor(fr, to);
+ if (mappedPos != null)
{
- if (cma.sequenceRef != null)
+ jalview.bin.Console.trace("Marking " + fr + " to " + to
+ + " mapping to sequence positions " + mappedPos[0] + " to "
+ + mappedPos[1]);
+ for (int pair = 0; pair < mappedPos.length; pair += 2)
{
- int col = cma.sequenceRef.findIndex(c);
- av.getColumnSelection().addElement(col);
- }
- else
- {
- av.getColumnSelection().addElement(c);
+ for (int c = mappedPos[pair]; c <= mappedPos[pair + 1]; c++)
+// {
+// if (cma.sequenceRef != null)
+// {
+// int col = cma.sequenceRef.findIndex(cma.sequenceRef.getStart()+c);
+// av.getColumnSelection().addElement(col);
+// }
+// else
+ {
+ av.getColumnSelection().addElement(c);
+ }
}
}
+ // and again for most recent corner of drag
fr = Math.min(cXci.cStart, cXci.cEnd);
to = Math.max(cXci.cStart, cXci.cEnd);
- jalview.bin.Console.trace("Marking " + fr + " to " + to);
- for (int c = fr; c <= to; c++)
+ mappedPos = forFromX.getMappedPositionsFor(fr, to);
+ if (mappedPos != null)
{
- if (cma.sequenceRef != null)
+ for (int pair = 0; pair < mappedPos.length; pair += 2)
{
- int col = cma.sequenceRef.findIndex(c);
- av.getColumnSelection().addElement(col);
- }
- else
- {
- av.getColumnSelection().addElement(c);
+ jalview.bin.Console.trace("Marking " + fr + " to " + to
+ + " mapping to sequence positions " + mappedPos[pair] + " to "
+ + mappedPos[pair+1]);
+ for (int c = mappedPos[pair]; c <= mappedPos[pair + 1]; c++)
+ {
+// if (cma.sequenceRef != null)
+// {
+// int col = cma.sequenceRef.findIndex(cma.sequenceRef.getStart()+c);
+// av.getColumnSelection().addElement(col);
+// }
+// else
+ {
+ av.getColumnSelection().addElement(c);
+ }
+ }
}
}
fr = Math.min(lastX, currentX);
ContactRange cr = clist.getRangeFor(ci.cStart, ci.cEnd);
tooltip = "Contact from " + clist.getPosition() + ", [" + ci.cStart
+ " - " + ci.cEnd + "]" + "<br/>Mean:" + cr.getMean();
+
int col = ann.sequenceRef.findPosition(column);
+ int[][] highlightPos;
+ int[] mappedPos = clist.getMappedPositionsFor(ci.cStart, ci.cEnd);
+ if (mappedPos != null)
+ {
+ highlightPos = new int[1 + mappedPos.length][2];
+ highlightPos[0] = new int[] { col, col };
+ for (int p = 0, h = 0; p < mappedPos.length; h++, p += 2)
+ {
+ highlightPos[h][0] = ann.sequenceRef
+ .findPosition(mappedPos[p] - 1);
+ highlightPos[h][1] = ann.sequenceRef
+ .findPosition(mappedPos[p + 1] - 1);
+ }
+ }
+ else
+ {
+ highlightPos = new int[][] { new int[] { col, col } };
+ }
ap.getStructureSelectionManager()
- .highlightPositionsOn(ann.sequenceRef, new int[][]
- { new int[] { col, col },
- new int[]
- { ci.cStart, ci.cEnd } }, null);
+ .highlightPositionsOn(ann.sequenceRef, highlightPos, null);
}
}
return tooltip;
import jalview.viewmodel.seqfeatures.FeatureRendererModel;
import jalview.viewmodel.seqfeatures.FeatureRendererSettings;
import jalview.viewmodel.seqfeatures.FeaturesDisplayed;
+import jalview.ws.datamodel.MappableContactMatrixI;
import jalview.ws.datamodel.alphafold.PAEContactMatrix;
import jalview.ws.jws2.Jws2Discoverer;
import jalview.ws.jws2.dm.AAConSettings;
import jalview.xml.binding.jalview.JalviewModel.Viewport.Overview;
import jalview.xml.binding.jalview.JalviewUserColours;
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.Mapping;
}
// set/get properties
+ if (cm instanceof MappableContactMatrixI)
+ {
+ jalview.util.MapList mlst = ((MappableContactMatrixI) cm)
+ .getMapFor(annotation.sequenceRef);
+ if (mlst != null)
+ {
+ MapListType mp = new MapListType();
+ List<int[]> r = mlst.getFromRanges();
+ for (int[] range : r)
+ {
+ MapListFrom mfrom = new MapListFrom();
+ mfrom.setStart(range[0]);
+ mfrom.setEnd(range[1]);
+ // mp.addMapListFrom(mfrom);
+ mp.getMapListFrom().add(mfrom);
+ }
+ r = mlst.getToRanges();
+ for (int[] range : r)
+ {
+ MapListTo mto = new MapListTo();
+ mto.setStart(range[0]);
+ mto.setEnd(range[1]);
+ // mp.addMapListTo(mto);
+ mp.getMapListTo().add(mto);
+ }
+ mp.setMapFromUnit(
+ BigInteger.valueOf(mlst.getFromRatio()));
+ mp.setMapToUnit(BigInteger.valueOf(mlst.getToRatio()));
+ xmlmat.setMapping(mp);
+ }
+ }
+ // and add to model
an.getContactmatrix().add(xmlmat);
}
}
}
return vamsasSeq;
}
-
+
private Mapping createVamsasMapping(jalview.datamodel.Mapping jmp,
SequenceI parentseq, SequenceI jds, boolean recurse)
{
.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());
+ }
PAEContactMatrix newpae = new PAEContactMatrix(
- jaa.sequenceRef, elements);
+ jaa.sequenceRef, mapping, elements);
List<BitSet> newgroups=new ArrayList<BitSet>();
if (xmlmat.getGroups().size()>0)
{
* @return true if the range on the matrix specified by ci intersects with selected columns in the ContactListI's reference frame.
*/
- boolean intersects(contactInterval ci,ColumnSelection columnSelection, HiddenColumns hiddenColumns, boolean visibleOnly) {
+ boolean intersects(contactInterval ci, ColumnSelection columnSelection,
+ HiddenColumns hiddenColumns, boolean visibleOnly)
+ {
boolean rowsel = false;
- final int[] mappedRange = contacts.getMappedPositionsFor(ci.cStart, ci.cEnd);
- if (mappedRange==null)
+ final int[] mappedRange = contacts.getMappedPositionsFor(ci.cStart,
+ ci.cEnd);
+ if (mappedRange == null)
{
return false;
}
- boolean containsHidden=false;
- if (visibleOnly && hiddenColumns!=null && hiddenColumns.hasHiddenColumns())
+ for (int p = 0; p < mappedRange.length && !rowsel; p += 2)
{
- // TODO: turn into function on hiddenColumns and create test !!
- Iterator<int[]> viscont = hiddenColumns
- .getVisContigsIterator(mappedRange[0], mappedRange[1], false);
- containsHidden = !viscont.hasNext();
- if (!containsHidden)
+ boolean containsHidden = false;
+ if (visibleOnly && hiddenColumns != null
+ && hiddenColumns.hasHiddenColumns())
{
- for (int[] interval=viscont.next();viscont.hasNext();
- rowsel |= columnSelection.intersects(interval[0],interval[1]))
- ;
+ // TODO: turn into function on hiddenColumns and create test !!
+ Iterator<int[]> viscont = hiddenColumns.getVisContigsIterator(
+ mappedRange[p], mappedRange[p + 1], false);
+ containsHidden = !viscont.hasNext();
+ if (!containsHidden)
+ {
+ for (int[] interval = viscont.next(); viscont
+ .hasNext(); rowsel |= columnSelection
+ .intersects(interval[p], interval[p + 1]))
+ ;
+ }
}
- }
- else
- {
- // if containsHidden is true mappedRange is not visible
- if (containsHidden)
+ else
{
- rowsel = columnSelection.intersects(mappedRange[0], mappedRange[1]);
+ rowsel = columnSelection.intersects(mappedRange[p],
+ mappedRange[p + 1]);
}
}
return rowsel;
import jalview.datamodel.ContactMatrixI;
import jalview.datamodel.Mapping;
import jalview.datamodel.SequenceI;
+import jalview.util.MapList;
public interface MappableContactMatrixI extends ContactMatrixI
{
ContactListI getMappableContactList(SequenceI localFrame, int column);
+ /**
+ *
+ * Similar to AlignedCodonFrame.getMappingBetween
+ *
+ * @param sequenceRef - a reference sequence mappable to this contactMatrix - may be null
+ * @return null or the MapList mapping to the coordinates of the reference sequence (or if hasReferenceSeq() is false, and sequenceRef is null, any mapping present)
+ *
+ */
+ MapList getMapFor(SequenceI sequenceRef);
+
}
--- /dev/null
+package jalview.ws.datamodel.alphafold;
+
+import java.util.ArrayList;
+
+import jalview.datamodel.ContactListI;
+import jalview.datamodel.ContactListImpl;
+import jalview.datamodel.ContactListProviderI;
+import jalview.datamodel.Mapping;
+import jalview.datamodel.SequenceI;
+import jalview.util.MapList;
+import jalview.ws.datamodel.MappableContactMatrixI;
+
+public abstract class MappableContactMatrix<T extends MappableContactMatrix<T>> implements MappableContactMatrixI
+{
+ SequenceI refSeq = null;
+ MapList toSeq = null;
+
+ /**
+ * the length that refSeq is expected to be (excluding gaps, of course)
+ */
+ int length;
+
+
+ @Override
+ public boolean hasReferenceSeq()
+ {
+ return (refSeq != null);
+ }
+
+ @Override
+ public SequenceI getReferenceSeq()
+ {
+ return refSeq;
+ }
+ @Override
+ public MapList getMapFor(SequenceI mapSeq)
+ {
+ if (refSeq!=null)
+ {
+ while (mapSeq!=refSeq && mapSeq.getDatasetSequence()!=null)
+ {
+ mapSeq = mapSeq.getDatasetSequence();
+ }
+ if (mapSeq!=refSeq)
+ {
+ return null;
+ }
+ } else {
+ if (mapSeq!=null) {
+ // our MapList does not concern this seq
+ return null;
+ }
+ }
+
+ return toSeq;
+ }
+
+ protected void setRefSeq(SequenceI _refSeq)
+ {
+ refSeq = _refSeq;
+ while (refSeq.getDatasetSequence() != null)
+ {
+ refSeq = refSeq.getDatasetSequence();
+ }
+ length = _refSeq.getEnd() - _refSeq.getStart() + 1;
+// if (length!=refSeq.getLength() || _refSeq.getStart()!=1)
+ {
+ toSeq = new MapList(new int[] { _refSeq.getStart(), _refSeq.getEnd()}, new int[] { 0,length-1}, 1,1);
+ }
+ }
+
+ public T liftOver(SequenceI newRefSeq, Mapping sp2sq)
+ {
+ if (sp2sq.getMappedWidth() != sp2sq.getWidth())
+ {
+ // TODO: employ getWord/MappedWord to transfer annotation between cDNA and
+ // Protein reference frames
+ throw new Error(
+ "liftOver currently not implemented for transfer of annotation between different types of seqeunce");
+ }
+ boolean mapIsTo = (sp2sq != null) ? (sp2sq.getTo() == refSeq) : false;
+
+ /**
+ * map from matrix to toSeq's coordinate frame
+ */
+ int[] refMap = toSeq.locateInFrom(0, length - 1);
+ ArrayList<Integer> newFromMap = new ArrayList<Integer>();
+ int last = -1;
+ for (int i = 0; i < refMap.length; i += 2)
+ {
+ /*
+ * for each contiguous range in toSeq, locate corresponding range in sequence mapped to toSeq by sp2sq
+ */
+ int[] sp2map = mapIsTo
+ ? sp2sq.getMap().locateInFrom(refMap[i], refMap[i + 1])
+ : sp2sq.getMap().locateInTo(refMap[i], refMap[i + 1]);
+ if (sp2map == null)
+ {
+ continue;
+ }
+
+ for (int spm = 0; spm < sp2map.length; spm += 2)
+ {
+
+ if (last > -1)
+ {
+ if (sp2map[spm] != last + 1)
+ {
+ newFromMap.add(sp2map[spm]);
+ }
+ else
+ {
+ newFromMap.remove(newFromMap.size() - 1);
+ }
+ }
+ else
+ {
+ newFromMap.add(sp2map[spm]);
+ }
+ last = sp2map[spm + 1];
+ newFromMap.add(last);
+ }
+ }
+ if ((newFromMap.size() % 2) != 0)
+ {
+ // should have had an even number of int ranges!
+ throw new Error("PAEMatrix liftover failed.");
+ }
+ int fromIntMap[] = new int[newFromMap.size()];
+ int ipos = 0;
+ for (Integer i : newFromMap)
+ {
+ fromIntMap[ipos++] = i;
+ }
+ MapList newFromMapList = new MapList(fromIntMap,
+ new int[]
+ { 0, length - 1 }, 1, 1);
+
+ T newCM = newMappableContactMatrix(newRefSeq, newFromMapList);
+ return newCM;
+ }
+
+ protected abstract T newMappableContactMatrix(SequenceI newRefSeq,
+ MapList newFromMapList);
+ @Override
+ public ContactListI getMappableContactList(final SequenceI localFrame,
+ final int column)
+ {
+ final int _column;
+ final int _lcolumn;
+ if (localFrame==null)
+ {
+ throw new Error("Unimplemented when no local sequence given.");
+ }
+ // return a ContactListI for column
+ // column is index into localFrame
+ // 1. map column to corresponding column in matrix
+
+ _lcolumn=localFrame.findPosition(column);
+
+ if (toSeq != null)
+ {
+ SequenceI lf = localFrame, uf = refSeq;
+
+ // just look for dataset sequences and check they are the same.
+ // in future we could use DBRefMappings/whatever.
+ while (lf.getDatasetSequence() != null
+ || uf.getDatasetSequence() != null)
+ {
+ if (lf.getDatasetSequence() != null)
+ {
+ lf = lf.getDatasetSequence();
+ }
+ if (uf.getDatasetSequence() != null)
+ {
+ uf = uf.getDatasetSequence();
+ }
+ }
+ if (lf != uf)
+ {
+ // could try harder to find a mapping
+ throw new Error("This Matrix associated with '" + refSeq.getName()
+ + "' is not mappable for the given localFrame sequence. ("
+ + localFrame.getName() + ")");
+ }
+ // check the mapping to see if localFrame _lcolumn exists
+ int[] word = toSeq.locateInTo(_lcolumn, _lcolumn);
+ if (word == null)
+ {
+ return null;
+ }
+ _column = word[0];
+ }
+ else
+ {
+ // no mapping
+ _column = _lcolumn;
+ }
+
+ // TODO - remove ? this may be a redundant check
+ if (_column < 0 || ((toSeq != null && _column > toSeq.getToHighest())
+ || (toSeq == null && getHeight() <= _column)))
+ {
+ return null;
+ }
+
+ // 2. resolve ranges in matrix corresponding to range in localFrame
+ final int[] matrixRange = toSeq == null
+ ? new int[]
+ { localFrame.getStart(), localFrame.getEnd() }
+ : toSeq.locateInTo(localFrame.getStart(), localFrame.getEnd());
+
+ int h = 0;
+ for (int p = 0; p < matrixRange.length; p += 2)
+ {
+ h += 1+Math.abs(matrixRange[p + 1] - matrixRange[p]);
+ }
+ final int rangeHeight = h;
+ // 3. Construct ContactListImpl instance for just those segments.
+
+ return new ContactListImpl(new ContactListProviderI()
+ {
+
+ public int getColumn()
+ {
+ return column;
+ }
+ @Override
+ public int getPosition()
+ {
+ return _column;
+ }
+
+ @Override
+ public int getContactHeight()
+ {
+ return rangeHeight;
+ }
+
+ @Override
+ public double getContactAt(int mcolumn)
+ {
+ if (mcolumn<0 || mcolumn>=rangeHeight)
+ {
+ return -1;
+ }
+ return getElementAt(_column, locateInRange(mcolumn));
+
+ // this code maps from mcolumn to localFrame - but that isn't what's needed
+// int loccolumn = localFrame.findPosition(mcolumn);
+// int[] lcolumn=(toSeq==null) ? new int[] {mcolumn} : toSeq.locateInTo(loccolumn,loccolumn);
+// if (lcolumn==null || lcolumn[0] < 0 || lcolumn[0] >= rangeHeight)
+// {
+// return -1;
+// }
+// return getElementAt(_column,lcolumn[0]);
+ }
+ /**
+ * @return the mcolumn'th position in the matrixRange window on the matrix
+ */
+ private int locateInRange(int mcolumn)
+ {
+
+ int h=0,p=0;
+ while (h < mcolumn && p+2 < matrixRange.length)
+ {
+ h += 1+Math.abs(matrixRange[p + 1] - matrixRange[p]);
+ p+=2;
+ }
+ return matrixRange[p]+mcolumn-h;
+ }
+
+ @Override
+ public int[] getMappedPositionsFor(int cStart, int cEnd)
+ {
+ if (!hasReferenceSeq())
+ {
+ return ContactListProviderI.super.getMappedPositionsFor(cStart, cEnd);
+ }
+ // map into segment of matrix being shown
+ int realCstart = locateInRange(cStart);
+ int realCend = locateInRange(cEnd);
+
+ // TODO account for discontinuities in the mapping
+
+ int[] mappedPositions = toSeq.locateInFrom(realCstart,realCend);
+ if (mappedPositions!=null) {
+ int s=-1,e=-1;
+ for (int p=0;p<mappedPositions.length;p++)
+ {
+ if (s==-1 && mappedPositions[p]>=localFrame.getStart())
+ {
+ s=p; // remember first position within local frame
+ }
+ if (e==-1 || mappedPositions[p]<=localFrame.getEnd())
+ {
+ // update end pointer
+ e=p;
+ // compute local map
+ mappedPositions[p] = localFrame.findIndex(mappedPositions[p]);
+ }
+ }
+ }
+ return mappedPositions;
+ }
+ });
+ }
+
+ /**
+ * get a specific element of the contact matrix in its data-local coordinates
+ * rather than the mapped frame. Implementations are allowed to throw RunTimeExceptions if _column/i are out of bounds
+ *
+ * @param _column
+ * @param i
+ * @return
+ */
+ protected abstract double getElementAt(int _column, int i);
+}
@Override
public ContactListI getContactList(final int column)
{
- final int _column;
- if (toSeq != null)
- {
- int[] word = toSeq.locateInTo(column, column);
- if (word == null)
- {
- return null;
- }
- _column = word[0];
- }
- else
- {
- _column = column;
- }
- if (_column < 0 || _column >= elements.length)
+// final int _column;
+// if (toSeq != null)
+// {
+// int[] word = toSeq.locateInTo(column, column);
+// if (word == null)
+// {
+// return null;
+// }
+// _column = word[0];
+// }
+// else
+// {
+// _column = column;
+// }
+ if (column < 0 || column >= elements.length)
{
return null;
}
@Override
public int getPosition()
{
- return _column;
+ return column;
}
@Override
@Override
public double getContactAt(int mcolumn)
{
- int[] column=(toSeq==null) ? new int[] {mcolumn} : toSeq.locateInTo(mcolumn,mcolumn);
- if (column==null || column[0] < 0 || column[0] >= elements[_column].length)
+ if (mcolumn < 0 || mcolumn >= elements[column].length)
{
return -1;
}
- return elements[_column][column[0]];
+ return elements[column][mcolumn];
}
});
}
// 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.03.17 at 05:31:45 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:45 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:45 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:45 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:45 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
* <element name="groups" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
* <element name="newick" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
* <element name="property" type="{www.vamsas.ac.uk/jalview/version2}property" maxOccurs="unbounded" minOccurs="0"/>
+ * <element name="mapping" type="{www.vamsas.ac.uk/jalview/version2}mapListType" minOccurs="0"/>
* </sequence>
* <attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* <attribute name="rows" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
"elements",
"groups",
"newick",
- "property"
+ "property",
+ "mapping"
})
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)
}
/**
+ * 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
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
// 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.03.17 at 05:31:44 PM GMT
+// Generated on: 2023.05.13 at 06:58:41 PM BST
//
@javax.xml.bind.annotation.XmlSchema(namespace = "www.vamsas.ac.uk/jalview/version2", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
// 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.03.17 at 05:31:46 PM GMT
+// Generated on: 2023.05.13 at 06:58:42 PM BST
//
@javax.xml.bind.annotation.XmlSchema(namespace = "http://uniprot.org/uniprot", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
import jalview.util.matcher.Condition;
import jalview.viewmodel.AlignmentViewport;
import jalview.viewmodel.seqfeatures.FeatureRendererModel;
+import jalview.ws.datamodel.MappableContactMatrixI;
import jalview.ws.datamodel.alphafold.PAEContactMatrix;
@Test(singleThreaded = true)
ContactMatrixI restoredMat = newSeq
.getContactMatrixFor(newSeq.getAnnotation()[0]);
Assert.assertNotNull(restoredMat);
+ MapList oldMap = ((MappableContactMatrixI) dummyMat).getMapFor(sq);
+ MapList newMap = ((MappableContactMatrixI) restoredMat).getMapFor(newSeq);
+ Assert.assertEquals(oldMap.getFromRanges(),newMap.getFromRanges());
+ Assert.assertEquals(oldMap.getToRanges(),newMap.getToRanges());
+ Assert.assertEquals(oldMap.getFromRatio(),newMap.getFromRatio());
+ Assert.assertEquals(oldMap.getToRatio(),newMap.getToRatio());
+
for (i = sq.getLength() - 1; i >= 0; i--)
{
ContactListI oldCM = dummyMat.getContactList(i),
newCM = restoredMat.getContactList(i);
for (int j = oldCM.getContactHeight(); j >= 0; j--)
{
- Assert.assertEquals(oldCM.getContactAt(j), newCM.getContactAt(j));
+ double old_j=oldCM.getContactAt(j);
+ double new_j=newCM.getContactAt(j);
+ Assert.assertEquals(old_j,new_j);
}
}
Assert.assertEquals(restoredMat.hasGroups(), dummyMat.hasGroups());