+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
import static org.testng.Assert.*;
verifyPAEmatrix(seq, aa, 0, 0, 4);
// test clustering
- paematrix.setGroupSet(GroupSet.makeGroups(paematrix, 0.1f, false));
+ paematrix.setGroupSet(
+ GroupSet.makeGroups(paematrix, false, 0.1f, false));
// remap - test the MappableContactMatrix.liftOver method
SequenceI newseq = new Sequence("Seq", "ASDQEASDQEASDQE");
AlignmentI alForSeq = new Alignment(new SequenceI[] { alseq });
newaa = AlignmentUtils.addReferenceAnnotationTo(alForSeq, alseq, newaa,
null);
- ContactListI alcl = alForSeq.getContactListFor(newaa, 1);
+ // check for null on out of bounds
+ ContactListI alcl = alForSeq.getContactListFor(newaa,
+ newaa.annotations.length);
+ assertNull(alcl, "Should've gotten null!");
+ // now check for mapping
+ alcl = alForSeq.getContactListFor(newaa, 1);
assertNotNull(alcl);
mappedCl = alcl.getMappedPositionsFor(0, 4);
assertNotNull(mappedCl);
}
}
+ /**
+ * check mapping and resolution methods work
+ */
+ @Test(groups = { "Functional" })
+ public void testMappableContactMatrix()
+ {
+ SequenceI newseq = new Sequence("Seq", "ASDQEASDQEASDQE");
+ MapList map = new MapList(new int[] { 5, 9 }, new int[] { 1, 5 }, 1, 1);
+ AlignmentAnnotation aa = newseq.addContactList(
+ new PAEContactMatrix(newseq, map, PAEdata, null));
+ ContactListI clist = newseq.getContactListFor(aa, 4);
+ assertNotNull(clist);
+ clist = newseq.getContactListFor(aa, 3);
+ assertNull(clist);
+
+ ContactMatrixI cm = newseq.getContactMatrixFor(aa);
+ MappableContactMatrixI mcm = (MappableContactMatrixI) cm;
+ int[] pos = mcm.getMappedPositionsFor(newseq, 0);
+ assertNull(pos);
+
+ pos = mcm.getMappedPositionsFor(newseq, 1);
+ assertNotNull(pos);
+ assertEquals(pos[0], 4 + newseq.getStart());
+
+ pos = mcm.getMappedPositionsFor(newseq, 6); // after end of matrix
+ assertNull(pos);
+ pos = mcm.getMappedPositionsFor(newseq, 5); // at end of matrix
+ assertNotNull(pos);
+ assertEquals(pos[0], 8 + newseq.getStart());
+ SequenceI alseq = newseq.deriveSequence();
+ alseq.insertCharAt(5, '-');
+ pos = mcm.getMappedPositionsFor(alseq, 5); // at end of matrix
+ assertNotNull(pos);
+ assertEquals(pos[0], 8 + newseq.getStart());
+
+ }
}