/** * 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 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, Query query, QueryOptions queryOptions) throws IOException, StorageEngineException { exportData(outputFile, outputFormat, new VariantMetadataFactory(getStudyConfigurationManager() ), query, queryOptions); }
@Test public void exportStudyTest() throws Exception { variantStorageEngine.exportData(null, VariantOutputFormat.VCF, new Query(), new QueryOptions()); // It may happen that the VcfExporter closes the StandardOutput. // Check System.out is not closed System.out.println(getClass().getSimpleName() + ": System out not closed!"); }
@Test public void exportStudyJsonTest() throws Exception { URI output = newOutputUri().resolve("variant.json.gz"); variantStorageEngine.exportData(output, VariantOutputFormat.JSON_GZ, new Query(), new QueryOptions()); System.out.println("output = " + output); assertTrue(Paths.get(output).toFile().exists()); assertTrue(Paths.get(output.getPath() + VariantExporter.METADATA_FILE_EXTENSION).toFile().exists()); // Check gzip format try (BufferedReader br = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(output.getPath()))))) { int i = 0; while (true) { String line = br.readLine(); if (line == null) { break; } System.out.println("[" + i++ + "]: " + line); } } }
new CatalogVariantMetadataFactory(catalogManager, variantStorageEngine.getDBAdaptor(), sessionId); variantStorageEngine.exportData(outputFile, outputFormat, metadataExporter, query, new QueryOptions(options));
variantStorageEngine.exportData(uri, of, query, options);
@Test public void testSimpleImport() throws Exception { URI outputFile = newOutputUri().resolve("export.avro"); System.out.println("outputFile = " + outputFile); variantStorageEngine.exportData(outputFile, VariantOutputFormat.AVRO, new Query(), new QueryOptions()); clearDB(DB_NAME); variantStorageEngine.importData(outputFile, new ObjectMap()); for (Variant variant : variantStorageEngine.getDBAdaptor()) { assertEquals(4, variant.getStudies().get(0).getSamplesData().size()); } }
@Test public void exportVcf() throws Exception { variantStorageEngine.exportData(null, VariantWriterFactory.VariantOutputFormat.VCF, new Query(VariantQueryParam.UNKNOWN_GENOTYPE.key(), "./."), new QueryOptions(QueryOptions.SORT, true)); }
@Test public void testImportEmptySamples() throws Exception { URI outputFile = newOutputUri().resolve("export.avro"); System.out.println("outputFile = " + outputFile); Query query = new Query(VariantQueryParam.INCLUDE_SAMPLE.key(), "."); QueryOptions queryOptions = new QueryOptions(); variantStorageEngine.exportData(outputFile, VariantOutputFormat.AVRO, query, queryOptions); clearDB(DB_NAME); variantStorageEngine.importData(outputFile, new ObjectMap()); for (Variant variant : variantStorageEngine.getDBAdaptor()) { assertEquals(0, variant.getStudies().get(0).getSamplesData().size()); } }
@Test public void testImportExcludeSamples() throws Exception { URI outputFile = newOutputUri().resolve("export.avro"); System.out.println("outputFile = " + outputFile); Query query = new Query(); QueryOptions queryOptions = new QueryOptions(QueryOptions.EXCLUDE, VariantField.STUDIES_SAMPLES_DATA.toString()); variantStorageEngine.exportData(outputFile, VariantOutputFormat.AVRO, query, queryOptions); clearDB(DB_NAME); variantStorageEngine.importData(outputFile, new ObjectMap()); for (Variant variant : variantStorageEngine.getDBAdaptor()) { assertEquals(0, variant.getStudies().get(0).getSamplesData().size()); } }
@Test public void testImportSomeSamples() throws Exception { URI outputFile = newOutputUri().resolve("export.avro"); System.out.println("outputFile = " + outputFile); List<String> samples = new LinkedList<>(studyConfiguration.getSampleIds().keySet()).subList(1, 3); Set<String> samplesSet = new HashSet<>(samples); Query query = new Query(VariantQueryParam.INCLUDE_SAMPLE.key(), samples); variantStorageEngine.exportData(outputFile, VariantOutputFormat.AVRO, query, new QueryOptions()); clearDB(DB_NAME); variantStorageEngine.importData(outputFile, new ObjectMap()); for (Variant variant : variantStorageEngine.getDBAdaptor()) { assertEquals(2, variant.getStudies().get(0).getSamplesData().size()); assertEquals(samplesSet, variant.getStudies().get(0).getSamplesName()); } }