X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=871e4cf5d9410603870e2020da3ad3388deb3dca;hb=1dabf099b7c77fb0a80039f72cef34669df9b2e1;hp=9236712b0b51d9d5c721fb269e68260bbd8093a6;hpb=336e0c59bfd53d054da0bb332f858834f57e7bec;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index 9236712..871e4cf 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -79,7 +79,23 @@ public class SequenceGroup public Color textColour2 = Color.white; - private boolean ignoreGapsInConsensusCalculation=true; + /** + * consensus calculation property + */ + private boolean ignoreGapsInConsensus=true; + /** + * consensus calculation property + */ + private boolean showConsensusProfile=false; + + /** + * @return the includeAllConsSymbols + */ + public boolean isIncludeAllConsSymbols() + { + return showConsensusProfile; + } + /** * Creates a new SequenceGroup object. @@ -151,7 +167,7 @@ public class SequenceGroup textColour2 = seqsel.textColour2; thresholdTextColour = seqsel.thresholdTextColour; width = seqsel.width; - ignoreGapsInConsensusCalculation = seqsel.ignoreGapsInConsensusCalculation; + ignoreGapsInConsensus = seqsel.ignoreGapsInConsensus; if (seqsel.conserve!=null) { recalcConservation(); // safer than @@ -387,6 +403,7 @@ public class SequenceGroup public void setName(String name) { groupName = name; + // TODO: URGENT: update dependent objects (annotation row) } public void setDescription(String desc) @@ -437,7 +454,12 @@ public class SequenceGroup } /** - * calculate residue conservation for group + * Max Gaps Threshold for performing a conservation calculation + * TODO: make this a configurable property - or global to an alignment view + */ + private int consPercGaps=25; + /** + * calculate residue conservation for group - but only if necessary. */ public void recalcConservation() { @@ -448,7 +470,7 @@ public class SequenceGroup try { - Hashtable cnsns[] = AAFrequency.calculate(sequences, startRes, endRes + 1); + Hashtable cnsns[] = AAFrequency.calculate(sequences, startRes, endRes + 1, showConsensusProfile); if (consensus != null) { _updateConsensusRow(cnsns); @@ -469,7 +491,7 @@ public class SequenceGroup ResidueProperties.propHash, 3, sequences, startRes, endRes + 1); c.calculate(); - c.verdict(false, 25); + c.verdict(false, consPercGaps); if (conservation!=null) { _updateConservationRow(c); @@ -498,32 +520,37 @@ public class SequenceGroup { getConservation(); } + // update Labels + conservation.label = "Conservation for "+getName(); + conservation.description = "Conservation for group "+getName()+" less than " + consPercGaps + + "% gaps"; // preserve width if already set int aWidth = (conservation.annotations!=null) ? (endRes