From 7eb2efa984eb5c8dc835655f695202520d390038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Thu, 22 Feb 2024 12:15:51 +0100 Subject: [PATCH 1/4] models: add ClinicalVariantSummary, #TASK-5611, #TASK-5610 --- .../interpretation/ClinicalVariant.java | 32 +++ .../ClinicalVariantSummary.java | 190 ++++++++++++++++++ 2 files changed, 222 insertions(+) create mode 100644 biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java index 50f4e2d6..35e163b4 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java @@ -40,6 +40,8 @@ public class ClinicalVariant extends Variant { private ClinicalVariantConfidence confidence; private List tags; + private ClinicalVariantSummary summary; + private Status status; // TODO maybe this parameter should be in Variant @@ -95,6 +97,7 @@ public ClinicalVariant(VariantAvro avro, List evidences this.attributes = attributes; } + @Deprecated public ClinicalVariant(VariantAvro avro, List evidences, List comments, Map filters, String recommendation, List references, ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, Status status, @@ -113,6 +116,26 @@ public ClinicalVariant(VariantAvro avro, List evidences this.attributes = attributes; } + public ClinicalVariant(VariantAvro avro, List evidences, List comments, + Map filters, String recommendation, List references, + ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, ClinicalVariantSummary summary, + Status status, List tags, Map attributes) { + super(avro); + + this.evidences = evidences; + this.comments = comments; + this.filters = filters; + this.recommendation = recommendation; + this.references = references; + this.discussion = discussion; + this.summary = summary; + this.status = status; + this.tags = tags; + this.confidence = confidence; + this.attributes = attributes; + } + + @Override public String toString() { return super.toString(); @@ -181,6 +204,15 @@ public ClinicalVariant setConfidence(ClinicalVariantConfidence confidence) { return this; } + public ClinicalVariantSummary getSummary() { + return summary; + } + + public ClinicalVariant setSummary(ClinicalVariantSummary summary) { + this.summary = summary; + return this; + } + public Status getStatus() { return status; } diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java new file mode 100644 index 00000000..5cd5169e --- /dev/null +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java @@ -0,0 +1,190 @@ +/* + * + * + */ + +package org.opencb.biodata.models.clinical.interpretation; + +import org.opencb.biodata.models.clinical.ClinicalProperty; + +import java.util.HashMap; +import java.util.Map; + +public class ClinicalVariantSummary { + + private int numCases; + private int numPrimaryInterpretations; + private int numSecondaryInterpretations; + private Map evidencePhenotypeCounts; + private Map evidenceTierCounts; + private Map evidenceAcmgCounts; + private Map evidenceClinicalSignificanceCounts; + private Map drugResponseCounts; + private Map evidenceTraitAssociationCounts; + private Map evidenceFunctionalEffectCounts; + private Map evidenceTumorigenesisCounts; + + public ClinicalVariantSummary() { + this.evidencePhenotypeCounts = new HashMap<>(); + this.evidenceTierCounts = new HashMap<>(); + this.evidenceAcmgCounts = new HashMap<>(); + this.evidenceClinicalSignificanceCounts = new HashMap<>(); + this.drugResponseCounts = new HashMap<>(); + this.evidenceTraitAssociationCounts = new HashMap<>(); + this.evidenceFunctionalEffectCounts = new HashMap<>(); + this.evidenceTumorigenesisCounts = new HashMap<>(); + } + + public ClinicalVariantSummary(int numCases, int numPrimaryInterpretations, int numSecondaryInterpretations, + Map evidencePhenotypeCounts, + Map evidenceTierCounts, + Map evidenceAcmgCounts, + Map evidenceClinicalSignificanceCounts, + Map drugResponseCounts, + Map evidenceTraitAssociationCounts, + Map evidenceFunctionalEffectCounts, + Map evidenceTumorigenesisCounts) { + this.numCases = numCases; + this.numPrimaryInterpretations = numPrimaryInterpretations; + this.numSecondaryInterpretations = numSecondaryInterpretations; + this.evidencePhenotypeCounts = evidencePhenotypeCounts; + this.evidenceTierCounts = evidenceTierCounts; + this.evidenceAcmgCounts = evidenceAcmgCounts; + this.evidenceClinicalSignificanceCounts = evidenceClinicalSignificanceCounts; + this.drugResponseCounts = drugResponseCounts; + this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; + this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; + this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("ClinicalVariantSummary{"); + sb.append("numCases=").append(numCases); + sb.append(", numPrimaryInterpretations=").append(numPrimaryInterpretations); + sb.append(", numSecondaryInterpretations=").append(numSecondaryInterpretations); + sb.append(", evidencePhenotypeCounts=").append(evidencePhenotypeCounts); + sb.append(", evidenceTierCounts=").append(evidenceTierCounts); + sb.append(", evidenceAcmgCounts=").append(evidenceAcmgCounts); + sb.append(", evidenceClinicalSignificanceCounts=").append(evidenceClinicalSignificanceCounts); + sb.append(", drugResponseCounts=").append(drugResponseCounts); + sb.append(", evidenceTraitAssociationCounts=").append(evidenceTraitAssociationCounts); + sb.append(", evidenceFunctionalEffectCounts=").append(evidenceFunctionalEffectCounts); + sb.append(", evidenceTumorigenesisCounts=").append(evidenceTumorigenesisCounts); + sb.append('}'); + return sb.toString(); + } + + public int getNumCases() { + return numCases; + } + + public ClinicalVariantSummary setNumCases(int numCases) { + this.numCases = numCases; + return this; + } + + public int getNumPrimaryInterpretations() { + return numPrimaryInterpretations; + } + + public ClinicalVariantSummary setNumPrimaryInterpretations(int numPrimaryInterpretations) { + this.numPrimaryInterpretations = numPrimaryInterpretations; + return this; + } + + public int getNumSecondaryInterpretations() { + return numSecondaryInterpretations; + } + + public ClinicalVariantSummary setNumSecondaryInterpretations(int numSecondaryInterpretations) { + this.numSecondaryInterpretations = numSecondaryInterpretations; + return this; + } + + public Map getEvidencePhenotypeCounts() { + return evidencePhenotypeCounts; + } + + public ClinicalVariantSummary setEvidencePhenotypeCounts(Map evidencePhenotypeCounts) { + this.evidencePhenotypeCounts = evidencePhenotypeCounts; + return this; + } + + public Map getEvidenceTierCounts() { + return evidenceTierCounts; + } + + public ClinicalVariantSummary setEvidenceTierCounts(Map evidenceTierCounts) { + this.evidenceTierCounts = evidenceTierCounts; + return this; + } + + public Map getEvidenceAcmgCounts() { + return evidenceAcmgCounts; + } + + public ClinicalVariantSummary setEvidenceAcmgCounts(Map evidenceAcmgCounts) { + this.evidenceAcmgCounts = evidenceAcmgCounts; + return this; + } + + public Map getEvidenceClinicalSignificanceCounts() { + return evidenceClinicalSignificanceCounts; + } + + public ClinicalVariantSummary setEvidenceClinicalSignificanceCounts(Map evidenceClinicalSignificanceCounts) { + this.evidenceClinicalSignificanceCounts = evidenceClinicalSignificanceCounts; + return this; + } + + public Map getDrugResponseCounts() { + return drugResponseCounts; + } + + public ClinicalVariantSummary setDrugResponseCounts(Map drugResponseCounts) { + this.drugResponseCounts = drugResponseCounts; + return this; + } + + public Map getEvidenceTraitAssociationCounts() { + return evidenceTraitAssociationCounts; + } + + public ClinicalVariantSummary setEvidenceTraitAssociationCounts(Map evidenceTraitAssociationCounts) { + this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; + return this; + } + + public Map getEvidenceFunctionalEffectCounts() { + return evidenceFunctionalEffectCounts; + } + + public ClinicalVariantSummary setEvidenceFunctionalEffectCounts(Map evidenceFunctionalEffectCounts) { + this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; + return this; + } + + public Map getEvidenceTumorigenesisCounts() { + return evidenceTumorigenesisCounts; + } + + public ClinicalVariantSummary setEvidenceTumorigenesisCounts(Map evidenceTumorigenesisCounts) { + this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; + return this; + } +} From 32cf1abbfbd7739f42d0bfefb8c80ec1dc342aec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Wed, 28 Feb 2024 16:45:07 +0100 Subject: [PATCH 2/4] models: update models to support clinical variant summary stats, #TASK-5611, #TASK-5610 --- .../interpretation/ClinicalVariant.java | 9 +- .../ClinicalVariantSummary.java | 190 ------------------ .../stats/ClinicalVariantSummaryStats.java | 100 +++++++++ .../stats/InterpretationSummaryStats.java | 189 +++++++++++++++++ 4 files changed, 294 insertions(+), 194 deletions(-) delete mode 100644 biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java create mode 100644 biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java create mode 100644 biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java index 35e163b4..6bae0d2e 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java @@ -21,6 +21,7 @@ import org.opencb.biodata.models.clinical.ClinicalComment; import org.opencb.biodata.models.clinical.ClinicalDiscussion; +import org.opencb.biodata.models.clinical.interpretation.stats.ClinicalVariantSummaryStats; import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.VariantAvro; @@ -40,7 +41,7 @@ public class ClinicalVariant extends Variant { private ClinicalVariantConfidence confidence; private List tags; - private ClinicalVariantSummary summary; + private ClinicalVariantSummaryStats summary; private Status status; @@ -118,7 +119,7 @@ public ClinicalVariant(VariantAvro avro, List evidences public ClinicalVariant(VariantAvro avro, List evidences, List comments, Map filters, String recommendation, List references, - ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, ClinicalVariantSummary summary, + ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, ClinicalVariantSummaryStats summary, Status status, List tags, Map attributes) { super(avro); @@ -204,11 +205,11 @@ public ClinicalVariant setConfidence(ClinicalVariantConfidence confidence) { return this; } - public ClinicalVariantSummary getSummary() { + public ClinicalVariantSummaryStats getSummary() { return summary; } - public ClinicalVariant setSummary(ClinicalVariantSummary summary) { + public ClinicalVariant setSummary(ClinicalVariantSummaryStats summary) { this.summary = summary; return this; } diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java deleted file mode 100644 index 5cd5169e..00000000 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantSummary.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * - * - */ - -package org.opencb.biodata.models.clinical.interpretation; - -import org.opencb.biodata.models.clinical.ClinicalProperty; - -import java.util.HashMap; -import java.util.Map; - -public class ClinicalVariantSummary { - - private int numCases; - private int numPrimaryInterpretations; - private int numSecondaryInterpretations; - private Map evidencePhenotypeCounts; - private Map evidenceTierCounts; - private Map evidenceAcmgCounts; - private Map evidenceClinicalSignificanceCounts; - private Map drugResponseCounts; - private Map evidenceTraitAssociationCounts; - private Map evidenceFunctionalEffectCounts; - private Map evidenceTumorigenesisCounts; - - public ClinicalVariantSummary() { - this.evidencePhenotypeCounts = new HashMap<>(); - this.evidenceTierCounts = new HashMap<>(); - this.evidenceAcmgCounts = new HashMap<>(); - this.evidenceClinicalSignificanceCounts = new HashMap<>(); - this.drugResponseCounts = new HashMap<>(); - this.evidenceTraitAssociationCounts = new HashMap<>(); - this.evidenceFunctionalEffectCounts = new HashMap<>(); - this.evidenceTumorigenesisCounts = new HashMap<>(); - } - - public ClinicalVariantSummary(int numCases, int numPrimaryInterpretations, int numSecondaryInterpretations, - Map evidencePhenotypeCounts, - Map evidenceTierCounts, - Map evidenceAcmgCounts, - Map evidenceClinicalSignificanceCounts, - Map drugResponseCounts, - Map evidenceTraitAssociationCounts, - Map evidenceFunctionalEffectCounts, - Map evidenceTumorigenesisCounts) { - this.numCases = numCases; - this.numPrimaryInterpretations = numPrimaryInterpretations; - this.numSecondaryInterpretations = numSecondaryInterpretations; - this.evidencePhenotypeCounts = evidencePhenotypeCounts; - this.evidenceTierCounts = evidenceTierCounts; - this.evidenceAcmgCounts = evidenceAcmgCounts; - this.evidenceClinicalSignificanceCounts = evidenceClinicalSignificanceCounts; - this.drugResponseCounts = drugResponseCounts; - this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; - this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; - this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder("ClinicalVariantSummary{"); - sb.append("numCases=").append(numCases); - sb.append(", numPrimaryInterpretations=").append(numPrimaryInterpretations); - sb.append(", numSecondaryInterpretations=").append(numSecondaryInterpretations); - sb.append(", evidencePhenotypeCounts=").append(evidencePhenotypeCounts); - sb.append(", evidenceTierCounts=").append(evidenceTierCounts); - sb.append(", evidenceAcmgCounts=").append(evidenceAcmgCounts); - sb.append(", evidenceClinicalSignificanceCounts=").append(evidenceClinicalSignificanceCounts); - sb.append(", drugResponseCounts=").append(drugResponseCounts); - sb.append(", evidenceTraitAssociationCounts=").append(evidenceTraitAssociationCounts); - sb.append(", evidenceFunctionalEffectCounts=").append(evidenceFunctionalEffectCounts); - sb.append(", evidenceTumorigenesisCounts=").append(evidenceTumorigenesisCounts); - sb.append('}'); - return sb.toString(); - } - - public int getNumCases() { - return numCases; - } - - public ClinicalVariantSummary setNumCases(int numCases) { - this.numCases = numCases; - return this; - } - - public int getNumPrimaryInterpretations() { - return numPrimaryInterpretations; - } - - public ClinicalVariantSummary setNumPrimaryInterpretations(int numPrimaryInterpretations) { - this.numPrimaryInterpretations = numPrimaryInterpretations; - return this; - } - - public int getNumSecondaryInterpretations() { - return numSecondaryInterpretations; - } - - public ClinicalVariantSummary setNumSecondaryInterpretations(int numSecondaryInterpretations) { - this.numSecondaryInterpretations = numSecondaryInterpretations; - return this; - } - - public Map getEvidencePhenotypeCounts() { - return evidencePhenotypeCounts; - } - - public ClinicalVariantSummary setEvidencePhenotypeCounts(Map evidencePhenotypeCounts) { - this.evidencePhenotypeCounts = evidencePhenotypeCounts; - return this; - } - - public Map getEvidenceTierCounts() { - return evidenceTierCounts; - } - - public ClinicalVariantSummary setEvidenceTierCounts(Map evidenceTierCounts) { - this.evidenceTierCounts = evidenceTierCounts; - return this; - } - - public Map getEvidenceAcmgCounts() { - return evidenceAcmgCounts; - } - - public ClinicalVariantSummary setEvidenceAcmgCounts(Map evidenceAcmgCounts) { - this.evidenceAcmgCounts = evidenceAcmgCounts; - return this; - } - - public Map getEvidenceClinicalSignificanceCounts() { - return evidenceClinicalSignificanceCounts; - } - - public ClinicalVariantSummary setEvidenceClinicalSignificanceCounts(Map evidenceClinicalSignificanceCounts) { - this.evidenceClinicalSignificanceCounts = evidenceClinicalSignificanceCounts; - return this; - } - - public Map getDrugResponseCounts() { - return drugResponseCounts; - } - - public ClinicalVariantSummary setDrugResponseCounts(Map drugResponseCounts) { - this.drugResponseCounts = drugResponseCounts; - return this; - } - - public Map getEvidenceTraitAssociationCounts() { - return evidenceTraitAssociationCounts; - } - - public ClinicalVariantSummary setEvidenceTraitAssociationCounts(Map evidenceTraitAssociationCounts) { - this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; - return this; - } - - public Map getEvidenceFunctionalEffectCounts() { - return evidenceFunctionalEffectCounts; - } - - public ClinicalVariantSummary setEvidenceFunctionalEffectCounts(Map evidenceFunctionalEffectCounts) { - this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; - return this; - } - - public Map getEvidenceTumorigenesisCounts() { - return evidenceTumorigenesisCounts; - } - - public ClinicalVariantSummary setEvidenceTumorigenesisCounts(Map evidenceTumorigenesisCounts) { - this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; - return this; - } -} diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java new file mode 100644 index 00000000..563c8d3d --- /dev/null +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java @@ -0,0 +1,100 @@ +/* + * + * + */ + +package org.opencb.biodata.models.clinical.interpretation.stats; + +public class ClinicalVariantSummaryStats { + + private int numCases; + private int numPrimaryInterpretations; + private int numSecondaryInterpretations; + private InterpretationSummaryStats primaryInterpretationSummary; + private InterpretationSummaryStats secondaryInterpretationsSummary; + + public ClinicalVariantSummaryStats() { + primaryInterpretationSummary = new InterpretationSummaryStats(); + secondaryInterpretationsSummary = new InterpretationSummaryStats(); + } + + public ClinicalVariantSummaryStats(int numCases, int numPrimaryInterpretations, int numSecondaryInterpretations, + InterpretationSummaryStats primaryInterpretationSummary, InterpretationSummaryStats secondaryInterpretationsSummary) { + this.numCases = numCases; + this.numPrimaryInterpretations = numPrimaryInterpretations; + this.numSecondaryInterpretations = numSecondaryInterpretations; + this.primaryInterpretationSummary = primaryInterpretationSummary; + this.secondaryInterpretationsSummary = secondaryInterpretationsSummary; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("ClinicalVariantSummary{"); + sb.append("numCases=").append(numCases); + sb.append(", numPrimaryInterpretations=").append(numPrimaryInterpretations); + sb.append(", numSecondaryInterpretations=").append(numSecondaryInterpretations); + sb.append(", primaryInterpretationSummary=").append(primaryInterpretationSummary); + sb.append(", secondaryInterpretationsSummary=").append(secondaryInterpretationsSummary); + sb.append('}'); + return sb.toString(); + } + + public int getNumCases() { + return numCases; + } + + public ClinicalVariantSummaryStats setNumCases(int numCases) { + this.numCases = numCases; + return this; + } + + public int getNumPrimaryInterpretations() { + return numPrimaryInterpretations; + } + + public ClinicalVariantSummaryStats setNumPrimaryInterpretations(int numPrimaryInterpretations) { + this.numPrimaryInterpretations = numPrimaryInterpretations; + return this; + } + + public int getNumSecondaryInterpretations() { + return numSecondaryInterpretations; + } + + public ClinicalVariantSummaryStats setNumSecondaryInterpretations(int numSecondaryInterpretations) { + this.numSecondaryInterpretations = numSecondaryInterpretations; + return this; + } + + public InterpretationSummaryStats getPrimaryInterpretationSummary() { + return primaryInterpretationSummary; + } + + public ClinicalVariantSummaryStats setPrimaryInterpretationSummary(InterpretationSummaryStats primaryInterpretationSummary) { + this.primaryInterpretationSummary = primaryInterpretationSummary; + return this; + } + + public InterpretationSummaryStats getSecondaryInterpretationsSummary() { + return secondaryInterpretationsSummary; + } + + public ClinicalVariantSummaryStats setSecondaryInterpretationsSummary(InterpretationSummaryStats secondaryInterpretationsSummary) { + this.secondaryInterpretationsSummary = secondaryInterpretationsSummary; + return this; + } +} diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java new file mode 100644 index 00000000..5cac1224 --- /dev/null +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java @@ -0,0 +1,189 @@ +/* + * + * + */ + +package org.opencb.biodata.models.clinical.interpretation.stats; + +import java.util.HashMap; +import java.util.Map; + +public class InterpretationSummaryStats { + + private Map evidenceTranscriptCounts; + private Map evidenceModeOfInheritanceCounts; + private Map evidencePanelCounts; + private Map evidencePhenotypeCounts; + private Map evidenceReviewTierCounts; + private Map evidenceReviewAcmgCounts; + private Map evidenceReviewClinicalSignificanceCounts; + private Map evidenceDrugResponseCounts; + private Map evidenceTraitAssociationCounts; + private Map evidenceFunctionalEffectCounts; + private Map evidenceTumorigenesisCounts; + + public InterpretationSummaryStats() { + this.evidenceTranscriptCounts = new HashMap<>(); + this.evidenceModeOfInheritanceCounts = new HashMap<>(); + this.evidencePanelCounts = new HashMap<>(); + this.evidencePhenotypeCounts = new HashMap<>(); + this.evidenceReviewTierCounts = new HashMap<>(); + this.evidenceReviewAcmgCounts = new HashMap<>(); + this.evidenceReviewClinicalSignificanceCounts = new HashMap<>(); + this.evidenceDrugResponseCounts = new HashMap<>(); + this.evidenceTraitAssociationCounts = new HashMap<>(); + this.evidenceFunctionalEffectCounts = new HashMap<>(); + this.evidenceTumorigenesisCounts = new HashMap<>(); + } + + public InterpretationSummaryStats(Map evidenceTranscriptCounts, Map evidenceModeOfInheritanceCounts, + Map evidencePanelCounts, Map evidencePhenotypeCounts, + Map evidenceReviewTierCounts, Map evidenceReviewAcmgCounts, + Map evidenceReviewClinicalSignificanceCounts, + Map evidenceDrugResponseCounts, Map evidenceTraitAssociationCounts, + Map evidenceFunctionalEffectCounts, + Map evidenceTumorigenesisCounts) { + this.evidenceTranscriptCounts = evidenceTranscriptCounts; + this.evidenceModeOfInheritanceCounts = evidenceModeOfInheritanceCounts; + this.evidencePanelCounts = evidencePanelCounts; + this.evidencePhenotypeCounts = evidencePhenotypeCounts; + this.evidenceReviewTierCounts = evidenceReviewTierCounts; + this.evidenceReviewAcmgCounts = evidenceReviewAcmgCounts; + this.evidenceReviewClinicalSignificanceCounts = evidenceReviewClinicalSignificanceCounts; + this.evidenceDrugResponseCounts = evidenceDrugResponseCounts; + this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; + this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; + this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("InterpretationSummaryStats{"); + sb.append("evidenceTranscriptCounts=").append(evidenceTranscriptCounts); + sb.append(", evidenceModeOfInheritanceCounts=").append(evidenceModeOfInheritanceCounts); + sb.append(", evidencePanelCounts=").append(evidencePanelCounts); + sb.append(", evidencePhenotypeCounts=").append(evidencePhenotypeCounts); + sb.append(", evidenceReviewTierCounts=").append(evidenceReviewTierCounts); + sb.append(", evidenceReviewAcmgCounts=").append(evidenceReviewAcmgCounts); + sb.append(", evidenceReviewClinicalSignificanceCounts=").append(evidenceReviewClinicalSignificanceCounts); + sb.append(", evidenceDrugResponseCounts=").append(evidenceDrugResponseCounts); + sb.append(", evidenceTraitAssociationCounts=").append(evidenceTraitAssociationCounts); + sb.append(", evidenceFunctionalEffectCounts=").append(evidenceFunctionalEffectCounts); + sb.append(", evidenceTumorigenesisCounts=").append(evidenceTumorigenesisCounts); + sb.append('}'); + return sb.toString(); + } + + public Map getEvidenceTranscriptCounts() { + return evidenceTranscriptCounts; + } + + public InterpretationSummaryStats setEvidenceTranscriptCounts(Map evidenceTranscriptCounts) { + this.evidenceTranscriptCounts = evidenceTranscriptCounts; + return this; + } + + public Map getEvidenceModeOfInheritanceCounts() { + return evidenceModeOfInheritanceCounts; + } + + public InterpretationSummaryStats setEvidenceModeOfInheritanceCounts(Map evidenceModeOfInheritanceCounts) { + this.evidenceModeOfInheritanceCounts = evidenceModeOfInheritanceCounts; + return this; + } + + public Map getEvidencePanelCounts() { + return evidencePanelCounts; + } + + public InterpretationSummaryStats setEvidencePanelCounts(Map evidencePanelCounts) { + this.evidencePanelCounts = evidencePanelCounts; + return this; + } + + public Map getEvidencePhenotypeCounts() { + return evidencePhenotypeCounts; + } + + public InterpretationSummaryStats setEvidencePhenotypeCounts(Map evidencePhenotypeCounts) { + this.evidencePhenotypeCounts = evidencePhenotypeCounts; + return this; + } + + public Map getEvidenceReviewTierCounts() { + return evidenceReviewTierCounts; + } + + public InterpretationSummaryStats setEvidenceReviewTierCounts(Map evidenceReviewTierCounts) { + this.evidenceReviewTierCounts = evidenceReviewTierCounts; + return this; + } + + public Map getEvidenceReviewAcmgCounts() { + return evidenceReviewAcmgCounts; + } + + public InterpretationSummaryStats setEvidenceReviewAcmgCounts(Map evidenceReviewAcmgCounts) { + this.evidenceReviewAcmgCounts = evidenceReviewAcmgCounts; + return this; + } + + public Map getEvidenceReviewClinicalSignificanceCounts() { + return evidenceReviewClinicalSignificanceCounts; + } + + public InterpretationSummaryStats setEvidenceReviewClinicalSignificanceCounts(Map evidenceReviewClinicalSignificanceCounts) { + this.evidenceReviewClinicalSignificanceCounts = evidenceReviewClinicalSignificanceCounts; + return this; + } + + public Map getEvidenceDrugResponseCounts() { + return evidenceDrugResponseCounts; + } + + public InterpretationSummaryStats setEvidenceDrugResponseCounts(Map evidenceDrugResponseCounts) { + this.evidenceDrugResponseCounts = evidenceDrugResponseCounts; + return this; + } + + public Map getEvidenceTraitAssociationCounts() { + return evidenceTraitAssociationCounts; + } + + public InterpretationSummaryStats setEvidenceTraitAssociationCounts(Map evidenceTraitAssociationCounts) { + this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; + return this; + } + + public Map getEvidenceFunctionalEffectCounts() { + return evidenceFunctionalEffectCounts; + } + + public InterpretationSummaryStats setEvidenceFunctionalEffectCounts(Map evidenceFunctionalEffectCounts) { + this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; + return this; + } + + public Map getEvidenceTumorigenesisCounts() { + return evidenceTumorigenesisCounts; + } + + public InterpretationSummaryStats setEvidenceTumorigenesisCounts(Map evidenceTumorigenesisCounts) { + this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; + return this; + } +} From be75a1c4a18bab372e9ebe4eafbdd849166a0ab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Tue, 2 Jul 2024 12:12:35 +0200 Subject: [PATCH 3/4] models: update clinival variant summary stats data models, #TASK-5611, #TASK-5610 On branch TASK-5610 Changes to be committed: modified: biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java modified: biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java --- .../stats/ClinicalVariantSummaryStats.java | 72 +++++++++++---- .../stats/InterpretationSummaryStats.java | 89 +++++-------------- 2 files changed, 77 insertions(+), 84 deletions(-) diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java index 563c8d3d..61c75544 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/ClinicalVariantSummaryStats.java @@ -19,36 +19,52 @@ package org.opencb.biodata.models.clinical.interpretation.stats; +import java.util.HashMap; +import java.util.Map; + public class ClinicalVariantSummaryStats { private int numCases; + private Map variantStatusCounts; + private Map variantConfidenceCounts; private int numPrimaryInterpretations; private int numSecondaryInterpretations; - private InterpretationSummaryStats primaryInterpretationSummary; - private InterpretationSummaryStats secondaryInterpretationsSummary; + private InterpretationSummaryStats interpretationSummaryStats; + private Map clinicalAnalysisDisorderCounts; public ClinicalVariantSummaryStats() { - primaryInterpretationSummary = new InterpretationSummaryStats(); - secondaryInterpretationsSummary = new InterpretationSummaryStats(); + this.numCases = 0; + this.variantStatusCounts = new HashMap<>(); + this.variantConfidenceCounts = new HashMap<>(); + this.numPrimaryInterpretations = 0; + this.numSecondaryInterpretations = 0; + this.interpretationSummaryStats = new InterpretationSummaryStats(); + this.clinicalAnalysisDisorderCounts = new HashMap<>(); } - public ClinicalVariantSummaryStats(int numCases, int numPrimaryInterpretations, int numSecondaryInterpretations, - InterpretationSummaryStats primaryInterpretationSummary, InterpretationSummaryStats secondaryInterpretationsSummary) { + public ClinicalVariantSummaryStats(int numCases, Map variantStatusCounts, Map variantConfidenceCounts, + int numPrimaryInterpretations, int numSecondaryInterpretations, + InterpretationSummaryStats interpretationSummaryStats, + Map clinicalAnalysisDisorderCounts) { this.numCases = numCases; + this.variantStatusCounts = variantStatusCounts; + this.variantConfidenceCounts = variantConfidenceCounts; this.numPrimaryInterpretations = numPrimaryInterpretations; this.numSecondaryInterpretations = numSecondaryInterpretations; - this.primaryInterpretationSummary = primaryInterpretationSummary; - this.secondaryInterpretationsSummary = secondaryInterpretationsSummary; + this.interpretationSummaryStats = interpretationSummaryStats; + this.clinicalAnalysisDisorderCounts = clinicalAnalysisDisorderCounts; } @Override public String toString() { - final StringBuilder sb = new StringBuilder("ClinicalVariantSummary{"); + final StringBuilder sb = new StringBuilder("ClinicalVariantSummaryStats{"); sb.append("numCases=").append(numCases); + sb.append(", variantStatusCounts=").append(variantStatusCounts); + sb.append(", variantConfidenceCounts=").append(variantConfidenceCounts); sb.append(", numPrimaryInterpretations=").append(numPrimaryInterpretations); sb.append(", numSecondaryInterpretations=").append(numSecondaryInterpretations); - sb.append(", primaryInterpretationSummary=").append(primaryInterpretationSummary); - sb.append(", secondaryInterpretationsSummary=").append(secondaryInterpretationsSummary); + sb.append(", interpretationSummaryStats=").append(interpretationSummaryStats); + sb.append(", clinicalAnalysisDisorderCounts=").append(clinicalAnalysisDisorderCounts); sb.append('}'); return sb.toString(); } @@ -62,6 +78,24 @@ public ClinicalVariantSummaryStats setNumCases(int numCases) { return this; } + public Map getVariantStatusCounts() { + return variantStatusCounts; + } + + public ClinicalVariantSummaryStats setVariantStatusCounts(Map variantStatusCounts) { + this.variantStatusCounts = variantStatusCounts; + return this; + } + + public Map getVariantConfidenceCounts() { + return variantConfidenceCounts; + } + + public ClinicalVariantSummaryStats setVariantConfidenceCounts(Map variantConfidenceCounts) { + this.variantConfidenceCounts = variantConfidenceCounts; + return this; + } + public int getNumPrimaryInterpretations() { return numPrimaryInterpretations; } @@ -80,21 +114,21 @@ public ClinicalVariantSummaryStats setNumSecondaryInterpretations(int numSeconda return this; } - public InterpretationSummaryStats getPrimaryInterpretationSummary() { - return primaryInterpretationSummary; + public InterpretationSummaryStats getInterpretationSummaryStats() { + return interpretationSummaryStats; } - public ClinicalVariantSummaryStats setPrimaryInterpretationSummary(InterpretationSummaryStats primaryInterpretationSummary) { - this.primaryInterpretationSummary = primaryInterpretationSummary; + public ClinicalVariantSummaryStats setInterpretationSummaryStats(InterpretationSummaryStats interpretationSummaryStats) { + this.interpretationSummaryStats = interpretationSummaryStats; return this; } - public InterpretationSummaryStats getSecondaryInterpretationsSummary() { - return secondaryInterpretationsSummary; + public Map getClinicalAnalysisDisorderCounts() { + return clinicalAnalysisDisorderCounts; } - public ClinicalVariantSummaryStats setSecondaryInterpretationsSummary(InterpretationSummaryStats secondaryInterpretationsSummary) { - this.secondaryInterpretationsSummary = secondaryInterpretationsSummary; + public ClinicalVariantSummaryStats setClinicalAnalysisDisorderCounts(Map clinicalAnalysisDisorderCounts) { + this.clinicalAnalysisDisorderCounts = clinicalAnalysisDisorderCounts; return this; } } diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java index 5cac1224..5dbb5fd0 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/stats/InterpretationSummaryStats.java @@ -25,65 +25,51 @@ public class InterpretationSummaryStats { private Map evidenceTranscriptCounts; + private Map evidenceGeneNameCounts; private Map evidenceModeOfInheritanceCounts; private Map evidencePanelCounts; - private Map evidencePhenotypeCounts; private Map evidenceReviewTierCounts; private Map evidenceReviewAcmgCounts; private Map evidenceReviewClinicalSignificanceCounts; - private Map evidenceDrugResponseCounts; - private Map evidenceTraitAssociationCounts; - private Map evidenceFunctionalEffectCounts; - private Map evidenceTumorigenesisCounts; + private Map evidenceClassificationAcmgCounts; public InterpretationSummaryStats() { this.evidenceTranscriptCounts = new HashMap<>(); + this.evidenceGeneNameCounts = new HashMap<>(); this.evidenceModeOfInheritanceCounts = new HashMap<>(); this.evidencePanelCounts = new HashMap<>(); - this.evidencePhenotypeCounts = new HashMap<>(); this.evidenceReviewTierCounts = new HashMap<>(); this.evidenceReviewAcmgCounts = new HashMap<>(); this.evidenceReviewClinicalSignificanceCounts = new HashMap<>(); - this.evidenceDrugResponseCounts = new HashMap<>(); - this.evidenceTraitAssociationCounts = new HashMap<>(); - this.evidenceFunctionalEffectCounts = new HashMap<>(); - this.evidenceTumorigenesisCounts = new HashMap<>(); + this.evidenceClassificationAcmgCounts = new HashMap<>(); } - public InterpretationSummaryStats(Map evidenceTranscriptCounts, Map evidenceModeOfInheritanceCounts, - Map evidencePanelCounts, Map evidencePhenotypeCounts, + public InterpretationSummaryStats(Map evidenceTranscriptCounts, Map evidenceGeneNameCounts, + Map evidenceModeOfInheritanceCounts, Map evidencePanelCounts, Map evidenceReviewTierCounts, Map evidenceReviewAcmgCounts, Map evidenceReviewClinicalSignificanceCounts, - Map evidenceDrugResponseCounts, Map evidenceTraitAssociationCounts, - Map evidenceFunctionalEffectCounts, - Map evidenceTumorigenesisCounts) { + Map evidenceClassificationAcmgCounts) { this.evidenceTranscriptCounts = evidenceTranscriptCounts; + this.evidenceGeneNameCounts = evidenceGeneNameCounts; this.evidenceModeOfInheritanceCounts = evidenceModeOfInheritanceCounts; this.evidencePanelCounts = evidencePanelCounts; - this.evidencePhenotypeCounts = evidencePhenotypeCounts; this.evidenceReviewTierCounts = evidenceReviewTierCounts; this.evidenceReviewAcmgCounts = evidenceReviewAcmgCounts; this.evidenceReviewClinicalSignificanceCounts = evidenceReviewClinicalSignificanceCounts; - this.evidenceDrugResponseCounts = evidenceDrugResponseCounts; - this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; - this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; - this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; + this.evidenceClassificationAcmgCounts = evidenceClassificationAcmgCounts; } @Override public String toString() { final StringBuilder sb = new StringBuilder("InterpretationSummaryStats{"); sb.append("evidenceTranscriptCounts=").append(evidenceTranscriptCounts); + sb.append(", evidenceGeneNameCounts=").append(evidenceGeneNameCounts); sb.append(", evidenceModeOfInheritanceCounts=").append(evidenceModeOfInheritanceCounts); sb.append(", evidencePanelCounts=").append(evidencePanelCounts); - sb.append(", evidencePhenotypeCounts=").append(evidencePhenotypeCounts); sb.append(", evidenceReviewTierCounts=").append(evidenceReviewTierCounts); sb.append(", evidenceReviewAcmgCounts=").append(evidenceReviewAcmgCounts); sb.append(", evidenceReviewClinicalSignificanceCounts=").append(evidenceReviewClinicalSignificanceCounts); - sb.append(", evidenceDrugResponseCounts=").append(evidenceDrugResponseCounts); - sb.append(", evidenceTraitAssociationCounts=").append(evidenceTraitAssociationCounts); - sb.append(", evidenceFunctionalEffectCounts=").append(evidenceFunctionalEffectCounts); - sb.append(", evidenceTumorigenesisCounts=").append(evidenceTumorigenesisCounts); + sb.append(", evidenceClassificationAcmgCounts=").append(evidenceClassificationAcmgCounts); sb.append('}'); return sb.toString(); } @@ -97,6 +83,15 @@ public InterpretationSummaryStats setEvidenceTranscriptCounts(Map getEvidenceGeneNameCounts() { + return evidenceGeneNameCounts; + } + + public InterpretationSummaryStats setEvidenceGeneNameCounts(Map evidenceGeneNameCounts) { + this.evidenceGeneNameCounts = evidenceGeneNameCounts; + return this; + } + public Map getEvidenceModeOfInheritanceCounts() { return evidenceModeOfInheritanceCounts; } @@ -115,15 +110,6 @@ public InterpretationSummaryStats setEvidencePanelCounts(Map ev return this; } - public Map getEvidencePhenotypeCounts() { - return evidencePhenotypeCounts; - } - - public InterpretationSummaryStats setEvidencePhenotypeCounts(Map evidencePhenotypeCounts) { - this.evidencePhenotypeCounts = evidencePhenotypeCounts; - return this; - } - public Map getEvidenceReviewTierCounts() { return evidenceReviewTierCounts; } @@ -151,39 +137,12 @@ public InterpretationSummaryStats setEvidenceReviewClinicalSignificanceCounts(Ma return this; } - public Map getEvidenceDrugResponseCounts() { - return evidenceDrugResponseCounts; - } - - public InterpretationSummaryStats setEvidenceDrugResponseCounts(Map evidenceDrugResponseCounts) { - this.evidenceDrugResponseCounts = evidenceDrugResponseCounts; - return this; - } - - public Map getEvidenceTraitAssociationCounts() { - return evidenceTraitAssociationCounts; - } - - public InterpretationSummaryStats setEvidenceTraitAssociationCounts(Map evidenceTraitAssociationCounts) { - this.evidenceTraitAssociationCounts = evidenceTraitAssociationCounts; - return this; - } - - public Map getEvidenceFunctionalEffectCounts() { - return evidenceFunctionalEffectCounts; - } - - public InterpretationSummaryStats setEvidenceFunctionalEffectCounts(Map evidenceFunctionalEffectCounts) { - this.evidenceFunctionalEffectCounts = evidenceFunctionalEffectCounts; - return this; - } - - public Map getEvidenceTumorigenesisCounts() { - return evidenceTumorigenesisCounts; + public Map getEvidenceClassificationAcmgCounts() { + return evidenceClassificationAcmgCounts; } - public InterpretationSummaryStats setEvidenceTumorigenesisCounts(Map evidenceTumorigenesisCounts) { - this.evidenceTumorigenesisCounts = evidenceTumorigenesisCounts; + public InterpretationSummaryStats setEvidenceClassificationAcmgCounts(Map evidenceClassificationAcmgCounts) { + this.evidenceClassificationAcmgCounts = evidenceClassificationAcmgCounts; return this; } } From 7852358c4ce807a490389b61801efee6ae82af4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Tue, 2 Jul 2024 17:26:51 +0200 Subject: [PATCH 4/4] models: rename the clinical variant member 'summary' to 'stats', #TASK-5611, #TASK-5610 On branch TASK-5610 Changes to be committed: modified: biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java --- .../clinical/interpretation/ClinicalVariant.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java index 6bae0d2e..ea9f7a3d 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java @@ -41,7 +41,7 @@ public class ClinicalVariant extends Variant { private ClinicalVariantConfidence confidence; private List tags; - private ClinicalVariantSummaryStats summary; + private ClinicalVariantSummaryStats stats; private Status status; @@ -119,7 +119,7 @@ public ClinicalVariant(VariantAvro avro, List evidences public ClinicalVariant(VariantAvro avro, List evidences, List comments, Map filters, String recommendation, List references, - ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, ClinicalVariantSummaryStats summary, + ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, ClinicalVariantSummaryStats stats, Status status, List tags, Map attributes) { super(avro); @@ -129,7 +129,7 @@ public ClinicalVariant(VariantAvro avro, List evidences this.recommendation = recommendation; this.references = references; this.discussion = discussion; - this.summary = summary; + this.stats = stats; this.status = status; this.tags = tags; this.confidence = confidence; @@ -205,12 +205,12 @@ public ClinicalVariant setConfidence(ClinicalVariantConfidence confidence) { return this; } - public ClinicalVariantSummaryStats getSummary() { - return summary; + public ClinicalVariantSummaryStats getStats() { + return stats; } - public ClinicalVariant setSummary(ClinicalVariantSummaryStats summary) { - this.summary = summary; + public ClinicalVariant setStats(ClinicalVariantSummaryStats stats) { + this.stats = stats; return this; }