X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FJalview2xmlTests.java;h=dc192344d467b59af43910b00c885d97ff59dad8;hb=47168f025aefdaa044802bd5f8f510ffe43a4808;hp=2e19e99025bb37012e1c9e25e9c00a58f3d8c7fb;hpb=9e7813462e67e9ef34f55aa419c0e7687277a271;p=jalview.git diff --git a/test/jalview/io/Jalview2xmlTests.java b/test/jalview/io/Jalview2xmlTests.java index 2e19e99..dc19234 100644 --- a/test/jalview/io/Jalview2xmlTests.java +++ b/test/jalview/io/Jalview2xmlTests.java @@ -1,9 +1,33 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) + * Copyright (C) 2014 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io; import static org.junit.Assert.*; import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; +import jalview.gui.Desktop; +import jalview.schemes.AnnotationColourGradient; +import jalview.schemes.ColourSchemeI; import java.io.File; @@ -29,7 +53,8 @@ public class Jalview2xmlTests @AfterClass public static void tearDownAfterClass() throws Exception { - jalview.gui.Desktop.instance.quit(); + jalview.gui.Desktop.instance.closeAll_actionPerformed(null); + } public int countDsAnn(jalview.viewmodel.AlignmentViewport avp) { @@ -57,6 +82,8 @@ public class Jalview2xmlTests assertTrue("Didn't read input file "+inFile, af!=null); int olddsann=countDsAnn(af.getViewport()); assertTrue("Didn't find any dataset annotations",olddsann>0); + af.rnahelicesColour_actionPerformed(null); + assertTrue("Couldn't apply RNA helices colourscheme",af.getViewport().getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour); assertTrue("Failed to store as a project.",af.saveAlignment(tfile, "Jalview")); af.closeMenuItem_actionPerformed(true); af=null; @@ -65,6 +92,108 @@ public class Jalview2xmlTests int newdsann=countDsAnn(af.getViewport()); assertTrue("Differing numbers of dataset sequence annotation\nOriginally "+olddsann+" and now "+newdsann,olddsann==newdsann); System.out.println("Read in same number of annotations as originally present ("+olddsann+")"); + assertTrue("RNA helices colourscheme was not applied on import.",af.getViewport().getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour); } + @Test + public void testTCoffeeScores() throws Exception + { + String inFile = "examples/uniref50.fa",inAnnot="examples/uniref50.score_ascii"; + String tfile = File.createTempFile("JalviewTest", ".jvp").getAbsolutePath(); + AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(inFile, FormatAdapter.FILE); + assertTrue("Didn't read input file "+inFile, af!=null); + af.loadJalviewDataFile(inAnnot, FormatAdapter.FILE, null,null); + assertTrue( + "Didn't set T-coffee colourscheme", + af.getViewport().getGlobalColourScheme().getClass() + .equals(jalview.schemes.TCoffeeColourScheme.class)); + assertTrue( + "Recognise T-Coffee score from string", + jalview.schemes.ColourSchemeProperty.getColour(af.getViewport() + .getAlignment(), + jalview.schemes.ColourSchemeProperty.getColourName(af + .getViewport().getGlobalColourScheme())) != null); + + assertTrue("Failed to store as a project.",af.saveAlignment(tfile, "Jalview")); + af.closeMenuItem_actionPerformed(true); + af=null; + af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile, FormatAdapter.FILE); + assertTrue("Failed to import new project", af!=null); + assertTrue("Didn't set T-coffee colourscheme for imported project.",af.getViewport().getGlobalColourScheme().getClass().equals(jalview.schemes.TCoffeeColourScheme.class)); + System.out.println("T-Coffee score shading successfully recovered from project."); + } + @Test + public void testColourByAnnotScores() throws Exception + { + String inFile = "examples/uniref50.fa",inAnnot="examples/testdata/uniref50_iupred.jva"; + String tfile = File.createTempFile("JalviewTest", ".jvp").getAbsolutePath(); + AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(inFile, FormatAdapter.FILE); + assertTrue("Didn't read input file "+inFile, af!=null); + af.loadJalviewDataFile(inAnnot, FormatAdapter.FILE, null,null); + AlignmentAnnotation[] aa = af.getViewport().getAlignment().getSequenceAt(0).getAnnotation("IUPredWS (Short)"); + assertTrue("Didn't find any IUPred annotation to use to shade alignment.",aa!=null && aa.length>0); + AnnotationColourGradient cs = new jalview.schemes.AnnotationColourGradient(aa[0], null, AnnotationColourGradient.ABOVE_THRESHOLD); + AnnotationColourGradient gcs = new jalview.schemes.AnnotationColourGradient(aa[0], null, AnnotationColourGradient.BELOW_THRESHOLD); + cs.setSeqAssociated(true); + gcs.setSeqAssociated(true); + af.changeColour(cs); + SequenceGroup sg = new SequenceGroup(); + sg.setStartRes(57); + sg.setEndRes(92); + sg.cs = gcs; + af.getViewport().getAlignment().addGroup(sg); + sg.addSequence(af.getViewport().getAlignment().getSequenceAt(1), false); + sg.addSequence(af.getViewport().getAlignment().getSequenceAt(2), true); + af.alignPanel.alignmentChanged(); + assertTrue("Failed to store as a project.",af.saveAlignment(tfile, "Jalview")); + af.closeMenuItem_actionPerformed(true); + af=null; + af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile, FormatAdapter.FILE); + assertTrue("Failed to import new project", af!=null); + + // check for group and alignment colourschemes + + ColourSchemeI _rcs=af.getViewport().getGlobalColourScheme(); + ColourSchemeI _rgcs=af.getViewport().getAlignment().getGroups().get(0).cs; + assertTrue("Didn't recover global colourscheme",_rcs!=null); + assertTrue("Didn't recover annotation colour global scheme",_rcs instanceof AnnotationColourGradient); + AnnotationColourGradient __rcs = (AnnotationColourGradient) _rcs; + assertTrue("Annotation colourscheme wasn't sequence associated",__rcs.isSeqAssociated()); + + boolean diffseqcols=false,diffgseqcols=false; + SequenceI[] sqs=af.getViewport().getAlignment().getSequencesArray(); + for (int p=0,pSize=af.getViewport().getAlignment().getWidth();p