import com.datastax.driver.core.Session;
import com.datastax.driver.core.ResultSet;
-import compbio.engine.ProteoCachePropertyHelperManager;
-import compbio.util.PropertyHelper;
-
public class CassandraReader {
private Session session;
private static Logger log = Logger.getLogger(CassandraNativeConnector.class);
}
/*
+ * getting data from the db
+ */
+ public List<Pair<String, String>> ReadProteinData(long day) {
+ final long startTime = System.currentTimeMillis();
+ String com = "SELECT JobID, Protein FROM ProteinData WHERE jobtime = " + day + ";";
+ 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");
+ List<Pair<String, String>> res = new ArrayList<Pair<String, String>>();
+ int c = 0;
+ for (Row r : rows) {
+ Pair<String, String> pair = new Pair<String, String>(r.getString("JobID"), r.getString("Protein"));
+ res.add(pair);
+ ++c;
+ }
+ final long endTime = System.currentTimeMillis();
+ System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec");
+ return res;
+ }
+ /*
* getting data from the db JobDateInfo
*/
- public long ReadDateTable(long queryDate) {
- ResultSet results = session.execute("SELECT Total FROM JobDateInfo WHERE jobday = " + queryDate + ";");
+ public List<Long> ReadDateTable(long queryDate) {
+ ResultSet results = session.execute("SELECT * FROM JobDateInfo WHERE jobday = " + queryDate + ";");
if (results.isExhausted())
- return 0;
+ return null;
Row therow = results.one();
- long res = therow.getLong("Total");
+ List<Long> res = new ArrayList<Long>();
+ res.add(therow.getLong("Total"));
+ res.add(therow.getLong("TotalOK"));
+ res.add(therow.getLong("TotalStopped"));
+ res.add(therow.getLong("TotalError"));
+ res.add(therow.getLong("TotalTimeOut"));
if (!results.isExhausted()) {
Date date = new Date (queryDate);
log.warn("CassandraReader.ReadDateTable: date row for " + date.toString () + " ("+ queryDate + ") duplicated ");
}
return res;
}
+
/*
* getting whole protein sequence from the db ProteinRow
*/
- public List<StructureProteinPrediction> ReadWholeSequence(String queryProtein) {
+ public List<AnnotatedProteinSequenceBean> ReadWholeSequence(String queryProtein) {
final long startTime = System.currentTimeMillis();
String com = "SELECT JobID, Predictions FROM ProteinRow WHERE Protein = '" + queryProtein + "';";
System.out.println("Command: " + com);
List<Row> rows = results.all();
System.out.println("Query time is " + (queryTime - startTime) + " msec");
System.out.println(" rows analysed, " + rows.size());
- List<StructureProteinPrediction> res = new ArrayList<StructureProteinPrediction>();
+ List<AnnotatedProteinSequenceBean> res = new ArrayList<AnnotatedProteinSequenceBean>();
int c = 0;
for (Row r : rows) {
- StructureProteinPrediction structure = new StructureProteinPrediction(queryProtein, r.getString("JobID"), r.getMap(
+ AnnotatedProteinSequenceBean structure = new AnnotatedProteinSequenceBean(queryProtein, r.getString("JobID"), r.getMap(
"Predictions", String.class, String.class));
res.add(structure);
++c;
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
*/
- public List<StructureProteinPrediction> ReadPartOfSequence(String queryProtein) {
+ public List<AnnotatedProteinSequenceBean> ReadPartOfSequence(String queryProtein) {
final long startTime = System.currentTimeMillis();
String com = "SELECT * FROM ProteinRow;";
System.out.println("Command: " + com);
List<Row> rows = results.all();
System.out.println("Query time is " + (queryTime - startTime) + " msec");
System.out.println(" rows analysed, " + rows.size());
- List<StructureProteinPrediction> res = new ArrayList<StructureProteinPrediction>();
+ List<AnnotatedProteinSequenceBean> res = new ArrayList<AnnotatedProteinSequenceBean>();
int c = 0;
for (Row r : rows) {
String prot = r.getString("Protein");
if (prot.matches("(.*)" + queryProtein + "(.*)")) {
- StructureProteinPrediction structure = new StructureProteinPrediction(prot, r.getString("JobID"), r.getMap("Predictions",
+ AnnotatedProteinSequenceBean structure = new AnnotatedProteinSequenceBean(prot, r.getString("JobID"), r.getMap("Predictions",
String.class, String.class));
res.add(structure);
++c;
*/
public Map<String, Integer> ReadProteinSequenceByCounter() {
final long startTime = System.currentTimeMillis();
- String com = "SELECT Protein FROM ProteinRow;";
+ String com = "SELECT Protein, JobID FROM ProteinRow;";
System.out.println("Command: " + com);
ResultSet results = session.execute(com);
if (results.isExhausted())
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
}
/*
- * getting protein sequences by counter
+ * 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) {
final long startTime = System.currentTimeMillis();