diff --git a/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/GenomicProcessorNodeImpl.java b/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/GenomicProcessorNodeImpl.java index 1a295afd..ffc02748 100644 --- a/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/GenomicProcessorNodeImpl.java +++ b/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/GenomicProcessorNodeImpl.java @@ -89,7 +89,7 @@ public BigInteger runGetPatientMask(DistributableQuery distributableQuery) { List variantSets = getVariantsMatchingFilters(filter); log.info("Found " + variantSets.size() + " groups of sets for patient identification"); if(!variantSets.isEmpty()) { - VariantIndex unionOfVariantSets = new SparseVariantIndex(Set.of()); + VariantIndex unionOfVariantSets = VariantIndex.empty(); for(VariantIndex variantSet : variantSets) { unionOfVariantSets = unionOfVariantSets.union(variantSet); } @@ -100,8 +100,7 @@ public BigInteger runGetPatientMask(DistributableQuery distributableQuery) { intersectionOfInfoFilters = intersectionOfInfoFilters.intersection(unionOfVariantSets); } } else { - // todo: create an empty variant index implementation - intersectionOfInfoFilters = new SparseVariantIndex(Set.of()); + intersectionOfInfoFilters = VariantIndex.empty(); } } // todo: handle empty getVariantInfoFilters() @@ -194,14 +193,14 @@ private VariantIndex getComputedVariantIndexForCategoryFilter(Map.Entry { log.info("No variant index computed for category filter. This should never happen"); - return new SparseVariantIndex(Set.of()); + return VariantIndex.empty(); }); } else if(infoKeys.size() == 1) { return variantIndexCache.get(column, infoKeys.get(0)); } else { // infoKeys.size() == 0 log.info("No indexes found for column [" + column + "] for values [" + Joiner.on(",").join(values) + "]"); // todo: test this case. should this be empty list or a list with an empty VariantIndex? - return new SparseVariantIndex(Set.of()); + return VariantIndex.empty(); } } @@ -249,7 +248,7 @@ public Collection runGetVariantList(DistributableQuery query) { !variantInfoFilter.categoryVariantInfoFilters.isEmpty() || !variantInfoFilter.numericVariantInfoFilters.isEmpty() ); if(queryContainsVariantInfoFilters) { - VariantIndex unionOfInfoFilters = new SparseVariantIndex(Set.of()); + VariantIndex unionOfInfoFilters = VariantIndex.empty(); // todo: are these not the same thing? if(query.getVariantInfoFilters().size()>1) { diff --git a/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/VariantIndex.java b/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/VariantIndex.java index 3b5ecb49..04ad1079 100644 --- a/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/VariantIndex.java +++ b/processing/src/main/java/edu/harvard/hms/dbmi/avillach/hpds/processing/VariantIndex.java @@ -28,4 +28,8 @@ protected VariantIndex intersection(SparseVariantIndex sparseVariantIndex, Dense .collect(Collectors.toSet()); return new SparseVariantIndex(intersection); } + + public static VariantIndex empty() { + return new SparseVariantIndex(Set.of()); + } } diff --git a/processing/src/test/java/edu/harvard/hms/dbmi/avillach/hpds/processing/PatientVariantJoinHandlerTest.java b/processing/src/test/java/edu/harvard/hms/dbmi/avillach/hpds/processing/PatientVariantJoinHandlerTest.java index 9daf37af..9abf035e 100644 --- a/processing/src/test/java/edu/harvard/hms/dbmi/avillach/hpds/processing/PatientVariantJoinHandlerTest.java +++ b/processing/src/test/java/edu/harvard/hms/dbmi/avillach/hpds/processing/PatientVariantJoinHandlerTest.java @@ -119,7 +119,7 @@ public void getPatientIdsForIntersectionOfVariantSets_somePatientsMatchVariants( @Test public void getPatientIdsForIntersectionOfVariantSets_noVariants() { - VariantIndex intersectionOfInfoFilters = new SparseVariantIndex(Set.of()); + VariantIndex intersectionOfInfoFilters = VariantIndex.empty(); Set patientIdsForIntersectionOfVariantSets = patientMaskToPatientIdSet(patientVariantJoinHandler.getPatientIdsForIntersectionOfVariantSets(Set.of(), intersectionOfInfoFilters)); // this should be empty, as there are no variants