X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FAlignmentUtils.java;h=2feeb919a3d7791c74584018f69e26b493371ec0;hb=d8ddf2968124b3518e567a91411357b1d291ff77;hp=5659d19f5267e1e150ad6c6c605563e259d22e7a;hpb=47168f025aefdaa044802bd5f8f510ffe43a4808;p=jalview.git diff --git a/src/jalview/analysis/AlignmentUtils.java b/src/jalview/analysis/AlignmentUtils.java index 5659d19..2feeb91 100644 --- a/src/jalview/analysis/AlignmentUtils.java +++ b/src/jalview/analysis/AlignmentUtils.java @@ -27,16 +27,19 @@ import jalview.datamodel.SequenceI; import jalview.datamodel.AlignmentI; /** - * grab bag of useful alignment manipulation operations - * Expect these to be refactored elsewhere at some point. + * grab bag of useful alignment manipulation operations Expect these to be + * refactored elsewhere at some point. + * * @author jimp - * + * */ public class AlignmentUtils { /** - * given an existing alignment, create a new alignment including all, or up to flankSize additional symbols from each sequence's dataset sequence + * given an existing alignment, create a new alignment including all, or up to + * flankSize additional symbols from each sequence's dataset sequence + * * @param core * @param flankSize * @return AlignmentI @@ -45,67 +48,79 @@ public class AlignmentUtils { List sq = new ArrayList(); int maxoffset = 0; - for (SequenceI s:core.getSequences()) + for (SequenceI s : core.getSequences()) { SequenceI newSeq = s.deriveSequence(); - if (newSeq.getStart()>maxoffset && newSeq.getDatasetSequence().getStart() maxoffset + && newSeq.getDatasetSequence().getStart() < s.getStart()) { maxoffset = newSeq.getStart(); } sq.add(newSeq); } - if (flankSize>-1) { + if (flankSize > -1) + { maxoffset = flankSize; } // now add offset to create a new expanded alignment - for (SequenceI s:sq) + for (SequenceI s : sq) { SequenceI ds = s; - while (ds.getDatasetSequence()!=null) { - ds=ds.getDatasetSequence(); + while (ds.getDatasetSequence() != null) + { + ds = ds.getDatasetSequence(); } - int s_end = s.findPosition(s.getStart()+s.getLength()); + int s_end = s.findPosition(s.getStart() + s.getLength()); // find available flanking residues for sequence - int ustream_ds=s.getStart()-ds.getStart(),dstream_ds=ds.getEnd()-s_end; - + int ustream_ds = s.getStart() - ds.getStart(), dstream_ds = ds + .getEnd() - s_end; + // build new flanked sequence - + // compute gap padding to start of flanking sequence - int offset=maxoffset - ustream_ds; - + int offset = maxoffset - ustream_ds; + // padding is gapChar x ( maxoffset - min(ustream_ds, flank) - if (flankSize>=0) { - if (flankSize= 0) + { + if (flankSize < ustream_ds) { - // take up to flankSize residues - offset = maxoffset-flankSize; - ustream_ds = flankSize; - } - if (flankSize