X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fproject%2FJalview2xmlTests.java;h=dfd771a42c9bbb4a0c25c3d3ad8fc9c25f0047cb;hb=64144b92481279aa0aaf11ba05febd65f73cfa30;hp=afc445e5108b4929e877bfaa381fbc6f395afdbf;hpb=3c8a25936a2d805e7e3d7ab82f83b13135406d18;p=jalview.git diff --git a/test/jalview/project/Jalview2xmlTests.java b/test/jalview/project/Jalview2xmlTests.java index afc445e..dfd771a 100644 --- a/test/jalview/project/Jalview2xmlTests.java +++ b/test/jalview/project/Jalview2xmlTests.java @@ -34,7 +34,9 @@ import jalview.api.FeatureColourI; import jalview.api.ViewStyleI; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; +import jalview.datamodel.HiddenMarkovModel; import jalview.datamodel.HiddenSequences; +import jalview.datamodel.Mapping; import jalview.datamodel.PDBEntry; import jalview.datamodel.PDBEntry.Type; import jalview.datamodel.SequenceCollectionI; @@ -45,7 +47,6 @@ import jalview.datamodel.features.FeatureMatcher; import jalview.datamodel.features.FeatureMatcherSet; import jalview.datamodel.features.FeatureMatcherSetI; import jalview.gui.AlignFrame; -import jalview.gui.AlignViewport; import jalview.gui.AlignmentPanel; import jalview.gui.Desktop; import jalview.gui.FeatureRenderer; @@ -86,6 +87,8 @@ import org.testng.AssertJUnit; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import junit.extensions.PA; + @Test(singleThreaded = true) public class Jalview2xmlTests extends Jalview2xmlBase { @@ -147,12 +150,13 @@ public class Jalview2xmlTests extends Jalview2xmlBase DataSourceType.FILE); assertNotNull(af, "Didn't read input file " + inFile); af.loadJalviewDataFile(inAnnot, DataSourceType.FILE, null, null); - assertSame(af.getViewport().getGlobalColourScheme().getClass(), + AlignViewportI viewport = af.getViewport(); + assertSame(viewport.getGlobalColourScheme().getClass(), TCoffeeColourScheme.class, "Didn't set T-coffee colourscheme"); assertNotNull( - ColourSchemeProperty.getColourScheme( - af.getViewport().getAlignment(), - af.getViewport().getGlobalColourScheme() + ColourSchemeProperty.getColourScheme(viewport, + viewport.getAlignment(), + viewport.getGlobalColourScheme() .getSchemeName()), "Recognise T-Coffee score from string"); @@ -812,12 +816,13 @@ public class Jalview2xmlTests extends Jalview2xmlBase AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( "examples/uniref50.fa", DataSourceType.FILE); - AlignViewport av = af.getViewport(); + AlignViewportI av = af.getViewport(); AlignmentI al = av.getAlignment(); /* * Colour alignment by Buried Index, Above 10% PID, By Conservation 20% */ + av.setColourAppliesToAllGroups(false); af.changeColour_actionPerformed(JalviewColourScheme.Buried.toString()); assertTrue(av.getGlobalColourScheme() instanceof BuriedColourScheme); af.abovePIDThreshold_actionPerformed(true); @@ -899,7 +904,8 @@ public class Jalview2xmlTests extends Jalview2xmlBase * @throws IOException */ @Test(groups = { "Functional" }) - public void testSaveLoadFeatureColoursAndFilters() throws IOException + public void testStoreAndRecoverFeatureColoursAndFilters() + throws IOException { AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( ">Seq1\nACDEFGHIKLM", DataSourceType.PASTE); @@ -1053,6 +1059,59 @@ public class Jalview2xmlTests extends Jalview2xmlBase } /** + * Load an HMM profile to an alignment, and confirm it is correctly restored + * when reloaded from project + * + * @throws IOException + */ + @Test(groups = { "Functional" }) + public void testStoreAndRecoverHmmProfile() throws IOException + { + Desktop.instance.closeAll_actionPerformed(null); + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + + AlignViewportI av = af.getViewport(); + AlignmentI al = av.getAlignment(); + + /* + * mimic drag and drop of hmm file on to alignment + */ + AlignFrame af2 = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.hmm", DataSourceType.FILE); + al.insertSequenceAt(0, + af2.getViewport().getAlignment().getSequenceAt(0)); + + /* + * check it loaded in + */ + SequenceI hmmSeq = al.getSequenceAt(0); + assertTrue(hmmSeq.hasHMMProfile()); + HiddenMarkovModel hmm = hmmSeq.getHMM(); + assertSame(hmm.getConsensusSequence(), hmmSeq); + + /* + * save project, close windows, reload project, verify + */ + File tfile = File.createTempFile("testStoreAndRecoverHmmProfile", + ".jvp"); + tfile.deleteOnExit(); + new Jalview2XML(false).saveState(tfile); + Desktop.instance.closeAll_actionPerformed(null); + af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(), + DataSourceType.FILE); + Assert.assertNotNull(af, "Failed to reload project"); + + hmmSeq = al.getSequenceAt(0); + assertTrue(hmmSeq.hasHMMProfile()); + assertSame(hmm.getConsensusSequence(), hmmSeq); + Mapping mapToHmmConsensus = (Mapping) PA.getValue(hmm, + "mapToHmmConsensus"); + assertNotNull(mapToHmmConsensus); + assertSame(mapToHmmConsensus.getTo(), hmmSeq.getDatasetSequence()); + } + + /** * pre 2.11 - jalview 2.10 erroneously created new dataset entries for each * view (JAL-3171) this test ensures we can import and merge those views */