1 package compbio.controllers;
5 import org.springframework.stereotype.Controller;
6 import org.springframework.web.bind.annotation.RequestMapping;
7 import org.springframework.web.bind.annotation.RequestMethod;
8 import org.springframework.web.bind.annotation.RequestParam;
10 import compbio.cassandra.readers.FeaturesReader;
14 * Spring controller for dealing with proteomes. This version works in the
17 * @author Alexander Sherstnev
18 * @author Natasha Sherstneva
21 * @version 1.0 December 2014
24 @RequestMapping("/proteomes")
25 public class ProteomeController extends BasicController {
27 @RequestMapping(value = "/load", method = RequestMethod.GET)
28 public String loadProteome(Map<String, Object> model) {
29 model.put("username", getPrincipalName());
30 return "support/Notimplemented";
33 @RequestMapping(value = "view", method = RequestMethod.GET)
34 public String viewProteome(Map<String, Object> model) {
35 model.put("username", getPrincipalName());
36 return "support/Notimplemented";
39 @RequestMapping(value = "launch", method = RequestMethod.GET)
40 public String launchjobProteome(Map<String, Object> model) {
41 model.put("username", getPrincipalName());
42 return "support/Notimplemented";
45 @RequestMapping(value = "load/result", method = RequestMethod.GET)
46 public String countSequences(@RequestParam("TypeFeatures") String typeFeature, @RequestParam("Percent") String percent,
47 Map<String, Object> model) {
48 model.put("username", getPrincipalName());
49 final long startTime = System.currentTimeMillis();
51 if (percent.equals("")) {
52 model.put("error", "The value must not be empty");
53 model.put("type", typeFeature);
54 model.put("value", percent);
55 return "query/SSFeatures";
60 realpercent = Integer.parseInt(percent.trim());
61 } catch (NumberFormatException e) {
62 model.put("error", "The value must be an integer number");
63 model.put("value", percent);
64 return "query/SSFeatures";
67 if (realpercent < 1) {
68 model.put("error", "The value must be greater than 0");
69 model.put("value", percent);
70 return "query/SSFeatures";
73 if (realpercent > 100) {
74 model.put("error", "The value must be less than 100");
75 model.put("value", percent);
76 return "query/SSFeatures";
79 FeaturesReader reader = new FeaturesReader();
80 Map<String, String> r = reader.readProteinsPrediction(typeFeature, realpercent);
81 model.put("results", r);
82 model.put("njobs", 0);
84 model.put("njobs", r.size());
86 final long endTime = System.currentTimeMillis();
87 model.put("timeExecution", (endTime - startTime));
88 model.put("feature", typeFeature);
89 model.put("percent", realpercent);
90 return "reports/SSFeatures";