From: jprocter Date: Mon, 23 Jun 2008 07:45:38 +0000 (+0000) Subject: local sequence properties are preserved in SeqCigar representation of sequence using... X-Git-Tag: Release_2_4~94 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=58025959cd65fd79736adb061f2f381867b87738;p=jalview.git local sequence properties are preserved in SeqCigar representation of sequence using SeqHash/SeqUnhash in jalview.analysis.SeqsetUtils. Ensures input data and alignment results from webservice have same visible names as original sequences input. --- 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()) {