X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignment.java;h=dd02bc12626f3b396b3109ee24a6a0aa92747c9d;hb=44d9bd9b511490baec5302be3b7756be0adebde3;hp=e329cc8f947e9318213d4c68c9d79a654ee261bf;hpb=873bf9da6abdeb24cd8624330b7b9977feb79bef;p=jalview.git diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index e329cc8..dd02bc1 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -11,7 +11,6 @@ public class Alignment implements AlignmentI protected Vector sequences; protected Vector groups = new Vector(); - public Hashtable[] cons; protected char gapCharacter = '-'; /** Make an alignment from an array of Sequences. @@ -113,7 +112,7 @@ public class Alignment implements AlignmentI if (current.getLength() > i) { /* MC Should move this to a method somewhere */ - if (current.getCharAt(i)!='-' && current.getCharAt(i)!='.' && current.getCharAt(i)!=' ') + if ( !jalview.util.Comparison.isGap(current.getCharAt(i))) delete = false; } @@ -218,35 +217,34 @@ public class Alignment implements AlignmentI public Vector removeRedundancy(float threshold, Vector sel) { Vector del = new Vector(); - for (int i=1; i < sel.size(); i++) { - for (int j = 0; j < i; j++) { + for (int i = 1; i < sel.size(); i++) + { + for (int j = 0; j < i; j++) + { // Only do the comparison if either have not been deleted - if (!del.contains((SequenceI)sel.elementAt(i)) || - !del.contains((SequenceI)sel.elementAt(j))) { + if (!del.contains( (SequenceI) sel.elementAt(i)) || + !del.contains( (SequenceI) sel.elementAt(j))) + { - float pid = Comparison.compare((SequenceI)sel.elementAt(j), - (SequenceI)sel.elementAt(i)); + float pid = Comparison.compare( (SequenceI) sel.elementAt(j), + (SequenceI) sel.elementAt(i)); - if (pid >= threshold) { + if (pid >= threshold) + { // Delete the shortest one - if (((SequenceI)sel.elementAt(j)).getSequence().length() > - ((SequenceI)sel.elementAt(i)).getSequence().length()) { + if ( ( (SequenceI) sel.elementAt(j)).getSequence().length() > + ( (SequenceI) sel.elementAt(i)).getSequence().length()) del.addElement(sel.elementAt(i)); - System.out.println("Deleting sequence " + ((SequenceI)sel.elementAt(i)).getName()); - } else { + else del.addElement(sel.elementAt(i)); - System.out.println("Deleting sequence " + ((SequenceI)sel.elementAt(i)).getName()); - } } } } } // Now delete the sequences - for (int i=0; i < del.size(); i++) { - System.out.println("Deleting sequence " + ((SequenceI)del.elementAt(i)).getName()); + for (int i=0; i < del.size(); i++) deleteSequence((SequenceI)del.elementAt(i)); - } return del; } @@ -320,6 +318,24 @@ public class Alignment implements AlignmentI } return null; + } + + public SequenceGroup [] findAllGroups(SequenceI s) + { + + ArrayList temp = new ArrayList(); + + for (int i = 0; i < this.groups.size();i++) + { + SequenceGroup sg = (SequenceGroup)groups.elementAt(i); + if (sg.sequences.contains(s)) + temp.add(sg); + } + + SequenceGroup [] ret = new SequenceGroup[temp.size()]; + temp.toArray( ret ); + + return ret; } /** */ @@ -387,12 +403,14 @@ public class Alignment implements AlignmentI } /** */ - public int findIndex(SequenceI s) { + public int findIndex(SequenceI s) + { int i=0; - while (i < sequences.size()) { - if (s == getSequenceAt(i)) { + while (i < sequences.size()) + { + if (s == getSequenceAt(i)) return i; - } + i++; } return -1;