@Test public void testCRAMRecordWriterWithHeader() throws Exception { final File outFile = File.createTempFile("testCRAMWriter", ".cram"); outFile.deleteOnExit(); final Path outPath = new Path(outFile.toURI()); final CRAMTestWithHeaderOutputFormat cramOut = new CRAMTestWithHeaderOutputFormat(); conf.set(CRAMTestNoHeaderOutputFormat.READ_HEADER_FROM_FILE, testCRAMFileName); RecordWriter<NullWritable, SAMRecordWritable> rw = cramOut.getRecordWriter(taskAttemptContext, outPath); final SamReader samReader = SamReaderFactory.makeDefault() .referenceSequence(new File(testReferenceFileName)) .open(new File(testCRAMFileName)); for (final SAMRecord r : samReader) { final SAMRecordWritable samRW = new SAMRecordWritable(); samRW.set(r); rw.write(null, samRW); } samReader.close(); rw.close(taskAttemptContext); // now verify the container stream final int actualCount = getCRAMRecordCount(outFile); assertEquals(expectedRecordCount, actualCount); }
@Test public void testCRAMRecordWriterNoHeader() throws Exception { final File outFile = File.createTempFile("testCRAMWriter", ".cram"); outFile.deleteOnExit(); final Path outPath = new Path(outFile.toURI()); final CRAMTestNoHeaderOutputFormat cramOut = new CRAMTestNoHeaderOutputFormat(); conf.set(CRAMTestNoHeaderOutputFormat.READ_HEADER_FROM_FILE, testCRAMFileName); RecordWriter<NullWritable, SAMRecordWritable> rw = cramOut.getRecordWriter(taskAttemptContext, outPath); final SamReader samReader = SamReaderFactory.makeDefault() .referenceSequence(new File(testReferenceFileName)) .open(new File(testCRAMFileName)); for (final SAMRecord r : samReader) { final SAMRecordWritable samRW = new SAMRecordWritable(); samRW.set(r); rw.write(null, samRW); } samReader.close(); rw.close(taskAttemptContext); // now verify the container stream final int actualCount = getCRAMRecordCount(outFile, samFileHeader, testReferenceSource); assertEquals(expectedRecordCount, actualCount); }
@Test public void testBAMRecordWriterWithHeader() throws Exception { final File outFile = File.createTempFile("testBAMWriter", ".bam"); outFile.deleteOnExit(); final Path outPath = new Path(outFile.toURI()); final BAMTestWithHeaderOutputFormat bamOut = new BAMTestWithHeaderOutputFormat(); conf.set(BAMTestWithHeaderOutputFormat.READ_HEADER_FROM_FILE, testBAMFileName); bamOut.setWriteHeader(false); RecordWriter<NullWritable, SAMRecordWritable> rw = bamOut.getRecordWriter(taskAttemptContext, outPath); final SamReader samReader = SamReaderFactory.makeDefault() .open(new File(testBAMFileName)); for (final SAMRecord r : samReader) { final SAMRecordWritable samRW = new SAMRecordWritable(); samRW.set(r); rw.write(null, samRW); } samReader.close(); rw.close(taskAttemptContext); // now verify the output final int actualCount = getBAMRecordCount(outFile); assertEquals(expectedRecordCount, actualCount); }
@Test public void testBAMRecordWriterNoHeader() throws Exception { final File outFile = File.createTempFile("testBAMWriter", ".bam"); outFile.deleteOnExit(); final Path outPath = new Path(outFile.toURI()); final BAMTestNoHeaderOutputFormat bamOut = new BAMTestNoHeaderOutputFormat(); conf.set(BAMTestNoHeaderOutputFormat.READ_HEADER_FROM_FILE, testBAMFileName); bamOut.setWriteHeader(false); RecordWriter<NullWritable, SAMRecordWritable> rw = bamOut.getRecordWriter(taskAttemptContext, outPath); final SamReader samReader = SamReaderFactory.makeDefault() .open(new File(testBAMFileName)); for (final SAMRecord r : samReader) { final SAMRecordWritable samRW = new SAMRecordWritable(); samRW.set(r); rw.write(null, samRW); } samReader.close(); rw.close(taskAttemptContext); // now verify the output final int actualCount = getBAMRecordCount(outFile, samFileHeader); assertEquals(expectedRecordCount, actualCount); }