// alifold out line patterns\r
static String ps = "\\s*";\r
static String alignmentP = "^"+seqP+ps+"$";\r
- static String stdStructP = "^"+structP+s+"\\("+ps+floatP+s+floatP+s+floatP+ps+"\\)"+ps+"$";\r
+ static String mfeStructP = "^"+structP+s+"\\("+ps+floatP+s+floatP+s+floatP+ps+"\\)"+ps+"$";\r
static String justStructP = "^"+structP+ps+"$";\r
static String stochBTStructP = "^"+structP+s+floatP+s+floatP+ps+"$";\r
static String PStructP = "^"+structP+s+"\\["+ps+floatP+ps+"\\]"+ps+"$";\r
static String MEAStructP = "^"+structP+s+"\\{"+ps+floatP+s+"MEA="+floatP+ps+"\\}"+ps+"$";\r
static String freeEnergyP = "^"+ps+"free energy of ensemble"+ps+"="+ps+floatP+ps+"kcal/mol"+ps+"$";\r
static String ensembleFreqP = "^"+ps+"frequency of mfe structure in ensemble "+floatP+ps+"$";\r
-\r
+ \r
+ \r
public static RNAStructScoreManager readRNAStructStream(InputStream stdout)\r
throws IOException {\r
\r
assert (Pattern.matches(AlifoldLine.alignment.regex, fline)) :\r
error + "Sequence Alignment Expected";\r
structs.add(fline.trim());\r
- data.add(newEmptyScore(AlifoldResult.alifoldSeq));\r
+ data.add(newEmptyScore(AlifoldResult.consensusAlignment));\r
\r
fline = reader.readLine();\r
- assert (Pattern.matches(AlifoldLine.stdStruct.regex, fline)) :\r
+ assert (Pattern.matches(AlifoldLine.mfeStruct.regex, fline)) :\r
error + "Consensus Structure and Energy Expected";\r
Scanner sc = new Scanner(fline);\r
structs.add(sc.next());\r
for (int i = 0; i < 3; i++) {\r
scores.add(Float.parseFloat(sc.findInLine(floatP)));\r
}\r
- data.add(newSetScore(AlifoldResult.alifold, scores));\r
+ data.add(newSetScore(AlifoldResult.mfeStructure, scores));\r
\r
// Now the alifold stdout file formats diverge based on arguments\r
fline = reader.readLine();\r
structs.add(sc.next());\r
scores.add(Float.parseFloat(sc.findInLine(floatP)));\r
scores.add(Float.parseFloat(nsc.findInLine(floatP)));\r
- data.add(newSetScore(AlifoldResult.alifoldP, scores));\r
+ data.add(newSetScore(AlifoldResult.contactProbabilityStructure, scores));\r
// Jump line\r
sline = reader.readLine();\r
}\r
for (int i = 0; i < 3; i++) {\r
scores.add(Float.parseFloat(sc.findInLine(floatP)));\r
}\r
- data.add(newSetScore(AlifoldResult.alifoldCentroid, scores));\r
+ data.add(newSetScore(AlifoldResult.centroidStructure, scores));\r
}\r
else if (ftype.equals(AlifoldLine.MEAStruct)) {\r
structs.add(sc.next());\r
for (int i = 0; i < 2; i++) {\r
scores.add(Float.parseFloat(sc.findInLine(floatP)));\r
}\r
- data.add(newSetScore(AlifoldResult.alifoldMEA, scores));\r
+ data.add(newSetScore(AlifoldResult.MEAStucture, scores));\r
}\r
else if (ftype.equals(AlifoldLine.justStruct)) {\r
structs.add(sc.next());\r
- data.add(newEmptyScore(AlifoldResult.alifoldStochBT));\r
+ data.add(newEmptyScore(AlifoldResult.stochBTStructure));\r
}\r
else if (ftype.equals(AlifoldLine.stochBTStruct)) {\r
structs.add(sc.next());\r
scores.add(sc.nextFloat());\r
scores.add(sc.nextFloat());\r
- data.add(newSetScore(AlifoldResult.alifoldStochBT, scores));\r
+ data.add(newSetScore(AlifoldResult.stochBTStructure, scores));\r
}\r
else if (ftype.equals(AlifoldLine.freeEnergy)) {\r
assert (sline != null \r
+ "frequency of mfe structure in ensemble");\r
scores.add(Float.parseFloat(sc.findInLine(floatP)));\r
scores.add(Float.parseFloat(nsc.findInLine(floatP)));\r
- data.add(newSetScore(AlifoldResult.alifoldMetadata, scores));\r
+ data.add(newSetScore(AlifoldResult.ensembleValues, scores));\r
// jump line\r
sline = reader.readLine();\r
}\r
\r
assert(!ftype.equals(AlifoldLine.ensembleFreq)) :\r
error + "Wasn't expecting 'frequency of mfe structure'!";\r
- assert(!ftype.equals(AlifoldLine.stdStruct)) :\r
+ assert(!ftype.equals(AlifoldLine.mfeStruct)) :\r
error + "'Standard output' line at a place other than line 2!";\r
assert(!ftype.equals(AlifoldLine.alignment)) :\r
error + "Wasn't expecting an alignment sequence!";\r
for (int i = 0; i < rangeHolder.size(); i++) {\r
ArrayList<Float> singleS = new ArrayList<Float>(Arrays.asList(scores.get(i)));\r
TreeSet<Range> singleR = new TreeSet<Range>(Arrays.asList(rangeHolder.get(i)));\r
- sHolder.add(new Score(AlifoldResult.alifoldSeq, singleS, singleR));\r
+ sHolder.add(new Score(AlifoldResult.contactProbabilities, singleS, singleR));\r
}\r
\r
data.set(0, sHolder);\r
}\r
\r
static enum AlifoldLine {\r
- stdStruct (stdStructP),\r
+ mfeStruct (mfeStructP),\r
justStruct (justStructP),\r
stochBTStruct (stochBTStructP),\r
PStruct (PStructP),\r
\r
//Something to put in the Score objects of the alifold result which gives information\r
//about what kind of sequence it is holding in its String Id.\r
- static enum AlifoldResult {\r
- alifold, alifoldP, alifoldMEA, alifoldCentroid, alifoldStochBT, alifoldSeq, alifoldMetadata\r
+\r
+ public static enum AlifoldResult {\r
+ mfeStructure, contactProbabilityStructure, MEAStucture, centroidStructure, stochBTStructure, consensusAlignment, ensembleValues, contactProbabilities\r
}\r
\r
- \r
\r
// Print the full regex Strings for testing \r
public static void main(String[] args) {\r