/*
- * Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- *
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
+ * Copyright (C) 2008 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
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
- *
+ *
* 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.
- *
+ *
* 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
*/
package jalview.datamodel;
+import java.util.Hashtable;
+
import jalview.analysis.*;
import jalview.util.*;
*/
private int start, end;
private SequenceI refseq = null;
+ private Hashtable seqProps;
/**
* Reference dataset sequence for the cigar string
* @return SequenceI
refseq.getStart() + start + bounds[0],
refseq.getStart() + start +
( (bounds[2] == 0) ? -1 : bounds[2]));
+ seq.setDescription(refseq.getDescription());
+ int sstart = seq.getStart(),
+ send = seq.getEnd();
// seq.checkValidRange(); probably not needed
+ // recover local properties if present
+ if (seqProps!=null)
+ {
+ // this recovers dataset sequence reference as well as local features, names, start/end settings.
+ SeqsetUtils.SeqCharacterUnhash(seq, seqProps);
+ }
+ // ensure dataset sequence is up to date from local reference
seq.setDatasetSequence(refseq);
- seq.setDescription(refseq.getDescription());
+ seq.setStart(sstart);
+ seq.setEnd(send);
return seq;
}
hasgaps = true;
}
- this.refseq = ds;
-
+ refseq = ds;
+ // copy over local properties for the sequence instance of the refseq
+ seqProps = SeqsetUtils.SeqCharacterHash(seq);
// Check offsets
if (end > ds.getLength())
{