@Override public void setHeader(final VCFHeader header) { innerWriter.setHeader(header); }
@Override public void setHeader(final VCFHeader header) { innerWriter.setHeader(header); }
@Override public void setHeader(final VCFHeader header) { this.underlyingWriter.setHeader(header); }
@Override public void setHeader(final VCFHeader header) { this.underlyingWriter.setHeader(header); }
@Test(expectedExceptions = IllegalStateException.class) public void testChangeHeaderAfterWritingBody() throws IOException { final File bcfOutputFile = File.createTempFile("testWriteAndReadVCF.", ".bcf", tempDir); bcfOutputFile.deleteOnExit(); final VCFHeader header = createFakeHeader(); // prevent changing header if part of body is already written try (final VariantContextWriter writer = new VariantContextWriterBuilder() .setOutputFile(bcfOutputFile).setReferenceDictionary(header.getSequenceDictionary()) .unsetOption(Options.INDEX_ON_THE_FLY) .build()) { writer.setHeader(header); writer.add(createVC(header)); writer.setHeader(header); } }
@Test(expectedExceptions = IllegalStateException.class) public void testChangeHeaderAfterWritingBody() { final File fakeVCFFile = VariantBaseTest.createTempFile("testBasicWriteAndRead.", IOUtil.VCF_FILE_EXTENSION); fakeVCFFile.deleteOnExit(); final SAMSequenceDictionary sequenceDict = createArtificialSequenceDictionary(); final VCFHeader header = createFakeHeader(metaData, additionalColumns, sequenceDict); // prevent changing header if part of body is already written try (final VariantContextWriter writer3 = new VariantContextWriterBuilder() .setOutputFile(fakeVCFFile) .setReferenceDictionary(sequenceDict) .build()) { writer3.setHeader(header); writer3.add(createVC(header)); writer3.setHeader(header); } }
@Test(expectedExceptions = IllegalStateException.class) public void testChangeHeaderAfterWritingHeader() throws IOException { final File bcfOutputFile = File.createTempFile("testWriteAndReadVCF.", ".bcf", tempDir); bcfOutputFile.deleteOnExit(); final VCFHeader header = createFakeHeader(); // prevent changing header if it's already written try (final VariantContextWriter writer = new VariantContextWriterBuilder() .setOutputFile(bcfOutputFile).setReferenceDictionary(header.getSequenceDictionary()) .unsetOption(Options.INDEX_ON_THE_FLY) .build()) { writer.writeHeader(header); writer.setHeader(header); } }
@Test(expectedExceptions = IllegalStateException.class) public void testChangeHeaderAfterWritingHeader() { final File fakeVCFFile = VariantBaseTest.createTempFile("testBasicWriteAndRead.", IOUtil.VCF_FILE_EXTENSION); fakeVCFFile.deleteOnExit(); final SAMSequenceDictionary sequenceDict = createArtificialSequenceDictionary(); final VCFHeader header = createFakeHeader(metaData, additionalColumns, sequenceDict); // prevent changing header if it's already written try (final VariantContextWriter writer2 = new VariantContextWriterBuilder() .setOutputFile(fakeVCFFile) .setReferenceDictionary(sequenceDict) .build()) { writer2.writeHeader(header); writer2.setHeader(header); } }
.setOptions(EnumSet.of(Options.ALLOW_MISSING_FIELDS_IN_HEADER, Options.INDEX_ON_THE_FLY)) .build()) { writer.setHeader(header); writer.add(createVC(header)); writer.add(createVC(header));
/** test, using the writer and reader, that we can output and input a VCF body without problems */ @Test public void testWriteAndReadAsyncVCFHeaderless() throws IOException { final File fakeVCFFile = VariantBaseTest.createTempFile("testWriteAndReadAsyncVCFHeaderless.", IOUtil.VCF_FILE_EXTENSION); fakeVCFFile.deleteOnExit(); Tribble.indexFile(fakeVCFFile).deleteOnExit(); final Set<VCFHeaderLine> metaData = new HashSet<>(); final Set<String> additionalColumns = new HashSet<>(); final SAMSequenceDictionary sequenceDict = createArtificialSequenceDictionary(); final VCFHeader header = createFakeHeader(metaData, additionalColumns, sequenceDict); try (final VariantContextWriter writer = new VariantContextWriterBuilder() .setOutputFile(fakeVCFFile).setReferenceDictionary(sequenceDict) .setOptions(EnumSet.of(Options.ALLOW_MISSING_FIELDS_IN_HEADER, Options.INDEX_ON_THE_FLY, Options.USE_ASYNC_IO)) .build()) { writer.setHeader(header); writer.add(createVC(header)); writer.add(createVC(header)); } final VCFCodec codec = new VCFCodec(); codec.setVCFHeader(header, VCFHeaderVersion.VCF4_2); try (final FileInputStream fis = new FileInputStream(fakeVCFFile)) { final AsciiLineReaderIterator iterator = new AsciiLineReaderIterator(new AsciiLineReader(fis)); int counter = 0; while (iterator.hasNext()) { VariantContext context = codec.decode(iterator.next()); counter++; } Assert.assertEquals(counter, 2); } }
.unsetOption(Options.INDEX_ON_THE_FLY) .build()) { fakeBCFBodyFileWriter.setHeader(header); // does not write header fakeBCFBodyFileWriter.add(createVC(header)); fakeBCFBodyFileWriter.add(createVC(header));
private static File createBgzipVcfsWithVariableSize(final int firstRecordAttributeLength, final int nSmallRecords) throws Exception { final VariantContext longRecord = new VariantContextBuilder("long", TEST_CHR, 1, 1, alleles) .attribute(RANDOM_ATTRIBUTE, generateRandomString(firstRecordAttributeLength)) .make(); final File tempFile = Files.createTempFile("test" + firstRecordAttributeLength + "_" + nSmallRecords, ".vcf.gz").toFile(); try (final VariantContextWriter writer = new VariantContextWriterBuilder() .setOptions(VariantContextWriterBuilder.NO_OPTIONS) .setOutputFile(tempFile) .setOutputFileType(VariantContextWriterBuilder.OutputType.BLOCK_COMPRESSED_VCF) .build()) { writer.setHeader(createTestHeader()); // do not write the header writer.add(longRecord); for (int i = 2; i <= nSmallRecords + 1; i++) { final VariantContext smallRecord = new VariantContextBuilder("short", TEST_CHR, i, i, alleles).attribute(RANDOM_ATTRIBUTE, ".").make(); writer.add(smallRecord); } } return tempFile; }