X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FAnnotationColourGradient.java;h=85266840c3b454a9bef1616941b10eed3f1f98d3;hb=49db0dff1da16c3355b43a41498c1fc93ef47e91;hp=3ed18bf34c618a9586f1d3af10a18290c1c08b35;hpb=9ccc2a53201bd4574572bb7b23d3435e89f842fa;p=jalview.git diff --git a/src/jalview/schemes/AnnotationColourGradient.java b/src/jalview/schemes/AnnotationColourGradient.java index 3ed18bf..8526684 100755 --- a/src/jalview/schemes/AnnotationColourGradient.java +++ b/src/jalview/schemes/AnnotationColourGradient.java @@ -20,6 +20,7 @@ */ package jalview.schemes; +import jalview.api.AlignViewportI; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.AnnotatedCollectionI; @@ -39,12 +40,12 @@ public class AnnotationColourGradient extends FollowerColourScheme /** * map positional scores to transparency rather than colour */ - boolean positionToTransparency = true; + boolean positionToTransparency = false; /** * compute shade based on annotation row score */ - boolean perLineScore = true; + boolean perLineScore = false; public static final int NO_THRESHOLD = -1; @@ -86,8 +87,8 @@ public class AnnotationColourGradient extends FollowerColourScheme private IdentityHashMap seqannot = null; @Override - public ColourSchemeI getInstance(AnnotatedCollectionI sg, - Map hiddenRepSequences) + public ColourSchemeI getInstance(AlignViewportI view, + AnnotatedCollectionI sg) { AnnotationColourGradient acg = new AnnotationColourGradient(annotation, getColourScheme(), aboveAnnotationThreshold); @@ -244,9 +245,13 @@ public class AnnotationColourGradient extends FollowerColourScheme } if (plcount > 0 && plcount == ancount) { - perLineScore = plcount == ancount; + perLineScore = plmax!=plmin; aamax=plmax; } + else + { + perLineScore = false; + } if (rna) { ColourSchemeProperty.initRnaHelicesShading(1 + (int) aamax); @@ -359,9 +364,9 @@ public class AnnotationColourGradient extends FollowerColourScheme if (annotationThreshold != null) { if ((aboveAnnotationThreshold == ABOVE_THRESHOLD - && aj.value < annotationThreshold.value) + && aj.value <= annotationThreshold.value) || (aboveAnnotationThreshold == BELOW_THRESHOLD - && aj.value > annotationThreshold.value)) + && aj.value >= annotationThreshold.value)) { return Color.white; } @@ -454,14 +459,17 @@ public class AnnotationColourGradient extends FollowerColourScheme && aboveAnnotationThreshold == ABOVE_THRESHOLD && value >= ann.threshold.value) { - range = (value - ann.threshold.value) + range = ann.graphMax == ann.threshold.value ? 1f + : (value - ann.threshold.value) / (ann.graphMax - ann.threshold.value); } else if (thresholdIsMinMax && ann.threshold != null && aboveAnnotationThreshold == BELOW_THRESHOLD && value <= ann.threshold.value) { - range = (value - ann.graphMin) / (ann.threshold.value - ann.graphMin); + range = ann.graphMin == ann.threshold.value ? 0f + : (value - ann.graphMin) + / (ann.threshold.value - ann.graphMin); } else { @@ -480,12 +488,12 @@ public class AnnotationColourGradient extends FollowerColourScheme if (perLineScore) { trans = (int) ((1f - range) * midtr); - range = (float) ((annotation.score - plmin) / (plmax - aamin)); + range = (float) ((ann.score - plmin) / (plmax - aamin)); } int dr = (int) (redRange * range + redMin), dg = (int) (greenRange * range + greenMin), db = (int) (blueRange * range + blueMin); - if (annotation.score == annotation.score && positionToTransparency) + if (ann.score == ann.score && positionToTransparency) { return new Color(Math.min(dr + trans, midtr), Math.min(dg + trans, midtr), Math.min(db + trans, midtr)); @@ -529,7 +537,7 @@ public class AnnotationColourGradient extends FollowerColourScheme @Override public String getSchemeName() { - return "Annotation"; + return ANNOTATION_COLOUR; } @Override @@ -537,4 +545,14 @@ public class AnnotationColourGradient extends FollowerColourScheme { return false; } + + public boolean isPositionToTransparency() + { + return positionToTransparency; + } + + public void setPositionToTransparency(boolean positionToTransparency) + { + this.positionToTransparency = positionToTransparency; + } }