Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix missing clinical data NA counts which have been filtered out #11163

Open
wants to merge 88 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
db9e6ea
:heavy_plus_sign: Add infra to support multi db and Columnar DataSour…
haynescd Apr 8, 2024
7d8b9f7
Add Columnar support for Mybatis
haynescd Apr 8, 2024
8b07d3f
Add Columnar Study View Controller /api/column-store
haynescd Apr 8, 2024
63dde5f
Feature/ch/update poc base branch (#10776)
haynescd May 3, 2024
e073a31
:white_check_mark: Add Unit test for StudyViewMapper Clickhouse
haynescd May 10, 2024
77d07e0
use regular views instead of materialized views (#10793)
onursumer May 14, 2024
66b058c
Feature/mutated genes AlterationFilter and Fix unit test (#10803)
haynescd May 21, 2024
d24648a
Add missing POC clinical data binning function (#10778)
onursumer May 23, 2024
e37fa86
Create sample materialized view and use it (#10822)
alisman Jun 10, 2024
6661542
Feature/mutated genes total profiled counts and gene panels (#10824)
haynescd Jun 12, 2024
1d1606b
RFC80:density plot endpoint(#10837)
uklineale Jun 18, 2024
464f442
Fix clinical data counts query/filter using new derived table (#10833)
alisman Jun 20, 2024
6998fc0
Molecular-profile-counts service implementation (#10840)
alisman Jun 20, 2024
0b8c89e
Fix clinical data scatterplot (point at new derived cd table) (#10846)
alisman Jun 20, 2024
bb5456a
Rfc80/add cna genes endpoint (#10845)
haynescd Jun 20, 2024
505847b
:sparkles: Add StructuralVariant-genes endpoint (#10854)
haynescd Jun 24, 2024
74b735d
Implement study view sample-lists-counts endpoint in Clickhouse (#10849)
alisman Jun 24, 2024
110236b
Fix class import (#10856)
alisman Jun 24, 2024
a484e2e
Move ClinicalCategoricalFilter to repository (#10847)
onursumer Jun 24, 2024
14b7105
Rfc80/fix patient level filtering for alteration counts endpoints (#1…
haynescd Jun 24, 2024
2b87a26
:bug: Fix totalCount calculation when WES not available (#10858)
haynescd Jun 25, 2024
79d36e7
Consolidate SQL files used to create CH Tables (#10867)
haynescd Jun 26, 2024
2e02f21
Demo rfc80 poc violin plot (#10863)
uklineale Jul 2, 2024
0fc686b
replace sample_mv references with sample_derived (#10880)
onursumer Jul 3, 2024
f602587
:wrench: Update Sonar Cloud Token (#10888)
haynescd Jul 10, 2024
0dfb346
Simplify clinical data binning related SQL (#10823)
onursumer Jul 11, 2024
6df137f
Fix patient_derived table population (patient stable id was getting b…
alisman Jul 18, 2024
3455f97
Always load frontend over https (localdev mode) (#10901)
alisman Jul 18, 2024
77bf77f
Rfc80/clinical event timeline endpoint (#10899)
haynescd Jul 19, 2024
18a5ee7
Fix alteration count services (#10911)
haynescd Jul 29, 2024
8746a34
Rfc80/treatments patients endpoint (#10903)
haynescd Jul 29, 2024
e935c41
Hide replacement clickhouse endpoints from swagger (except new treatm…
alisman Aug 2, 2024
bf71f1b
Rfc80/sample treatment endpoint (#10927)
haynescd Aug 5, 2024
d62c6e5
Rfc80/update open api annotation for sampleTreatment Endpoint (#10929)
haynescd Aug 6, 2024
280dd58
Molecular-profile-counts-service (#10934)
alisman Aug 13, 2024
d7af5e5
Add entrez_id to alteration Count endpoints (#10936)
haynescd Aug 13, 2024
956fb33
Demo rfc80 poc mutation data counts & genomic data counts (#10807)
fuzhaoyuan Aug 13, 2024
b03b615
Add tests for case list sample counts endpoint (#10935)
alisman Aug 19, 2024
776fbae
add unit tests for clinical data counts sql (#10933)
onursumer Aug 20, 2024
05de8ff
Implement custom-data-bin-counts endpoint (#10827)
gblaih Aug 21, 2024
1872db1
normalize clinical data (#10943)
onursumer Aug 23, 2024
f456bd5
improve numerical clinical data filter (#10951)
onursumer Aug 27, 2024
b36bffb
Update Treatment Endpoint to handle event_type TREATMENT, previously …
haynescd Aug 27, 2024
ac3cb9f
Remove need to filter via Patient-IDs, All filters utilize sample-ids…
haynescd Sep 5, 2024
5db0254
add api test specs to backend (#10979)
alisman Sep 5, 2024
e2d502a
fix api test merge writer (#10980)
alisman Sep 9, 2024
10c4a87
Genomic and Generic Assay bin counts endpoints (#10964)
dippindots Sep 11, 2024
59d84c9
Fix clinical data NA counts for multiple studies (#10978)
onursumer Sep 11, 2024
092773e
Demo rfc80 poc mutation data count unit tests (#10981)
fuzhaoyuan Sep 12, 2024
33df3db
Delete custom specs (#10987)
alisman Sep 12, 2024
a415fa2
Fix GenomicDataFilterTest
dippindots Sep 12, 2024
a2ba293
Merge pull request #10988 from dippindots/fix-rfc80-build
dippindots Sep 12, 2024
a4ff971
Rfc80/add tests mutated-genes,cna-genes,structural-variants filters (…
haynescd Sep 13, 2024
a475fc9
Set custom http header with elapsed time on all api endpoints (#10994)
alisman Sep 16, 2024
21a0062
fix clinical data NA count logic (#10991)
onursumer Sep 17, 2024
8c2425d
Remove Sample Treatments with no counts (#10995)
haynescd Sep 17, 2024
27327de
All custom header elapsed-time on CORS headers (#10999)
alisman Sep 18, 2024
37c79cc
Remove caching from cd-bin-counts (#11001)
alisman Sep 18, 2024
b5b2c02
add missing study view filters for clinical data binning (#11007)
onursumer Sep 23, 2024
920fc7f
We have to cast all numbers to floats in Clickhouse SQL in order to c…
alisman Sep 27, 2024
f2bf6e8
Merge Alteration Counts that have conflicting HugoSymbols for Study V…
haynescd Sep 27, 2024
f7d91c0
Add clickhouse custom data endpoints (#10963)
gblaih Oct 1, 2024
857329b
Add samples field to custom filters to allow fetching samples without…
gblaih Oct 2, 2024
ceed01f
Add support for NA in genomic-data-bin-counts (#11006)
alisman Oct 2, 2024
2d913e9
Update to add QValue for Alteration Count Services (#11034)
haynescd Oct 2, 2024
fb8eaac
Demo rfc80 poc na count for generic assay (#11039)
fuzhaoyuan Oct 2, 2024
24f7d76
Normalize data counts in a generic case-insensitive way (#11037)
onursumer Oct 4, 2024
d37dcfa
filter out null labels when counting sample lists (#11045)
onursumer Oct 8, 2024
b58a18c
Rfc80/add na clinical data filtering (#11050)
haynescd Oct 8, 2024
0ac1039
Add generic-assay-data-counts endpoint (#11059)
haynescd Oct 9, 2024
93dca94
Update SQL to remove duplicate Reference Genome entry (#11060)
haynescd Oct 11, 2024
8526c72
Add checks to prevent null pointer on alterations in geneFilterQuery …
haynescd Oct 14, 2024
38a398d
remove duplicate attributes when calculating missing NA (#11076)
onursumer Oct 14, 2024
eee49e0
Re-apply caching to all study view service methods (#11091)
alisman Oct 18, 2024
8e05bfb
fetch missing patient clinical data for violin plot (#11092)
onursumer Oct 18, 2024
7cd50ec
Update to allow Qvalue when filtered cohort returns samples from a si…
haynescd Oct 18, 2024
007de21
Add new property for clickhouse cache enabling (#11109)
gblaih Oct 23, 2024
b2ce990
Fix trim trailing error (#11085)
fuzhaoyuan Oct 24, 2024
9a5f9e3
SQL variable format clean up (#11110)
fuzhaoyuan Oct 24, 2024
6d87467
ClinicalViolinPlot Serializable (#11124)
fuzhaoyuan Oct 28, 2024
d4fece4
Add isUnfiltered condition to cacheable clickhouse methods (#11120)
gblaih Oct 28, 2024
219d894
Fix violin plot sample filtering and counting issues (#11122)
onursumer Oct 28, 2024
8eb30c7
fetch missing patient clinical data for the density plot (#11132)
onursumer Oct 28, 2024
a21ca53
Fix profiling count issues in legacy (#11105)
alisman Oct 29, 2024
73b410d
add internal id to sample and clinical data SQL queries (#11139)
onursumer Oct 30, 2024
260a75a
use case-insensitive ILIKE instead of case-sensitive LIKE when lookin…
onursumer Oct 30, 2024
9782432
ignore non-numeric values for violin plot to prevent number format ex…
onursumer Oct 30, 2024
418f79b
Fix counting of clinical data na when fitlered out
alisman Nov 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ jobs:
run: |
cd ./data && ./init.sh && rm -rf ./studies/* && cd ../config && \
cat $PORTAL_SOURCE_DIR/src/main/resources/application.properties | \
sed 's|spring.datasource.url=.*|spring.datasource.url=jdbc:mysql://cbioportal-database:3306/cbioportal?useSSL=false|' | \
sed 's|spring.datasource.username=.*|spring.datasource.username=cbio_user|' | \
sed 's|spring.datasource.password=.*|spring.datasource.password=somepassword|' \
sed 's|spring.datasource.mysql.url=.*|spring.datasource.mysql.url=jdbc:mysql://cbioportal-database:3306/cbioportal?useSSL=false|' | \
sed 's|spring.datasource.mysql.username=.*|spring.datasource.mysql.username=cbio_user|' | \
sed 's|spring.datasource.mysql.password=.*|spring.datasource.mysql.password=somepassword|' \
> application.properties
- name: 'Copy cgds.sql file into Docker Compose'
run: cp ./cbioportal/src/main/resources/db-scripts/cgds.sql ./cbioportal-docker-compose/data/.
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
cp src/main/resources/application.properties.EXAMPLE src/main/resources/application.properties
- name: Build and analyze
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_TOKEN: de1b5cc660cd210dde840f492c371da6cc801763
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn clean install verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
- name: 'Add host.testcontainers.internal to /etc/hosts'
Expand All @@ -45,6 +45,6 @@ jobs:
mvn verify -Pintegration-test
- name: Code Coverage
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_TOKEN: de1b5cc660cd210dde840f492c371da6cc801763
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn sonar:sonar -Pcoverage
44 changes: 43 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
<selenium_chrome_driver.version>3.14.0</selenium_chrome_driver.version>
<selenium.version>4.17.0</selenium.version>
<sentry.version>7.1.0</sentry.version>
<clickhouse_testcontainer.version>1.19.7</clickhouse_testcontainer.version>


<!-- No sure what these are for -->
Expand Down Expand Up @@ -357,7 +358,32 @@
<artifactId>sentry-spring-boot-starter-jakarta</artifactId>
<version>${sentry.version}</version>
</dependency>
</dependencies>
<dependency>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.6.2</version>
<!-- use uber jar with all dependencies included, change classifier
to http for smaller jar -->
<classifier>all</classifier>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>clickhouse</artifactId>
<version>${clickhouse_testcontainer.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-test-autoconfigure</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-testcontainers</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
Expand Down Expand Up @@ -421,9 +447,25 @@
<includes>
<include>cgds.sql</include>
<include>migration.sql</include>
<include>clickhouse/clickhouse.sql</include>
<include>clickhouse/materialized_views.sql</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/main/resources/db-scripts</directory>
<filtering>false</filtering>
<includes>
<include>clickhouse/clickhouse.sql</include>
<include>clickhouse/materialized_views.sql</include>
</includes>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<filtering>false</filtering>
</testResource>
</testResources>

<plugins>
<plugin>
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/org/cbioportal/WebAppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.List;

import org.cbioportal.web.ExecuterTimeInterceptor;
import org.cbioportal.web.util.InvolvedCancerStudyExtractorInterceptor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
Expand All @@ -12,6 +13,7 @@
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter;

// TODO Consider creating separate DispatcherServlets as in the original web.xml
// See: https://stackoverflow.com/a/30686733/11651683
Expand Down Expand Up @@ -74,6 +76,9 @@ public HandlerInterceptor involvedCancerStudyExtractorInterceptor() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(involvedCancerStudyExtractorInterceptor());
registry.addInterceptor(new WebRequestHandlerInterceptorAdapter(
new ExecuterTimeInterceptor()
)).addPathPatterns("/**");
}

@Override
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/org/cbioportal/model/AlterationType.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.cbioportal.model;

public enum AlterationType {
MUTATION,
COPY_NUMBER_ALTERATION
MUTATION_EXTENDED,
COPY_NUMBER_ALTERATION,
STRUCTURAL_VARIANT,
GENERIC_ASSAY;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.cbioportal.model;

public class ClinicalViolinPlotBoxData {
import java.io.Serializable;

public class ClinicalViolinPlotBoxData implements Serializable {
private double whiskerLower;
private double whiskerUpper;
private double median;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package org.cbioportal.model;

import java.io.Serializable;
import java.util.List;

public class ClinicalViolinPlotData {
public class ClinicalViolinPlotData implements Serializable {
private List<ClinicalViolinPlotRowData> rows;
private Double axisStart;
private Double axisEnd;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.cbioportal.model;

public class ClinicalViolinPlotIndividualPoint {
import java.io.Serializable;

public class ClinicalViolinPlotIndividualPoint implements Serializable {
private String sampleId;
private String studyId;
private double value;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package org.cbioportal.model;

import java.io.Serializable;
import java.util.List;

public class ClinicalViolinPlotRowData {
public class ClinicalViolinPlotRowData implements Serializable {
private String category;
private Integer numSamples;
private List<Double> curveData;
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/org/cbioportal/model/GenomicDataCount.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,21 @@ public class GenomicDataCount implements Serializable {
private Integer count;
private Integer uniqueCount;

public GenomicDataCount() {}

public GenomicDataCount(String label, String value, Integer count) {
this.label = label;
this.value = value;
this.count = count;
}

public GenomicDataCount(String label, String value, Integer count, Integer uniqueCount) {
this.label = label;
this.value = value;
this.count = count;
this.uniqueCount = uniqueCount;
}

public String getLabel() {
return label;
}
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/org/cbioportal/model/GenomicDataCountItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ public class GenomicDataCountItem implements Serializable {
private String profileType;
private List<GenomicDataCount> counts;

public GenomicDataCountItem() {}

public GenomicDataCountItem(String hugoGeneSymbol, String profileType, List<GenomicDataCount> counts) {
this.hugoGeneSymbol = hugoGeneSymbol;
this.profileType = profileType;
this.counts = counts;
}

public String getHugoGeneSymbol() {
return hugoGeneSymbol;
}
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/org/cbioportal/model/PatientTreatment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.cbioportal.model;

import java.io.Serializable;

public record PatientTreatment (String treatment, int count) implements Serializable {

}
11 changes: 11 additions & 0 deletions src/main/java/org/cbioportal/model/PatientTreatmentReport.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.cbioportal.model;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

public record PatientTreatmentReport (int totalPatients, int totalSamples, List<PatientTreatment> patientTreatments) implements Serializable {
public PatientTreatmentReport(int totalPatients, int totalSamples) {
this(totalPatients, totalSamples, Collections.emptyList());
}
}
4 changes: 4 additions & 0 deletions src/main/java/org/cbioportal/model/SampleTreatment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package org.cbioportal.model;

public record SampleTreatment(String treatment, int preSampleCount, int postSampleCount) {
}
6 changes: 6 additions & 0 deletions src/main/java/org/cbioportal/model/SampleTreatmentReport.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.cbioportal.model;

import java.util.Collection;

public record SampleTreatmentReport(int totalSamples, Collection<SampleTreatmentRow> treatments) {
}
11 changes: 11 additions & 0 deletions src/main/java/org/cbioportal/model/StudyViewFilterContext.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.cbioportal.model;

import org.cbioportal.web.parameter.CustomSampleIdentifier;
import org.cbioportal.web.parameter.StudyViewFilter;

import java.util.List;

public record StudyViewFilterContext( StudyViewFilter studyViewFilter,
List<CustomSampleIdentifier> customDataFilterSamples) {

}
17 changes: 17 additions & 0 deletions src/main/java/org/cbioportal/persistence/CacheEnabledConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,11 @@ public class CacheEnabledConfig {

@Value("${persistence.cache_type:no-cache}")
private String cacheType;
@Value("${persistence.cache_type_clickhouse:no-cache}")
private String cacheTypeClickhouse;

private boolean enabled;
private boolean enabledClickhouse;

public static final String EHCACHE_DISK = "ehcache-disk";
public static final String EHCACHE_HEAP = "ehcache-heap";
Expand All @@ -30,6 +33,8 @@ public class CacheEnabledConfig {
public void init() {
this.enabled = enableCache(cacheType);
LOG.info("Cache is enabled: " + this.enabled);
this.enabledClickhouse = enableCache(cacheTypeClickhouse);
LOG.info("Cache is enabled for clickhouse: " + this.enabledClickhouse);
}

public static boolean enableCache(String cacheType) {
Expand All @@ -53,4 +58,16 @@ public boolean isEnabled() {
return enabled;
}

public String getEnabledClickhouse() {
if (enabledClickhouse) {
return "true";
} else {
return "false";
}
}

public boolean isEnabledClickhouse() {
return enabledClickhouse;
}

}
87 changes: 87 additions & 0 deletions src/main/java/org/cbioportal/persistence/StudyViewRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package org.cbioportal.persistence;

import org.cbioportal.model.AlterationCountByGene;
import org.cbioportal.model.ClinicalAttribute;
import org.cbioportal.model.CaseListDataCount;
import org.cbioportal.model.ClinicalData;
import org.cbioportal.model.ClinicalDataCount;
import org.cbioportal.model.ClinicalEventTypeCount;
import org.cbioportal.model.CopyNumberCountByGene;
import org.cbioportal.model.GenericAssayDataCountItem;
import org.cbioportal.model.GenomicDataCountItem;
import org.cbioportal.model.GenomicDataCount;
import org.cbioportal.model.MolecularProfile;
import org.cbioportal.model.PatientTreatment;
import org.cbioportal.model.Sample;
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.GenericAssayDataFilter;
import org.cbioportal.web.parameter.GenomicDataBinFilter;
import org.cbioportal.web.parameter.GenomicDataFilter;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface StudyViewRepository {
List<Sample> getFilteredSamples(StudyViewFilterContext studyViewFilterContext);

List<String> getFilteredStudyIds(StudyViewFilterContext studyViewFilterContext);

List<ClinicalData> getSampleClinicalData(StudyViewFilterContext studyViewFilterContext, List<String> attributeIds);

List<ClinicalData> getPatientClinicalData(StudyViewFilterContext studyViewFilterContext, List<String> attributeIds);

List<AlterationCountByGene> getMutatedGenes(StudyViewFilterContext studyViewFilterContext);

List<AlterationCountByGene> getStructuralVariantGenes(StudyViewFilterContext studyViewFilterContext);
List<CopyNumberCountByGene> getCnaGenes(StudyViewFilterContext studyViewFilterContext);

List<ClinicalDataCount> getClinicalDataCounts(StudyViewFilterContext studyViewFilterContext, List<String> filteredAttributes);

List<GenomicDataCount> getMolecularProfileSampleCounts(StudyViewFilterContext studyViewFilterContext);

List<ClinicalAttribute> getClinicalAttributes();

Map<String, ClinicalDataType> getClinicalAttributeDatatypeMap();

List<CaseListDataCount> getCaseListDataCountsPerStudy(StudyViewFilterContext studyViewFilterContext);

Map<String, Integer> getTotalProfiledCounts(StudyViewFilterContext studyViewFilterContext, String alterationType);

int getFilteredSamplesCount(StudyViewFilterContext studyViewFilterContext);

int getFilteredPatientCount(StudyViewFilterContext studyViewFilterContext);

Map<String, Set<String>> getMatchingGenePanelIds(StudyViewFilterContext studyViewFilterContext, String alterationType);

int getTotalProfiledCountsByAlterationType(StudyViewFilterContext studyViewFilterContext, String alterationType);

int getSampleProfileCountWithoutPanelData(StudyViewFilterContext studyViewFilterContext, String alterationType);

List<ClinicalEventTypeCount> getClinicalEventTypeCounts(StudyViewFilterContext studyViewFilterContext);

List<PatientTreatment> getPatientTreatments(StudyViewFilterContext studyViewFilterContext);

int getTotalPatientTreatmentCount(StudyViewFilterContext studyViewFilterContext);

List<SampleTreatment> getSampleTreatments(StudyViewFilterContext studyViewFilterContext);

int getTotalSampleTreatmentCount(StudyViewFilterContext studyViewFilterContext);

List<GenomicDataCountItem> getCNACounts(StudyViewFilterContext studyViewFilterContext, List<GenomicDataFilter> genomicDataFilters);

List<GenericAssayDataCountItem> getGenericAssayDataCounts(StudyViewFilterContext studyViewFilterContext, List<GenericAssayDataFilter> genericAssayDataFilters);

Map<String, Integer> getMutationCounts(StudyViewFilterContext studyViewFilterContext, GenomicDataFilter genomicDataFilter);

List<GenomicDataCountItem> getMutationCountsByType(StudyViewFilterContext studyViewFilterContext, List<GenomicDataFilter> genomicDataFilters);

List<ClinicalDataCount> getGenomicDataBinCounts(StudyViewFilterContext studyViewFilterContext, List<GenomicDataBinFilter> genomicDataBinFilters);

List<ClinicalDataCount> getGenericAssayDataBinCounts(StudyViewFilterContext studyViewFilterContext, List<GenericAssayDataBinFilter> genericAssayDataBinFilters);

List<MolecularProfile> getGenericAssayProfiles();
}
Loading