X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fjabaws%2FRNAStructExportImport.java;h=90997b1f743ae2e7cdce39ed3930128de0d001bf;hb=5f326a3fc836403095b2a5038261a0e75f8d170f;hp=510b913e31c27e16c669a0928a9c2b24a82d1e5a;hpb=24c4dce749cbfccc4435e442090d04013e3e1b99;p=jalview.git diff --git a/test/jalview/ws/jabaws/RNAStructExportImport.java b/test/jalview/ws/jabaws/RNAStructExportImport.java index 510b913..90997b1 100644 --- a/test/jalview/ws/jabaws/RNAStructExportImport.java +++ b/test/jalview/ws/jabaws/RNAStructExportImport.java @@ -1,29 +1,53 @@ +/* + * 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.ws.jabaws; -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Vector; - -import jalview.api.AlignCalcManagerI; -import jalview.datamodel.AlignmentAnnotation; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import jalview.datamodel.AlignmentI; -import jalview.datamodel.Annotation; +import jalview.gui.Jalview2XML; import jalview.io.AnnotationFile; import jalview.io.FormatAdapter; import jalview.io.StockholmFileTest; -import jalview.ws.jws2.AADisorderClient; import jalview.ws.jws2.Jws2Discoverer; import jalview.ws.jws2.RNAalifoldClient; +import jalview.ws.jws2.SequenceAnnotationWSClient; import jalview.ws.jws2.jabaws2.Jws2Instance; +import jalview.ws.params.AutoCalcSetting; + +import java.awt.Component; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.JMenu; +import javax.swing.JMenuItem; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -public class RNAStructExportImport +import compbio.metadata.WrongParameterException; + +public class RNAStructExportImport { public static String testseqs = "examples/unfolded_RF00031.aln"; @@ -38,42 +62,32 @@ public class RNAStructExportImport @BeforeClass public static void setUpBeforeClass() throws Exception { - - - System.out.println("test1"); jalview.bin.Cache.initLogger(); - disc = JalviewJabawsTestUtils.getJabawsDiscoverer(); - - System.out.println("test2"); - + disc = JalviewJabawsTestUtils.getJabawsDiscoverer(false); + for (Jws2Instance svc : disc.getServices()) { - - System.out.println("Service type: " + svc.serviceType); - + if (svc.getServiceTypeURI().toLowerCase().contains("rnaalifoldws")) { rnaalifoldws = svc; } } - + System.out.println("State of rnaalifoldws: " + rnaalifoldws); - - if (rnaalifoldws == null) System.exit(0); - - System.out.println("test3"); - + + if (rnaalifoldws == null) + { + System.exit(0); + } + jalview.io.FileLoader fl = new jalview.io.FileLoader(false); - - // Following this method a long way we find some (probably important!) - // code that I have just commented out! + af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE); - + assertNotNull("Couldn't load test data ('" + testseqs + "')", af); - - System.out.println("test5"); - + } @AfterClass @@ -86,21 +100,14 @@ public class RNAStructExportImport } } - /** - * test for patches to JAL-1294 - */ @Test public void testRNAStructExport() { + alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, null); - - System.out.println("Service action text:\n" + alifoldClient.getServiceActionText()); - - - System.out.println("START FOLDING"); + af.getViewport().getCalcManager().startWorker(alifoldClient); - - + do { try @@ -111,38 +118,9 @@ public class RNAStructExportImport } ; } while (af.getViewport().getCalcManager().isWorking()); - - System.out.println("END FOLDING"); - - // ALL FOR TESTING - AlignCalcManagerI test = af.getViewport().getCalcManager(); - RNAalifoldClient testWorker = ((RNAalifoldClient)test.getRegisteredWorkersOfClass(RNAalifoldClient.class).get(0)); - testWorker.updateResultAnnotation(true); - System.out.println("Annotation from RNAalifoldclient"); - for (Annotation ann : testWorker.ourAnnots.get(0).annotations) { - System.out.print(ann.toString()+"|"); - } - System.out.println(); - - - // Why are the AlignViewport.alignment and the RNAalifoldClient alignment - // Annotations different + AlignmentI orig_alig = af.getViewport().getAlignment(); - - System.out.println("orig_alig has class: " + orig_alig.getClass()); - - // some time before here but after the RNAalifoldClient Update method - // the alignment annotation is replaced.... - - System.out.println("orig_alig annotation:\n"); - for (AlignmentAnnotation an : orig_alig.getAlignmentAnnotation()) { - for (Annotation ann : an.annotations) { - System.out.print(ann.toString()+"|"); - } - System.out.println(); - } - - + testAnnotationFileIO("Testing RNAalifold Annotation IO", orig_alig); } @@ -151,15 +129,12 @@ public class RNAStructExportImport { try { - String aligfileout = new FormatAdapter().formatSequences("CLUSTAL", + // what format would be appropriate for RNAalifold annotations? + String aligfileout = new FormatAdapter().formatSequences("PFAM", al.getSequencesArray()); - - // test -// System.out.println("aligfileout:\n" + aligfileout); - - String anfileout = new AnnotationFile().printAnnotations( - al.getAlignmentAnnotation(), al.getGroups(), - al.getProperties()); + + String anfileout = new AnnotationFile() + .printAnnotationsForAlignment(al); assertTrue( "Test " + testname @@ -174,8 +149,9 @@ public class RNAStructExportImport System.out.println("Output annotation file:\n" + anfileout + "\n< opts = new ArrayList(); + for (compbio.metadata.Argument rg : (List) rnaalifoldws + .getRunnerConfig().getArguments()) + { + if (rg.getDescription().contains("emperature")) + { + try + { + rg.setValue("292"); + } catch (WrongParameterException q) + { + fail("Couldn't set the temperature parameter " + + q.getStackTrace()); + } + opts.add(rg); + } + if (rg.getDescription().contains("max")) + { + opts.add(rg); + } + } + alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, opts); + + af.getViewport().getCalcManager().startWorker(alifoldClient); + + do + { + try + { + Thread.sleep(50); + } catch (InterruptedException x) + { + } + ; + } while (af.getViewport().getCalcManager().isWorking()); + AutoCalcSetting oldacs = af.getViewport().getCalcIdSettingsFor( + alifoldClient.getCalcId()); + String oldsettings = oldacs.getWsParamFile(); + // write out parameters + jalview.gui.AlignFrame nalf = null; + assertTrue("Couldn't write out the Jar file", + new Jalview2XML(false).SaveAlignment(af, + "testRnalifold_param.jar", "trial parameter writeout")); + assertTrue("Couldn't read back the Jar file", (nalf = new Jalview2XML( + false).LoadJalviewAlign("testRnalifold_param.jar")) != null); + if (nalf != null) + { + AutoCalcSetting acs = af.getViewport().getCalcIdSettingsFor( + alifoldClient.getCalcId()); + assertTrue("Calc ID settings not recovered from viewport stash", + acs.equals(oldacs)); + assertTrue( + "Serialised Calc ID settings not identical to those recovered from viewport stash", + acs.getWsParamFile().equals(oldsettings)); + JMenu nmenu = new JMenu(); + new SequenceAnnotationWSClient().attachWSMenuEntry(nmenu, + rnaalifoldws, af); + assertTrue("Couldn't get menu entry for service", + nmenu.getItemCount() > 0); + for (Component itm : nmenu.getMenuComponents()) + { + if (itm instanceof JMenuItem) + { + JMenuItem i = (JMenuItem) itm; + if (i.getText().equals( + rnaalifoldws.getAlignAnalysisUI().getAAconToggle())) + { + i.doClick(); + break; + } + } + } + while (af.getViewport().isCalcInProgress()) + { + try + { + Thread.sleep(200); + } catch (Exception x) + { + } + ; + } + AutoCalcSetting acs2 = af.getViewport().getCalcIdSettingsFor( + alifoldClient.getCalcId()); + assertTrue( + "Calc ID settings after recalculation has not been recovered.", + acs2.getWsParamFile().equals(oldsettings)); + } + } }