From c8e5569bb8e65d8106c9b1221222d7b25ecbcbd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Mon, 28 Nov 2022 17:03:42 +0000 Subject: [PATCH 1/2] storage: Remove unneded "false" variant query params. #TASK-2420 --- .../variant/manager/VariantCatalogQueryUtils.java | 3 +++ .../models/variant/AnnotationVariantQueryParams.java | 7 +++++-- .../core/models/variant/VariantExportParams.java | 2 ++ .../core/models/variant/VariantIndexParams.java | 6 ++---- .../core/models/variant/VariantQueryParams.java | 3 +++ .../core/variant/adaptors/VariantQueryParam.java | 2 +- .../core/variant/query/VariantQueryParser.java | 11 ++++++++++- 7 files changed, 26 insertions(+), 8 deletions(-) diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantCatalogQueryUtils.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantCatalogQueryUtils.java index 3590cd9e623..cf8fa85ff6c 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantCatalogQueryUtils.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantCatalogQueryUtils.java @@ -719,6 +719,9 @@ public Query parseQuery(Query query, QueryOptions queryOptions, CellBaseUtils ce panelGenes.addAll(xrefs.getGenes()); query.put(GENE.key(), panelGenes); query.put(SKIP_MISSING_GENES, true); + + // Remove "false" value if exists + query.remove(PANEL_INTERSECTION.key()); } else { logger.info("Panel intersection"); // Intersect panel with query! diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/AnnotationVariantQueryParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/AnnotationVariantQueryParams.java index fc60c370ab3..6efa6f311ea 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/AnnotationVariantQueryParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/AnnotationVariantQueryParams.java @@ -1,5 +1,6 @@ package org.opencb.opencga.core.models.variant; +import com.fasterxml.jackson.annotation.JsonInclude; import org.opencb.commons.datastore.core.Query; import org.opencb.opencga.core.tools.ToolParams; @@ -12,6 +13,7 @@ public class AnnotationVariantQueryParams extends ToolParams { private String panelModeOfInheritance; private String panelConfidence; private String panelRoleInCancer; + @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean panelIntersection; private String cohortStatsRef; private String cohortStatsAlt; @@ -28,6 +30,7 @@ public class AnnotationVariantQueryParams extends ToolParams { private String functionalScore; private String clinical; private String clinicalSignificance; + @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean clinicalConfirmedStatus; public AnnotationVariantQueryParams() { @@ -118,11 +121,11 @@ public AnnotationVariantQueryParams setPanelRoleInCancer(String panelRoleInCance return this; } - public Boolean getPanelIntersection() { + public boolean getPanelIntersection() { return panelIntersection; } - public AnnotationVariantQueryParams setPanelIntersection(Boolean panelIntersection) { + public AnnotationVariantQueryParams setPanelIntersection(boolean panelIntersection) { this.panelIntersection = panelIntersection; return this; } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantExportParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantExportParams.java index 27f9bb12aa9..7e5c1870e8d 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantExportParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantExportParams.java @@ -16,6 +16,7 @@ package org.opencb.opencga.core.models.variant; +import com.fasterxml.jackson.annotation.JsonInclude; import org.opencb.commons.datastore.core.Query; public class VariantExportParams extends VariantQueryParams { @@ -28,6 +29,7 @@ public class VariantExportParams extends VariantQueryParams { private String exclude; private Integer limit; private Integer skip; + @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean summary; public VariantExportParams() { diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java index 13be7343ee7..aea655f6d9b 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java @@ -17,8 +17,6 @@ package org.opencb.opencga.core.models.variant; import org.opencb.biodata.models.variant.metadata.Aggregation; -import org.opencb.opencga.core.api.ParamConstants; -import org.opencb.opencga.core.common.YesNoAuto; import org.opencb.opencga.core.tools.ToolParams; public class VariantIndexParams extends ToolParams { @@ -98,12 +96,12 @@ public VariantIndexParams(String file, private String loadHomRef; private String postLoadCheck; private String includeGenotypes; - private String includeSampleData = ParamConstants.ALL; + private String includeSampleData; private String merge; private String deduplicationPolicy; private boolean calculateStats; - private Aggregation aggregated = Aggregation.NONE; + private Aggregation aggregated; private String aggregationMappingFile; private boolean annotate; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java index 3c6c47885be..2f2d9e51ed5 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java @@ -16,6 +16,7 @@ package org.opencb.opencga.core.models.variant; +import com.fasterxml.jackson.annotation.JsonInclude; import org.opencb.commons.datastore.core.Query; /** @@ -79,7 +80,9 @@ public class VariantQueryParams extends BasicVariantQueryParams { private String customAnnotation; private String unknownGenotype; + @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean sampleMetadata = false; + @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean sort = false; diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryParam.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryParam.java index 62907de62ad..cfdcf474f9f 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryParam.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryParam.java @@ -125,7 +125,7 @@ public final class VariantQueryParam implements QueryParam { public static final String SAMPLE_METADATA_DESCR = "Return the samples metadata group by study. Sample names will appear in the same order as their corresponding genotypes."; - public static final VariantQueryParam SAMPLE_METADATA = new VariantQueryParam("sampleMetadata", TEXT_ARRAY, SAMPLE_METADATA_DESCR); + public static final VariantQueryParam SAMPLE_METADATA = new VariantQueryParam("sampleMetadata", BOOLEAN, SAMPLE_METADATA_DESCR); public static final String INCLUDE_SAMPLE_DATA_DESCR = "List of Sample Data keys (i.e. FORMAT column from VCF file) from Sample Data to include in the output. e.g: DP,AD. " diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryParser.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryParser.java index e7d7ff5ed42..f5032bc0abb 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryParser.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryParser.java @@ -9,10 +9,10 @@ import org.opencb.biodata.models.variant.avro.ClinicalSignificance; import org.opencb.biodata.models.variant.avro.VariantType; import org.opencb.biodata.models.variant.metadata.VariantFileHeaderComplexLine; -import org.opencb.opencga.core.models.variant.VariantAnnotationConstants; import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; import org.opencb.commons.datastore.core.QueryParam; +import org.opencb.opencga.core.models.variant.VariantAnnotationConstants; import org.opencb.opencga.storage.core.metadata.VariantStorageMetadataManager; import org.opencb.opencga.storage.core.metadata.models.SampleMetadata; import org.opencb.opencga.storage.core.metadata.models.StudyMetadata; @@ -272,6 +272,11 @@ protected void preProcessAnnotationParams(Query query) { query.put(TYPE.key(), new ArrayList<>(types)); } + if (VariantQueryUtils.isValidParam(query, ANNOT_CLINICAL_CONFIRMED_STATUS) + && !query.getBoolean(ANNOT_CLINICAL_CONFIRMED_STATUS.key())) { + // Remove false value if exists + query.remove(ANNOT_CLINICAL_CONFIRMED_STATUS.key()); + } if (VariantQueryUtils.isValidParam(query, ANNOT_CLINICAL_SIGNIFICANCE)) { String v = query.getString(ANNOT_CLINICAL_SIGNIFICANCE.key()); QueryOperation operator = VariantQueryUtils.checkOperator(v); @@ -716,6 +721,10 @@ protected void preProcessStudyParams(Query query, QueryOptions options) { formats = Collections.singletonList(NONE); } + if (VariantQueryUtils.isValidParam(query, SAMPLE_METADATA) && !query.getBoolean(SAMPLE_METADATA.key())) { + // Remove false value if exists + query.remove(SAMPLE_METADATA.key()); + } query.put(INCLUDE_SAMPLE_DATA.key(), formats); query.remove(INCLUDE_GENOTYPE.key(), formats); } From 9772ee8bce6e241d18a9a1d56592a88be280f71d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Tue, 29 Nov 2022 18:40:22 +0000 Subject: [PATCH 2/2] storage: Do not include default values of includeSampleId nor includeGenotype #TASK-2420 --- .../analysis/variant/VariantAnalysisTest.java | 2 +- .../core/models/variant/VariantQueryParams.java | 5 ++++- .../models/variant/VariantQueryParamsTest.java | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 opencga-core/src/test/java/org/opencb/opencga/core/models/variant/VariantQueryParamsTest.java diff --git a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java index 64e80e97d43..8d13a664edf 100644 --- a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java +++ b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java @@ -119,7 +119,7 @@ public class VariantAnalysisTest { public static Object[][] parameters() { return new Object[][]{ {MongoDBVariantStorageEngine.STORAGE_ENGINE_ID}, -// {HadoopVariantStorageEngine.STORAGE_ENGINE_ID} + {HadoopVariantStorageEngine.STORAGE_ENGINE_ID} }; } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java index d7fb9772cba..2af30adc926 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantQueryParams.java @@ -20,7 +20,8 @@ import org.opencb.commons.datastore.core.Query; /** - * Do not use native values (like boolean or int), so they are null by default. + * When using native values (like boolean or int), set add + * {@code @JsonInclude(JsonInclude.Include.NON_DEFAULT)} so they are null by default. */ public class VariantQueryParams extends BasicVariantQueryParams { @@ -35,7 +36,9 @@ public class VariantQueryParams extends BasicVariantQueryParams { private String includeSample; private String includeFile; private String includeSampleData; + @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean includeSampleId; + @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean includeGenotype; private String file; diff --git a/opencga-core/src/test/java/org/opencb/opencga/core/models/variant/VariantQueryParamsTest.java b/opencga-core/src/test/java/org/opencb/opencga/core/models/variant/VariantQueryParamsTest.java new file mode 100644 index 00000000000..457ed4f6ee1 --- /dev/null +++ b/opencga-core/src/test/java/org/opencb/opencga/core/models/variant/VariantQueryParamsTest.java @@ -0,0 +1,15 @@ +package org.opencb.opencga.core.models.variant; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class VariantQueryParamsTest { + + @Test + public void test() { + VariantQueryParams params = new VariantQueryParams(); + assertEquals(0, params.toObjectMap().size()); + assertEquals(0, params.toParams().size()); + } +} \ No newline at end of file