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