package compbio.controllers; import java.util.List; import java.util.Map; import org.springframework.stereotype.Controller; 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.statistic.CassandraRequester; /** * @author Alexander Sherstnev * @author Natasha Sherstneva */ @Controller public class SequenceSearchController { @RequestMapping(value = "/sequence/query1", method = RequestMethod.GET) public String formSequenceQuery(Map model) { return "queryProteinSequence"; } @RequestMapping(value = "/sequence/query2", method = RequestMethod.GET) public String formCounterQuery(Map model) { return "queryProteinSequenceCounter"; } @RequestMapping(value = "/sequence/querysequence", method = RequestMethod.GET) public String findSequence(@RequestParam("sequence") String sequence, @RequestParam("protein") String flag, Map model) { final long startTime = System.currentTimeMillis(); String trimmedsequence = sequence.replaceAll("\\s", ""); model.put("njobs", 0); model.put("prot", trimmedsequence); model.put("flag", flag); if (0 < trimmedsequence.length()) { CassandraRequester cr = new CassandraRequester(); List r = cr.readProteins(trimmedsequence, flag); model.put("results", r); if (null != r) { System.out.println("result size = " + r.size()); model.put("njobs", r.size()); } } final long endTime = System.currentTimeMillis(); model.put("timeExecution", (endTime - startTime)); return "reportProteinSequences"; } @RequestMapping(value = "/sequence/querycounter", method = RequestMethod.GET) public String countSequences(@RequestParam("counterJob") int counter, Map model) { final long startTime = System.currentTimeMillis(); CassandraRequester cr = new CassandraRequester(); List r = cr.readProteinByCounter(counter); model.put("results", r); model.put("njobs", 0); if (null != r) { model.put("njobs", r.size()); } final long endTime = System.currentTimeMillis(); model.put("timeExecution", (endTime - startTime)); model.put("counter", counter); return "reportProteinSequencesCounter"; } }