public VariantExporter(VariantStorageEngine engine, VariantMetadataFactory metadataFactory) throws StorageEngineException { this.engine = engine; variantWriterFactory = new VariantWriterFactory(engine.getDBAdaptor()); this.metadataFactory = metadataFactory; }
private DataWriter<Variant> configureWriter(final TaskAttemptContext job, OutputStream fileOut) throws IOException { // job.getCounter(VcfDataWriter.class.getName(), "failed").increment(0); // init final Configuration conf = job.getConfiguration(); VariantOutputFormat outputFormat = VariantOutputFormat.valueOf(conf.get(OUTPUT_FORMAT_PARAM)); DataWriter<Variant> dataWriter; VariantTableHelper helper = new VariantTableHelper(conf); try (StudyConfigurationManager scm = new StudyConfigurationManager(new HBaseVariantStorageMetadataDBAdaptorFactory(helper))) { VariantWriterFactory writerFactory = new VariantWriterFactory(scm); Query query = VariantMapReduceUtil.getQueryFromConfig(conf); QueryOptions options = VariantMapReduceUtil.getQueryOptionsFromConfig(conf); dataWriter = writerFactory.newDataWriter(outputFormat, fileOut, query, options); // dataWriter.setConverterErrorListener((v, e) -> // job.getCounter(VcfDataWriter.class.getName(), "failed").increment(1)); dataWriter.open(); dataWriter.pre(); return dataWriter; } }
public int export(Path outputVcf, Query query, QueryOptions options) throws IOException { try (GZIPOutputStream outputStream = new GZIPOutputStream(new FileOutputStream(outputVcf.toFile()))) { DataWriter<Variant> writer = new VariantWriterFactory(dbAdaptor).newDataWriter(VariantWriterFactory.VariantOutputFormat.VCF_GZ, outputStream, query, options); writer.open(); writer.pre(); dbAdaptor.iterator(query, options).forEachRemaining(writer::write); writer.post(); writer.close(); } return 0; }
private static void printVcf(StudyConfiguration studyConfiguration, VariantHadoopDBAdaptor dbAdaptor, Path outDir) throws IOException { try (OutputStream os = new FileOutputStream(outDir.resolve("variant." + studyConfiguration.getStudyName() + ".vcf").toFile())) { Query query = new Query(VariantQueryParam.STUDY.key(), studyConfiguration.getStudyName()).append(VariantQueryParam.UNKNOWN_GENOTYPE.key(), "."); QueryOptions queryOptions = new QueryOptions(); DataWriter<Variant> writer = new VariantWriterFactory(dbAdaptor).newDataWriter(VariantWriterFactory.VariantOutputFormat.VCF, os, query, queryOptions); writer.open(); writer.pre(); writer.write(dbAdaptor.get(query, queryOptions).getResult()); writer.post(); writer.close(); } }