+ current = getSequenceAt(i);
+ cLength = current.getLength();
+
+ if (cLength < maxLength)
+ {
+ current.insertCharAt(cLength, maxLength - cLength, gapCharacter);
+ modified = true;
+ }
+ else if (current.getLength() > maxLength)
+ {
+ current.deleteChars(maxLength, current.getLength());
+ }
+ }
+ return modified;
+ }
+ /**
+ * Justify the sequences to the left or right by deleting and inserting gaps before the initial residue or after the terminal residue
+ * @param right true if alignment padded to right, false to justify to left
+ * @return true if alignment was changed
+ */
+ public boolean justify(boolean right)
+ {
+ boolean modified = false;
+
+ // Remove excess gaps from the end of alignment
+ int maxLength = -1;
+ int ends[] = new int[sequences.size()*2];
+ SequenceI current;
+ for (int i = 0; i < sequences.size(); i++)
+ {
+ current = getSequenceAt(i);
+ // This should really be a sequence method
+ ends[i*2] = current.findIndex(current.getStart());
+ ends[i*2+1] = current.findIndex(current.getStart()+current.getLength());
+ boolean hitres=false;
+ for (int j = 0,rs=0,ssiz=current.getLength(); j<ssiz; j++)