*/
package jalview.datamodel;
-import java.util.Locale;
-
-import jalview.analysis.Rna;
-import jalview.analysis.SecStrConsensus.SimpleBP;
-import jalview.analysis.WUSSParseException;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
+import jalview.analysis.Rna;
+import jalview.analysis.SecStrConsensus.SimpleBP;
+import jalview.analysis.WUSSParseException;
+import jalview.structure.StructureImportSettings;
+
/**
* DOCUMENT ME!
*
*/
public class AlignmentAnnotation
{
+
private static final String ANNOTATION_ID_PREFIX = "ann";
/*
private long invalidrnastruc = -2;
/**
+ * the type of temperature factor plot (if it is one)
+ */
+ private StructureImportSettings.TFType tfType = StructureImportSettings.TFType.DEFAULT;
+
+ public void setTFType(StructureImportSettings.TFType t)
+ {
+ tfType = t;
+ }
+
+ public StructureImportSettings.TFType getTFType()
+ {
+ return tfType;
+ }
+
+ /**
* Updates the _rnasecstr field Determines the positions that base pair and
* the positions of helices based on secondary structure from a Stockholm file
*
invalidrnastruc = -1;
} catch (WUSSParseException px)
{
- // DEBUG System.out.println(px);
+ // DEBUG jalview.bin.Console.outPrintln(px);
invalidrnastruc = px.getProblemPos();
}
if (invalidrnastruc > -1)
scaleColLabel = true;
_markRnaHelices();
}
- // System.out.println("featuregroup " + _rnasecstr[0].getFeatureGroup());
+ // jalview.bin.Console.outPrintln("featuregroup " +
+ // _rnasecstr[0].getFeatureGroup());
}
{
/*
- * System.out.println(this.annotation._rnasecstr[x] + " Begin" +
+ * jalview.bin.Console.outPrintln(this.annotation._rnasecstr[x] + " Begin" +
* this.annotation._rnasecstr[x].getBegin());
*/
- // System.out.println(this.annotation._rnasecstr[x].getFeatureGroup());
+ // jalview.bin.Console.outPrintln(this.annotation._rnasecstr[x].getFeatureGroup());
int val = 0;
try
{
public static final int LINE_GRAPH = 2;
+ public static final int CONTACT_MAP = 4;
+
+ /**
+ * property that when set to non-empty string disables display of column
+ * groups defined on the contact matrix
+ */
+ public static final String CONTACT_MAP_NOGROUPS = "CMNOGRPS";
+
public boolean belowAlignment = true;
public SequenceGroup groupRef = null;
char firstChar = 0;
for (int i = 0; i < annotations.length; i++)
{
- // DEBUG System.out.println(i + ": " + annotations[i]);
+ // DEBUG jalview.bin.Console.outPrintln(i + ": " + annotations[i]);
if (annotations[i] == null)
{
continue;
if (annotations[i].secondaryStructure == 'H'
|| annotations[i].secondaryStructure == 'E')
{
- // DEBUG System.out.println( "/H|E/ '" +
+ // DEBUG jalview.bin.Console.outPrintln( "/H|E/ '" +
// annotations[i].secondaryStructure + "'");
hasIcons |= true;
}
else
// Check for RNA secondary structure
{
- // DEBUG System.out.println( "/else/ '" +
+ // DEBUG jalview.bin.Console.outPrintln( "/else/ '" +
// annotations[i].secondaryStructure + "'");
// TODO: 2.8.2 should this ss symbol validation check be a function in
// RNA/ResidueProperties ?
+ // allow for DSSP extended code:
+ // https://www.wikidoc.org/index.php/Secondary_structure#The_DSSP_code
+ // GHITEBS as well as C and X (for missing?)
if (annotations[i].secondaryStructure == '('
|| annotations[i].secondaryStructure == '['
|| annotations[i].secondaryStructure == '<'
|| annotations[i].secondaryStructure == '{'
|| annotations[i].secondaryStructure == 'A'
- || annotations[i].secondaryStructure == 'B'
- || annotations[i].secondaryStructure == 'C'
+ // || annotations[i].secondaryStructure == 'B'
+ // || annotations[i].secondaryStructure == 'C'
|| annotations[i].secondaryStructure == 'D'
// || annotations[i].secondaryStructure == 'E' // ambiguous on
// its own -- already checked above
|| annotations[i].secondaryStructure == 'F'
- || annotations[i].secondaryStructure == 'G'
+ // || annotations[i].secondaryStructure == 'G'
// || annotations[i].secondaryStructure == 'H' // ambiguous on
// its own -- already checked above
- || annotations[i].secondaryStructure == 'I'
+ // || annotations[i].secondaryStructure == 'I'
|| annotations[i].secondaryStructure == 'J'
|| annotations[i].secondaryStructure == 'K'
|| annotations[i].secondaryStructure == 'L'
|| annotations[i].secondaryStructure == 'P'
|| annotations[i].secondaryStructure == 'Q'
|| annotations[i].secondaryStructure == 'R'
- || annotations[i].secondaryStructure == 'S'
- || annotations[i].secondaryStructure == 'T'
+ // || annotations[i].secondaryStructure == 'S'
+ // || annotations[i].secondaryStructure == 'T'
|| annotations[i].secondaryStructure == 'U'
|| annotations[i].secondaryStructure == 'V'
|| annotations[i].secondaryStructure == 'W'
- || annotations[i].secondaryStructure == 'X'
+ // || annotations[i].secondaryStructure == 'X'
|| annotations[i].secondaryStructure == 'Y'
|| annotations[i].secondaryStructure == 'Z')
{
}
}
- // System.out.println("displaychar " + annotations[i].displayCharacter);
+ // jalview.bin.Console.outPrintln("displaychar " +
+ // annotations[i].displayCharacter);
if (annotations[i].displayCharacter == null
|| annotations[i].displayCharacter.length() == 0)
{
this.sequenceMapping = null;
}
+
}
// TODO: check if we need to do this: JAL-952
// if (this.isrna=annotation.isrna)
return aa;
}
+ /**
+ * convenience method to check for the 'CONTACT_MAP_NOGROUPS' property for
+ * this alignment annotation row
+ *
+ * @return true if no CONTACT_MAP_NOGROUPS property is found, or it is set to
+ * ""
+ */
+ public boolean isShowGroupsForContactMatrix()
+ {
+ return getProperty(AlignmentAnnotation.CONTACT_MAP_NOGROUPS) == null
+ || "".equals(
+ getProperty(AlignmentAnnotation.CONTACT_MAP_NOGROUPS));
+ }
+
+ /**
+ * set the 'CONTACT_MAP_NOGROUPS' property for this alignment annotation row
+ *
+ * @see isShowGroupsForContactMatrix
+ */
+ public void setShowGroupsForContactMatrix(boolean showGroups)
+ {
+ setProperty(AlignmentAnnotation.CONTACT_MAP_NOGROUPS,
+ showGroups ? "" : "nogroups");
+ }
+
}