diff --git a/src/main/java/org/cbioportal/persistence/StudyViewRepository.java b/src/main/java/org/cbioportal/persistence/StudyViewRepository.java index d9cb736a402..e73d1225916 100644 --- a/src/main/java/org/cbioportal/persistence/StudyViewRepository.java +++ b/src/main/java/org/cbioportal/persistence/StudyViewRepository.java @@ -15,6 +15,7 @@ import org.cbioportal.model.SampleTreatment; import org.cbioportal.model.StudyViewFilterContext; import org.cbioportal.web.parameter.ClinicalDataType; +import org.cbioportal.web.parameter.GenericAssayDataBinFilter; import org.cbioportal.web.parameter.GenomicDataBinFilter; import org.cbioportal.web.parameter.GenomicDataFilter; @@ -74,7 +75,7 @@ public interface StudyViewRepository { List getGenomicDataBinCounts(StudyViewFilterContext studyViewFilterContext, List genomicDataBinFilters); - List getGenericAssayDataBinCounts(StudyViewFilterContext studyViewFilterContext, List filteredAttributes); + List getGenericAssayDataBinCounts(StudyViewFilterContext studyViewFilterContext, List genericAssayDataBinFilters); List getGenericAssayProfiles(); } diff --git a/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.java b/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.java index 1af7478c259..304612d6c81 100644 --- a/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.java +++ b/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.java @@ -17,6 +17,7 @@ import org.cbioportal.model.SampleTreatment; import org.cbioportal.persistence.helper.AlterationFilterHelper; import org.cbioportal.persistence.helper.StudyViewFilterHelper; +import org.cbioportal.web.parameter.GenericAssayDataBinFilter; import org.cbioportal.web.parameter.GenomicDataBinFilter; import org.cbioportal.web.parameter.GenomicDataFilter; @@ -72,7 +73,7 @@ public interface StudyViewMapper { List getGenomicDataBinCounts(StudyViewFilterHelper studyViewFilterHelper, List genomicDataBinFilters); - List getGenericAssayDataBinCounts(StudyViewFilterHelper studyViewFilterHelper, List attributeIds); + List getGenericAssayDataBinCounts(StudyViewFilterHelper studyViewFilterHelper, List genericAssayDataBinFilters); List getGenericAssayProfiles(); } diff --git a/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMyBatisRepository.java b/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMyBatisRepository.java index 1d0debbd5a3..4f0e5cde5d0 100644 --- a/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMyBatisRepository.java +++ b/src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMyBatisRepository.java @@ -19,6 +19,7 @@ import org.cbioportal.persistence.helper.AlterationFilterHelper; import org.cbioportal.persistence.helper.StudyViewFilterHelper; import org.cbioportal.web.parameter.ClinicalDataType; +import org.cbioportal.web.parameter.GenericAssayDataBinFilter; import org.cbioportal.web.parameter.GenomicDataBinFilter; import org.cbioportal.web.parameter.GenomicDataFilter; import org.springframework.beans.factory.annotation.Autowired; @@ -219,8 +220,8 @@ public List getGenomicDataBinCounts(StudyViewFilterContext st } @Override - public List getGenericAssayDataBinCounts(StudyViewFilterContext studyViewFilterContext, List attributeIds) { - return mapper.getGenericAssayDataBinCounts(createStudyViewFilterHelper(studyViewFilterContext), attributeIds); + public List getGenericAssayDataBinCounts(StudyViewFilterContext studyViewFilterContext, List genericAssayDataBinFilters) { + return mapper.getGenericAssayDataBinCounts(createStudyViewFilterHelper(studyViewFilterContext), genericAssayDataBinFilters); } private void buildClinicalAttributeNameMap() { diff --git a/src/main/java/org/cbioportal/service/StudyViewColumnarService.java b/src/main/java/org/cbioportal/service/StudyViewColumnarService.java index 219e93a637c..9e59c326945 100644 --- a/src/main/java/org/cbioportal/service/StudyViewColumnarService.java +++ b/src/main/java/org/cbioportal/service/StudyViewColumnarService.java @@ -13,6 +13,7 @@ import org.cbioportal.model.SampleTreatmentReport; import org.cbioportal.service.exception.StudyNotFoundException; import org.cbioportal.web.parameter.ClinicalDataType; +import org.cbioportal.web.parameter.GenericAssayDataBinFilter; import org.cbioportal.web.parameter.GenomicDataBinFilter; import org.cbioportal.web.parameter.GenomicDataFilter; import org.cbioportal.web.parameter.StudyViewFilter; @@ -50,7 +51,7 @@ public interface StudyViewColumnarService { List getGenomicDataBinCounts(StudyViewFilter studyViewFilter, List genomicDataBinFilters); - List getGenericAssayDataBinCounts(StudyViewFilter studyViewFilter, List filteredAttributes); + List getGenericAssayDataBinCounts(StudyViewFilter studyViewFilter, List genericAssayDataBinFilters); List getMutationTypeCountsByGeneSpecific(StudyViewFilter studyViewFilter, List genomicDataFilters); } diff --git a/src/main/java/org/cbioportal/service/impl/StudyViewColumnarServiceImpl.java b/src/main/java/org/cbioportal/service/impl/StudyViewColumnarServiceImpl.java index c6cd45c538f..00ddc3c5823 100644 --- a/src/main/java/org/cbioportal/service/impl/StudyViewColumnarServiceImpl.java +++ b/src/main/java/org/cbioportal/service/impl/StudyViewColumnarServiceImpl.java @@ -20,6 +20,7 @@ import org.cbioportal.service.treatment.TreatmentCountReportService; import org.cbioportal.web.parameter.ClinicalDataType; import org.cbioportal.web.parameter.CustomSampleIdentifier; +import org.cbioportal.web.parameter.GenericAssayDataBinFilter; import org.cbioportal.web.parameter.GenomicDataBinFilter; import org.cbioportal.web.parameter.GenomicDataFilter; import org.cbioportal.web.parameter.StudyViewFilter; @@ -90,8 +91,8 @@ public List getGenomicDataBinCounts(StudyViewFilter study } @Override - public List getGenericAssayDataBinCounts(StudyViewFilter studyViewFilter, List filteredAttributes) { - return generateDataCountItemsFromDataCounts(studyViewRepository.getGenericAssayDataBinCounts(createContext(studyViewFilter), filteredAttributes)); + public List getGenericAssayDataBinCounts(StudyViewFilter studyViewFilter, List genericAssayDataBinFilters) { + return generateDataCountItemsFromDataCounts(studyViewRepository.getGenericAssayDataBinCounts(createContext(studyViewFilter), genericAssayDataBinFilters)); } public List getCnaGenes(StudyViewFilter studyViewFilter) throws StudyNotFoundException { diff --git a/src/main/java/org/cbioportal/web/columnar/BasicDataBinner.java b/src/main/java/org/cbioportal/web/columnar/BasicDataBinner.java index 9db9638ebf9..9300f462a87 100644 --- a/src/main/java/org/cbioportal/web/columnar/BasicDataBinner.java +++ b/src/main/java/org/cbioportal/web/columnar/BasicDataBinner.java @@ -120,8 +120,8 @@ public { - unfilteredClinicalDataCounts = studyViewColumnarService.getGenericAssayDataBinCounts(partialFilter, uniqueKeys); - filteredClinicalDataCounts = studyViewColumnarService.getGenericAssayDataBinCounts(studyViewFilter, uniqueKeys); + unfilteredClinicalDataCounts = studyViewColumnarService.getGenericAssayDataBinCounts(partialFilter, genericAssayDataBinCountFilter.getGenericAssayDataBinFilters()); + filteredClinicalDataCounts = studyViewColumnarService.getGenericAssayDataBinCounts(studyViewFilter, genericAssayDataBinCountFilter.getGenericAssayDataBinFilters()); attributeDatatypeMap = Collections.emptyMap(); } default -> { diff --git a/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewFilterMapper.xml b/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewFilterMapper.xml index 6fd03f409d9..468731e9bc1 100644 --- a/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewFilterMapper.xml +++ b/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewFilterMapper.xml @@ -152,10 +152,12 @@ - + ( + + ) @@ -469,59 +471,100 @@ + + SELECT sample_unique_id, value + FROM generic_assay_data_derived + WHERE profile_type = #{genericAssayDataFilter.profileType} + AND entity_stable_id = #{genericAssayDataFilter.stableId} + + AND datatype = 'LIMIT-VALUE' + + - - SELECT ${unique_id} - FROM ${table_name} - WHERE entity_stable_id = '${genericAssayDataFilter.stableId}' AND - profile_type='${genericAssayDataFilter.profileType}' - - - - AND - - - - - - AND match(value, '^>?=?[-+]?[0-9]*[.,]?[0-9]+$') - - - AND match(value, '^<?=?[-+]?[0-9]*[.,]?[0-9]+$') - - - AND match(value, '^[-+]?[0-9]*[.,]?[0-9]+$') - - - - - AND abs( - minus( - - - , - ${dataFilterValue.start} - ) - ) < exp(-11) - - - - AND - - - > ${dataFilterValue.start} - - - AND + + + + + + + + + + + + + + + + + SELECT DISTINCT sd.sample_unique_id + FROM sample_derived sd + LEFT JOIN () AS generic_numerical_query ON sd.sample_unique_id = generic_numerical_query.sample_unique_id + WHERE value IS null OR + + + = 'NA' + + + + UNION ALL + + + + SELECT DISTINCT sample_unique_id + FROM () AS generic_numerical_query + WHERE + + + != 'NA' + + + + AND + + + + + + AND match(value, '^>?=?[-+]?[0-9]*[.,]?[0-9]+$') + + + AND match(value, '^<?=?[-+]?[0-9]*[.,]?[0-9]+$') + + + AND match(value, '^[-+]?[0-9]*[.,]?[0-9]+$') + + + + + AND abs( + minus( - <= ${dataFilterValue.end} - - - - - - + , + ${dataFilterValue.start} + ) + ) < exp(-11) + + + + AND + + + > ${dataFilterValue.start} + + + AND + + + <= ${dataFilterValue.end} + + + + + + + diff --git a/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.xml b/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.xml index beb5708c1e6..ac0d54407e8 100644 --- a/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.xml +++ b/src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.xml @@ -622,24 +622,46 @@