\r
import java.io.File;\r
import java.io.FileInputStream;\r
-import java.io.FileReader;\r
-import java.io.BufferedReader;\r
import java.io.FileNotFoundException;\r
import java.io.FileOutputStream;\r
import java.io.IOException;\r
import compbio.data.sequence.Alignment;\r
import compbio.data.sequence.ClustalAlignmentUtil;\r
import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.RNAstruct;\r
+import compbio.data.sequence.RNAStructScoreManager;\r
import compbio.data.sequence.Score;\r
+import compbio.data.sequence.RNAStructReader;\r
import compbio.data.sequence.SequenceUtil;\r
import compbio.data.sequence.UnknownFileFormatException;\r
import compbio.engine.client.ConfExecutable;\r
import compbio.engine.client.ConfiguredExecutable;\r
import compbio.engine.client.Executable;\r
-import compbio.engine.conf.PropertyHelperManager;\r
import compbio.metadata.JobSubmissionException;\r
import compbio.metadata.PresetManager;\r
import compbio.metadata.RunnerConfig;\r
-import compbio.util.PropertyHelper;\r
\r
public final class Util {\r
\r
public static Logger log = Logger.getLogger(Util.class);\r
\r
- private static final PropertyHelper ph = PropertyHelperManager\r
- .getPropertyHelper();\r
-\r
- public static final String SPACE = " ";\r
-\r
public static synchronized <T> RunnerConfig<T> getSupportedOptions(\r
Class<? extends Executable<T>> clazz) {\r
try {\r
\r
public static void writeInput(List<FastaSequence> sequences,\r
ConfiguredExecutable<?> exec) throws JobSubmissionException {\r
-\r
try {\r
File filein = new File(exec.getInput());\r
FileOutputStream fout = new FileOutputStream(filein);\r
+ e.getLocalizedMessage(), e);\r
}\r
}\r
- \r
+\r
public static void writeClustalInput(List<FastaSequence> sequences,\r
ConfiguredExecutable<?> exec, char gapChar) throws JobSubmissionException {\r
\r
+ e.getLocalizedMessage(), e);\r
}\r
}\r
- \r
- // OUT OF USE\r
- \r
-// public static final RNAstruct readRNAStructFile(String workDirectory,\r
-// String structFile) throws IOException, FileNotFoundException {\r
-// assert !compbio.util.Util.isEmpty(workDirectory);\r
-// assert !compbio.util.Util.isEmpty(structFile);\r
-// File sfile = new File(compbio.engine.client.Util.getFullPath(\r
-// workDirectory, structFile));\r
-// if(!(sfile.exists() && sfile.length() > 0)) {\r
-// throw new FileNotFoundException("Result for the jobId "\r
-// + workDirectory + "with file name " + structFile\r
-// + " is not found!");\r
-// }\r
-// return compbio.data.sequence.SequenceUtil.readRNAalifoldResults(\r
-// new FileInputStream(sfile));\r
-// }\r
- \r
- public static String readRNAStruct(String workDirectory,\r
+\r
+ public static RNAStructScoreManager readRNAStruct(String workDirectory,\r
String structFile) throws IOException, FileNotFoundException {\r
+ \r
assert !compbio.util.Util.isEmpty(workDirectory);\r
assert !compbio.util.Util.isEmpty(structFile);\r
- File sfile = new File(compbio.engine.client.Util.getFullPath(\r
+ // The stdout from RNAalifold\r
+ File sFile = new File(compbio.engine.client.Util.getFullPath(\r
workDirectory, structFile));\r
- if(!(sfile.exists() && sfile.length() > 0)) {\r
+ // Base pair probability matrix (-p option)\r
+ File aliFile = new File(compbio.engine.client.Util.getFullPath(\r
+ workDirectory, "alifold.out"));\r
+ // Check that stdout file exists\r
+ if(!(sFile.exists() && sFile.length() > 0)) {\r
throw new FileNotFoundException("Result for the jobId "\r
+ workDirectory + "with file name " + structFile\r
+ " is not found!");\r
}\r
- return readFile(sfile);\r
- }\r
- \r
- public static String readFile(File inputFile) throws \r
- FileNotFoundException, IOException {\r
-\r
- BufferedReader input = new BufferedReader(new FileReader(inputFile));\r
-\r
- String file = new String();\r
- String line = new String();\r
-\r
- while (true) {\r
- line = input.readLine();\r
-\r
- if (line != null) {\r
- file = file + line + "\r\n";\r
- } else break;\r
+ // Check that base pair probability file exists\r
+ if(!aliFile.exists()) {\r
+ log.warn("The file alifold.out is not found for the jobId "\r
+ + workDirectory + "Is the -p or --MEA option not specified?");\r
+ return RNAStructReader.readRNAStructStream(new FileInputStream(sFile));\r
+ \r
+ } else {\r
+ return RNAStructReader.readRNAStructStream(new FileInputStream(sFile), \r
+ new FileInputStream(aliFile));\r
}\r
- // Close file\r
- input.close();\r
- return file;\r
}\r
- \r
- \r
\r
}\r
+\r
+\r