- seqColStart = Math.max(seqColStart, visible[0]);
- seqColEnd = Math.min(seqColEnd, visible[1]);
+
+ int[] visible = visibleRegions.next();
+ int seqColStart = Math.max(column, visible[0]);
+ int seqColEnd = visible[1];
+ // end residue of region (next residue if end position is gapped)
+ int endSeqPos = sequence.findPosition(visible[1]);
+ if (Comparison.isGap(sequence.getCharAt(visible[1])))
+ {
+ endSeqPos--;
+ }
+ while (visibleRegions.hasNext())
+ {
+ visible = visibleRegions.next();
+ int startSeqPos = sequence.findPosition(visible[0]);
+ if (startSeqPos - endSeqPos > 1)
+ {
+ // this visible region is not contiguous - ignore it
+ break;
+ }
+ endSeqPos = sequence.findPosition(visible[1]);
+ seqColEnd = visible[1];
+ }
+ seqColEnd = Math.min(sequence.getLength() - 1, seqColEnd);