Merge branch 'master' into PROT-9-webservice
[proteocache.git] / datadb / compbio / cassandra / CassandraReaderOld.java
@@ -11,13 +11,19 @@ import org.apache.log4j.Logger;
 import com.datastax.driver.core.Row;
 import com.datastax.driver.core.Session;
 import com.datastax.driver.core.ResultSet;
+
+import compbio.beans.DateBean;
+import compbio.beans.JobBean;
+import compbio.beans.ProteinBean;
+import compbio.beans.Total;
 import compbio.engine.JobStatus;
+import compbio.engine.Pair;
 
-public class CassandraReader {
+public class CassandraReaderOld {
        private Session session;
        private static Logger log = Logger.getLogger(CassandraNativeConnector.class);
 
-       public CassandraReader() {
+       public CassandraReaderOld() {
                Session inis = CassandraNativeConnector.getSession();
                setSession(inis);
        }
@@ -198,6 +204,38 @@ public class CassandraReader {
        }
 
        /*
+        * getting protein sequence from the db ProteinRow
+        */
+       public Map<String, String> ReadProtein() {
+               //final long startTime = System.currentTimeMillis();
+               String com = "SELECT * FROM ProteinRow;";
+               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();
+               Map<String, String> output = new HashMap<String, String>();
+               for (Row r : rows) {
+                       String protein = r.getString("Protein");
+                       String prediction = findJnetpred(r.getMap("Predictions", String.class, String.class));
+                       if (protein != null && prediction != null) {
+                               output.put(protein, prediction);
+                       }
+               }
+               //final long endTime = System.currentTimeMillis();
+               return output;
+       }
+
+       private String findJnetpred(Map<String, String> pred) {
+               if (pred != null) {
+                       if (pred.containsKey("jnetpred"))
+                               return pred.get("jnetpred");
+               }
+               return null;
+       }
+
+       /*
         * getting protein sequences by counter
         */
        public Map<String, Integer> ReadProteinSequenceByCounter() {
@@ -215,7 +253,6 @@ public class CassandraReader {
                int c = 0;
                for (Row r : rows) {
                        String protein = r.getString("Protein");
-                       String id = r.getString("JobID");
                        if (res.containsKey(protein))
                                res.put(protein, res.get(protein) + 1);
                        else
@@ -244,7 +281,6 @@ public class CassandraReader {
                int c = 0;
                for (Row r : rows) {
                        String ip = r.getString("ip");
-                       String id = r.getString("JobID");
                        if (res.containsKey(ip))
                                res.put(ip, res.get(ip) + 1);
                        else
@@ -275,6 +311,12 @@ public class CassandraReader {
                Row row1 = results1.one();
                JobBean res = new JobBean(row.getString("Protein"), row.getString("JobID"), row.getString("DataBegin"), row.getString("DataEnd"),
                                row.getString("ip"), row1.getMap("Predictions", String.class, String.class));
+               String program = row.getString("ProgramName");
+               String version = row.getString("ProgramVersion");
+               if (null != program && null != version) {
+                       res.setProgramName(program);
+                       res.setProgramVersion(version);
+               }
                System.out.println("Query time is " + (queryTime - startTime) + " msec");
                final long endTime = System.currentTimeMillis();
                System.out.println(" rows analysed, execution time is " + (endTime - startTime) + " msec");