X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSeqCigar.java;h=9ed0388d8ce01d4669ee86bf4e9f148167749fa3;hb=58025959cd65fd79736adb061f2f381867b87738;hp=c8965558c091ecd51888de14d18e3a124d700e61;hpb=7bc226b58110fa26d9dbd3f0c78095d06909ffc3;p=jalview.git diff --git a/src/jalview/datamodel/SeqCigar.java b/src/jalview/datamodel/SeqCigar.java index c896555..9ed0388 100644 --- a/src/jalview/datamodel/SeqCigar.java +++ b/src/jalview/datamodel/SeqCigar.java @@ -18,6 +18,8 @@ */ package jalview.datamodel; +import java.util.Hashtable; + import jalview.analysis.*; import jalview.util.*; @@ -29,6 +31,7 @@ public class SeqCigar */ private int start, end; private SequenceI refseq = null; + private Hashtable seqProps; /** * Reference dataset sequence for the cigar string * @return SequenceI @@ -91,9 +94,20 @@ public class SeqCigar 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; } @@ -182,8 +196,9 @@ public class SeqCigar 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()) {