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