/** * Creates a new {@link VariantExporter} for the current backend. * The default implementation iterates locally through the database. * * @param metadataFactory metadataFactory * @return new VariantExporter * @throws StorageEngineException if there is an error creating the VariantExporter */ protected VariantExporter newVariantExporter(VariantMetadataFactory metadataFactory) throws StorageEngineException { return new VariantExporter(this, metadataFactory); }
/** * Exports the result of the given query and the associated metadata. * @param outputFile Optional output file. If null or empty, will print into the Standard output. Won't export any metadata. * @param outputFormat Variant output format * @param metadataFactory Metadata factory. Metadata will only be generated if the outputFile is defined. * @param query Query with the variants to export * @param queryOptions Query options * @throws IOException If there is any IO error * @throws StorageEngineException If there is any error exporting variants */ public void exportData(URI outputFile, VariantOutputFormat outputFormat, VariantMetadataFactory metadataFactory, Query query, QueryOptions queryOptions) throws IOException, StorageEngineException { VariantExporter exporter = newVariantExporter(metadataFactory); query = preProcessQuery(query, queryOptions); exporter.export(outputFile, outputFormat, query, queryOptions); }
/** * Exports the result of the given query and the associated metadata. * @param outputFileUri Optional output file. If null or empty, will print into the Standard output. Won't export any metadata. * @param outputFormat Variant Output format. * @param query Query with the variants to export * @param queryOptions Query options * @throws IOException If there is any IO error * @throws StorageEngineException If there is any error exporting variants */ public void export(@Nullable URI outputFileUri, VariantOutputFormat outputFormat, Query query, QueryOptions queryOptions) throws IOException, StorageEngineException { String outputFile = null; if (outputFileUri != null) { outputFile = outputFileUri.getPath(); } outputFile = VariantWriterFactory.checkOutput(outputFile, outputFormat); try (OutputStream os = VariantWriterFactory.getOutputStream(outputFile, outputFormat)) { boolean logProgress = !VariantWriterFactory.isStandardOutput(outputFile); exportData(os, outputFormat, query, queryOptions, logProgress); } if (metadataFactory != null && !VariantWriterFactory.isStandardOutput(outputFile)) { VariantMetadata metadata = metadataFactory.makeVariantMetadata(query, queryOptions); writeMetadata(metadata, outputFile + METADATA_FILE_EXTENSION); } }
throws IOException, StorageEngineException { if (outputFileUri == null || StringUtils.isEmpty(outputFileUri.getScheme()) || outputFileUri.getScheme().equals("file")) { super.export(outputFileUri, outputFormat, query, queryOptions); } else if (outputFileUri.getScheme().equals("hdfs")) { VariantHadoopDBAdaptor dbAdaptor = ((VariantHadoopDBAdaptor) engine.getDBAdaptor());