Add servlets for queries with IP
[proteocache.git] / datadb / compbio / cassandra / CassandraReader.java
index 6e3587b..e75f148 100644 (file)
@@ -94,6 +94,7 @@ public class CassandraReader {
                }
                return res;
        }
+
        /*
         * getting whole protein sequence from the db ProteinRow
         */
@@ -113,10 +114,6 @@ public class CassandraReader {
                for (Row r : rows) {
                        AnnotatedProteinSequenceBean structure = new AnnotatedProteinSequenceBean(queryProtein, r.getString("JobID"), r.getMap(
                                        "Predictions", String.class, String.class));
-                       if (structure.getPrediction().containsKey("jnetpred"))
-                               structure.setJnetpred(structure.getPrediction().get("jnetpred"));
-                       else
-                               structure.setJnetpred("");
                        res.add(structure);
                        ++c;
                }
@@ -125,6 +122,37 @@ public class CassandraReader {
                return res;
        }
 
+       
+       /*
+        * getting jobs by ip
+        */
+       public List<Pair<String, String>> ReadIpWithJobs(String ip) {
+               final long startTime = System.currentTimeMillis();
+               String com = "SELECT JobID, Protein, FinalStatus FROM ProteinLog WHERE ip = '" + ip + "';";
+               System.out.println("Command: " + com);
+               ResultSet results = session.execute(com);
+               if (results.isExhausted())
+                       return null;
+               final long queryTime = System.currentTimeMillis();
+               List<Row> rows = results.all();
+               List<Pair<String, String>> res = new ArrayList<Pair<String, String>>();
+               System.out.println("Query time is " + (queryTime - startTime) + " msec");
+               System.out.println(" rows analysed,  " + rows.size());
+               int c = 0;
+               for (Row r : rows) {
+                       if (r.getString("FinalStatus").equals("OK")) { 
+                               Pair<String, String> pair = new Pair<String, String>(r.getString("JobID"), r.getString("Protein"));
+                               System.out.println(pair.getElement0());
+                               System.out.println(pair.getElement1());
+                               res.add(pair);
+                               ++c;
+                       }
+               }
+               final long endTime = System.currentTimeMillis();
+               System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec");
+               return res;
+       }
+
        /*
         * getting part of protein sequence from the db ProteinRow
         */
@@ -185,6 +213,35 @@ public class CassandraReader {
        }
 
        /*
+        * getting ip by counter
+        */
+       public Map<String, Integer> ReadIpByCounter() {
+               final long startTime = System.currentTimeMillis();
+               String com = "SELECT JobID, ip FROM ProteinLog;";
+               System.out.println("Command: " + com);
+               ResultSet results = session.execute(com);
+               if (results.isExhausted())
+                       return null;
+               final long queryTime = System.currentTimeMillis();
+               List<Row> rows = results.all();
+               System.out.println("Query time is " + (queryTime - startTime) + " msec");
+               System.out.println(" rows analysed,  " + rows.size());
+               Map<String, Integer> res = new HashMap<String, Integer>();
+               int c = 0;
+               for (Row r : rows) {
+                       String protein = r.getString("ip");
+                       String id = r.getString("JobID");
+                       if (res.containsKey(protein))
+                               res.put(protein, res.get(protein) + 1);
+                       else
+                               res.put(protein, 1);
+               }
+               final long endTime = System.currentTimeMillis();
+               System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec");
+               return res;
+       }
+
+       /*
         * getting log info for jobid
         */
        public StructureJobLog ReadJobLog(String jobid) {