From 047dede3d4dbe18132db15704a3c32f46890eabc Mon Sep 17 00:00:00 2001 From: pfurio Date: Thu, 3 Jul 2025 16:40:47 +0200 Subject: [PATCH 1/9] models: changes to ClinicalVariant data model, #TASK-7645 --- .../interpretation/ClinicalVariant.java | 102 +++++++----------- .../interpretation/ClinicalVariantFilter.java | 56 ++++++++++ .../clinical/ClinicalVariantCreator.java | 4 +- .../DefaultClinicalVariantCreator.java | 5 +- .../clinical/TeamClinicalVariantCreator.java | 5 +- .../TieringClinicalVariantCreator.java | 9 +- 6 files changed, 107 insertions(+), 74 deletions(-) create mode 100644 biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantFilter.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 648a7d31..2d5228b9 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 @@ -25,21 +25,21 @@ import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.VariantAvro; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public class ClinicalVariant extends Variant { private List evidences; private List comments; + @Deprecated private Map filters; + private ClinicalVariantFilter filter; private String recommendation; private List references; private ClinicalDiscussion discussion; private ClinicalVariantConfidence confidence; private List tags; + private List images; private List stats; @@ -62,76 +62,27 @@ public ClinicalVariant() { } public ClinicalVariant(VariantAvro avro) { - this(avro, new ArrayList<>(), new ArrayList<>(), new HashMap<>(), new ClinicalDiscussion(), null, - Status.NOT_REVIEWED, new ArrayList<>(), new HashMap<>()); - } - - @Deprecated - public ClinicalVariant(VariantAvro avro, List evidences, List comments, - Map filters, ClinicalDiscussion discussion, Status status, List tags, - Map attributes) { - super(avro); - - this.evidences = evidences; - this.comments = comments; - this.filters = filters; - this.discussion = discussion; - this.status = status; - this.tags = tags; - this.attributes = attributes; + this(avro, new ArrayList<>(), new ArrayList<>(), new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), + new ClinicalVariantConfidence(), Collections.emptyList(), Status.NOT_REVIEWED, Collections.emptyList(), + Collections.emptyList(), new HashMap<>()); } - @Deprecated - public ClinicalVariant(VariantAvro avro, List evidences, List comments, - Map filters, ClinicalDiscussion discussion, - ClinicalVariantConfidence confidence, Status status, List tags, - Map attributes) { - super(avro); - - this.evidences = evidences; - this.comments = comments; - this.filters = filters; - this.discussion = discussion; - this.status = status; - this.tags = tags; - this.confidence = confidence; - this.attributes = attributes; - } - - @Deprecated public ClinicalVariant(VariantAvro avro, List evidences, List comments, - Map filters, String recommendation, List references, - ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, 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.status = status; - this.tags = tags; - this.confidence = confidence; - this.attributes = attributes; - } - - public ClinicalVariant(VariantAvro avro, List evidences, List comments, - Map filters, String recommendation, List references, + ClinicalVariantFilter filter, String recommendation, List references, ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, List stats, - Status status, List tags, Map attributes) { + Status status, List tags, List images, Map attributes) { super(avro); this.evidences = evidences; this.comments = comments; - this.filters = filters; + this.filter = filter; this.recommendation = recommendation; this.references = references; this.discussion = discussion; this.stats = stats; this.status = status; this.tags = tags; + this.images = images; this.confidence = confidence; this.attributes = attributes; } @@ -160,12 +111,30 @@ public ClinicalVariant setComments(List comments) { return this; } + @Deprecated public Map getFilters() { - return filters; + if (this.filter != null) { + return this.filter.getQuery(); + } + return null; } + @Deprecated public ClinicalVariant setFilters(Map filters) { - this.filters = filters; + if (this.filter != null) { + this.filter.setQuery(filters); + } else { + this.filter = new ClinicalVariantFilter(filters, "", ""); + } + return this; + } + + public ClinicalVariantFilter getFilter() { + return filter; + } + + public ClinicalVariant setFilter(ClinicalVariantFilter filter) { + this.filter = filter; return this; } @@ -232,6 +201,15 @@ public ClinicalVariant setTags(List tags) { return this; } + public List getImages() { + return images; + } + + public ClinicalVariant setImages(List images) { + this.images = images; + return this; + } + public Map getAttributes() { return attributes; } diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantFilter.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantFilter.java new file mode 100644 index 00000000..c9a7ab44 --- /dev/null +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariantFilter.java @@ -0,0 +1,56 @@ +package org.opencb.biodata.models.clinical.interpretation; + +import java.util.Map; + +public class ClinicalVariantFilter { + + private Map query; + private String opencgaVersion; + private String cellbaseVersion; + + public ClinicalVariantFilter() { + } + + public ClinicalVariantFilter(Map query, String opencgaVersion, String cellbaseVersion) { + this.query = query; + this.opencgaVersion = opencgaVersion; + this.cellbaseVersion = cellbaseVersion; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("ClinicalVariantFilter{"); + sb.append("query=").append(query); + sb.append(", opencgaVersion='").append(opencgaVersion).append('\''); + sb.append(", cellbaseVersion='").append(cellbaseVersion).append('\''); + sb.append('}'); + return sb.toString(); + } + + public Map getQuery() { + return query; + } + + public ClinicalVariantFilter setQuery(Map query) { + this.query = query; + return this; + } + + public String getOpencgaVersion() { + return opencgaVersion; + } + + public ClinicalVariantFilter setOpencgaVersion(String opencgaVersion) { + this.opencgaVersion = opencgaVersion; + return this; + } + + public String getCellbaseVersion() { + return cellbaseVersion; + } + + public ClinicalVariantFilter setCellbaseVersion(String cellbaseVersion) { + this.cellbaseVersion = cellbaseVersion; + return this; + } +} diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java index ce57604f..ee2d519e 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java @@ -129,8 +129,8 @@ public List createSecondaryFindings(List variants) { // If we have clinical variant evidences, then we have to create the clinical variant if (CollectionUtils.isNotEmpty(clinicalVariantEvidences)) { ClinicalVariant clinicalVariant = new ClinicalVariant(variant.getImpl(), Collections.emptyList(), Collections.emptyList(), - Collections.emptyMap(), new ClinicalDiscussion(), null, ClinicalVariant.Status.NOT_REVIEWED, - Collections.emptyList(), Collections.emptyMap()); + new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), null, Collections.emptyList(), + ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), Collections.emptyMap()); clinicalVariant.setEvidences(clinicalVariantEvidences); // Add variant to the list diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java index 62aa8bdf..bbc3dedd 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java @@ -28,6 +28,7 @@ import org.opencb.biodata.models.clinical.Disorder; import org.opencb.biodata.models.clinical.interpretation.ClinicalVariant; import org.opencb.biodata.models.clinical.interpretation.ClinicalVariantEvidence; +import org.opencb.biodata.models.clinical.interpretation.ClinicalVariantFilter; import org.opencb.biodata.models.clinical.interpretation.DiseasePanel; import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.ConsequenceType; @@ -134,8 +135,8 @@ public List create(List variants) { // Create a clinical variant only if we have evidences if (CollectionUtils.isNotEmpty(clinicalVariantEvidences)) { ClinicalVariant clinicalVariant = new ClinicalVariant(variant.getImpl(), Collections.emptyList(), Collections.emptyList(), - Collections.emptyMap(), new ClinicalDiscussion(), null, ClinicalVariant.Status.NOT_REVIEWED, - Collections.emptyList(), Collections.emptyMap()); + new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), null, Collections.emptyList(), + ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), Collections.emptyMap()); clinicalVariant.setEvidences(clinicalVariantEvidences); // Add variant to the list diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java index 4ccc17ea..ddb9b160 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java @@ -27,6 +27,7 @@ import org.opencb.biodata.models.clinical.ClinicalProperty.RoleInCancer; import org.opencb.biodata.models.clinical.interpretation.ClinicalVariant; import org.opencb.biodata.models.clinical.interpretation.ClinicalVariantEvidence; +import org.opencb.biodata.models.clinical.interpretation.ClinicalVariantFilter; import org.opencb.biodata.models.clinical.interpretation.DiseasePanel; import org.opencb.biodata.models.clinical.interpretation.exceptions.InterpretationAnalysisException; import org.opencb.biodata.models.clinical.Disorder; @@ -114,8 +115,8 @@ public List create(List variants) throws Interpretatio // If we have clinical variant evidences, then we have to create the clinical variant if (CollectionUtils.isNotEmpty(clinicalVariantEvidences)) { ClinicalVariant clinicalVariant = new ClinicalVariant(variant.getImpl(), Collections.emptyList(), Collections.emptyList(), - Collections.emptyMap(), new ClinicalDiscussion(), null, ClinicalVariant.Status.NOT_REVIEWED, - Collections.emptyList(), Collections.emptyMap()); + new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), null, Collections.emptyList(), + ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), Collections.emptyMap()); clinicalVariant.setEvidences(clinicalVariantEvidences); // Add variant to the list diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java index 25df27a9..99d46048 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java @@ -26,10 +26,7 @@ import org.opencb.biodata.models.clinical.ClinicalProperty.ModeOfInheritance; import org.opencb.biodata.models.clinical.ClinicalProperty.Penetrance; import org.opencb.biodata.models.clinical.Disorder; -import org.opencb.biodata.models.clinical.interpretation.ClinicalVariant; -import org.opencb.biodata.models.clinical.interpretation.ClinicalVariantEvidence; -import org.opencb.biodata.models.clinical.interpretation.DiseasePanel; -import org.opencb.biodata.models.clinical.interpretation.GenomicFeature; +import org.opencb.biodata.models.clinical.interpretation.*; import org.opencb.biodata.models.clinical.interpretation.exceptions.InterpretationAnalysisException; import org.opencb.biodata.models.core.Region; import org.opencb.biodata.models.variant.Variant; @@ -275,8 +272,8 @@ public List create(List variants, Map Date: Thu, 3 Jul 2025 17:04:51 +0200 Subject: [PATCH 2/9] models: improve MiniPubmed data model, #TASK-7645 --- .../clinical/interpretation/MiniPubmed.java | 50 ++++++++++++++++--- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java index c459e498..510527ea 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java @@ -1,35 +1,53 @@ package org.opencb.biodata.models.clinical.interpretation; +import java.util.List; + public class MiniPubmed { private String id; + @Deprecated private String name; + private String title; private String journal; private String summary; + private List authors; private String date; private String url; public MiniPubmed() { } - public MiniPubmed(String id, String name, String summary, String date, String url, String journal) { + @Deprecated + public MiniPubmed(String id, String title, String summary, String date, String url, String journal) { this.id = id; - this.name = name; + this.title = title; this.summary = summary; this.date = date; this.url = url; this.journal = journal; } + public MiniPubmed(String id, String title, String journal, String summary, List authors, String date, String url) { + this.id = id; + this.title = title; + this.journal = journal; + this.summary = summary; + this.authors = authors; + this.date = date; + this.url = url; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("MiniPubmed{"); sb.append("id='").append(id).append('\''); sb.append(", name='").append(name).append('\''); + sb.append(", title='").append(title).append('\''); + sb.append(", journal='").append(journal).append('\''); sb.append(", summary='").append(summary).append('\''); - sb.append(", date=").append(date); + sb.append(", authors=").append(authors); + sb.append(", date='").append(date).append('\''); sb.append(", url='").append(url).append('\''); - sb.append(", journal='").append(journal).append('\''); sb.append('}'); return sb.toString(); } @@ -43,12 +61,23 @@ public MiniPubmed setId(String id) { return this; } + @Deprecated public String getName() { - return name; + return title; } + @Deprecated public MiniPubmed setName(String name) { - this.name = name; + this.title = name; + return this; + } + + public String getTitle() { + return title; + } + + public MiniPubmed setTitle(String title) { + this.title = title; return this; } @@ -61,6 +90,15 @@ public MiniPubmed setSummary(String summary) { return this; } + public List getAuthors() { + return authors; + } + + public MiniPubmed setAuthors(List authors) { + this.authors = authors; + return this; + } + public String getDate() { return date; } From 121fd1b677a8edb9bb94e9b1ee936c3042f98b47 Mon Sep 17 00:00:00 2001 From: pfurio Date: Fri, 25 Jul 2025 10:42:49 +0200 Subject: [PATCH 3/9] models: add a few more fields to Clinical data model, #TASK-7645 --- .../ClinicalEvidenceReview.java | 28 ++++++++++++++++++- .../interpretation/ClinicalVariant.java | 23 ++++++++++++--- .../clinical/ClinicalVariantCreator.java | 5 ++-- .../DefaultClinicalVariantCreator.java | 5 ++-- .../clinical/TeamClinicalVariantCreator.java | 5 ++-- .../TieringClinicalVariantCreator.java | 5 ++-- 6 files changed, 58 insertions(+), 13 deletions(-) diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalEvidenceReview.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalEvidenceReview.java index 2c7e101e..3eccba98 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalEvidenceReview.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalEvidenceReview.java @@ -35,19 +35,25 @@ public class ClinicalEvidenceReview { private List acmg; private ClinicalProperty.ClinicalSignificance clinicalSignificance; private ClinicalDiscussion discussion; + private List tags; + private double score; public ClinicalEvidenceReview() { this.select = false; this.acmg = new ArrayList<>(); + this.tags = new ArrayList<>(); } public ClinicalEvidenceReview(boolean select, String tier, List acmg, - ClinicalSignificance clinicalSignificance, ClinicalDiscussion discussion) { + ClinicalSignificance clinicalSignificance, ClinicalDiscussion discussion, + List tags, double score) { this.select = select; this.tier = tier; this.acmg = acmg; this.clinicalSignificance = clinicalSignificance; this.discussion = discussion; + this.tags = tags; + this.score = score; } @Override @@ -58,6 +64,8 @@ public String toString() { sb.append(", acmg=").append(acmg); sb.append(", clinicalSignificance=").append(clinicalSignificance); sb.append(", discussion='").append(discussion).append('\''); + sb.append(", tags=").append(tags); + sb.append(", score=").append(score); sb.append('}'); return sb.toString(); } @@ -106,4 +114,22 @@ public ClinicalEvidenceReview setDiscussion(ClinicalDiscussion discussion) { this.discussion = discussion; return this; } + + public List getTags() { + return tags; + } + + public ClinicalEvidenceReview setTags(List tags) { + this.tags = tags; + return this; + } + + public double getScore() { + return score; + } + + public ClinicalEvidenceReview setScore(double score) { + this.score = score; + return this; + } } 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 2d5228b9..df483f9c 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.ClinicalProperty; import org.opencb.biodata.models.clinical.interpretation.stats.ClinicalVariantSummaryStats; import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.VariantAvro; @@ -34,6 +35,7 @@ public class ClinicalVariant extends Variant { @Deprecated private Map filters; private ClinicalVariantFilter filter; + private List modesOfInheritance; // all compatible MoIs private String recommendation; private List references; private ClinicalDiscussion discussion; @@ -52,6 +54,8 @@ public enum Status { NOT_REVIEWED, REVIEW_REQUESTED, REVIEWED, + VALIDATION_REQUESTED, + VALIDATED, DISCARDED, REPORTED, ARTIFACT @@ -62,13 +66,14 @@ public ClinicalVariant() { } public ClinicalVariant(VariantAvro avro) { - this(avro, new ArrayList<>(), new ArrayList<>(), new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), - new ClinicalVariantConfidence(), Collections.emptyList(), Status.NOT_REVIEWED, Collections.emptyList(), - Collections.emptyList(), new HashMap<>()); + this(avro, new ArrayList<>(), new ArrayList<>(), new ClinicalVariantFilter(), Collections.emptyList(), "", Collections.emptyList(), + new ClinicalDiscussion(), new ClinicalVariantConfidence(), Collections.emptyList(), Status.NOT_REVIEWED, + Collections.emptyList(), Collections.emptyList(), new HashMap<>()); } public ClinicalVariant(VariantAvro avro, List evidences, List comments, - ClinicalVariantFilter filter, String recommendation, List references, + ClinicalVariantFilter filter, List modesOfInheritance, String recommendation, + List references, ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, List stats, Status status, List tags, List images, Map attributes) { super(avro); @@ -76,6 +81,7 @@ public ClinicalVariant(VariantAvro avro, List evidences this.evidences = evidences; this.comments = comments; this.filter = filter; + this.modesOfInheritance = modesOfInheritance; this.recommendation = recommendation; this.references = references; this.discussion = discussion; @@ -138,6 +144,15 @@ public ClinicalVariant setFilter(ClinicalVariantFilter filter) { return this; } + public List getModesOfInheritance() { + return modesOfInheritance; + } + + public ClinicalVariant setModesOfInheritance(List modesOfInheritance) { + this.modesOfInheritance = modesOfInheritance; + return this; + } + public String getRecommendation() { return recommendation; } diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java index ee2d519e..c1fa97c6 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/ClinicalVariantCreator.java @@ -129,8 +129,9 @@ public List createSecondaryFindings(List variants) { // If we have clinical variant evidences, then we have to create the clinical variant if (CollectionUtils.isNotEmpty(clinicalVariantEvidences)) { ClinicalVariant clinicalVariant = new ClinicalVariant(variant.getImpl(), Collections.emptyList(), Collections.emptyList(), - new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), null, Collections.emptyList(), - ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), Collections.emptyMap()); + new ClinicalVariantFilter(), Collections.emptyList(), "", Collections.emptyList(), new ClinicalDiscussion(), null, + Collections.emptyList(), ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), + Collections.emptyMap()); clinicalVariant.setEvidences(clinicalVariantEvidences); // Add variant to the list diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java index bbc3dedd..3f695bcd 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/DefaultClinicalVariantCreator.java @@ -135,8 +135,9 @@ public List create(List variants) { // Create a clinical variant only if we have evidences if (CollectionUtils.isNotEmpty(clinicalVariantEvidences)) { ClinicalVariant clinicalVariant = new ClinicalVariant(variant.getImpl(), Collections.emptyList(), Collections.emptyList(), - new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), null, Collections.emptyList(), - ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), Collections.emptyMap()); + new ClinicalVariantFilter(), Collections.emptyList(), "", Collections.emptyList(), new ClinicalDiscussion(), null, + Collections.emptyList(), ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), + Collections.emptyMap()); clinicalVariant.setEvidences(clinicalVariantEvidences); // Add variant to the list diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java index ddb9b160..1158e630 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TeamClinicalVariantCreator.java @@ -115,8 +115,9 @@ public List create(List variants) throws Interpretatio // If we have clinical variant evidences, then we have to create the clinical variant if (CollectionUtils.isNotEmpty(clinicalVariantEvidences)) { ClinicalVariant clinicalVariant = new ClinicalVariant(variant.getImpl(), Collections.emptyList(), Collections.emptyList(), - new ClinicalVariantFilter(), "", Collections.emptyList(), new ClinicalDiscussion(), null, Collections.emptyList(), - ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), Collections.emptyMap()); + new ClinicalVariantFilter(), Collections.emptyList(), "", Collections.emptyList(), new ClinicalDiscussion(), null, + Collections.emptyList(), ClinicalVariant.Status.NOT_REVIEWED, Collections.emptyList(), Collections.emptyList(), + Collections.emptyMap()); clinicalVariant.setEvidences(clinicalVariantEvidences); // Add variant to the list diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java index 99d46048..a8545882 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/clinical/TieringClinicalVariantCreator.java @@ -272,8 +272,9 @@ public List create(List variants, Map Date: Tue, 18 Nov 2025 11:41:23 +0100 Subject: [PATCH 4/9] models: rename REVIEW_REQUESTED variant status, #TASK-7645 --- .../models/clinical/interpretation/ClinicalVariant.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 df483f9c..5e804205 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 @@ -52,7 +52,8 @@ public class ClinicalVariant extends Variant { public enum Status { NOT_REVIEWED, - REVIEW_REQUESTED, + UNDER_CONSIDERATION, + CANDIDATE, REVIEWED, VALIDATION_REQUESTED, VALIDATED, From 8181e5979ff1b2a6ef25519849a7ab54618ebfdf Mon Sep 17 00:00:00 2001 From: pfurio Date: Thu, 27 Nov 2025 12:34:52 +0100 Subject: [PATCH 5/9] models: add version to ClinicalVariant, #TASK-7645 --- .../interpretation/ClinicalVariant.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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 5e804205..25dba26f 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 @@ -46,6 +46,7 @@ public class ClinicalVariant extends Variant { private List stats; private Status status; + private int version; // TODO maybe this parameter should be in Variant private Map attributes; @@ -72,11 +73,21 @@ public ClinicalVariant(VariantAvro avro) { Collections.emptyList(), Collections.emptyList(), new HashMap<>()); } + @Deprecated public ClinicalVariant(VariantAvro avro, List evidences, List comments, ClinicalVariantFilter filter, List modesOfInheritance, String recommendation, List references, ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, List stats, Status status, List tags, List images, Map attributes) { + this(avro, evidences, comments, filter, modesOfInheritance, recommendation, references, discussion, confidence, stats, + status, tags, images, 1, attributes); + } + + public ClinicalVariant(VariantAvro avro, List evidences, List comments, + ClinicalVariantFilter filter, List modesOfInheritance, String recommendation, + List references, + ClinicalDiscussion discussion, ClinicalVariantConfidence confidence, List stats, + Status status, List tags, List images, int version, Map attributes) { super(avro); this.evidences = evidences; @@ -91,10 +102,10 @@ public ClinicalVariant(VariantAvro avro, List evidences this.tags = tags; this.images = images; this.confidence = confidence; + this.version = version; this.attributes = attributes; } - @Override public String toString() { return super.toString(); @@ -226,6 +237,15 @@ public ClinicalVariant setImages(List images) { return this; } + public int getVersion() { + return version; + } + + public ClinicalVariant setVersion(int version) { + this.version = version; + return this; + } + public Map getAttributes() { return attributes; } From 23836c64765a389d8e677ad468dceb4024d5b676 Mon Sep 17 00:00:00 2001 From: pfurio Date: Thu, 18 Dec 2025 15:08:59 +0100 Subject: [PATCH 6/9] models: first revision fixes, #TASK-7645 --- .../clinical/interpretation/ClinicalVariant.java | 10 +++++++--- .../models/clinical/interpretation/MiniPubmed.java | 2 +- 2 files changed, 8 insertions(+), 4 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 25dba26f..b4871104 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 @@ -19,6 +19,8 @@ package org.opencb.biodata.models.clinical.interpretation; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.opencb.biodata.models.clinical.ClinicalComment; import org.opencb.biodata.models.clinical.ClinicalDiscussion; import org.opencb.biodata.models.clinical.ClinicalProperty; @@ -32,8 +34,6 @@ public class ClinicalVariant extends Variant { private List evidences; private List comments; - @Deprecated - private Map filters; private ClinicalVariantFilter filter; private List modesOfInheritance; // all compatible MoIs private String recommendation; @@ -140,7 +140,11 @@ public Map getFilters() { @Deprecated public ClinicalVariant setFilters(Map filters) { if (this.filter != null) { - this.filter.setQuery(filters); + if (MapUtils.isEmpty(this.filter.getQuery())) { + this.filter.setQuery(filters); + } else { + throw new IllegalStateException("Cannot set filters map when ClinicalVariantFilter is already set"); + } } else { this.filter = new ClinicalVariantFilter(filters, "", ""); } diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java index 510527ea..42aab555 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java @@ -41,7 +41,7 @@ public MiniPubmed(String id, String title, String journal, String summary, List< public String toString() { final StringBuilder sb = new StringBuilder("MiniPubmed{"); sb.append("id='").append(id).append('\''); - sb.append(", name='").append(name).append('\''); + sb.append(", title='").append(title).append('\''); sb.append(", journal='").append(journal).append('\''); sb.append(", summary='").append(summary).append('\''); From acdb0dfa339e9ecd3f92c6a73cb59660cf4f9ad9 Mon Sep 17 00:00:00 2001 From: pfurio Date: Thu, 18 Dec 2025 15:23:00 +0100 Subject: [PATCH 7/9] models: revision changes 2, #TASK-7645 --- .../biodata/models/clinical/interpretation/MiniPubmed.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java index 42aab555..863f4d66 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/MiniPubmed.java @@ -5,8 +5,6 @@ public class MiniPubmed { private String id; - @Deprecated - private String name; private String title; private String journal; private String summary; From 670846547b20f462b06762d52a669f10e402e9bc Mon Sep 17 00:00:00 2001 From: pfurio Date: Wed, 7 Jan 2026 10:44:19 +0100 Subject: [PATCH 8/9] models: add condition to deprecated setter, #TASK-7645 --- .../models/clinical/interpretation/ClinicalVariant.java | 3 +++ 1 file changed, 3 insertions(+) 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 b4871104..142a73ca 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 @@ -139,6 +139,9 @@ public Map getFilters() { @Deprecated public ClinicalVariant setFilters(Map filters) { + if (MapUtils.isEmpty(filters)) { + return this; + } if (this.filter != null) { if (MapUtils.isEmpty(this.filter.getQuery())) { this.filter.setQuery(filters); From d111e7a346b8f54ff1b3f7ffb660e9ab51820067 Mon Sep 17 00:00:00 2001 From: pfurio Date: Mon, 12 Jan 2026 16:24:44 +0100 Subject: [PATCH 9/9] models: remove deprecated getter/setter, #TASK-7645 --- .../interpretation/ClinicalVariant.java | 25 ------------------- 1 file changed, 25 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 142a73ca..f10e152d 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 @@ -129,31 +129,6 @@ public ClinicalVariant setComments(List comments) { return this; } - @Deprecated - public Map getFilters() { - if (this.filter != null) { - return this.filter.getQuery(); - } - return null; - } - - @Deprecated - public ClinicalVariant setFilters(Map filters) { - if (MapUtils.isEmpty(filters)) { - return this; - } - if (this.filter != null) { - if (MapUtils.isEmpty(this.filter.getQuery())) { - this.filter.setQuery(filters); - } else { - throw new IllegalStateException("Cannot set filters map when ClinicalVariantFilter is already set"); - } - } else { - this.filter = new ClinicalVariantFilter(filters, "", ""); - } - return this; - } - public ClinicalVariantFilter getFilter() { return filter; }