import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
+import jalview.datamodel.ContactListI;
+import jalview.datamodel.ContactMatrix;
+import jalview.datamodel.ContactMatrixI;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.GeneLocus;
import jalview.datamodel.HiddenSequences;
import jalview.util.matcher.Condition;
import jalview.viewmodel.AlignmentViewport;
import jalview.viewmodel.seqfeatures.FeatureRendererModel;
+import jalview.ws.datamodel.alphafold.PAEContactMatrix;
@Test(singleThreaded = true)
public class Jalview2xmlTests extends Jalview2xmlBase
* test for patch release versions
*/
assertFalse(Jalview2XML.isVersionStringLaterThan("2.11.3.0", "2.11.2"));
- assertTrue(Jalview2XML.isVersionStringLaterThan("2.11.3.0","2.11.4"));
- assertFalse(Jalview2XML.isVersionStringLaterThan("2.12.2.0b1","2.12.2.0"));
- assertFalse(Jalview2XML.isVersionStringLaterThan("2.12.2.3","2.12.2.2"));
+ assertTrue(Jalview2XML.isVersionStringLaterThan("2.11.3.0", "2.11.4"));
+ assertFalse(
+ Jalview2XML.isVersionStringLaterThan("2.12.2.0b1", "2.12.2.0"));
+ assertFalse(
+ Jalview2XML.isVersionStringLaterThan("2.12.2.3", "2.12.2.2"));
}
acg.setPredefinedColours(true);
af.changeColour(acg);
Color seqcol[] = new Color[3];
- for (int iStart=fsq.findIndex(fsq.getStart()),i=0;i<3;i++) {
- seqcol[i] = af.alignPanel.getSeqPanel().seqCanvas.getSequenceRenderer().getResidueColour(fsq, iStart+i, null);
+ for (int iStart = fsq.findIndex(fsq.getStart()), i = 0; i < 3; i++)
+ {
+ seqcol[i] = af.alignPanel.getSeqPanel().seqCanvas
+ .getSequenceRenderer()
+ .getResidueColour(fsq, iStart + i, null);
}
/*
* save project, close windows, reload project, verify
"testStoreAndRecoverAnnotRowElemColors", ".jvp");
tfile.deleteOnExit();
new Jalview2XML(false).saveState(tfile);
- //Desktop.instance.closeAll_actionPerformed(null);
+ // Desktop.instance.closeAll_actionPerformed(null);
af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
DataSourceType.FILE);
Assert.assertNotNull(af, "Failed to reload project");
* verify alignment annotation has colors
*/
av = af.getViewport();
-
+
ColourSchemeI loadedCscheme = av.getGlobalColourScheme();
- Assert.assertTrue(loadedCscheme instanceof AnnotationColourGradient,"Didn't apply Annotation colour gradient");
+ Assert.assertTrue(loadedCscheme instanceof AnnotationColourGradient,
+ "Didn't apply Annotation colour gradient");
acg = (AnnotationColourGradient) loadedCscheme;
assertTrue(acg.isSeqAssociated());
assertTrue(acg.isPredefinedColours());
for (int iStart = al.getSequenceAt(0)
.findIndex(al.getSequenceAt(0).getStart()), i = 0; i < 3; i++)
{
- Assert.assertTrue(ala.annotations[i].colour!=null);
+ Assert.assertTrue(ala.annotations[i].colour != null);
Assert.assertTrue(ala.annotations[i].colour.equals(annots[i].colour));
- Color newseqcol = af.alignPanel.getSeqPanel().seqCanvas.getSequenceRenderer().getResidueColour(fsq, iStart+i, null);
- Assert.assertTrue(seqcol[i].equals(newseqcol),"Sequence shading is different");
+ Color newseqcol = af.alignPanel.getSeqPanel().seqCanvas
+ .getSequenceRenderer()
+ .getResidueColour(fsq, iStart + i, null);
+ Assert.assertTrue(seqcol[i].equals(newseqcol),
+ "Sequence shading is different");
}
-
+
}
/**
}
/**
- * Test that a view from an older version of Jalview is restored with Overview automatically shown when the preference is set
+ * Test that a view from an older version of Jalview is restored with Overview
+ * automatically shown when the preference is set
*
* @throws Exception
*/
*
* @throws Exception
*/
- @Test(groups = {"Functional"}, enabled=false)
+ @Test(groups = { "Functional" }, enabled = false)
public void testReloadActuallyReloads() throws Exception
{
Desktop.instance.closeAll_actionPerformed(null);
// af exists still but isn't shown
assertTrue(af.isClosed());
}
+
+ @Test(groups = { "Functional" })
+ public void testPAEsaveRestore() throws Exception
+ {
+ Desktop.instance.closeAll_actionPerformed(null);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ ">seq1\nMATRSQFLVNF\n", DataSourceType.PASTE);
+ AlignmentI al = af.getViewport().getAlignment();
+ // PAE matrices are added as reference annotation to the dataset sequence
+ // at least for now.
+ SequenceI sq = al.getSequenceAt(0).getDatasetSequence();
+ int i = sq.getLength();
+ float[][] paevals = new float[i][i];
+ for (i = i - 1; i >= 0; i--)
+ {
+ for (int j = 0; j <= i; j++)
+ {
+ paevals[i][j] = ((i - j < 2)
+ || ((i > 1 && i < 5) && (j > 1 && i < 5))) ? 1 : 0f;
+ paevals[j][i] = paevals[i][j];
+ }
+ }
+ PAEContactMatrix dummyMat = new PAEContactMatrix(sq, paevals);
+ String content = ContactMatrix.contactToFloatString(dummyMat);
+ Assert.assertTrue(content.contains("\t1.")); // at least one element must be 1
+ float[][] vals = ContactMatrix.fromFloatStringToContacts(content, sq.getLength(), sq.getLength());
+ assertEquals(vals[3][4],paevals[3][4]);
+
+ AlignmentAnnotation paeCm = sq.addContactList(dummyMat);
+ al.addAnnotation(paeCm);
+ File tfile = File.createTempFile("testStoreAndRecoverPAEmatrix",
+ ".jvp");
+ new Jalview2XML(false).saveState(tfile);
+ Desktop.instance.closeAll_actionPerformed(null);
+
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
+ DataSourceType.FILE);
+ AlignmentI newAl = af.getViewport().getAlignment();
+ SequenceI newSeq = newAl.getSequenceAt(0).getDatasetSequence();
+ // check annotation of the expected type exists
+ Assert.assertEquals(newSeq.getAnnotation().length, 1);
+ Assert.assertEquals(newSeq.getAnnotation()[0].graph, paeCm.graph);
+
+ // check a contact matrix was recovered
+ Assert.assertEquals(newSeq.getContactMaps().size(), 1);
+ // and can be found for the annotation on the sequence
+ ContactMatrixI restoredMat = newSeq
+ .getContactMatrixFor(newSeq.getAnnotation()[0]);
+ Assert.assertNotNull(restoredMat);
+ 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));
+ }
+ }
+
+ }
+
}