Category.java updated to include new category for RNA folding. RNAalifoldParameters...
[jabaws.git] / datamodel / compbio / data / sequence / RNAStructReader.java
index 5eec46f..4292554 100644 (file)
@@ -34,7 +34,7 @@ public class RNAStructReader {
        // 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
@@ -42,7 +42,8 @@ public class RNAStructReader {
        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
@@ -60,17 +61,17 @@ public class RNAStructReader {
                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
@@ -91,7 +92,7 @@ public class RNAStructReader {
                                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
@@ -100,24 +101,24 @@ public class RNAStructReader {
                                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
@@ -127,7 +128,7 @@ public class RNAStructReader {
                                                + "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
@@ -135,7 +136,7 @@ public class RNAStructReader {
 \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
@@ -218,7 +219,7 @@ public class RNAStructReader {
                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
@@ -249,7 +250,7 @@ public class RNAStructReader {
        }\r
        \r
        static enum AlifoldLine {\r
-               stdStruct (stdStructP),\r
+               mfeStruct (mfeStructP),\r
                justStruct (justStructP),\r
                stochBTStruct (stochBTStructP),\r
                PStruct (PStructP),\r
@@ -272,11 +273,11 @@ public class RNAStructReader {
 \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