JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / analysis / Grouping.js
1 Clazz.declarePackage ("jalview.analysis");\r
2 Clazz.load (null, "jalview.analysis.Grouping", ["jalview.datamodel.SequenceGroup", "java.lang.StringBuilder", "java.util.ArrayList", "$.HashMap"], function () {\r
3 c$ = Clazz.declareType (jalview.analysis, "Grouping");\r
4 c$.makeGroupsFrom = Clazz.defineMethod (c$, "makeGroupsFrom", \r
5 function (sequences, selectedChars, list) {\r
6 var gps =  new java.util.HashMap ();\r
7 var width = 0;\r
8 var i;\r
9 var pgroup =  new java.util.HashMap ();\r
10 if (list != null) {\r
11 for (var sg, $sg = list.iterator (); $sg.hasNext () && ((sg = $sg.next ()) || true);) {\r
12 for (var sq, $sq = sg.getSequences (null).iterator (); $sq.hasNext () && ((sq = $sq.next ()) || true);) {\r
13 pgroup.put (sq.toString (), sg);\r
14 }\r
15 }\r
16 }for (i = 0; i < sequences.length; i++) {\r
17 var schar = selectedChars[i];\r
18 var pgp = pgroup.get ((sequences[i]).toString ());\r
19 if (pgp != null) {\r
20 schar = pgp.getName () + ":" + schar;\r
21 }var svec = gps.get (schar);\r
22 if (svec == null) {\r
23 svec =  new java.util.ArrayList ();\r
24 gps.put (schar, svec);\r
25 }if (width < sequences[i].getLength ()) {\r
26 width = sequences[i].getLength ();\r
27 }svec.add (sequences[i]);\r
28 }\r
29 var groups =  new Array (gps.size ());\r
30 i = 0;\r
31 for (var key, $key = gps.keySet ().iterator (); $key.hasNext () && ((key = $key.next ()) || true);) {\r
32 var group =  new jalview.datamodel.SequenceGroup (gps.get (key), "Subseq: " + key, null, true, true, false, 0, width - 1);\r
33 groups[i++] = group;\r
34 }\r
35 gps.clear ();\r
36 pgroup.clear ();\r
37 return groups;\r
38 }, "~A,~A,java.util.List");\r
39 c$.makeGroupsFromCols = Clazz.defineMethod (c$, "makeGroupsFromCols", \r
40 function (sequences, cs, list) {\r
41 var gps =  new java.util.HashMap ();\r
42 var pgroup =  new java.util.HashMap ();\r
43 if (list != null) {\r
44 for (var sg, $sg = list.iterator (); $sg.hasNext () && ((sg = $sg.next ()) || true);) {\r
45 for (var sq, $sq = sg.getSequences (null).iterator (); $sq.hasNext () && ((sq = $sq.next ()) || true);) {\r
46 pgroup.put (sq.toString (), sg);\r
47 }\r
48 }\r
49 }var spos =  Clazz.newIntArray (cs.getSelected ().size (), 0);\r
50 var width = -1;\r
51 var i = 0;\r
52 for (var pos, $pos = cs.getSelected ().iterator (); $pos.hasNext () && ((pos = $pos.next ()) || true);) {\r
53 spos[i++] = pos.intValue ();\r
54 }\r
55 ;for (i = 0; i < sequences.length; i++) {\r
56 var slen = sequences[i].getLength ();\r
57 if (width < slen) {\r
58 width = slen;\r
59 }var pgp = pgroup.get ((sequences[i]).toString ());\r
60 var schar =  new StringBuilder ();\r
61 if (pgp != null) {\r
62 schar.append (pgp.getName () + ":");\r
63 }for (var p, $p = 0, $$p = spos; $p < $$p.length && ((p = $$p[$p]) || true); $p++) {\r
64 if (p >= slen) {\r
65 schar.append ("~");\r
66 } else {\r
67 schar.append (sequences[i].getCharAt (p));\r
68 }}\r
69 var svec = gps.get (schar.toString ());\r
70 if (svec == null) {\r
71 svec =  new java.util.ArrayList ();\r
72 gps.put (schar.toString (), svec);\r
73 }svec.add (sequences[i]);\r
74 }\r
75 var groups =  new Array (gps.size ());\r
76 i = 0;\r
77 for (var key, $key = gps.keySet ().iterator (); $key.hasNext () && ((key = $key.next ()) || true);) {\r
78 var group =  new jalview.datamodel.SequenceGroup (gps.get (key), "Subseq: " + key, null, true, true, false, 0, width - 1);\r
79 groups[i++] = group;\r
80 }\r
81 gps.clear ();\r
82 pgroup.clear ();\r
83 return groups;\r
84 }, "~A,jalview.datamodel.ColumnSelection,java.util.List");\r
85 c$.divideByFeature = Clazz.defineMethod (c$, "divideByFeature", \r
86 function (featureLabels, groupLabels, start, stop, sequences, exgroups, method) {\r
87 }, "~A,~A,~N,~N,~A,java.util.Vector,~S");\r
88 });\r