/** * Write the reads from this builder to output, creating an index as well * @param output the output BAM file we want to use * @return */ public File makeBAMFile(final File output) { final SAMFileWriter writer = factory.makeBAMWriter(header, true, output, 0); for ( final GATKSAMRecord read : makeReads() ) writer.addAlignment(read); writer.close(); return output; }
@Test(dataProvider = "ReadCacheTestData") public void testReadCache(final int nReadsPerLocus, final int nLoci, final int max, final boolean addAllAtOnce) { final TAROrderedReadCache cache = new TAROrderedReadCache(max); Assert.assertEquals(cache.getMaxCapacity(), max); Assert.assertEquals(cache.getNumDiscarded(), 0); Assert.assertEquals(cache.size(), 0); final ArtificialBAMBuilder bamBuilder = new ArtificialBAMBuilder(seq, nReadsPerLocus, nLoci); final List<GATKSAMRecord> reads = bamBuilder.makeReads(); if ( addAllAtOnce ) { cache.addAll(reads); } else { for ( final GATKSAMRecord read : reads ) { cache.add(read); } } final int nTotalReads = reads.size(); final int nExpectedToKeep = Math.min(nTotalReads, max); final int nExpectedToDiscard = nTotalReads - nExpectedToKeep; Assert.assertEquals(cache.getNumDiscarded(), nExpectedToDiscard, "wrong number of reads discarded"); Assert.assertEquals(cache.size(), nExpectedToKeep, "wrong number of reads kept"); final List<GATKSAMRecord> cacheReads = cache.popCurrentReads(); Assert.assertEquals(cache.size(), 0, "Should be no reads left"); Assert.assertEquals(cache.getNumDiscarded(), 0, "should have reset stats"); Assert.assertEquals(cacheReads.size(), nExpectedToKeep, "should have 1 read for every read we expected to keep"); verifySortednessOfReads(cacheReads); }
final Set<String> readNamesInRegion = readNamesInRegion(region); int nReadsExpectedInRegion = 0; for ( final GATKSAMRecord read : bamBuilder.makeReads() ) { final GenomeLoc readLoc = genomeLocParser.createGenomeLoc(read);
Assert.assertEquals(bamBuilder.getnLoci(), nLoci); final List<GATKSAMRecord> reads = bamBuilder.makeReads(); Assert.assertEquals(reads.size(), bamBuilder.expectedNumberOfReads()); for ( final GATKSAMRecord read : reads ) {
bamBuilder.createAndSetHeader(nSamples).setReadLength(readLength).setAlignmentStart(1); final List<GATKSAMRecord> reads = bamBuilder.makeReads(); li = new LocusIteratorByState(new FakeCloseableIterator<GATKSAMRecord>(reads.iterator()), downsampler, true, keepReads,
for ( final GATKSAMRecord read : bamBuilder.makeReads() ) { Assert.assertTrue(readNamesInRegion.contains(read.getReadName()), "Region " + region + " should contain read " + read + " with cigar " + read.getCigarString() + " but it wasn't");