New Linux binaries for ViennaRNA
[jabaws.git] / runner / compbio / runner / structure / RNAalifold.java
1 package compbio.runner.structure;\r
2 \r
3 \r
4 import java.io.FileNotFoundException;\r
5 import java.io.IOException;\r
6 \r
7 import org.apache.log4j.Logger;\r
8 \r
9 import compbio.data.sequence.RNAStructScoreManager;\r
10 import compbio.engine.client.PipedExecutable;\r
11 import compbio.engine.client.SkeletalExecutable;\r
12 import compbio.metadata.ResultNotAvailableException;\r
13 import compbio.runner.Util;\r
14 \r
15 public class RNAalifold extends SkeletalExecutable<RNAalifold> \r
16                 implements PipedExecutable<RNAalifold> {\r
17         \r
18         \r
19         private static Logger log = Logger.getLogger(RNAalifold.class);\r
20 \r
21         // May not be necessary as defult is "<space>" but still dont know\r
22         // How to deal with different key value separators for different params\r
23         public static final String KEY_VALUE_SEPARATOR = Util.SPACE;\r
24         \r
25         public RNAalifold() {\r
26                 super(KEY_VALUE_SEPARATOR);\r
27         }\r
28         \r
29         @Override\r
30         public RNAalifold setOutput(String outFile) {\r
31                 super.setOutput(outFile);\r
32                 return this;\r
33         }\r
34         \r
35         @Override\r
36         public RNAalifold setInput(String inFile) {\r
37                 cbuilder.setLast(inFile);\r
38                 super.setInput(inFile);\r
39                 return this;\r
40         }\r
41         \r
42         @SuppressWarnings("unchecked")\r
43         @Override\r
44         public Class<RNAalifold> getType() {\r
45                 return (Class<RNAalifold>) this.getClass();\r
46         }\r
47         \r
48         @SuppressWarnings("unchecked")\r
49         @Override\r
50         public RNAStructScoreManager getResults(String workDirectory)\r
51                         throws ResultNotAvailableException {\r
52                 try {\r
53                         return Util.readRNAStruct(workDirectory, getOutput());\r
54                         \r
55                 } catch (FileNotFoundException e) {\r
56                         log.error(e.getMessage(), e.getCause());\r
57                         throw new ResultNotAvailableException(e);\r
58                 } catch (IOException e) {\r
59                         log.error(e.getMessage(), e.getCause());\r
60                         throw new ResultNotAvailableException(e);\r
61                 }\r
62         }\r
63 \r
64 }\r