<classpathentry kind="lib" path="lib/jdas-1.0.4.jar"/>
<classpathentry kind="lib" path="lib/spring-core-3.0.5.RELEASE.jar"/>
<classpathentry kind="lib" path="lib/spring-web-3.0.5.RELEASE.jar"/>
- <classpathentry kind="lib" path="lib/min-jabaws-client-2.1.0.jar" sourcepath="/clustengine"/>
+ <classpathentry kind="lib" path="lib/jabaws-min-client-2.2.0.jar" sourcepath="/clustengine"/>
<classpathentry kind="lib" path="lib/json_simple-1.1.jar" sourcepath="/Users/jimp/Downloads/json_simple-1.1-all.zip"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.7.7.jar"/>
<classpathentry kind="lib" path="lib/jsoup-1.8.1.jar"/>
+++ /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.jws2;
-
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.Annotation;
-import jalview.gui.AlignFrame;
-import jalview.ws.jws2.jabaws2.Jws2Instance;
-import jalview.ws.params.ArgumentI;
-import jalview.ws.params.OptionI;
-import jalview.ws.params.WsParamSetI;
-import jalview.ws.uimodel.AlignAnalysisUIText;
-
-import java.awt.Color;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import compbio.data.sequence.FastaSequence;
-import compbio.data.sequence.JpredAlignment;
-import compbio.metadata.Argument;
-
-public class JPred301Client extends JabawsMsaInterfaceAlignCalcWorker
-{
- /**
- *
- * @return default args for this service when run as dynamic web service
- */
- public List<Argument> selectDefaultArgs()
- {
- List<ArgumentI> rgs = new ArrayList<ArgumentI>();
- for (ArgumentI argi : service.getParamStore().getServiceParameters())
- {
- if (argi instanceof OptionI)
- {
- List<String> o = ((OptionI) argi).getPossibleValues();
- if (o.contains("-pred-nohits"))
- {
- OptionI cpy = ((OptionI) argi).copy();
- cpy.setValue("-pred-nohits");
- rgs.add(cpy);
- }
- }
- }
- return JabaParamStore.getJabafromJwsArgs(rgs);
- }
-
- public JPred301Client(Jws2Instance service, AlignFrame alignFrame,
- WsParamSetI preset, List<Argument> paramset)
- {
- super(service, alignFrame, preset, paramset);
- submitGaps = true;
- alignedSeqs = true;
- nucleotidesAllowed = false;
- proteinAllowed = true;
- gapMap = new boolean[0];
- updateParameters(null, selectDefaultArgs());
- }
-
- @Override
- boolean checkValidInputSeqs(boolean dynamic, List<FastaSequence> seqs)
- {
- return (seqs.size() > 1);
- }
-
- @Override
- public String getServiceActionText()
- {
- return "calculating consensus secondary structure prediction using JPred service";
- }
-
- private static Map<String, String[]> jpredRowLabels = new HashMap<String, String[]>();
-
- private static final Set<String> jpredRes_graph;
-
- private static final Set<String> jpredRes_ssonly;
- static
- {
- jpredRes_ssonly = new HashSet<String>();
- jpredRes_ssonly.add("jnetpred".toLowerCase());
- jpredRes_ssonly.add("jnetpssm".toLowerCase());
- jpredRes_ssonly.add("jnethmm".toLowerCase());
- jpredRes_graph = new HashSet<String>();
- jpredRes_graph.add("jnetconf".toLowerCase());
- jpredRes_graph.add("jnet burial".toLowerCase());
- }
-
- /**
- * update the consensus annotation from the sequence profile data using
- * current visualization settings.
- */
- @Override
- public void updateResultAnnotation(boolean immediate)
- {
- if (immediate || !calcMan.isWorking(this) && msascoreset != null)
- {
- if (msascoreset instanceof compbio.data.sequence.JpredAlignment)
- {
- JpredAlignment jpres = (JpredAlignment) msascoreset;
- int alWidth = alignViewport.getAlignment().getWidth();
- ArrayList<AlignmentAnnotation> ourAnnot = new ArrayList<AlignmentAnnotation>();
- char[] sol = new char[jpres.getJpredSequences().get(0).getLength()];
- boolean firstsol = true;
- for (FastaSequence fsq : jpres.getJpredSequences())
- {
- String[] k = jpredRowLabels.get(fsq.getId());
- if (k == null)
- {
- k = new String[] { fsq.getId(), "JNet Output" };
- }
- if (fsq.getId().startsWith("JNETSOL"))
- {
- char amnt = (fsq.getId().endsWith("25") ? "3" : fsq.getId()
- .endsWith("5") ? "6" : "9").charAt(0);
- char[] vseq = fsq.getSequence().toCharArray();
- for (int spos = 0, sposL = fsq.getLength(); spos < sposL; spos++)
- {
- if (firstsol)
- {
- sol[spos] = '0';
- }
- if (vseq[spos] == 'B'
- && (sol[spos] == '0' || sol[spos] < amnt))
- {
- sol[spos] = amnt;
- }
- }
- firstsol = false;
- }
- else
- {
- createAnnotationRowFromString(
- ourAnnot,
- getCalcId(),
- alWidth,
- k[0],
- k[1],
- jpredRes_graph.contains(fsq.getId()) ? AlignmentAnnotation.BAR_GRAPH
- : AlignmentAnnotation.NO_GRAPH, 0f, 9f,
- fsq.getSequence());
- }
-
- }
- createAnnotationRowFromString(
- ourAnnot,
- getCalcId(),
- alWidth,
- "Jnet Burial",
- "<html>Prediction of Solvent Accessibility<br/>levels are<ul><li>0 - Exposed</li><li>3 - 25% or more S.A. accessible</li><li>6 - 5% or more S.A. accessible</li><li>9 - Buried (<5% exposed)</li></ul>",
- AlignmentAnnotation.BAR_GRAPH, 0f, 9f, new String(sol));
- for (FastaSequence fsq : jpres.getSequences())
- {
- if (fsq.getId().equalsIgnoreCase("QUERY"))
- {
- createAnnotationRowFromString(ourAnnot, getCalcId(), alWidth,
- "Query", "JPred Reference Sequence",
- AlignmentAnnotation.NO_GRAPH, 0f, 0f, fsq.getSequence());
- }
- }
- if (ourAnnot.size() > 0)
- {
- updateOurAnnots(ourAnnot);
- }
- }
- }
- }
-
- private void createAnnotationRowFromString(
- ArrayList<AlignmentAnnotation> ourAnnot, String calcId,
- int alWidth, String label, String descr, int rowType, float min,
- float max, String jpredPrediction)
- {
- // simple annotation row
- AlignmentAnnotation annotation = alignViewport.getAlignment()
- .findOrCreateAnnotation(label, calcId, true, null, null);
- if (alWidth == gapMap.length) // scr.getScores().size())
- {
- annotation.label = new String(label);
- annotation.description = new String(descr);
- annotation.graph = rowType;
- annotation.graphMin = min;
- annotation.graphMax = max;
- if (constructAnnotationFromString(annotation, jpredPrediction,
- alWidth, rowType))
- {
- // created a valid annotation from the data
- ourAnnot.add(annotation);
- // annotation.validateRangeAndDisplay();
- }
- }
- }
-
- private boolean constructAnnotationFromString(
- AlignmentAnnotation annotation, String sourceData, int alWidth,
- int rowType)
- {
- if (sourceData.length() == 0 && alWidth > 0)
- {
- return false;
- }
- Annotation[] elm = new Annotation[alWidth];
- boolean ssOnly = jpredRes_ssonly.contains(annotation.label
- .toLowerCase());
- boolean graphOnly = rowType != AlignmentAnnotation.NO_GRAPH;
- if (!ssOnly && !graphOnly)
- {
- // for burial 'B'
- annotation.showAllColLabels = true;
- }
-
- for (int i = 0, iSize = sourceData.length(); i < iSize; i++)
- {
- char annot = sourceData.charAt(i);
- // if we're at a gapped column then skip to next ungapped position
- if (gapMap != null && gapMap.length > 0)
- {
- while (!gapMap[i])
- {
- elm[i++] = new Annotation("", "", ' ', Float.NaN);
- }
- }
- switch (rowType)
- {
- case AlignmentAnnotation.NO_GRAPH:
- elm[i] = ssOnly ? new Annotation("", "", annot, Float.NaN,
- colourSS(annot)) : new Annotation("" + annot, "" + annot,
- '\0', Float.NaN);
- break;
- default:
- try
- {
- elm[i] = new Annotation("" + annot, "" + annot, annot,
- Integer.valueOf("" + annot));
- } catch (Exception x)
- {
- System.err.println("Expected numeric value in character '"
- + annot + "'");
- }
- }
- }
-
- annotation.annotations = elm;
- annotation.belowAlignment = true;
- annotation.validateRangeAndDisplay();
- return true;
- }
-
- private Color colourSS(char annot)
- {
- switch (annot)
- {
- case 'H':
- return jalview.renderer.AnnotationRenderer.HELIX_COLOUR;
- case 'E':
- return jalview.renderer.AnnotationRenderer.SHEET_COLOUR;
- }
- return jalview.renderer.AnnotationRenderer.GLYPHLINE_COLOR;
- }
-
- @Override
- public String getCalcId()
- {
- return CALC_ID;
- }
-
- private static String CALC_ID = "jabaws21.JPred3Cons";
-
- public static AlignAnalysisUIText getAlignAnalysisUITest()
- {
- return new AlignAnalysisUIText(
- compbio.ws.client.Services.JpredWS.toString(),
- jalview.ws.jws2.JPred301Client.class, CALC_ID, false, true,
- true, "JPred Consensus",
- "When checked, JPred consensus is updated automatically.",
- "Change JPred Settings...",
- "Modify settings for JPred calculations.");
- }
-}
package jalview.ws.jws2.jabaws2;
import jalview.ws.jws2.AAConClient;
-import jalview.ws.jws2.JPred301Client;
import jalview.ws.jws2.RNAalifoldClient;
import jalview.ws.uimodel.AlignAnalysisUIText;
AAConClient.getAlignAnalysisUITest());
aaConGUI.put(compbio.ws.client.Services.RNAalifoldWS.toString(),
RNAalifoldClient.getAlignAnalysisUITest());
- // disable the JPred301 client in jalview ...
+ // ignore list for JABAWS services not supported in jalview ...
ignoreGUI = new HashSet<String>();
- ignoreGUI.add(compbio.ws.client.Services.JpredWS.toString());
- aaConGUI.put(compbio.ws.client.Services.JpredWS.toString(),
- JPred301Client.getAlignAnalysisUITest());
}
}
+++ /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.BeforeGroups;
-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;
-
- @BeforeGroups(groups = { "Network" })
- 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 = { "Network" }, enabled = false)
- 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 = { "Network" }, enabled = false)
- 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.getWriter(null).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, false,
- false);
- return;
- } catch (Exception e)
- {
- e.printStackTrace();
- }
- Assert.fail("Test "
- + testname
- + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
- }
-
- @Test(groups = { "Network" }, enabled = false)
- 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));
- }
- }
-}