f8fd750955d0861ca20606d3b4b6a7ea85ff7812
[jalview.git] / src / jalview / datamodel / SeqDistanceContactMatrix.java
1 package jalview.datamodel;
2
3 import java.awt.Color;
4 import java.util.BitSet;
5 import java.util.HashMap;
6 import java.util.List;
7
8 import jalview.util.MapList;
9 import jalview.ws.datamodel.alphafold.MappableContactMatrix;
10 /**
11  * Dummy contact matrix based on sequence distance
12  * 
13  * @author jprocter
14  *
15  */
16 public class SeqDistanceContactMatrix
17         extends MappableContactMatrix<SeqDistanceContactMatrix>
18         implements ContactMatrixI
19 {
20   private static final String SEQUENCE_DISTANCE = "SEQUENCE_DISTANCE";
21   private int width = 0;
22
23   public SeqDistanceContactMatrix(int width)
24   {
25     this.width = width;
26   }
27
28   @Override
29   public float getMin()
30   {
31     return 0f;
32   }
33
34   @Override
35   public float getMax()
36   {
37     return width;
38   }
39
40   @Override
41   public ContactListI getContactList(final int column)
42   {
43     if (column < 0 || column >= width)
44     {
45       return null;
46     }
47     return new ContactListImpl(new ContactListProviderI()
48     {
49
50       int p = column;
51
52       // @Override
53       // public Color getColorForScore(int column)
54       // {
55       // return jalview.util.ColorUtils.getGraduatedColour(Math.abs(column-p),
56       // 0, Color.white, width, Color.magenta);
57       // }
58       // @Override
59       // public Color getColorForRange(int from_column, int to_column)
60       // {
61       // return jalview.util.ColorUtils.getGraduatedColour(
62       // Math.abs(to_column + from_column - 2 * p) / 2, 0, Color.white, width,
63       // Color.magenta);
64       // }
65
66       @Override
67       public int getContactHeight()
68       {
69         return width;
70
71       }
72
73       @Override
74       public int getPosition()
75       {
76         return p;
77       }
78
79       @Override
80       public double getContactAt(int column)
81       {
82         return Math.abs(column - p);
83       }
84     });
85   }
86
87   @Override
88   public String getAnnotDescr()
89   {
90     return "Sequence distance matrix";
91   }
92
93   @Override
94   public String getAnnotLabel()
95   {
96     return "Sequence Distance";
97   }
98
99   @Override
100   public String getType()
101   {
102     return SEQUENCE_DISTANCE;
103   }
104
105   @Override
106   public int getWidth()
107   {
108     return width;
109   }
110
111   @Override
112   public int getHeight()
113   {
114     return width;
115   }
116   @Override
117   protected double getElementAt(int _column, int i)
118   {
119     return Math.abs(_column - i);
120   }
121   @Override
122   protected SeqDistanceContactMatrix newMappableContactMatrix(
123           SequenceI newRefSeq, MapList newFromMapList)
124   {
125
126     return new SeqDistanceContactMatrix(width);
127   }
128 }