/*
* 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 = new SequenceI[alseqs.length];
- for (int i=0; i<alseqs.length; i++) {
- seqs[i] = alseqs[i].getSeq(this.gapCharacter);
- }
+ SequenceI[] seqs = SeqCigar.createAlignmentSequences(alseqs, gapCharacter, new ColumnSelection(), null);
initAlignment(seqs);
}
/**
* JBPNote - must also check that compactAlignment resolves to a set of SeqCigars - or construct them appropriately.
* @param compactAlignment CigarArray
*/
- public Alignment(CigarArray compactAlignment) {
+ public static AlignmentI createAlignment(CigarArray compactAlignment) {
throw new Error("Alignment(CigarArray) not yet implemented");
// this(compactAlignment.refCigars);
}
{
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);
+ }
}
}
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]);
}
}