X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=runner%2Fcompbio%2Frunner%2Fstructure%2FRNAalifold.java;h=c0a50fe73fc1d6ae334cca147bd1f91a511a4bc5;hb=e6227b3fc0bb5abdf275bb24a87607b0555bce10;hp=52a784c0d5e7b7e8a85704d9a4485fe120669576;hpb=9072bd850138bedbd005509e5b14bb5e104574b4;p=jabaws.git diff --git a/runner/compbio/runner/structure/RNAalifold.java b/runner/compbio/runner/structure/RNAalifold.java index 52a784c..c0a50fe 100644 --- a/runner/compbio/runner/structure/RNAalifold.java +++ b/runner/compbio/runner/structure/RNAalifold.java @@ -1,117 +1,61 @@ -package compbio.runner.structure; - - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Arrays; -import java.util.List; - - - - - -import org.apache.log4j.Logger; - -import compbio.data.sequence.RNAstruct; -import compbio.data.sequence.UnknownFileFormatException; -import compbio.engine.client.PipedExecutable; -import compbio.engine.client.SkeletalExecutable; -import compbio.metadata.ResultNotAvailableException; -import compbio.runner.Util; - - -import compbio.engine.client.CommandBuilder; - -public class RNAalifold extends SkeletalExecutable - implements PipedExecutable { - - - private static Logger log = Logger.getLogger(RNAalifold.class); - - // May not be necessary as defult is "" but still dont know - // How to deal with different key value separators for different params - public static final String KEY_VALUE_SEPARATOR = " "; - - public RNAalifold() { - super(KEY_VALUE_SEPARATOR); - } - - @Override - public RNAalifold setOutput(String outFile) { - super.setOutput(outFile); - return this; - } - - @Override - public RNAalifold setInput(String inFile) { - cbuilder.setLast(inFile); - super.setInput(inFile); - return this; - } - - @SuppressWarnings("unchecked") - @Override - public Class getType() { - return (Class) this.getClass(); - } - - @SuppressWarnings("unchecked") - @Override - // PlaceHolder method - public String getResults(String workDirectory) - throws ResultNotAvailableException { - try { - return Util.readRNAStruct(workDirectory, getOutput()); - - } 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); - } - } - - - // the new currently used methods for reading are found in - // - compbio.data.sequence.SequenceUtil and - // - compbio.runner.Util - - // Simple and generic methods for reading a whole file -// private static String readRNAStruct(String workDirectory, -// String structFile) throws IOException, FileNotFoundException { -// assert !compbio.util.Util.isEmpty(workDirectory); -// assert !compbio.util.Util.isEmpty(structFile); -// File sfile = new File(compbio.engine.client.Util.getFullPath( -// workDirectory, structFile)); -// log.trace("RNAALIFOLD OUTPUT FILE PATH: " + sfile.getAbsolutePath()); -// if(!(sfile.exists() && sfile.length() > 0)) { -// throw new FileNotFoundException("Result for the jobId " -// + workDirectory + "with file name " + structFile -// + " is not found!"); -// } -// return readFile(sfile); -// } -// -// private static BufferedReader input; -// public static String readFile(File inputFile) throws -// FileNotFoundException, IOException { -// -// input = new BufferedReader(new FileReader(inputFile)); -// -// String file = new String(); -// String line = new String(); -// -// while (true) { -// line = input.readLine(); -// -// if (line != null) { -// file = file + line + "\r\n"; -// } else break; -// } -// // Close file -// input.close(); -// return file; -// } - -} +package compbio.runner.structure; + +import java.io.FileNotFoundException; +import java.io.IOException; + +import org.apache.log4j.Logger; + +import compbio.data.sequence.RNAStructScoreManager; +import compbio.engine.client.PipedExecutable; +import compbio.engine.client.SkeletalExecutable; +import compbio.metadata.ResultNotAvailableException; +import compbio.runner.RunnerUtil; + +public class RNAalifold extends SkeletalExecutable + implements PipedExecutable { + + private static Logger log = Logger.getLogger(RNAalifold.class); + + // May not be necessary as defult is "" but still dont know + // How to deal with different key value separators for different params + public static final String KEY_VALUE_SEPARATOR = " "; + + public RNAalifold() { + super(KEY_VALUE_SEPARATOR); + } + + @Override + public RNAalifold setOutput(String outFile) { + super.setOutput(outFile); + return this; + } + + @Override + public RNAalifold setInput(String inFile) { + cbuilder.setLast(inFile); + super.setInput(inFile); + return this; + } + + @SuppressWarnings("unchecked") + @Override + public Class getType() { + return (Class) this.getClass(); + } + + @SuppressWarnings("unchecked") + @Override + public RNAStructScoreManager getResults(String workDirectory) + throws ResultNotAvailableException { + try { + return RunnerUtil.readRNAStruct(workDirectory, getOutput()); + } 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); + } + } + +}