X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignmentAnnotation.java;h=601339acc1f84b1af5117b2341465d4636f4944f;hb=01695c742a6ff14ef4928fc305e6d2a30035f9ac;hp=2f5f2704b8842a15d824c2b00c1eb4a60a74172c;hpb=27e20b88d0c73ced06e9c20a6e0fa14e27fed179;p=jalview.git diff --git a/src/jalview/datamodel/AlignmentAnnotation.java b/src/jalview/datamodel/AlignmentAnnotation.java index 2f5f270..601339a 100755 --- a/src/jalview/datamodel/AlignmentAnnotation.java +++ b/src/jalview/datamodel/AlignmentAnnotation.java @@ -1,23 +1,28 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.datamodel; import jalview.analysis.Rna; +import jalview.analysis.SecStrConsensus.SimpleBP; + import jalview.analysis.WUSSParseException; import java.util.ArrayList; @@ -52,8 +57,8 @@ public class AlignmentAnnotation /** DOCUMENT ME!! */ public Annotation[] annotations; - - + + public ArrayList bps = null; /** * RNA secondary structure contact positions @@ -76,9 +81,11 @@ public class AlignmentAnnotation try { _rnasecstr = Rna.GetBasePairs(RNAannot); + bps = Rna.GetModeleBP(RNAannot); invalidrnastruc = -1; } catch (WUSSParseException px) { + // DEBUG System.out.println(px); invalidrnastruc = px.getProblemPos(); } if (invalidrnastruc > -1) @@ -198,6 +205,12 @@ public class AlignmentAnnotation } } + // JBPNote: what does this do ? + public void ConcenStru(CharSequence RNAannot) throws WUSSParseException + { + bps = Rna.GetModeleBP(RNAannot); + } + /** * Creates a new AlignmentAnnotation object. * @@ -245,37 +258,38 @@ public class AlignmentAnnotation else // Check for RNA secondary structure { - //System.out.println(annotations[i].secondaryStructure); + // System.out.println(annotations[i].secondaryStructure); + // TODO: 2.8.2 should this ss symbol validation check be a function in RNA/ResidueProperties ? 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 == 'D' - || annotations[i].secondaryStructure == '1' - || annotations[i].secondaryStructure == 'F' - || annotations[i].secondaryStructure == 'G' - || annotations[i].secondaryStructure == '2' - || annotations[i].secondaryStructure == 'I' - || annotations[i].secondaryStructure == 'J' - || annotations[i].secondaryStructure == 'K' - || annotations[i].secondaryStructure == 'L' - || annotations[i].secondaryStructure == 'M' - || annotations[i].secondaryStructure == 'N' - || annotations[i].secondaryStructure == 'O' - || annotations[i].secondaryStructure == 'P' - || annotations[i].secondaryStructure == 'Q' - || annotations[i].secondaryStructure == 'R' - || 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 == 'Y' - || annotations[i].secondaryStructure == 'Z') + || annotations[i].secondaryStructure == '[' + || annotations[i].secondaryStructure == '<' + || annotations[i].secondaryStructure == '{' + || annotations[i].secondaryStructure == 'A' + || annotations[i].secondaryStructure == 'B' + || annotations[i].secondaryStructure == 'C' + || annotations[i].secondaryStructure == 'D' + || annotations[i].secondaryStructure == 'E' + || annotations[i].secondaryStructure == 'F' + || annotations[i].secondaryStructure == 'G' + || annotations[i].secondaryStructure == 'H' + || annotations[i].secondaryStructure == 'I' + || annotations[i].secondaryStructure == 'J' + || annotations[i].secondaryStructure == 'K' + || annotations[i].secondaryStructure == 'L' + || annotations[i].secondaryStructure == 'M' + || annotations[i].secondaryStructure == 'N' + || annotations[i].secondaryStructure == 'O' + || annotations[i].secondaryStructure == 'P' + || annotations[i].secondaryStructure == 'Q' + || annotations[i].secondaryStructure == 'R' + || 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 == 'Y' + || annotations[i].secondaryStructure == 'Z') { hasIcons |= true; isrna |= true; @@ -306,8 +320,8 @@ public class AlignmentAnnotation // && // annotations[i].displayCharacter.charAt(0)==annotations[i].secondaryStructure firstChar != ' ' - && firstChar != 'H' - && firstChar != 'E' + && firstChar != '$' + && firstChar != 0xCE && firstChar != '(' && firstChar != '[' && firstChar != '>' @@ -316,10 +330,10 @@ public class AlignmentAnnotation && firstChar != 'B' && firstChar != 'C' && firstChar != 'D' - && firstChar != '1' + && firstChar != 'E' && firstChar != 'F' && firstChar != 'G' - && firstChar != '2' + && firstChar != 'H' && firstChar != 'I' && firstChar != 'J' && firstChar != 'K' @@ -516,7 +530,7 @@ public class AlignmentAnnotation float min = graphMin; float max = graphMax; boolean drawValues = true; - _linecolour=null; + _linecolour = null; if (min == max) { min = 999999999; @@ -621,7 +635,14 @@ public class AlignmentAnnotation this.annotations = new Annotation[ann.length]; for (int i = 0; i < ann.length; i++) { - annotations[i] = new Annotation(ann[i]); + if (ann[i] != null) + { + annotations[i] = new Annotation(ann[i]); + if (_linecolour != null) + { + _linecolour = annotations[i].colour; + } + } } ; if (annotation.sequenceRef != null) @@ -1030,7 +1051,7 @@ public class AlignmentAnnotation { if (annotations[i] == null) annotations[i] = new Annotation(String.valueOf(gapchar), null, - ' ', 0f,null); + ' ', 0f, null); else if (annotations[i].displayCharacter == null || annotations[i].displayCharacter.equals(" ")) annotations[i].displayCharacter = String.valueOf(gapchar); @@ -1091,4 +1112,9 @@ public class AlignmentAnnotation { this.calcId = calcId; } + + public boolean isRNA() + { + return isrna; + } }