+++ /dev/null
-/*
- * 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.ws.jabaws;
-
-import static org.testng.AssertJUnit.assertNotNull;
-import static org.testng.AssertJUnit.assertTrue;
-
-import jalview.bin.Cache;
-import jalview.datamodel.AlignmentI;
-import jalview.gui.Jalview2XML;
-import jalview.gui.JvOptionPane;
-import jalview.io.AnnotationFile;
-import jalview.io.DataSourceType;
-import jalview.io.FileFormat;
-import jalview.io.FormatAdapter;
-import jalview.io.StockholmFileTest;
-import jalview.ws.jws2.JPred301Client;
-import jalview.ws.jws2.JabaParamStore;
-import jalview.ws.jws2.Jws2Discoverer;
-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.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import compbio.metadata.Argument;
-import compbio.metadata.WrongParameterException;
-
-public class JpredJabaStructExportImport
-{
-
- @BeforeClass(alwaysRun = true)
- public void setUpJvOptionPane()
- {
- JvOptionPane.setInteractiveMode(false);
- JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
- }
-
- public static String testseqs = "examples/uniref50.fa";
-
- public static Jws2Discoverer disc;
-
- public static Jws2Instance jpredws;
-
- jalview.ws.jws2.JPred301Client jpredClient;
-
- public static jalview.gui.AlignFrame af = null;
-
- @BeforeClass(alwaysRun = true)
- public static void setUpBeforeClass() throws Exception
- {
- Cache.loadProperties("test/jalview/io/testProps.jvprops");
- Cache.initLogger();
- disc = JalviewJabawsTestUtils.getJabawsDiscoverer(false);
-
- for (Jws2Instance svc : disc.getServices())
- {
- if (svc.getServiceTypeURI().toLowerCase().contains("jpred"))
- {
- jpredws = svc;
- }
- }
-
- System.out.println("State of jpredws: " + jpredws);
- Assert.assertNotNull(jpredws, "jpredws is null!");
- jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
- af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.DataSourceType.FILE);
- assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
- }
-
- @AfterClass(alwaysRun = true)
- public static void tearDownAfterClass() throws Exception
- {
- if (af != null)
- {
- af.setVisible(false);
- af.dispose();
- }
- }
-
- @Test(groups = { "Functional" })
- public void testJPredStructOneSeqOnly()
- {
- af.selectAllSequenceMenuItem_actionPerformed(null);
- af.getViewport()
- .getSelectionGroup()
- .addOrRemove(
- af.getViewport().getSelectionGroup().getSequenceAt(0),
- false);
- af.hideSelSequences_actionPerformed(null);
- jpredClient = new JPred301Client(jpredws, af, null, null);
-
- assertTrue(
- "Didn't find any default args to check for. Buggy implementation of hardwired arguments in client.",
- jpredClient.selectDefaultArgs().size() > 0);
-
- boolean success = false;
- af.getViewport().getCalcManager().startWorker(jpredClient);
- do
- {
- try
- {
- Thread.sleep(500);
- List<Argument> args = JabaParamStore.getJabafromJwsArgs(af
- .getViewport()
- .getCalcIdSettingsFor(jpredClient.getCalcId())
- .getArgumentSet()), defargs = jpredClient
- .selectDefaultArgs();
- for (Argument rg : args)
- {
- for (Argument defg : defargs)
- {
- if (defg.equals(rg))
- {
- success = true;
- }
- }
- }
- if (!success)
- {
- jpredClient.cancelCurrentJob();
- Assert.fail("Jpred Client didn't run with hardwired default parameters.");
- }
-
- } catch (InterruptedException x)
- {
- }
- ;
- } while (af.getViewport().getCalcManager().isWorking());
-
- }
-
- @Test(groups = { "Functional" })
- public void testJPredStructExport()
- {
-
- jpredClient = new JPred301Client(jpredws, af, null, null);
-
- af.getViewport().getCalcManager().startWorker(jpredClient);
-
- do
- {
- try
- {
- Thread.sleep(50);
- } catch (InterruptedException x)
- {
- }
- ;
- } while (af.getViewport().getCalcManager().isWorking());
-
- AlignmentI orig_alig = af.getViewport().getAlignment();
-
- testAnnotationFileIO("Testing JPredWS Annotation IO", orig_alig);
-
- }
-
- public static void testAnnotationFileIO(String testname, AlignmentI al)
- {
- try
- {
- // what format would be appropriate for RNAalifold annotations?
- String aligfileout = FileFormat.Pfam.getAlignmentFile().print(
- al.getSequencesArray(), true);
-
- String anfileout = new AnnotationFile()
- .printAnnotationsForAlignment(al);
- assertTrue(
- "Test "
- + testname
- + "\nAlignment annotation file was not regenerated. Null string",
- anfileout != null);
- assertTrue(
- "Test "
- + testname
- + "\nAlignment annotation file was not regenerated. Empty string",
- anfileout.length() > "JALVIEW_ANNOTATION".length());
-
- System.out.println("Output annotation file:\n" + anfileout
- + "\n<<EOF\n");
-
- // again what format would be appropriate?
- AlignmentI al_new = new FormatAdapter().readFile(aligfileout,
- DataSourceType.PASTE, FileFormat.Fasta);
- assertTrue(
- "Test "
- + testname
- + "\nregenerated annotation file did not annotate alignment.",
- new AnnotationFile().readAnnotationFile(al_new, anfileout,
- DataSourceType.PASTE));
-
- // test for consistency in io
- StockholmFileTest.testAlignmentEquivalence(al, al_new, false);
- return;
- } catch (Exception e)
- {
- e.printStackTrace();
- }
- Assert.fail("Test "
- + testname
- + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
- }
-
- @Test(groups = { "Functional" })
- public void testJpredwsSettingsRecovery()
- {
- Assert.fail("not implemnented");
- List<compbio.metadata.Argument> opts = new ArrayList<compbio.metadata.Argument>();
- for (compbio.metadata.Argument rg : (List<compbio.metadata.Argument>) jpredws
- .getRunnerConfig().getArguments())
- {
- if (rg.getDescription().contains("emperature"))
- {
- try
- {
- rg.setValue("292");
- } catch (WrongParameterException q)
- {
- Assert.fail("Couldn't set the temperature parameter "
- + q.getStackTrace());
- }
- opts.add(rg);
- }
- if (rg.getDescription().contains("max"))
- {
- opts.add(rg);
- }
- }
- jpredClient = new JPred301Client(jpredws, af, null, opts);
-
- af.getViewport().getCalcManager().startWorker(jpredClient);
-
- do
- {
- try
- {
- Thread.sleep(50);
- } catch (InterruptedException x)
- {
- }
- ;
- } while (af.getViewport().getCalcManager().isWorking());
- AutoCalcSetting oldacs = af.getViewport().getCalcIdSettingsFor(
- jpredClient.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,
- "testJPredWS_param.jar", "trial parameter writeout"));
- assertTrue("Couldn't read back the Jar file", (nalf = new Jalview2XML(
- false).loadJalviewAlign("testJpredWS_param.jar")) != null);
- if (nalf != null)
- {
- AutoCalcSetting acs = af.getViewport().getCalcIdSettingsFor(
- jpredClient.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, jpredws, 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(
- jpredws.getAlignAnalysisUI().getAAconToggle()))
- {
- i.doClick();
- break;
- }
- }
- }
- while (af.getViewport().isCalcInProgress())
- {
- try
- {
- Thread.sleep(200);
- } catch (Exception x)
- {
- }
- ;
- }
- AutoCalcSetting acs2 = af.getViewport().getCalcIdSettingsFor(
- jpredClient.getCalcId());
- assertTrue(
- "Calc ID settings after recalculation has not been recovered.",
- acs2.getWsParamFile().equals(oldsettings));
- }
- }
-}