/** * Determine if this is on the same contig as other * this must be equivalent to this.getContig().equals(other.getContig()) but may be implemented more efficiently * * @return true iff this.getContig().equals(other.getContig()) */ default boolean contigsMatch(Locatable other) { return getContig() != null && other != null && Objects.equals(this.getContig(), other.getContig()); } }
/** * Determine if this is on the same contig as other * this must be equivalent to this.getContig().equals(other.getContig()) but may be implemented more efficiently * * @return true iff this.getContig().equals(other.getContig()) */ default boolean contigsMatch(Locatable other) { return getContig() != null && other != null && Objects.equals(this.getContig(), other.getContig()); } }
public static <T extends Locatable> void setIntervals(Configuration conf, List<T> intervals) { StringBuilder sb = new StringBuilder(); for (Iterator<T> it = intervals.iterator(); it.hasNext(); ) { Locatable l = it.next(); sb.append(String.format("%s:%d-%d", l.getContig(), l.getStart(), l.getEnd())); if (it.hasNext()) { sb.append(","); } } conf.set(INTERVALS_PROPERTY, sb.toString()); }
public static <T extends Locatable> void setIntervals(Configuration conf, List<T> intervals) { StringBuilder sb = new StringBuilder(); for (Iterator<T> it = intervals.iterator(); it.hasNext(); ) { Locatable l = it.next(); sb.append(String.format("%s:%d-%d", l.getContig(), l.getStart(), l.getEnd())); if (it.hasNext()) { sb.append(","); } } conf.set(INTERVALS_PROPERTY, sb.toString()); }
public static <T extends Locatable> void setIntervals(Configuration conf, List<T> intervals) { StringBuilder sb = new StringBuilder(); for (Iterator<T> it = intervals.iterator(); it.hasNext(); ) { Locatable l = it.next(); sb.append(String.format("%s:%d-%d", l.getContig(), l.getStart(), l.getEnd())); if (it.hasNext()) { sb.append(","); } } conf.set(INTERVALS_PROPERTY, sb.toString()); }
public static <T extends Locatable> void setIntervals(Configuration conf, List<T> intervals) { StringBuilder sb = new StringBuilder(); for (Iterator<T> it = intervals.iterator(); it.hasNext(); ) { Locatable l = it.next(); sb.append(String.format("%s:%d-%d", l.getContig(), l.getStart(), l.getEnd())); if (it.hasNext()) { sb.append(","); } } conf.set(INTERVALS_PROPERTY, sb.toString()); }
public Collection<T> getOverlapping(final Locatable key) { final List<T> result = new ArrayList<T>(); final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); 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; } /**
/** * Constructs an interval with the supplied {@link Locatable}. */ public Interval(final Locatable locatable) { this(locatable.getContig(), locatable.getStart(), locatable.getEnd()); }
/** * Constructs an interval with the supplied {@link Locatable}. */ public Interval(final Locatable locatable) { this(locatable.getContig(), locatable.getStart(), locatable.getEnd()); }
public Collection<T> getOverlapping(final Locatable key) { final List<T> result = new ArrayList<T>(); final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); 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; } /**
/** * Test overlapping interval * @param key the Locatable * @return true if it contains an object overlapping the interval */ public boolean containsOverlapping(final Locatable key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); return tree!=null && tree.overlappers(key.getStart(), key.getEnd()).hasNext(); }
/** * Test overlapping interval * @param key the Locatable * @return true if it contains an object overlapping the interval */ public boolean containsOverlapping(final Locatable key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); return tree!=null && tree.overlappers(key.getStart(), key.getEnd()).hasNext(); }
/** * Queries for records overlapping the {@link Locatable} specified. * Note that this method requires VCF files with an associated index. If no index exists a TribbleException will be thrown. * * @return non-null iterator over VariantContexts */ public CloseableIterator<VariantContext> query(final Locatable locatable) { return query(locatable.getContig(), locatable.getStart(), locatable.getEnd()); }
/** * Query the reader for a particular interval corresponding to a contig and a 1-based closed * * @param locus The locus to be queried * @return an iterator containing the features that at in the interval. * @throws IOException If there's a problem reading or if the reader is not queryable, e.g. if it doesn't have an index. */ default CloseableTribbleIterator<T> query(Locatable locus) throws IOException { return query(locus.getContig(), locus.getStart(), locus.getEnd()); }
/** * Queries for records overlapping the {@link Locatable} specified. * Note that this method requires VCF files with an associated index. If no index exists a TribbleException will be thrown. * * @return non-null iterator over VariantContexts */ public CloseableIterator<VariantContext> query(final Locatable locatable) { return query(locatable.getContig(), locatable.getStart(), locatable.getEnd()); }
/** * Query the reader for a particular interval corresponding to a contig and a 1-based closed * * @param locus The locus to be queried * @return an iterator containing the features that at in the interval. * @throws IOException If there's a problem reading or if the reader is not queryable, e.g. if it doesn't have an index. */ default CloseableTribbleIterator<T> query(Locatable locus) throws IOException { return query(locus.getContig(), locus.getStart(), locus.getEnd()); }
public Collection<T> getContained(final Locatable key) { final List<T> result = new ArrayList<T>(); final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if (tree != null) { final Iterator<IntervalTree.Node<T>> iterator = tree.overlappers(key.getStart(), key.getEnd()); while (iterator.hasNext()) { final IntervalTree.Node<T> node = iterator.next(); if (node.getStart() >= key.getStart() && node.getEnd() <= key.getEnd()) { result.add(node.getValue()); } } } return result; }
public Collection<T> getContained(final Locatable key) { final List<T> result = new ArrayList<T>(); final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if (tree != null) { final Iterator<IntervalTree.Node<T>> iterator = tree.overlappers(key.getStart(), key.getEnd()); while (iterator.hasNext()) { final IntervalTree.Node<T> node = iterator.next(); if (node.getStart() >= key.getStart() && node.getEnd() <= key.getEnd()) { result.add(node.getValue()); } } } return result; }
/** * Test if this contains an object that is contained by 'key' * @param key the Locatable * @return true if it contains an object is contained by 'key' */ public boolean containsContained(final Locatable key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if(tree==null) return false; final Iterator<IntervalTree.Node<T>> iterator = tree.overlappers(key.getStart(), key.getEnd()); while (iterator.hasNext()) { final IntervalTree.Node<T> node = iterator.next(); if (node.getStart() >= key.getStart() && node.getEnd() <= key.getEnd()) { return true; } } return false; }
/** * Test if this contains an object that is contained by 'key' * @param key the Locatable * @return true if it contains an object is contained by 'key' */ public boolean containsContained(final Locatable key) { final IntervalTree<T> tree = mSequenceMap.get(key.getContig()); if(tree==null) return false; final Iterator<IntervalTree.Node<T>> iterator = tree.overlappers(key.getStart(), key.getEnd()); while (iterator.hasNext()) { final IntervalTree.Node<T> node = iterator.next(); if (node.getStart() >= key.getStart() && node.getEnd() <= key.getEnd()) { return true; } } return false; }