X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignment.java;h=04977e852fcd85d83afaee169af0423b76b7468f;hb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;hp=7fb46594365b375e9bc627f056a8a1844d80e544;hpb=2ac096ecd8ee1a5c11480e864fce7cf78d661c66;p=jalview.git diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index 7fb4659..04977e8 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -1,20 +1,19 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * 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 * - * This program 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 2 - * of the License, or (at your option) any later version. + * This file is part of Jalview. * - * This program 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. + * 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. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * 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 . */ package jalview.datamodel; @@ -44,6 +43,8 @@ public class Alignment implements AlignmentI public static final int PROTEIN = 0; public static final int NUCLEOTIDE = 1; + + public boolean hasRNAStructure = false; /** DOCUMENT ME!! */ public AlignmentAnnotation[] annotations; @@ -144,7 +145,7 @@ public class Alignment implements AlignmentI */ public SequenceI getSequenceAt(int i) { - if (i < sequences.size()) + if (i>-1 && i < sequences.size()) { return (SequenceI) sequences.elementAt(i); } @@ -345,11 +346,13 @@ public class Alignment implements AlignmentI /** * remove any annotation that references gp - * @param gp (if null, removes all group associated annotation) + * + * @param gp + * (if null, removes all group associated annotation) */ private void removeAnnotationForGroup(SequenceGroup gp) { - if (annotations==null || annotations.length==0) + if (annotations == null || annotations.length == 0) { return; } @@ -592,8 +595,8 @@ public class Alignment implements AlignmentI for (int i = 0; i < sequences.size(); i++) { Sequence seq = (Sequence) sequences.elementAt(i); - seq.setSequence(seq.getSequenceAsString().replace('.', gc).replace( - '-', gc).replace(' ', gc)); + seq.setSequence(seq.getSequenceAsString().replace('.', gc) + .replace('-', gc).replace(' ', gc)); } } @@ -607,19 +610,26 @@ public class Alignment implements AlignmentI return gapCharacter; } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see jalview.datamodel.AlignmentI#isAligned() */ public boolean isAligned() { return isAligned(false); } - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see jalview.datamodel.AlignmentI#isAligned(boolean) */ - public boolean isAligned(boolean includeHidden) { + public boolean isAligned(boolean includeHidden) + { int width = getWidth(); - if (hiddenSequences==null || hiddenSequences.getSize()==0) { + if (hiddenSequences == null || hiddenSequences.getSize() == 0) + { includeHidden = true; // no hidden sequences to check against. } for (int i = 0; i < sequences.size(); i++) @@ -644,6 +654,11 @@ public class Alignment implements AlignmentI */ public boolean deleteAnnotation(AlignmentAnnotation aa) { + return deleteAnnotation(aa, true); + } + + public boolean deleteAnnotation(AlignmentAnnotation aa, boolean unhook) + { int aSize = 1; if (annotations != null) @@ -675,7 +690,9 @@ public class Alignment implements AlignmentI if (swap) { annotations = temp; - unhookAnnotation(aa); + if (unhook) { + unhookAnnotation(aa); + } } return swap; } @@ -717,6 +734,10 @@ public class Alignment implements AlignmentI */ public void addAnnotation(AlignmentAnnotation aa, int pos) { + if(aa.getRNAStruc()!= null){ + hasRNAStructure=true; + } + int aSize = 1; if (annotations != null) { @@ -817,6 +838,11 @@ public class Alignment implements AlignmentI return false; } } + + public boolean hasRNAStructure(){ + //TODO can it happen that structure is removed from alignment? + return hasRNAStructure; + } public void setDataset(Alignment data) {