import compbio.cassandra.readers.FeaturesReader;
/**
- * Spring controller for sequence queries. This version works in the servlet
- * style.
+ * Spring controller for protein secondary structure features. This version
+ * works in the servlet style.
*
* @author Alexander Sherstnev
* @author Natasha Sherstneva
@RequestMapping("/features")
public class SSFeaturesController extends BasicController {
+ /**
+ * form a query page for protein secondary structure feaatures: Proteins
+ * with given fraction of H/E (helix/beta sheets)
+ *
+ * @param model
+ * MVC model object
+ *
+ * @return link to the report JSP page
+ */
@RequestMapping(value = "query", method = RequestMethod.GET)
public String formCounterQuery(Map<String, Object> model) {
model.put("username", getPrincipalName());
return "query/SSFeatures";
}
+ /**
+ * form a results page for protein secondary structure features: Proteins
+ * with given fraction of H/E (helix/beta sheets) All proteins with E/H
+ * higher than a given percent of the length are returned
+ *
+ * @param model
+ * MVC model object
+ * @param typeFeature
+ * type of SS: H/E (helix/beta sheets)
+ * @param percent
+ * fraction of the protein length predicted as H/E (helix/beta
+ * sheets)
+ *
+ * @return link to the report JSP page
+ */
@RequestMapping(value = "results", method = RequestMethod.GET)
public String countSequences(@RequestParam("TypeFeatures") String typeFeature, @RequestParam("Percent") String percent,
Map<String, Object> model) {
Map<String, String> r = reader.readProteinsPrediction(typeFeature, realpercent);
model.put("results", r);
model.put("njobs", 0);
- String csvline = "";
+ StringBuilder csvline = new StringBuilder("");
if (null != r) {
model.put("njobs", r.size());
- csvline = "\'Prediction%20number\',\'Protein%20Sequence\', \'Secondary%20Structure%20Prediction\'%0A";
- }
+ csvline.append("\'Prediction%20number\',\'Protein%20Sequence\', \'Secondary%20Structure%20Prediction\'%0A");
- // form line for CSV file
- int counter = 1;
- for (Map.Entry<String, String> entry : r.entrySet()) {
- csvline += "\'" + counter + "\',\'" + entry.getKey() + "\',\'" + entry.getValue() + "\'%0A";
- ++counter;
+ // form line for CSV file
+ int counter = 1;
+ for (Map.Entry<String, String> entry : r.entrySet()) {
+ csvline.append("\'" + counter + "\',\'" + entry.getKey() + "\',\'" + entry.getValue() + "\'%0A");
+ ++counter;
+ }
}
- model.put("csvfile", csvline);
+ model.put("csvfile", csvline.toString());
final long endTime = System.currentTimeMillis();
model.put("timeExecution", (endTime - startTime));