From c6b65a8a8830d4233853e21091f585faeb1eeb4e Mon Sep 17 00:00:00 2001 From: Onur Sumer Date: Wed, 5 Apr 2017 17:02:23 -0400 Subject: [PATCH] updated model to serialize Map as Object --- .../org/cmo/cancerhotspots/model/Cluster.java | 37 +++++++++++++------ .../cancerhotspots/model/HotspotMutation.java | 37 +++++++++++++------ .../model/TumorTypeComposition.java | 31 ++++++++++------ .../internal/ClusterRepositoryImpl.java | 2 +- .../internal/HotspotDataImportService.java | 6 +-- 5 files changed, 73 insertions(+), 40 deletions(-) diff --git a/model/src/main/java/org/cmo/cancerhotspots/model/Cluster.java b/model/src/main/java/org/cmo/cancerhotspots/model/Cluster.java index 3b048b8..e5483ca 100644 --- a/model/src/main/java/org/cmo/cancerhotspots/model/Cluster.java +++ b/model/src/main/java/org/cmo/cancerhotspots/model/Cluster.java @@ -1,5 +1,6 @@ package org.cmo.cancerhotspots.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.univocity.parsers.annotations.Convert; import com.univocity.parsers.annotations.Parsed; import com.univocity.parsers.annotations.Trim; @@ -26,12 +27,12 @@ public class Cluster @Trim @Convert(conversionClass = ChainMapConversion.class) @Parsed(field = "PDB_Chains") - private Map pdbChains; + private Map pdbChainMap; @Trim @Convert(conversionClass = CompositionMapConversion.class) @Parsed(field = "Residues") - private Map residues; + private Map residueMap; @Trim @Parsed(field = "P-Value") @@ -39,7 +40,7 @@ public class Cluster public Cluster() { - this.residues = new LinkedHashMap<>(); + this.residueMap = new LinkedHashMap<>(); } @ApiModelProperty(value = "Hugo gene symbol", required = true) @@ -76,29 +77,41 @@ public void setClusterId(String clusterId) } @ApiModelProperty(value = "PDB chains (with p-value)", required = true) - public Map getPdbChains() + public Object getPdbChains() { - return pdbChains; + return getPdbChainMap(); } - public void setPdbChains(Map pdbChains) + @JsonIgnore + public Map getPdbChainMap() { - this.pdbChains = pdbChains; + return pdbChainMap; + } + + public void setPdbChainMap(Map pdbChainMap) + { + this.pdbChainMap = pdbChainMap; } @ApiModelProperty(value = "Residues within this cluster (with overall tumor count)", required = true) - public Map getResidues() + public Object getResidues() + { + return getResidueMap(); + } + + @JsonIgnore + public Map getResidueMap() { - return residues; + return residueMap; } - public void setResidues(Map residues) + public void setResidueMap(Map residueMap) { - this.residues = residues; + this.residueMap = residueMap; } public void addResidue(String residue, Integer tumorCount) { - this.residues.put(residue, tumorCount); + this.residueMap.put(residue, tumorCount); } } diff --git a/model/src/main/java/org/cmo/cancerhotspots/model/HotspotMutation.java b/model/src/main/java/org/cmo/cancerhotspots/model/HotspotMutation.java index 9dab5c7..9662716 100644 --- a/model/src/main/java/org/cmo/cancerhotspots/model/HotspotMutation.java +++ b/model/src/main/java/org/cmo/cancerhotspots/model/HotspotMutation.java @@ -32,6 +32,7 @@ package org.cmo.cancerhotspots.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; import org.cmo.cancerhotspots.data.IntegerRange; @@ -44,10 +45,10 @@ public class HotspotMutation { private String hugoSymbol; private String residue; - private Map variantAminoAcid; + private Map variantAminoAcidMap; private Integer tumorTypeCount; private Integer tumorCount; - private Map tumorTypeComposition; + private Map tumorTypeCompositionMap; private String transcriptId; private IntegerRange aminoAcidPosition; @@ -74,14 +75,20 @@ public void setResidue(String residue) } @ApiModelProperty(value = "Variant Amino Acid", required = true) - public Map getVariantAminoAcid() + public Object getVariantAminoAcid() { - return variantAminoAcid; + return getVariantAminoAcidMap(); } - public void setVariantAminoAcid(Map variantAminoAcid) + @JsonIgnore + public Map getVariantAminoAcidMap() { - this.variantAminoAcid = variantAminoAcid; + return variantAminoAcidMap; + } + + public void setVariantAminoAcidMap(Map variantAminoAcidMap) + { + this.variantAminoAcidMap = variantAminoAcidMap; } @ApiModelProperty(value = "Number of Tumors", required = true) @@ -96,14 +103,20 @@ public void setTumorCount(Integer tumorCount) } @ApiModelProperty(value = "Tumor Type Composition", required = true) - public Map getTumorTypeComposition() + public Object getTumorTypeComposition() + { + return getTumorTypeCompositionMap(); + } + + @JsonIgnore + public Map getTumorTypeCompositionMap() { - return tumorTypeComposition; + return tumorTypeCompositionMap; } - public void setTumorTypeComposition(Map tumorTypeComposition) + public void setTumorTypeCompositionMap(Map tumorTypeCompositionMap) { - this.tumorTypeComposition = tumorTypeComposition; + this.tumorTypeCompositionMap = tumorTypeCompositionMap; } @ApiModelProperty(value = "Number of Distinct Tumor Types", required = false) @@ -142,10 +155,10 @@ public void init(Mutation mutation) { setHugoSymbol(mutation.getHugoSymbol()); setTumorCount(mutation.getTumorCount()); - setTumorTypeComposition(mutation.getTumorTypeComposition()); + setTumorTypeCompositionMap(mutation.getTumorTypeComposition()); setTumorTypeCount(mutation.getTumorTypeCount()); setResidue(mutation.getResidue()); - setVariantAminoAcid(mutation.getVariantAminoAcid()); + setVariantAminoAcidMap(mutation.getVariantAminoAcid()); setTranscriptId(mutation.getTranscriptId()); setAminoAcidPosition(mutation.getAminoAcidPosition()); } diff --git a/model/src/main/java/org/cmo/cancerhotspots/model/TumorTypeComposition.java b/model/src/main/java/org/cmo/cancerhotspots/model/TumorTypeComposition.java index 2b31496..fc5e19a 100644 --- a/model/src/main/java/org/cmo/cancerhotspots/model/TumorTypeComposition.java +++ b/model/src/main/java/org/cmo/cancerhotspots/model/TumorTypeComposition.java @@ -1,5 +1,6 @@ package org.cmo.cancerhotspots.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.univocity.parsers.annotations.Convert; import com.univocity.parsers.annotations.Parsed; import com.univocity.parsers.annotations.Trim; @@ -41,11 +42,11 @@ public class TumorTypeComposition @Trim @Convert(conversionClass = CompositionMapConversion.class) @Parsed(field = "Tumor_Type_Composition") - private Map tumorTypeComposition; + private Map tumorTypeCompositionMap; public TumorTypeComposition() { - this.tumorTypeComposition = new LinkedHashMap<>(); + this.tumorTypeCompositionMap = new LinkedHashMap<>(); } public String getHugoSymbol() @@ -68,9 +69,9 @@ public void setResidue(String residue) this.residue = residue; } - public void setTumorTypeComposition(Map tumorTypeComposition) + public void setTumorTypeCompositionMap(Map tumorTypeCompositionMap) { - this.tumorTypeComposition = tumorTypeComposition; + this.tumorTypeCompositionMap = tumorTypeCompositionMap; } public String getReferenceAminoAcid() @@ -103,35 +104,41 @@ public void setAminoAcidPosition(IntegerRange aminoAcidPosition) this.aminoAcidPosition = aminoAcidPosition; } - public Map getTumorTypeComposition() + public Object getTumorTypeComposition() { - return tumorTypeComposition; + return getTumorTypeCompositionMap(); + } + + @JsonIgnore + public Map getTumorTypeCompositionMap() + { + return tumorTypeCompositionMap; } public void updateTumorTypeComposition(String tumorType) { String key = tumorType.toLowerCase(); - Integer count = tumorTypeComposition.get(key); + Integer count = tumorTypeCompositionMap.get(key); if (count == null) { count = 0; } - tumorTypeComposition.put(key, count + 1); + tumorTypeCompositionMap.put(key, count + 1); } public void merge(TumorTypeComposition composition) { - DataUtils.mergeCompositions(this.getTumorTypeComposition(), - composition.getTumorTypeComposition()); + DataUtils.mergeCompositions(this.getTumorTypeCompositionMap(), + composition.getTumorTypeCompositionMap()); } public Integer tumorCount() { Integer total = 0; - for (Integer value: getTumorTypeComposition().values()) + for (Integer value: getTumorTypeCompositionMap().values()) { total += value; } @@ -141,6 +148,6 @@ public Integer tumorCount() public Integer tumorTypeCount() { - return getTumorTypeComposition().keySet().size(); + return getTumorTypeCompositionMap().keySet().size(); } } diff --git a/persistence/src/main/java/org/cmo/cancerhotspots/persistence/internal/ClusterRepositoryImpl.java b/persistence/src/main/java/org/cmo/cancerhotspots/persistence/internal/ClusterRepositoryImpl.java index 038d086..a5a1723 100644 --- a/persistence/src/main/java/org/cmo/cancerhotspots/persistence/internal/ClusterRepositoryImpl.java +++ b/persistence/src/main/java/org/cmo/cancerhotspots/persistence/internal/ClusterRepositoryImpl.java @@ -124,7 +124,7 @@ private Map> cacheByGeneAndResidue(Iterable clust for (Cluster cluster : clusters) { // populate cache by gene and residue - for (String residue : cluster.getResidues().keySet()) + for (String residue : cluster.getResidueMap().keySet()) { String key = (cluster.getHugoSymbol() + "_" + residue).toLowerCase(); diff --git a/service/src/main/java/org/cmo/cancerhotspots/service/internal/HotspotDataImportService.java b/service/src/main/java/org/cmo/cancerhotspots/service/internal/HotspotDataImportService.java index 4a43cd9..8f12b35 100644 --- a/service/src/main/java/org/cmo/cancerhotspots/service/internal/HotspotDataImportService.java +++ b/service/src/main/java/org/cmo/cancerhotspots/service/internal/HotspotDataImportService.java @@ -76,7 +76,7 @@ public TumorTypeComposition getTumorTypeComposition(Mutation mutation) composition.setAminoAcidPosition(mutation.getAminoAcidPosition()); composition.setReferenceAminoAcid(mutation.mostFrequentReference()); composition.setVariantAminoAcid(variant); - composition.setTumorTypeComposition(mutation.getTumorTypeComposition()); + composition.setTumorTypeCompositionMap(mutation.getTumorTypeComposition()); composition.setResidue(residue); return composition; @@ -248,7 +248,7 @@ public void generateTumorTypeComposition(Iterable mutations) composition.tumorCount()); } - mutation.setTumorTypeComposition(composition.getTumorTypeComposition()); + mutation.setTumorTypeComposition(composition.getTumorTypeCompositionMap()); mutation.setTumorTypeCount(composition.tumorTypeCount()); mutation.setTumorCount(composition.tumorCount()); } @@ -403,7 +403,7 @@ private Map constructClusterCache(Iterable mutations) cluster = new Cluster(); cluster.setClusterId(key); - cluster.setPdbChains(mutation.getPdbChains()); + cluster.setPdbChainMap(mutation.getPdbChains()); cluster.setpValue(mutation.getpValue()); cluster.setHugoSymbol(mutation.getHugoSymbol());