private AbstractSequence cutRegion( AbstractSequence s, BlastAnalysis.Result blastResult, BlastAnalysis.Region region) { int rs = Math.max(0, region.getBegin() - blastResult.getStart()); int re = Math.min(s.getLength(), s.getLength() - (blastResult.getEnd() - region.getEnd())); AbstractSequence s2 = re > rs ? new SubSequence(s.getName(), s.getDescription(), s, rs, re) : s; return s2; }