/** * Gets the length of this interval. */ public int length() { return this.getEnd() - this.getStart() + 1; }
/** * Tests whether the variant is within one of the pseudo-autosomal regions */ private boolean isInPseudoAutosomalRegion(final String chr, final int pos) { for (final Interval par : parIntervals) { if (par.getContig().equals(chr) && pos >= par.getStart() && pos <= par.getEnd()) return true; } return false; }
@Override public int hashCode() { int result = getContig().hashCode(); result = 31 * result + getStart(); result = 31 * result + getEnd(); return result; }
@Override public int hashCode() { int result = getContig().hashCode(); result = 31 * result + getStart(); result = 31 * result + getEnd(); return result; }
/** * Returns a new Interval that represents the intersection between the two intervals. */ public Interval intersect(final Interval that) { if (!intersects(that)) throw new IllegalArgumentException(that + " does not intersect " + this); return new Interval(this.getContig(), Math.max(this.getStart(), that.getStart()), Math.min(this.getEnd(), that.getEnd()), this.negativeStrand, this.name + " intersection " + that.name); }
public Collection<T> getOverlapping(final Interval key) { final List<T> result = new ArrayList<T>(); final IntervalTree<T> tree = mSequenceMap.get(key.getSequence()); if (tree != null) { final Iterator<IntervalTree.Node<T>> iterator = tree.overlappers(key.getStart(), key.getEnd()); while (iterator.hasNext()) { result.add(iterator.next().getValue()); } } return result; } /**
public boolean containsKey(final Interval key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if (tree == null) { return false; } return (tree.find(key.getStart(), key.getEnd()) != null); }
public boolean containsKey(final Interval key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if (tree == null) { return false; } return (tree.find(key.getStart(), key.getEnd()) != null); }
public T remove(final Interval key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if (tree == null) { return null; } return tree.remove(key.getStart(), key.getEnd()); }
public T remove(final Interval key) { final IntervalTree<T> tree = mSequenceMap.get(key.getSequence()); if (tree == null) { return null; } return tree.remove(key.getStart(), key.getEnd()); }
@Override public T put(final Interval key, final T value) { IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if (tree == null) { tree = new IntervalTree<T>(); mSequenceMap.put(key.getContig(), tree); } return tree.put(key.getStart(), key.getEnd(), value); }
/** * Returns a new interval that is padded by the amount of bases specified on either side. */ public Interval pad(final int left, final int right) { return new Interval(this.getContig(), this.getStart() - left, this.getEnd() + right, this.negativeStrand, this.name); }
public T get(final Interval key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if (tree == null) { return null; } final IntervalTree.Node<T> node = tree.find(key.getStart(), key.getEnd()); if (node == null) { return null; } return node.getValue(); }
private static Interval lookupIntervalContainingLocus(final IntervalList source, final String chromosome, final int startIndex) { for (final Interval interval : source) { if (interval.getContig().equals(chromosome) && startIndex >= interval.getStart() && startIndex <= interval.getEnd()) { return interval; } } throw new NoSuchElementException(); } }
/** Returns true if the variant and interval overlap. */ private boolean overlapsInterval(final VariantContext ctx, final Interval interval) { if (!ctx.getContig().equals(interval.getContig())) return false; else if (CoordMath.overlaps(ctx.getStart(), ctx.getEnd(), interval.getStart(), interval.getEnd())) return true; else return false; }
/** Returns true if the variant and interval overlap. */ private boolean overlapsInterval(final VariantContext ctx, final Interval interval) { if (!ctx.getContig().equals(interval.getContig())) return false; else if (CoordMath.overlaps(ctx.getStart(), ctx.getEnd(), interval.getStart(), interval.getEnd())) return true; else return false; }
protected static VariantContextBuilder liftSimpleVariantContext(VariantContext source, Interval target) { if (target == null || source.getReference().length() != target.length()) { return null; } // Build the new variant context. Note: this will copy genotypes, annotations and filters final VariantContextBuilder builder = new VariantContextBuilder(source); builder.chr(target.getContig()); builder.start(target.getStart()); builder.stop(target.getEnd()); return builder; }
protected static VariantContextBuilder liftSimpleVariantContext(VariantContext source, Interval target) { if (target == null || source.getReference().length() != target.length()) { return null; } // Build the new variant context. Note: this will copy genotypes, annotations and filters final VariantContextBuilder builder = new VariantContextBuilder(source); builder.chr(target.getContig()); builder.start(target.getStart()); builder.stop(target.getEnd()); return builder; }