public static void main(final String[] args) throws IOException { if (args.length < 1) { System.out.println("Usage: " + PrintVariantsExample.class.getCanonicalName() + " inFile [outFile]"); System.exit(1); } final File inputFile = new File(args[0]); final File outputFile = args.length >= 2 ? new File(args[1]) : null; final long start = System.currentTimeMillis(); log.info("Start with args:" + Arrays.toString(args)); printConfigurationInfo(); try (final VariantContextWriter writer = outputFile == null ? null : new VariantContextWriterBuilder().setOutputFile(outputFile).setOutputFileType(VariantContextWriterBuilder.OutputType.VCF).unsetOption(Options.INDEX_ON_THE_FLY).build(); final AbstractFeatureReader<VariantContext, LineIterator> reader = AbstractFeatureReader.getFeatureReader(inputFile.getAbsolutePath(), new VCFCodec(), false)) { log.info(reader.getClass().getSimpleName() + " hasIndex " + reader.hasIndex()); if (writer != null) { log.info(writer.getClass().getSimpleName()); writer.writeHeader((VCFHeader) reader.getHeader()); } final ProgressLogger pl = new ProgressLogger(log, 1000000); for (final VariantContext vc : reader.iterator()) { if (writer != null) { writer.add(vc); } pl.record(vc.getContig(), vc.getStart()); } } final long end = System.currentTimeMillis(); log.info(String.format("Done. Elapsed time %.3f seconds", (end - start) / 1000.0)); }
public static void main(final String[] args) throws IOException { if (args.length < 1) { System.out.println("Usage: " + PrintVariantsExample.class.getCanonicalName() + " inFile [outFile]"); System.exit(1); } final File inputFile = new File(args[0]); final File outputFile = args.length >= 2 ? new File(args[1]) : null; final long start = System.currentTimeMillis(); log.info("Start with args:" + Arrays.toString(args)); printConfigurationInfo(); try (final VariantContextWriter writer = outputFile == null ? null : new VariantContextWriterBuilder().setOutputFile(outputFile).setOutputFileType(VariantContextWriterBuilder.OutputType.VCF).unsetOption(Options.INDEX_ON_THE_FLY).build(); final AbstractFeatureReader<VariantContext, LineIterator> reader = AbstractFeatureReader.getFeatureReader(inputFile.getAbsolutePath(), new VCFCodec(), false)) { log.info(reader.getClass().getSimpleName() + " hasIndex " + reader.hasIndex()); if (writer != null) { log.info(writer.getClass().getSimpleName()); writer.writeHeader((VCFHeader) reader.getHeader()); } final ProgressLogger pl = new ProgressLogger(log, 1000000); for (final VariantContext vc : reader.iterator()) { if (writer != null) { writer.add(vc); } pl.record(vc.getContig(), vc.getStart()); } } final long end = System.currentTimeMillis(); log.info(String.format("Done. Elapsed time %.3f seconds", (end - start) / 1000.0)); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testInvalidSetFileTypeForStream() { new VariantContextWriterBuilder() .setReferenceDictionary(dictionary) .setOutputStream(new ByteArrayOutputStream()) .setOutputFileType(VariantContextWriterBuilder.OutputType.VCF) .build(); }
VariantContextWriter writer = new VariantContextWriterBuilder() .setOutputFile(dataPath.toFile()) .setOutputFileType(BLOCK_COMPRESSED_VCF) .build();
.setOutputFileType(fileOutputType) .setReferenceDictionary(stub.getMasterSequenceDictionary()) .setIndexCreator(stub.getIndexCreator()) final VariantContextWriter bcfWriter = new VariantContextWriterBuilder() .setOutputFile(bcfFile) .setOutputFileType(VariantContextWriterBuilder.OutputType.BCF) .setReferenceDictionary(stub.getMasterSequenceDictionary()) .setOptions(options)
@Test(expectedExceptions = IllegalArgumentException.class) public void testSetInvalidFileType() { new VariantContextWriterBuilder() .setReferenceDictionary(dictionary) .setOutputFile("test.bam") .setOutputFileType(VariantContextWriterBuilder.OutputType.VCF_STREAM) .build(); }
@Test public void testSetOutputFileType() { final VariantContextWriterBuilder builder = new VariantContextWriterBuilder() .setReferenceDictionary(dictionary) .setOutputFile(unknown); VariantContextWriter writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.VCF).build(); Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFileType VCF"); Assert.assertFalse(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFileType VCF was compressed"); writer = builder.setOption(Options.FORCE_BCF).build(); Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFileType FORCE_BCF set -> expected BCF, was VCF"); // test that FORCE_BCF remains in effect, overriding the explicit setting of VCF writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.VCF).build(); Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFileType FORCE_BCF set 2 -> expected BCF, was VCF"); writer = builder.unsetOption(Options.FORCE_BCF).build(); Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFileType FORCE_BCF unset -> expected VCF, was BCF"); Assert.assertFalse(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFileType FORCE_BCF unset was compressed"); writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.BLOCK_COMPRESSED_VCF).build(); Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFile BLOCK_COMPRESSED_VCF"); Assert.assertTrue(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFileType BLOCK_COMPRESSED_VCF was not compressed"); writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.BCF).build(); Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFileType BCF"); }
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; }