@@ -251,7 +251,8 @@ void TileDBVCFDataset::create(const CreationParams& params) {
251251 metadata,
252252 params.checksum ,
253253 params.allow_duplicates ,
254- params.compress_sample_dim );
254+ params.compress_sample_dim ,
255+ params.compression_level );
255256
256257 if (params.enable_allele_count ) {
257258 AlleleCount::create (ctx, params.uri , params.checksum );
@@ -330,7 +331,8 @@ void TileDBVCFDataset::create_empty_data_array(
330331 const Metadata& metadata,
331332 const tiledb_filter_type_t & checksum,
332333 const bool allow_duplicates,
333- const bool compress_sample_dim) {
334+ const bool compress_sample_dim,
335+ const int compression_level) {
334336 ArraySchema schema (ctx, TILEDB_SPARSE );
335337 schema.set_capacity (metadata.tile_capacity );
336338 schema.set_order ({{TILEDB_ROW_MAJOR , TILEDB_ROW_MAJOR }});
@@ -345,8 +347,14 @@ void TileDBVCFDataset::create_empty_data_array(
345347 FilterList float_attr_filters (ctx);
346348 FilterList byte_attr_filters (ctx);
347349
350+ // Use tile level filtering
351+ str_attr_filters.set_max_chunk_size (0 );
352+ int_attr_filters.set_max_chunk_size (0 );
353+ float_attr_filters.set_max_chunk_size (0 );
354+ byte_attr_filters.set_max_chunk_size (0 );
355+
348356 Filter compression (ctx, TILEDB_FILTER_ZSTD );
349- compression.set_option (TILEDB_COMPRESSION_LEVEL , 4 );
357+ compression.set_option (TILEDB_COMPRESSION_LEVEL , compression_level );
350358
351359 contig_coord_filters.add_filter ({ctx, TILEDB_FILTER_RLE });
352360 pos_coord_filters.add_filter ({ctx, TILEDB_FILTER_DOUBLE_DELTA })
0 commit comments