1 Clazz.declarePackage ("jalview.datamodel");
\r
2 Clazz.load (null, "jalview.datamodel.AlignedCodonFrame", ["jalview.datamodel.Mapping", "jalview.util.MappingUtils", "java.util.ArrayList"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 this.dnaToProt = null;
\r
6 Clazz.instantialize (this, arguments);
\r
7 }, jalview.datamodel, "AlignedCodonFrame");
\r
8 Clazz.makeConstructor (c$,
\r
11 Clazz.defineMethod (c$, "addMap",
\r
12 function (dnaseq, aaseq, map) {
\r
14 if (this.dnaSeqs != null) {
\r
15 nlen = this.dnaSeqs.length + 1;
\r
16 }var ndna = new Array (nlen);
\r
17 var ndtp = new Array (nlen);
\r
18 if (this.dnaSeqs != null) {
\r
19 System.arraycopy (this.dnaSeqs, 0, ndna, 0, this.dnaSeqs.length);
\r
20 System.arraycopy (this.dnaToProt, 0, ndtp, 0, this.dnaSeqs.length);
\r
21 }this.dnaSeqs = ndna;
\r
22 this.dnaToProt = ndtp;
\r
24 this.dnaSeqs[nlen] = (dnaseq.getDatasetSequence () == null) ? dnaseq : dnaseq.getDatasetSequence ();
\r
25 var mp = new jalview.datamodel.Mapping (map);
\r
26 mp.to = (aaseq.getDatasetSequence () == null) ? aaseq : aaseq.getDatasetSequence ();
\r
27 this.dnaToProt[nlen] = mp;
\r
28 }, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI,jalview.util.MapList");
\r
29 Clazz.defineMethod (c$, "getdnaSeqs",
\r
31 return this.dnaSeqs;
\r
33 Clazz.defineMethod (c$, "getAaSeqs",
\r
35 if (this.dnaToProt == null) {
\r
37 }var sqs = new Array (this.dnaToProt.length);
\r
38 for (var sz = 0; sz < this.dnaToProt.length; sz++) {
\r
39 sqs[sz] = this.dnaToProt[sz].to;
\r
43 Clazz.defineMethod (c$, "getdnaToProt",
\r
45 if (this.dnaToProt == null) {
\r
47 }var sqs = new Array (this.dnaToProt.length);
\r
48 for (var sz = 0; sz < this.dnaToProt.length; sz++) {
\r
49 sqs[sz] = this.dnaToProt[sz].map;
\r
53 Clazz.defineMethod (c$, "getProtMappings",
\r
55 return this.dnaToProt;
\r
57 Clazz.defineMethod (c$, "getMappingForSequence",
\r
59 if (this.dnaSeqs == null) {
\r
61 }var seqDs = seq.getDatasetSequence ();
\r
62 seqDs = seqDs != null ? seqDs : seq;
\r
63 for (var ds = 0; ds < this.dnaSeqs.length; ds++) {
\r
64 if (this.dnaSeqs[ds] === seqDs || this.dnaToProt[ds].to === seqDs) {
\r
65 return this.dnaToProt[ds];
\r
68 }, "jalview.datamodel.SequenceI");
\r
69 Clazz.defineMethod (c$, "getAaForDnaSeq",
\r
70 function (dnaSeqRef) {
\r
71 if (this.dnaSeqs == null) {
\r
73 }var dnads = dnaSeqRef.getDatasetSequence ();
\r
74 for (var ds = 0; ds < this.dnaSeqs.length; ds++) {
\r
75 if (this.dnaSeqs[ds] === dnaSeqRef || this.dnaSeqs[ds] === dnads) {
\r
76 return this.dnaToProt[ds].to;
\r
79 }, "jalview.datamodel.SequenceI");
\r
80 Clazz.defineMethod (c$, "getDnaForAaSeq",
\r
81 function (aaSeqRef) {
\r
82 if (this.dnaToProt == null) {
\r
84 }var aads = aaSeqRef.getDatasetSequence ();
\r
85 for (var as = 0; as < this.dnaToProt.length; as++) {
\r
86 if (this.dnaToProt[as].to === aaSeqRef || this.dnaToProt[as].to === aads) {
\r
87 return this.dnaSeqs[as];
\r
90 }, "jalview.datamodel.SequenceI");
\r
91 Clazz.defineMethod (c$, "involvesSequence",
\r
93 return this.getAaForDnaSeq (seq) != null || this.getDnaForAaSeq (seq) != null;
\r
94 }, "jalview.datamodel.SequenceI");
\r
95 Clazz.defineMethod (c$, "markMappedRegion",
\r
96 function (seq, index, results) {
\r
97 if (this.dnaToProt == null) {
\r
100 var ds = seq.getDatasetSequence ();
\r
101 for (var mi = 0; mi < this.dnaToProt.length; mi++) {
\r
102 if (this.dnaSeqs[mi] === seq || this.dnaSeqs[mi] === ds) {
\r
103 codon = this.dnaToProt[mi].map.locateInTo (index, index);
\r
104 if (codon != null) {
\r
105 for (var i = 0; i < codon.length; i += 2) {
\r
106 results.addResult (this.dnaToProt[mi].to, codon[i], codon[i + 1]);
\r
108 }} else if (this.dnaToProt[mi].to === seq || this.dnaToProt[mi].to === ds) {
\r
110 codon = this.dnaToProt[mi].map.locateInFrom (index, index);
\r
111 if (codon != null) {
\r
112 for (var i = 0; i < codon.length; i += 2) {
\r
113 results.addResult (this.dnaSeqs[mi], codon[i], codon[i + 1]);
\r
116 }, "jalview.datamodel.SequenceI,~N,jalview.datamodel.SearchResults");
\r
117 Clazz.defineMethod (c$, "getDnaPosition",
\r
118 function (seq, aaPos) {
\r
120 for (var i = 0; i < this.dnaToProt.length; i++) {
\r
121 if (this.dnaSeqs[i] === seq) {
\r
122 ml = this.getdnaToProt ()[i];
\r
125 return ml == null ? null : ml.locateInFrom (aaPos, aaPos);
\r
126 }, "jalview.datamodel.SequenceI,~N");
\r
127 Clazz.defineMethod (c$, "findAlignedSequence",
\r
128 function (seq, al) {
\r
129 if (this.dnaToProt != null) {
\r
130 for (var i = 0; i < this.dnaToProt.length; i++) {
\r
131 if (this.dnaSeqs[i] === seq) {
\r
132 for (var sourceAligned, $sourceAligned = al.getSequences ().iterator (); $sourceAligned.hasNext () && ((sourceAligned = $sourceAligned.next ()) || true);) {
\r
133 if (this.dnaToProt[i].to === sourceAligned.getDatasetSequence ()) {
\r
134 return sourceAligned;
\r
137 }if (this.dnaToProt != null) {
\r
138 for (var i = 0; i < this.dnaToProt.length; i++) {
\r
139 if (this.dnaToProt[i].to === seq) {
\r
140 for (var sourceAligned, $sourceAligned = al.getSequences ().iterator (); $sourceAligned.hasNext () && ((sourceAligned = $sourceAligned.next ()) || true);) {
\r
141 if (this.dnaSeqs[i] === sourceAligned.getDatasetSequence ()) {
\r
142 return sourceAligned;
\r
146 }, "jalview.datamodel.SequenceI,jalview.datamodel.AlignmentI");
\r
147 Clazz.defineMethod (c$, "getMappedRegion",
\r
148 function (mappedFrom, mappedTo, pos) {
\r
149 var targetDs = mappedFrom.getDatasetSequence () == null ? mappedFrom : mappedFrom.getDatasetSequence ();
\r
150 var sourceDs = mappedTo.getDatasetSequence () == null ? mappedTo : mappedTo.getDatasetSequence ();
\r
151 if (targetDs == null || sourceDs == null || this.dnaToProt == null) {
\r
153 }for (var mi = 0; mi < this.dnaToProt.length; mi++) {
\r
154 if (this.dnaSeqs[mi] === targetDs && this.dnaToProt[mi].to === sourceDs) {
\r
155 var codon = this.dnaToProt[mi].map.locateInFrom (pos, pos);
\r
156 if (codon != null) {
\r
160 }, "jalview.datamodel.SequenceI,jalview.datamodel.SequenceI,~N");
\r
161 Clazz.defineMethod (c$, "getMappedCodon",
\r
162 function (protein, aaPos) {
\r
163 if (this.dnaToProt == null) {
\r
167 for (var i = 0; i < this.dnaToProt.length; i++) {
\r
168 if (this.dnaToProt[i].to === protein) {
\r
169 ml = this.getdnaToProt ()[i];
\r
170 dnaSeq = this.dnaSeqs[i].getSequence ();
\r
175 }var codonPos = ml.locateInFrom (aaPos, aaPos);
\r
176 if (codonPos == null) {
\r
178 }codonPos = jalview.util.MappingUtils.flattenRanges (codonPos);
\r
179 return Clazz.newCharArray (-1, [dnaSeq[codonPos[0] - 1], dnaSeq[codonPos[1] - 1], dnaSeq[codonPos[2] - 1]]);
\r
180 }, "jalview.datamodel.SequenceI,~N");
\r
181 Clazz.defineMethod (c$, "getMappingsForSequence",
\r
183 var result = new java.util.ArrayList ();
\r
184 if (this.dnaSeqs == null) {
\r
186 }var related = new java.util.ArrayList ();
\r
187 var seqDs = seq.getDatasetSequence ();
\r
188 seqDs = seqDs != null ? seqDs : seq;
\r
189 for (var ds = 0; ds < this.dnaSeqs.length; ds++) {
\r
190 var mapping = this.dnaToProt[ds];
\r
191 if (this.dnaSeqs[ds] === seqDs || mapping.to === seqDs) {
\r
192 if (!related.contains (mapping.to)) {
\r
193 result.add (mapping);
\r
194 related.add (mapping.to);
\r
197 }, "jalview.datamodel.SequenceI");
\r