@@ -39,20 +39,7 @@ public static String formatExonStructure(GeneChromosomePosition chromosomePositi
3939 return formatExonStructureReverse (chromosomePosition );
4040
4141 }
42-
43-
44- /** Pretty print the details of a GeneChromosomePosition in a HTML-formatted string
45- *
46- * @param chromosomePosition
47- * @return
48- */
49- public static String getHTMLExonStructure (GeneChromosomePosition chromosomePosition ){
50- if ( chromosomePosition .getOrientation () == '+' )
51- return getHTMLExonStructureForward (chromosomePosition );
52-
53- return getHTMLExonStructureReverse (chromosomePosition );
54-
55- }
42+
5643
5744 private static String formatExonStructureForward (GeneChromosomePosition chromPos ) {
5845
@@ -108,68 +95,6 @@ private static String formatExonStructureForward(GeneChromosomePosition chromPos
10895 }
10996
11097
111- private static String getHTMLExonStructureForward (GeneChromosomePosition chromPos ) {
112- StringWriter s = new StringWriter ();
113-
114- List <Integer > exonStarts = chromPos .getExonStarts ();
115- List <Integer > exonEnds = chromPos .getExonEnds ();
116-
117-
118- int cdsStart = chromPos .getCdsStart ();
119- int cdsEnd = chromPos .getCdsEnd ();
120-
121- boolean inCoding = false ;
122- int codingLength = 0 ;
123-
124- for (int i = 0 ; i < exonStarts .size (); i ++) {
125-
126- int start = exonStarts .get (i );
127- int end = exonEnds .get (i );
128-
129-
130- //s.append("forward exon: " + start + " - " + end + " | " + (end - start));
131- //s.append(newline);
132-
133- if (start <= cdsStart && end >= cdsStart ) {
134-
135- inCoding = true ;
136- codingLength += (end - cdsStart );
137- s .append ("<tr><th>Region</th><th>start</th><th>end</th><th>region length</th><th>phase at end</th></tr>" );
138- s .append ("<tr><td>UTR</td><td>" + format (start ) + "</td><td>" + format (cdsStart ) + "</td><td></td><td></td></tr>" );
139- s .append (newline );
140- s .append ("<tr><td>Exon</td><td>" ).append (showGenePosLink (chromPos , (cdsStart + 1 ))).append ("</td><td>" ).append (showGenePosLink (chromPos , end )).append ("</td><td>" ).append (Integer .toString (end - cdsStart )).append ("</td><td>" ).append (Integer .toString (codingLength % 3 )).append ("</td></tr>" );
141- s .append (newline );
142-
143- } else if (start <= cdsEnd && end >= cdsEnd ) {
144- //logger.debug(" <-- CDS end at: " + cdsEnd );
145- inCoding = false ;
146- codingLength += (cdsEnd - start );
147-
148- s .append ("<tr><td>Exon</td><td>" + showGenePosLink (chromPos , (start + 1 )) + "</td><td>" + showGenePosLink (chromPos ,cdsEnd ) + "</td><td>" + (cdsEnd - start ) + "</td><td>" + (codingLength % 3 )+"</td></tr>" );
149- s .append (newline );
150- s .append ("<tr><td>UTR</td><td>" + format (cdsEnd +1 ) + "</td><td>" + format (end )+"</td><td></td><td></td></tr>" );
151- s .append (newline );
152-
153-
154- } else if (inCoding ) {
155- // full exon is coding
156- codingLength += (end - start );
157-
158- s .append ("<tr><td>Exon</td><td>" ).append (showGenePosLink (chromPos , (start + 1 ))).append ("</td><td>" ).append (showGenePosLink (chromPos , end )).append ("</td><td>" ).append (Integer .toString (end - start )).append ("</td><td>" ).append (Integer .toString (codingLength % 3 )).append ("</td></tr>" );
159- s .append (newline );
160- }
161- // if ( inCoding )
162- // logger.debug("exon phase at end:" + (codingLength % 3));
163- //
164- // logger.debug(" coding length: " + codingLength);
165-
166-
167- }
168- //s.append("Length of coding sequence: ");
169- //s.append((codingLength-3)+" nucleotides.");
170- s .append (newline );
171- return s .toString ();
172- }
17398
17499 private static String showGenePosLink (GeneChromosomePosition chromPos , Integer pos ) {
175100
@@ -189,89 +114,6 @@ private static String showGenePosLink(GeneChromosomePosition chromPos, Integer p
189114 return buf .toString ();
190115 }
191116
192- private static String getHTMLExonStructureReverse (GeneChromosomePosition chromPos ) {
193- StringWriter s = new StringWriter ();
194-
195- List <Integer > exonStarts = chromPos .getExonStarts ();
196- List <Integer > exonEnds = chromPos .getExonEnds ();
197-
198-
199- int cdsStart = chromPos .getCdsStart ();
200- int cdsEnd = chromPos .getCdsEnd ();
201-
202- // logger.debug("CDS START:" +format(cdsStart) + " - " + format(cdsEnd));
203-
204- boolean inCoding = false ;
205- int codingLength = 0 ;
206-
207- if (cdsEnd < cdsStart ) {
208- int tmp = cdsEnd ;
209- cdsEnd = cdsStart ;
210- cdsStart = tmp ;
211- }
212-
213- s .append ("<tr><th>Region</th><th>start</th><th>end</th><th>region length</th><th>phase at end</th></tr>" );
214- // map reverse
215- for (int i = exonStarts .size () - 1 ; i >= 0 ; i --) {
216-
217- int end = exonStarts .get (i );
218- int start = exonEnds .get (i );
219-
220- if (end < start ) {
221- int tmp = end ;
222- end = start ;
223- start = tmp ;
224- }
225-
226- if (start <= cdsEnd && end >= cdsEnd ) {
227- inCoding = true ;
228-
229-
230- int tmpstart = start ;
231- if (start < cdsStart ) {
232- tmpstart = cdsStart ;
233- }
234- codingLength += (cdsEnd - tmpstart );
235-
236- s .append ("<tr><td><div data-toggle=\" tooltip\" data-placement=\" top\" title=\" Untranslated Region\" >UTR</div></td><td>" ).append (format (cdsEnd + 1 )).append ("</td><td>" ).append (format (end )).append ("</td><td></td><td></td></tr>" );
237- s .append (newline );
238-
239- s .append ("<tr><td>Exon</td><td>" + showGenePosLink (chromPos ,(tmpstart +1 )) + "</td><td>" + showGenePosLink (chromPos , cdsEnd ) + "</td><td>" + (cdsEnd - tmpstart ) + "</td><td>" + (codingLength % 3 )+"</td></tr>" );
240- s .append (newline );
241- // single exon with UTR on both ends
242- if (tmpstart != start )
243- s .append ("<tr><td><div data-toggle=\" tooltip\" data-placement=\" top\" title=\" Untranslated Region\" >UTR</div></td><td>" + format (cdsStart ) + "</td><td>" + format (start + 1 ) + "</td><td></td><td></td></tr>" );
244- s .append (newline );
245-
246- } else if (start <= cdsStart && end >= cdsStart ) {
247- inCoding = false ;
248- codingLength += (end - cdsStart );
249-
250- s .append ("<tr><td>Exon</td><td>" + showGenePosLink (chromPos ,(cdsStart +1 )) + "</td><td>" + showGenePosLink (chromPos , end ) + "</td><td>" + (end - cdsStart ) +"</td><td>" + (codingLength % 3 )+"</td></tr>" );
251- s .append (newline );
252- s .append ("<tr><td><div data-toggle=\" tooltip\" data-placement=\" top\" title=\" Untranslated Region\" >UTR</div></td><td>" + format (start +1 ) + "</td><td>" + format (cdsStart )+"</td><td></td><td></td></tr>" );
253- s .append (newline );
254-
255-
256- } else if (inCoding ) {
257- // full exon is coding
258- codingLength += (end - start );
259-
260- s .append ("<tr><td>Exon</td><td>" + showGenePosLink (chromPos ,(start +1 )) + "</td><td>" + showGenePosLink (chromPos , end ) + "</td><td>" + (end - start ) + "</td><td>" + (codingLength % 3 )+"</td></tr>" );
261- s .append (newline );
262- } else {
263- // e.g. see UBQLN3
264- s .append ("<tr><td data-toggle=\" tooltip\" data-placement=\" right\" title=\" Untranslated Region\" >UTR</td><td>" + format (start ) + "</td><td>" + format (end )+"</td><td></td><td></td></tr>" );
265- s .append (newline );
266- }
267- }
268-
269- // s.append("Length coding sequence: " + (codingLength-3) + " nucleotides");
270- s .append (newline );
271-
272- return s .toString ();
273- }
274-
275117
276118 private static String formatExonStructureReverse (GeneChromosomePosition chromPos ) {
277119 StringWriter s = new StringWriter ();
0 commit comments