X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FContactMatrix.java;h=48b6e6b45b3476fc97548fbd3ad4bf47ada00b9d;hb=5830d3c07ab8e6597cd38b3370f0c4121348f771;hp=fac1deee73cdda802f7259315e9e0d67e7904e8c;hpb=326540793e46af73aed8c7e69bd77a957eec86c1;p=jalview.git diff --git a/src/jalview/datamodel/ContactMatrix.java b/src/jalview/datamodel/ContactMatrix.java index fac1dee..48b6e6b 100644 --- a/src/jalview/datamodel/ContactMatrix.java +++ b/src/jalview/datamodel/ContactMatrix.java @@ -1,12 +1,17 @@ package jalview.datamodel; -import jalview.ws.params.InvalidArgumentException; - import java.awt.Color; +import java.math.BigInteger; import java.util.ArrayList; +import java.util.BitSet; +import java.util.HashMap; import java.util.List; +import java.util.Spliterator; +import java.util.StringTokenizer; + +import jalview.bin.Console; -public class ContactMatrix implements ContactMatrixI +public abstract class ContactMatrix implements ContactMatrixI { /** * are contacts reflexive ? @@ -28,7 +33,7 @@ public class ContactMatrix implements ContactMatrixI { if (left < 0 || right < 0) { - throw new Error(new InvalidArgumentException( + throw new Error(new RuntimeException( "Cannot have negative indices for contact left=" + left + " right=" + right + " strength=" + strength)); } @@ -74,13 +79,6 @@ public class ContactMatrix implements ContactMatrixI } } - Color minColor = Color.white, maxColor = Color.magenta; - - Color shadeFor(float value) - { - return jalview.util.ColorUtils.getGraduatedColour(value, 0, - Color.white, max, Color.magenta); - } @Override public ContactListI getContactList(final int column) { @@ -88,38 +86,15 @@ public class ContactMatrix implements ContactMatrixI { return null; } - return new ContactListI() + + return new ContactListImpl(new ContactListProviderI() { int p = column; @Override - public Color getColorForScore(int column) - { - - return shadeFor((float) getContactAt(column)); - } - - @Override - public Color getColorForRange(int i, int j) + public int getPosition() { - double contc; - double v = 0; - for (int r=i;r 0) + { + sb.append('\t'); + } + sb.append(cl.getContactAt(h)); + } + } + } + return sb.toString(); + } + + public static float[][] fromFloatStringToContacts(String values, int cols, + int rows) + { + float[][] vals = new float[cols][rows]; + StringTokenizer tabsep = new StringTokenizer(values, "" + '\t'); + int c = 0, r = 0; + while (tabsep.hasMoreTokens()) + { + double elem = Double.valueOf(tabsep.nextToken()); + vals[c][r++] = (float) elem; + if (r >= vals[c].length) + { + r = 0; + c++; + } + if (c >= vals.length) + { + break; + } + } + if (tabsep.hasMoreElements()) + { + Console.warn( + "Ignoring additional elements for Float string to contact matrix parsing."); + } + return vals; + } }