private void initialize(final SAMFileHeader header){ this.header = header; this.intervals = new IntervalList(header); }
let c = new IntervalList(); c.add(10, 20); c.add(20, 30); c.add(5,7); c.add(3,5); c.add(9,7)
/** * creates a independent copy of the given IntervalList */ public static IntervalList copyOf(final IntervalList list) { final IntervalList clone = new IntervalList(list.header.clone()); clone.intervals.addAll(list.intervals); return clone; }
/** * creates a independent copy of the given IntervalList */ public static IntervalList copyOf(final IntervalList list) { final IntervalList clone = new IntervalList(list.header.clone()); clone.intervals.addAll(list.intervals); return clone; }
/** * Returned an independent IntervalList that is sorted and uniquified. * @param concatenateNames If false, interval names are not concatenated when merging intervals to save space. */ public IntervalList uniqued(final boolean concatenateNames) { final List<Interval> tmp = getUniqueIntervals(sorted(), concatenateNames); final IntervalList value = new IntervalList(this.header.clone()); value.intervals.addAll(tmp); return value; }
/** * Returned an independent IntervalList that is sorted and uniquified. * * @param concatenateNames If false, interval names are not concatenated when merging intervals to save space. */ public IntervalList uniqued(final boolean concatenateNames) { final List<Interval> tmp = getUniqueIntervals(sorted(), concatenateNames); final IntervalList value = new IntervalList(this.header.clone()); value.intervals.addAll(tmp); return value; }
/** * Returned an independent IntervalList that is sorted and uniquified. * * @param concatenateNames If false, interval names are not concatenated when merging intervals to save space. */ public IntervalList uniqued(final boolean concatenateNames) { final List<Interval> tmp = getUniqueIntervals(sorted(), concatenateNames); final IntervalList value = new IntervalList(this.header.clone()); value.intervals.addAll(tmp); return value; }
/** * Creates an IntervalList from the given sequence name * * @param header header to use to create IntervalList * @param sequenceName name of sequence in header * @return a new intervalList with given header that contains the reference name */ public static IntervalList fromName(final SAMFileHeader header, final String sequenceName) { final IntervalList ref = new IntervalList(header); ref.add(new Interval(sequenceName, 1, header.getSequence(sequenceName).getSequenceLength())); return ref; }
@Test(expectedExceptions = IllegalArgumentException.class) public void TestFailAdd() { IntervalList test = new IntervalList(this.fileHeader); test.add(new Interval("blarg", 1, 1)); }
@Test public void testEmptyIntervalList() { final IntervalList intervalList = new IntervalList(header); final VCFFileReader reader = getReader(CEU_TRIOS_SNPS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test public void testSimpleOverlap() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval("2", 167166899, 167166899)); final VCFFileReader reader = getReader(CEU_TRIOS_SNPS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertTrue(iterator.hasNext()); final VariantContext ctx = iterator.next(); Assert.assertEquals(ctx.getStart(), 167166899); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test public void testSimpleEnclosing() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval("12", 68921962, 68921962)); // deletion spans this final VCFFileReader reader = getReader(CEU_TRIOS_INDELS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertTrue(iterator.hasNext()); final VariantContext ctx = iterator.next(); Assert.assertEquals(ctx.getStart(), 68921960); Assert.assertEquals(ctx.getEnd(), 68921966); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test public void testUnionSamePosition() { final IntervalList iList= new IntervalList(fileHeader); final List<Interval> intervals = Arrays.asList( new Interval("1", 2, 100, true, "test1"), new Interval("1", 2, 100, true, "test2") ); iList.addall(intervals); final List<Interval> uniqued = iList.uniqued().getIntervals(); Assert.assertEquals(uniqued.size(),1); Assert.assertEquals(uniqued.get(0).getName(),"test1|test2"); }
@Test public void testNoOverlapDifferentContig() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval("3", 167166899, 167166899)); final VCFFileReader reader = getReader(CEU_TRIOS_SNPS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test(expectedExceptions = IllegalArgumentException.class) public void TestFailAddAll() { IntervalList test = new IntervalList(this.fileHeader); test.addall(CollectionUtil.makeList(new Interval("blarg", 1, 1), new Interval("bloorg", 1, 1))); }
@Test public void testNoVariants() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval(this.dict.getSequence(0).getSequenceName(), 1, 100)); final VCFFileReader reader = getReader(EMPTY_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test public void uniqueIntervalsWithoutNames() { final IntervalList test = new IntervalList(this.fileHeader); test.add(new Interval("1", 100, 200)); test.add(new Interval("1", 500, 600)); test.add(new Interval("1", 550, 700)); for (final boolean concat : new boolean[]{true, false}) { final IntervalList unique = test.uniqued(concat); Assert.assertEquals(unique.size(), 2); } }
private IntervalList buildIntervalList(final int start, final int end) { final SAMFileHeader header = new SAMFileHeader(); header.addSequence(new SAMSequenceRecord("CONTIG", 100000000)); final IntervalList intervals = new IntervalList(header); if (0 < start) intervals.add(new Interval("CONTIG", start, end)); return intervals; }
@Test(dataProvider = "invertData") public void testInvertSquared(final IntervalList list, @SuppressWarnings("UnusedParameters") final IntervalList ignored) throws Exception { final IntervalList inverseSquared = IntervalList.invert(IntervalList.invert(list)); final IntervalList originalClone = new IntervalList(list.getHeader()); for (final Interval interval : list) { originalClone.add(interval); } Assert.assertEquals( CollectionUtil.makeCollection(inverseSquared.iterator()), CollectionUtil.makeCollection(originalClone.uniqued().iterator())); }
private static IntervalList composeIntervalList(final IntervalList source, final String chromosome, final int... segmentsByPair) { final IntervalList intervals = new IntervalList(source.getHeader()); for (int i = 0; i < segmentsByPair.length; i += 2) { final Interval parentInterval = lookupIntervalContainingLocus(source, chromosome, segmentsByPair[i]); intervals.add(new Interval(chromosome, segmentsByPair[i], segmentsByPair[i + 1], parentInterval.isNegativeStrand(), parentInterval.getName())); } return intervals; }