*/
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())
{