X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=server%2Fcompbio%2Fcontrollers%2FSequenceController.java;h=738e2d8924e45174639f860dc9def02350ca4a9a;hb=8256bed38c0abeefe003adf6d9f126113f9cc5b3;hp=df4c98720e03b1936a2a2653aa919a50ccb354e1;hpb=025c55d49c191f24d0e06c5cbb69a9894c50af22;p=proteocache.git diff --git a/server/compbio/controllers/SequenceController.java b/server/compbio/controllers/SequenceController.java index df4c987..738e2d8 100644 --- a/server/compbio/controllers/SequenceController.java +++ b/server/compbio/controllers/SequenceController.java @@ -1,5 +1,6 @@ package compbio.controllers; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Pattern; @@ -9,7 +10,9 @@ import org.springframework.web.bind.annotation.RequestMapping; 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; @@ -68,7 +71,7 @@ public class SequenceController extends BasicController { model.put("njobs", 0); model.put("prot", trimmedsequence); model.put("searchtype", searchtype); - + String csvline = ""; if (0 < trimmedsequence.length()) { CassandraRequester cr = new CassandraRequester(); List r = cr.readProteins(trimmedsequence, searchtype); @@ -78,8 +81,23 @@ public class SequenceController extends BasicController { model.put("njobs", r.get(0).getJobid().size()); else model.put("njobs", r.size()); + csvline = "\'Job\',\'Annotation\',\'Sequence\'%0A"; + } + // form CSV file string + for (ProteinBean entry : r) { + List jobs = entry.getJobid(); + String protein = entry.getSequence(); + LinkedHashMap predictions = entry.getPredictions(); + for (String job : jobs) { + csvline += "\'" + job + "\',\'Sequence\',\'" + protein + "\',\'%0A"; + for (Map.Entry 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"; @@ -113,11 +131,27 @@ public class SequenceController extends BasicController { CassandraRequester cr = new CassandraRequester(); List r = cr.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);