1 package compbio.runner.structure;
\r
4 import java.io.FileNotFoundException;
\r
5 import java.io.IOException;
\r
6 import java.util.Arrays;
\r
7 import java.util.List;
\r
13 import org.apache.log4j.Logger;
\r
15 import compbio.data.sequence.ScoreManager;
\r
16 import compbio.data.sequence.RNAStructScoreManager;
\r
17 import compbio.data.sequence.UnknownFileFormatException;
\r
18 import compbio.engine.client.PipedExecutable;
\r
19 import compbio.engine.client.SkeletalExecutable;
\r
20 import compbio.metadata.ResultNotAvailableException;
\r
21 import compbio.runner.Util;
\r
24 import compbio.engine.client.CommandBuilder;
\r
26 public class RNAalifold extends SkeletalExecutable<RNAalifold>
\r
27 implements PipedExecutable<RNAalifold> {
\r
30 private static Logger log = Logger.getLogger(RNAalifold.class);
\r
32 // May not be necessary as defult is "<space>" but still dont know
\r
33 // How to deal with different key value separators for different params
\r
34 public static final String KEY_VALUE_SEPARATOR = " ";
\r
36 public RNAalifold() {
\r
37 super(KEY_VALUE_SEPARATOR);
\r
41 public RNAalifold setOutput(String outFile) {
\r
42 super.setOutput(outFile);
\r
47 public RNAalifold setInput(String inFile) {
\r
48 cbuilder.setLast(inFile);
\r
49 super.setInput(inFile);
\r
53 @SuppressWarnings("unchecked")
\r
55 public Class<RNAalifold> getType() {
\r
56 return (Class<RNAalifold>) this.getClass();
\r
59 @SuppressWarnings("unchecked")
\r
61 public RNAStructScoreManager getResults(String workDirectory)
\r
62 throws ResultNotAvailableException {
\r
64 return Util.readRNAStruct(workDirectory, getOutput());
\r
66 } catch (FileNotFoundException e) {
\r
67 log.error(e.getMessage(), e.getCause());
\r
68 throw new ResultNotAvailableException(e);
\r
69 } catch (IOException e) {
\r
70 log.error(e.getMessage(), e.getCause());
\r
71 throw new ResultNotAvailableException(e);
\r