2 import jalview.datamodel.*;
\r
3 import jalview.schemes.*;
\r
4 import jalview.util.*;
\r
5 import jalview.analysis.*;
\r
7 import java.awt.geom.*;
\r
10 public class CpGRenderer implements RendererI {
\r
11 protected Color color = Color.black;
\r
13 public Color getResidueBoxColour(ColourSchemeI cs, SequenceI seq, int i) {
\r
14 Color c = cs.findColour(seq,seq.getSequence(i,i+1),i,null);
\r
18 public void drawSequence(Graphics g,ColourSchemeI cs,SequenceI seq,int start, int end, int x1, int y1, double width, int height,boolean showScores, boolean displayBoxes, boolean displayText,Vector pid, int seqnum,AlignViewport av) {
\r
21 int length = seq.getLength();
\r
23 Color currentColor = Color.white;
\r
25 g.setColor(Color.black);
\r
30 int step = window/10;
\r
32 if (step > window) {
\r
41 int cpgstart = start;
\r
44 if (cpgstart <= window/2 ) {
\r
45 cpgstart = window/2;
\r
47 if (cpgend+window/2 >= length) {
\r
48 cpgend = length-window/2;
\r
51 Hashtable vals = AAFrequency.findKmerCount(seq,cpgstart,cpgend,window,step,av.getKmers());
\r
53 Enumeration en = vals.keys();
\r
55 Vector valset = new Vector();
\r
57 while (en.hasMoreElements()) {
\r
58 valset.add((Integer)en.nextElement());
\r
60 Collections.sort(valset);
\r
62 g.setColor(Color.black);
\r
66 while (j < valset.size()) {
\r
68 Integer posInt = (Integer)valset.elementAt(j);
\r
69 int count = ((Integer)vals.get(posInt)).intValue();
\r
70 int pos = posInt.intValue();
\r
73 g.setColor(Color.red);
\r
75 g.setColor(Color.black);
\r
78 g.fillRect(x1 + (int)(width*(pos-start-width/2)),
\r
79 y1+height - (int)(count*height/max),
\r
81 (int)(count*height/max));
\r