/*
* Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Copyright (C) 2006 AM Waterhouse, J Procter, 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
* @param seqs SeqCigar[]
*/
public Alignment(SeqCigar[] alseqs) {
- SequenceI[] seqs = SeqCigar.createAlignmentSequences(alseqs, gapCharacter, new ColumnSelection());
+ SequenceI[] seqs = SeqCigar.createAlignmentSequences(alseqs, gapCharacter, new ColumnSelection(), null);
initAlignment(seqs);
}
/**
getDataset().addSequence(ds);
}
}
-
sequences.addElement(snew);
+
+ hiddenSequences.adjustHeightSequenceAdded();
}
{
return groups;
}
-
/** Takes out columns consisting entirely of gaps (-,.," ")
*/
- public void removeGaps()
- {
+ public void removeGaps() {
+ removeGaps((ShiftList)null);
+ }
+ /**
+ * remove gaps in alignment - recording any frame shifts in shiftrecord
+ * intended to be passed to ColumnSelection.compensateForEdits(shiftrecord)
+ * @param shiftrecord
+ */
+ public void removeGaps(ShiftList shiftrecord) {
SequenceI[] seqs = getVisibleAndRepresentedSeqs();
int j, jSize = seqs.length;
if (!delete && startCol > -1)
{
deleteColumns(seqs, startCol, endCol);
+ if (shiftrecord!=null) {
+ shiftrecord.addShift(startCol, 1+endCol-startCol);
+ }
width -= (endCol - startCol);
i -= (endCol - startCol);
startCol = -1;
if (delete && startCol > -1)
{
deleteColumns(seqs, startCol, endCol);
+ if (shiftrecord!=null) {
+ shiftrecord.addShift(startCol, 1+endCol-startCol);
+ }
}
}
*/
public void deleteSequence(SequenceI s)
{
- for (int i = 0; i < getHeight(); i++)
- {
- if (getSequenceAt(i) == s)
- {
- deleteSequence(i);
- }
- }
+ deleteSequence(findIndex(s));
}
/**
public void deleteSequence(int i)
{
sequences.removeElementAt(i);
+ hiddenSequences.adjustHeightSequenceDeleted(i);
}
return null;
}
+ public SequenceI [] findSequenceMatch(String name)
+ {
+ Vector matches = new Vector();
+ int i = 0;
+
+ while (i < sequences.size())
+ {
+ if (getSequenceAt(i).getName().equals(name))
+ {
+ matches.addElement(getSequenceAt(i));
+ }
+ i++;
+ }
+
+ SequenceI [] result = new SequenceI[matches.size()];
+ for(i=0; i<result.length; i++)
+ result[i] = (SequenceI)matches.elementAt(i);
+
+ return result;
+
+ }
+
/** */
public int findIndex(SequenceI s)
return gapCharacter;
}
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public Vector getAAFrequency()
- {
- return AAFrequency.calculate(sequences, 0, getWidth());
- }
/**
* DOCUMENT ME!
),
getSequenceAt(i).getStart(),
getSequenceAt(i).getEnd());
-
+ seqs[i].sequenceFeatures = getSequenceAt(i).getSequenceFeatures();
+ getSequenceAt(i).setSequenceFeatures(null);
getSequenceAt(i).setDatasetSequence(seqs[i]);
}
}
for (int i=0; i<sequences.size(); i++) {
alseqs[i] = new SeqCigar((SequenceI) sequences.elementAt(i));
}
- return new CigarArray(alseqs);
+ CigarArray cal = new CigarArray(alseqs);
+ cal.addOperation(CigarArray.M, getWidth());
+ return cal;
}
}