From 66c8ec5cbad54362baa57c9d9db6a69834d2bb0a Mon Sep 17 00:00:00 2001 From: pvtroshin Date: Tue, 14 Jun 2011 17:12:12 +0000 Subject: [PATCH] IUPred wrapper, tester and new binary for X64 linux systems git-svn-id: link to svn.lifesci.dundee.ac.uk/svn/barton/ptroshin/JABA2@4265 e3abac25-378b-4346-85de-24260fe3988d --- binaries/src/iupred/iupred | Bin 17738 -> 19312 bytes datamodel/compbio/data/sequence/SequenceUtil.java | 29 +- runner/compbio/runner/disorder/IUPred.java | 106 +++++++ .../compbio/data/sequence/SequenceUtilTester.java | 30 +- testsrc/compbio/runner/disorder/IUPredTester.java | 310 ++++++++++++++++++++ 5 files changed, 463 insertions(+), 12 deletions(-) create mode 100644 runner/compbio/runner/disorder/IUPred.java create mode 100644 testsrc/compbio/runner/disorder/IUPredTester.java diff --git a/binaries/src/iupred/iupred b/binaries/src/iupred/iupred index ce0fa41b07bc96d358ce51843b4e6a232bf9267f..42a76b03341d3e86ea589ffd510d5e8f9f5456ce 100644 GIT binary patch literal 19312 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 YQZcm*{_FO2H=CdL7164>-{0D6P4;Z` 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 readIUPred(final File result, - IUPredResult type) throws IOException, UnknownFileFormatException { + public static Map readIUPred(final File result) + throws IOException, UnknownFileFormatException { InputStream input = new FileInputStream(result); - Map sequences = readIUPred(input, type); + Map sequences = readIUPred(input, + IUPredResult.getType(result)); input.close(); return sequences; } @@ -357,7 +358,7 @@ public final class SequenceUtil { while (scan.hasNext()) { String nextEntry = scan.next(); Scanner entry = new Scanner(nextEntry); - String name = entry.nextLine(); + String name = entry.nextLine().trim(); // inside entry: if (IUPredResult.Glob == type) { // parse domains @@ -845,5 +846,23 @@ enum IUPredResult { /** * Globular domains */ - Glob + Glob; + + static IUPredResult getType(File file) { + assert file != null; + String name = file.getName(); + if (name.endsWith(Long.toString().toLowerCase())) { + return Long; + } + if (name.endsWith(Short.toString().toLowerCase())) { + return Short; + } + if (name.endsWith(Glob.toString().toLowerCase())) { + return Glob; + } + throw new AssertionError( + "IUPred result file type cannot be recognised! " + + "\nFile must ends with one of [glob, long or short]" + + "\n but given file name was: " + file.getName()); + } } \ No newline at end of file diff --git a/runner/compbio/runner/disorder/IUPred.java b/runner/compbio/runner/disorder/IUPred.java new file mode 100644 index 0000000..30e8776 --- /dev/null +++ b/runner/compbio/runner/disorder/IUPred.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2011 Peter Troshin JAva Bioinformatics Analysis Web Services + * (JABAWS) @version: 2.0 This library is free software; you can redistribute it + * and/or modify it under the terms of the Apache License version 2 as published + * by the Apache Software Foundation This library 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 + * Apache License for more details. A copy of the license is in + * apache_license.txt. It is also available here: + * @see: http://www.apache.org/licenses/LICENSE-2.0.txt Any republication or + * derived work distributed in source code form must include this copyright and + * license notice. + */ + +package compbio.runner.disorder; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; + +import org.apache.log4j.Logger; + +import compbio.data.sequence.Score; +import compbio.data.sequence.ScoreManager; +import compbio.data.sequence.SequenceUtil; +import compbio.data.sequence.UnknownFileFormatException; +import compbio.engine.client.SkeletalExecutable; +import compbio.metadata.ResultNotAvailableException; + +/** + * iupred sequenceFile + * + * Maximum sequence length is 40000 chars. Single string length max is a 1000 + * chars! + * + */ +public class IUPred extends SkeletalExecutable { + + private static Logger log = Logger.getLogger(IUPred.class); + private static final String GLOB_SUFFIX = ".glob"; + private static final String SHORT_SUFFIX = ".short"; + private static final String LONG_SUFFIX = ".long"; + + @Override + @SuppressWarnings("unchecked") + public ScoreManager getResults(String workDirectory) + throws ResultNotAvailableException { + + ScoreManager results = null; + try { + + Map globScores = SequenceUtil.readIUPred(new File( + workDirectory, getOutput() + GLOB_SUFFIX)); + Map shortScores = SequenceUtil.readIUPred(new File( + workDirectory, getOutput() + SHORT_SUFFIX)); + Map longScores = SequenceUtil.readIUPred(new File( + workDirectory, getOutput() + LONG_SUFFIX)); + Map> combined = new TreeMap>(); + for (String key : globScores.keySet()) { + Set all = new TreeSet(); + Score globsc = globScores.get(key); + assert globsc != null; + Score shortsc = shortScores.get(key); + assert shortsc != null; + all.add(shortsc); + Score longsc = longScores.get(key); + assert longsc != null; + all.add(longsc); + combined.put(key, all); + } + results = ScoreManager.newInstance(combined); + + } catch (FileNotFoundException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } catch (IOException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } catch (UnknownFileFormatException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } catch (NullPointerException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } + return results; + } + + @Override + public IUPred setInput(String inFile) { + super.setInput(inFile); + cbuilder.setFirst(inFile); + return this; + } + + @SuppressWarnings("unchecked") + @Override + public Class getType() { + return (Class) this.getClass(); + } + +} diff --git a/testsrc/compbio/data/sequence/SequenceUtilTester.java b/testsrc/compbio/data/sequence/SequenceUtilTester.java index d992216..7621dcc 100644 --- a/testsrc/compbio/data/sequence/SequenceUtilTester.java +++ b/testsrc/compbio/data/sequence/SequenceUtilTester.java @@ -291,10 +291,17 @@ public class SequenceUtilTester { public void testReadIUPredForShortAndLongDisorder() { try { Map scores = SequenceUtil.readIUPred(new File( - AllTestSuit.TEST_DATA_PATH, "output.long"), - IUPredResult.Long); + AllTestSuit.TEST_DATA_PATH, "output.long")); ScoreManager man = ScoreManager.newInstanceSingleScore(scores); - man.writeOut(new PrintWriter(System.out, true)); + // man.writeOut(new PrintWriter(System.out, true)); + assertNotNull(scores); + assertEquals(2, scores.size()); + + Score score = scores.get("P50_HUMAN"); + assertNotNull(score); + assertEquals(0, score.getRanges().size()); + assertEquals(393, score.getScores().size()); + assertEquals("Long", score.getMethod()); } catch (IOException e) { e.printStackTrace(); fail(e.getLocalizedMessage()); @@ -308,10 +315,20 @@ public class SequenceUtilTester { public void testReadIUPredForGlobDomain() { try { Map scores = SequenceUtil.readIUPred(new File( - AllTestSuit.TEST_DATA_PATH, "output.glob"), - IUPredResult.Glob); + AllTestSuit.TEST_DATA_PATH, "output.glob")); + assertNotNull(scores); + assertEquals(2, scores.size()); ScoreManager man = ScoreManager.newInstanceSingleScore(scores); - man.writeOut(new PrintWriter(System.out, true)); + // man.writeOut(new PrintWriter(System.out, true)); + assertEquals(2, man.getNumberOfSeq()); + Score score = scores.get("P53_HUMA"); + assertNotNull(score); + assertEquals(2, score.getRanges().size()); + assertEquals(0, score.getScores().size()); + assertEquals("Glob", score.getMethod()); + + score = scores.get("Foobar_dundeefriends"); + assertEquals(0, score.getRanges().size()); } catch (IOException e) { e.printStackTrace(); fail(e.getLocalizedMessage()); @@ -320,7 +337,6 @@ public class SequenceUtilTester { fail(e.getLocalizedMessage()); } } - @Test public void testReadAAConResults() { try { diff --git a/testsrc/compbio/runner/disorder/IUPredTester.java b/testsrc/compbio/runner/disorder/IUPredTester.java new file mode 100644 index 0000000..1ef709b --- /dev/null +++ b/testsrc/compbio/runner/disorder/IUPredTester.java @@ -0,0 +1,310 @@ +/* Copyright (c) 2011 Peter Troshin + * + * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0 + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * Apache License version 2 as published by the Apache Software Foundation + * + * This library 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 Apache + * License for more details. + * + * A copy of the license is in apache_license.txt. It is also available here: + * @see: http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Any republication or derived work distributed in source code form + * must include this copyright and license notice. + */ + +package compbio.runner.disorder; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.text.ParseException; + +import javax.xml.bind.ValidationException; + +import org.ggf.drmaa.DrmaaException; +import org.ggf.drmaa.JobInfo; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import compbio.data.sequence.ScoreManager; +import compbio.engine.AsyncExecutor; +import compbio.engine.Configurator; +import compbio.engine.SyncExecutor; +import compbio.engine.client.ConfExecutable; +import compbio.engine.client.ConfiguredExecutable; +import compbio.engine.client.Executable; +import compbio.engine.client.RunConfiguration; +import compbio.engine.cluster.drmaa.ClusterUtil; +import compbio.engine.cluster.drmaa.JobRunner; +import compbio.engine.cluster.drmaa.StatisticManager; +import compbio.engine.local.LocalRunner; +import compbio.metadata.AllTestSuit; +import compbio.metadata.JobExecutionException; +import compbio.metadata.JobStatus; +import compbio.metadata.JobSubmissionException; +import compbio.metadata.LimitsManager; +import compbio.metadata.PresetManager; +import compbio.metadata.ResultNotAvailableException; +import compbio.metadata.RunnerConfig; +import compbio.util.SysPrefs; + +public class IUPredTester { + + public static String test_outfile = "output"; + + private IUPred iupred; + + @BeforeMethod(alwaysRun = true) + void init() { + iupred = new IUPred(); + iupred.setInput(AllTestSuit.test_input).setOutput(test_outfile); + } + + @Test(groups = {AllTestSuit.test_group_cluster, + AllTestSuit.test_group_runner}) + public void testRunOnCluster() { + assertFalse(SysPrefs.isWindows, + "Cluster execution can only be in unix environment"); + try { + ConfiguredExecutable confIUPred = Configurator + .configureExecutable(iupred, + Executable.ExecProvider.Cluster); + JobRunner runner = JobRunner.getInstance(confIUPred); + + assertNotNull(runner, "Runner is NULL"); + runner.executeJob(); + // assertNotNull("JobId is null", jobId1); + JobStatus status = runner.getJobStatus(); + assertTrue(status == JobStatus.PENDING + || status == JobStatus.RUNNING, + "Status of the process is wrong!"); + JobInfo info = runner.getJobInfo(); + assertNotNull(info, "JobInfo is null"); + StatisticManager sm = new StatisticManager(info); + assertNotNull(sm, "Statictic manager is null"); + try { + + String exits = sm.getExitStatus(); + assertNotNull("Exit status is null", exits); + // cut 4 trailing zeros from the number + int exitsInt = ClusterUtil.CLUSTER_STAT_IN_SEC.parse(exits) + .intValue(); + assertEquals(0, exitsInt); + System.out.println(sm.getAllStats()); + + } catch (ParseException e) { + e.printStackTrace(); + fail("Parse Exception: " + e.getMessage()); + } + // assertFalse(runner.cleanup()); + assertTrue(sm.hasExited()); + assertFalse(sm.wasAborted()); + assertFalse(sm.hasDump()); + assertFalse(sm.hasSignaled()); + + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (DrmaaException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } + } + + /** + * This tests fails from time to time depending on the cluster load or some + * other factors. Any client code has to adjust for this issue + */ + @Test(groups = {AllTestSuit.test_group_cluster, + AllTestSuit.test_group_runner}) + public void testRunOnClusterAsync() { + assertFalse(SysPrefs.isWindows, + "Cluster execution can only be in unix environment"); + try { + ConfiguredExecutable confIUPred = Configurator + .configureExecutable(iupred, + Executable.ExecProvider.Cluster); + AsyncExecutor aengine = Configurator.getAsyncEngine(confIUPred); + String jobId = aengine.submitJob(confIUPred); + assertNotNull(jobId, "Runner is NULL"); + // let drmaa to start + Thread.sleep(500); + JobStatus status = aengine.getJobStatus(jobId); + while (status != JobStatus.FINISHED) { + System.out.println("Job Status: " + status); + Thread.sleep(1000); + status = aengine.getJobStatus(jobId); + ConfiguredExecutable result = (ConfiguredExecutable) aengine + .getResults(jobId); + assertNotNull(result); + System.out.println("RES:" + result); + // Some times the job could be removed from the cluster + // accounting + // before it has been reported to finish. Make sure + // to stop waiting in such case + if (status == JobStatus.UNDEFINED) { + break; + } + } + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (InterruptedException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void testRunLocally() { + try { + ConfiguredExecutable confIUPred = Configurator + .configureExecutable(iupred, Executable.ExecProvider.Local); + + // For local execution use relative + LocalRunner lr = new LocalRunner(confIUPred); + lr.executeJob(); + ConfiguredExecutable al1 = lr.waitForResult(); + assertNotNull(al1.getResults()); + ScoreManager al2 = confIUPred.getResults(); + assertNotNull(al2); + assertEquals(al2.asMap().size(), 3); + assertEquals(al1.getResults(), al2); + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void readStatistics() { + // No execution statistics is available! + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void testPersistance() { + try { + IUPred disembl = new IUPred(); + disembl.setError("errrr.txt").setInput(AllTestSuit.test_input) + .setOutput("outtt.txt"); + assertEquals(disembl.getInput(), AllTestSuit.test_input); + assertEquals(disembl.getError(), "errrr.txt"); + assertEquals(disembl.getOutput(), "outtt.txt"); + ConfiguredExecutable cIUPred = Configurator + .configureExecutable(disembl, Executable.ExecProvider.Local); + + SyncExecutor sexec = Configurator.getSyncEngine(cIUPred); + sexec.executeJob(); + ConfiguredExecutable al = sexec.waitForResult(); + assertNotNull(al.getResults()); + // Save run configuration + assertTrue(cIUPred.saveRunConfiguration()); + + // See if loaded configuration is the same as saved + RunConfiguration loadedRun = RunConfiguration + .load(new FileInputStream(new File(cIUPred + .getWorkDirectory(), RunConfiguration.rconfigFile))); + assertEquals( + ((ConfExecutable) cIUPred).getRunConfiguration(), + loadedRun); + // Load run configuration as ConfExecutable + ConfiguredExecutable resurrectedCIUPred = (ConfiguredExecutable) cIUPred + .loadRunConfiguration(new FileInputStream(new File(cIUPred + .getWorkDirectory(), RunConfiguration.rconfigFile))); + assertNotNull(resurrectedCIUPred); + assertEquals(resurrectedCIUPred.getExecutable().getInput(), + AllTestSuit.test_input); + assertEquals(resurrectedCIUPred.getExecutable().getError(), + "errrr.txt"); + assertEquals(resurrectedCIUPred.getExecutable().getOutput(), + "outtt.txt"); + // See in details whether executables are the same + assertEquals(resurrectedCIUPred.getExecutable(), disembl); + + ConfiguredExecutable resIUPred = Configurator + .configureExecutable(resurrectedCIUPred.getExecutable(), + Executable.ExecProvider.Local); + + sexec = Configurator.getSyncEngine(resIUPred, + Executable.ExecProvider.Local); + sexec.executeJob(); + al = sexec.waitForResult(); + assertNotNull(al); + + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void testConfigurationLoading() { + try { + RunnerConfig disemblConfig = ConfExecutable + .getRunnerOptions(IUPred.class); + // There is no disembl parameters + assertNull(disemblConfig); + + // If there were a IUPredParameter.xml file and reference to it, + // it would be like that + // assertTrue(disemblConfig.getArguments().size() == 0); + + PresetManager disemblPresets = ConfExecutable + .getRunnerPresets(IUPred.class); + assertNull(disemblPresets); // there is no presets + + LimitsManager disemblLimits = ConfExecutable + .getRunnerLimits(IUPred.class); + assertNotNull(disemblLimits); + assertTrue(disemblLimits.getLimits().size() > 0); + disemblLimits.validate(disemblPresets); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (ValidationException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } + } + +} -- 1.7.10.2