import org.springframework.web.bind.annotation.RequestParam;
import compbio.engine.JobStatus;
- import compbio.cassandra.CassandraReader;
- import compbio.cassandra.DateBean;
+ import compbio.beans.DateBean;
+ import compbio.beans.TotalJobsStatisticBean;
import compbio.cassandra.DateFormatter;
- import compbio.cassandra.Total;
- import compbio.cassandra.TotalJobsStatisticBean;
- import compbio.statistic.CassandraRequester;
++
++import compbio.beans.Total;
+ import compbio.cassandra.readers.CassandraReader;
+ import compbio.cassandra.readers.DailyStatisticsReader;
-import compbio.cassandra.readers.ProteoDAO;
++
/**
* @author Alexander Sherstnev
date2 = DateFormatter.DateLongToString(longDate2, formaterYYMMDD);
model.put("date1", date1);
model.put("date2", date2);
- TotalJobsStatisticBean res = cr.countJobs(date1, date2);
+ TotalJobsStatisticBean res = reader.query(longDate1, longDate2);
model.put("result", res);
+ Map<String, Total> results = res.getDateTotal();
+ String csvline = "\'Date\',\'Total\',\'OK\',\'Stopped\',\'Error\',\'Timeout\'%0A";
+ for (Map.Entry<String, Total> entry : results.entrySet()) {
+ csvline += "\'" + entry.getKey() + "\',\'" + entry.getValue().getTotal() + "\',\'" + entry.getValue().getTotalOK() + "\',\'"
+ + entry.getValue().getTotalStopped() + "\',\'" + entry.getValue().getTotalError() + "\',\'"
+ + entry.getValue().getTotalTimeOut() + "\'%0A";
+ }
+ model.put("csvfile", csvline);
model.put("ndays", res.getDateTotal().size());
final long endTime = System.currentTimeMillis();
model.put("timeExecution", (endTime - startTime));
}
final long startTime = System.currentTimeMillis();
- CassandraRequester cr = new CassandraRequester();
- List<TotalByCounterBean> r = cr.readIpByCounter(realcounter);
+ ReaderByCounter reader = new ReaderByCounter();
+ List<TotalByCounterBean> r = reader.readIpByCounter(realcounter);
model.put("results", r);
model.put("njobs", 0);
+ String csvline = "";
if (null != r) {
model.put("njobs", r.size());
+ csvline = "\'Job%20 count\', \'IP\'%0A";
}
+ // form line for CSV file
+ for (TotalByCounterBean b : r) {
+ csvline += "\'" + b.getTotaljobs() + "\',\'" + b.getName() + "\'%0A";
+ }
+ model.put("csvfile", csvline);
final long endTime = System.currentTimeMillis();
model.put("timeExecution", (endTime - startTime));
model.put("counter", realcounter);
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
- import compbio.cassandra.DataBase;
- import compbio.cassandra.ProteinBean;
- import compbio.cassandra.Total;
- import compbio.cassandra.TotalByCounterBean;
- import compbio.statistic.CassandraRequester;
+ import compbio.beans.ProteinBean;
+ import compbio.beans.TotalByCounterBean;
+ import compbio.cassandra.readers.ReaderByCounter;
+ import compbio.cassandra.readers.SequenceReader;
-import compbio.statistic.CassandraRequester;
/**
* Spring controller for sequence queries. This version works in the servlet
model.put("njobs", 0);
model.put("prot", trimmedsequence);
model.put("searchtype", searchtype);
-
+ String csvline = "";
if (0 < trimmedsequence.length()) {
- CassandraRequester cr = new CassandraRequester();
- List<ProteinBean> r = cr.readProteins(trimmedsequence, searchtype);
- model.put("results", r);
- if (null != r) {
+ SequenceReader reader = new SequenceReader();
+ List<ProteinBean> result = reader.readProteins(trimmedsequence, searchtype);
+ model.put("results", result);
+ if (null != result) {
if (searchtype.equals("whole"))
- model.put("njobs", r.get(0).getJobid().size());
+ model.put("njobs", result.get(0).getJobid().size());
else
- model.put("njobs", r.size());
+ model.put("njobs", result.size());
+ csvline = "\'Job\',\'Annotation\',\'Sequence\'%0A";
+ }
+ // form CSV file string
- for (ProteinBean entry : r) {
++ for (ProteinBean entry : result) {
+ List<String> jobs = entry.getJobid();
+ String protein = entry.getSequence();
+ LinkedHashMap<String, String> predictions = entry.getPredictions();
+ for (String job : jobs) {
+ csvline += "\'" + job + "\',\'Sequence\',\'" + protein + "\',\'%0A";
+ for (Map.Entry<String, String> pr : predictions.entrySet()) {
+ csvline += "\'\',\'" + pr.getKey() + "\',\'" + pr.getValue() + "\'%0A";
+ }
+ }
}
}
+ model.put("csvfile", csvline);
+
final long endTime = System.currentTimeMillis();
model.put("timeExecution", (endTime - startTime));
return "reportProteinSequences";
return "query/SequenceCounts";
}
- CassandraRequester cr = new CassandraRequester();
- List<TotalByCounterBean> r = cr.readProteinByCounter(realcounter);
- ReaderByCounter reader = new ReaderByCounter();
+
++ ReaderByCounter reader = new ReaderByCounter();
+ List<TotalByCounterBean> r = reader.readProteinByCounter(realcounter);
+ model.put("results", r);
model.put("njobs", 0);
+ String csvline = "";
if (null != r) {
model.put("njobs", r.size());
+ csvline = "\'Job%20 count\', \'Protein%20Sequence\'%0A";
}
+ // form line for CSV file
+
+ for (TotalByCounterBean b : r) {
+ if (b.getName().equals("")) {
+ csvline += "\'" + b.getTotaljobs() + "\',\'Alignment%20job\'%0A";
+ // fix problem with records without protein sequence (alignment
+ // jobs)
+ b.setName("Alignment job");
+ } else {
+ csvline += "\'" + b.getTotaljobs() + "\',\'" + b.getName() + "\'%0A";
+ }
+ }
+ model.put("csvfile", csvline);
+
+ model.put("results", r);
final long endTime = System.currentTimeMillis();
model.put("timeExecution", (endTime - startTime));
model.put("counter", realcounter);
/*
* query: total number of jobs for the period from date1 till date2
- */
+ */
public TotalJobsStatisticBean countJobs(String date1, String date2) {
- /* if (null == date1) {
- date1 = "1970/1/1";
- }
- if (null == date2) {
- date1 = "2100/1/1";
- }
- if (!isThisDateValid(date1, formatYYMMDD) || !isThisDateValid(date2, formatYYMMDD)) {
- System.out.println("CassandraRequester.countJobs: wrong format for date1 " + date1 + "or date2 " + date2);
- return null;
- }*/
+ /*
+ * if (null == date1) { date1 = "1970/1/1"; } if (null == date2) { date1
+ * = "2100/1/1"; } if (!isThisDateValid(date1, formatYYMMDD) ||
+ * !isThisDateValid(date2, formatYYMMDD)) { System.out.println(
+ * "CassandraRequester.countJobs: wrong format for date1 " + date1 +
+ * "or date2 " + date2); return null; }
+ */
SetDateRange();
long dateStart = DateParsing(date1, formatYYMMDD);
long dateEnd = DateParsing(date2, formatYYMMDD);