return colour;
}
+ @Override
+ public int findColourInt(char symbol, int position, SequenceI seq)
+ {
+ if (colourScheme == null)
+ {
+ return -1;// Color.white; // Colour is 'None'
+ }
+
+ /*
+ * get 'base' colour
+ */
+ ProfileI profile = consensus == null ? null : consensus.get(position);
+ String modalResidue = profile == null ? null
+ : profile.getModalResidue();
+ float pid = profile == null ? 0f
+ : profile.getPercentageIdentity(ignoreGaps);
+ int colour = colourScheme
+ .findColour(symbol, position, seq, modalResidue, pid).getRGB();
+
+ /*
+ * apply PID threshold and consensus fading if in force
+ */
+ if (!Comparison.isGap(symbol))
+ {
+ colour = adjustColourInt(symbol, position, colour);
+ }
+
+ return colour;
+ }
+
/**
* Adjusts colour by applying thresholding or conservation shading, if in
* force. That is
return colour;
}
+ protected int adjustColourInt(char symbol, int column, int colour)
+ {
+ if (!aboveThreshold(symbol, column))
+ {
+ colour = -1;// Color.white;
+ }
+
+ if (conservationColouring)
+ {
+ colour = applyConservationInt(colour, column);
+ }
+ return colour;
+ }
+
/**
* Answers true if there is a consensus profile for the specified column, and
* the given residue matches the consensus (or joint consensus) residue for
return ColorUtils.bleachColour(currentColour, bleachFactor);
}
+ protected int applyConservationInt(int currentColour, int column)
+ {
+ if (conservation == null || conservation.length <= column)
+ {
+ return currentColour;
+ }
+ char conservationScore = conservation[column];
+
+ /*
+ * if residues are fully conserved (* or 11), or all properties
+ * are conserved (+ or 10), leave colour unchanged
+ */
+ if (conservationScore == '*' || conservationScore == '+'
+ || conservationScore == (char) 10
+ || conservationScore == (char) 11)
+ {
+ return currentColour;
+ }
+
+ if (Comparison.isGap(conservationScore))
+ {
+ return -1;// Color.white;
+ }
+
+ /*
+ * convert score 0-9 to a bleaching factor 1.1 - 0.2
+ */
+ float bleachFactor = (11 - (conservationScore - '0')) / 10f;
+
+ /*
+ * scale this up by 0-5 (percentage slider / 20)
+ * as a result, scores of: 0 1 2 3 4 5 6 7 8 9
+ * fade to white at slider value: 18 20 22 25 29 33 40 50 67 100%
+ */
+ bleachFactor *= (conservationIncrement / 20f);
+
+ return ColorUtils.bleachColourInt(currentColour, bleachFactor);
+ }
+
/**
* @see jalview.renderer.ResidueShaderI#getColourScheme()
*/