Skip to content

Commit

Permalink
updated model to serialize Map as Object
Browse files Browse the repository at this point in the history
  • Loading branch information
onursumer committed Apr 5, 2017
1 parent 2918ce7 commit c6b65a8
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 40 deletions.
37 changes: 25 additions & 12 deletions model/src/main/java/org/cmo/cancerhotspots/model/Cluster.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -26,20 +27,20 @@ public class Cluster
@Trim
@Convert(conversionClass = ChainMapConversion.class)
@Parsed(field = "PDB_Chains")
private Map<String, Double> pdbChains;
private Map<String, Double> pdbChainMap;

@Trim
@Convert(conversionClass = CompositionMapConversion.class)
@Parsed(field = "Residues")
private Map<String, Integer> residues;
private Map<String, Integer> residueMap;

@Trim
@Parsed(field = "P-Value")
private String pValue;

public Cluster()
{
this.residues = new LinkedHashMap<>();
this.residueMap = new LinkedHashMap<>();
}

@ApiModelProperty(value = "Hugo gene symbol", required = true)
Expand Down Expand Up @@ -76,29 +77,41 @@ public void setClusterId(String clusterId)
}

@ApiModelProperty(value = "PDB chains (with p-value)", required = true)
public Map<String, Double> getPdbChains()
public Object getPdbChains()
{
return pdbChains;
return getPdbChainMap();
}

public void setPdbChains(Map<String, Double> pdbChains)
@JsonIgnore
public Map<String, Double> getPdbChainMap()
{
this.pdbChains = pdbChains;
return pdbChainMap;
}

public void setPdbChainMap(Map<String, Double> pdbChainMap)
{
this.pdbChainMap = pdbChainMap;
}

@ApiModelProperty(value = "Residues within this cluster (with overall tumor count)", required = true)
public Map<String, Integer> getResidues()
public Object getResidues()
{
return getResidueMap();
}

@JsonIgnore
public Map<String, Integer> getResidueMap()
{
return residues;
return residueMap;
}

public void setResidues(Map<String, Integer> residues)
public void setResidueMap(Map<String, Integer> residueMap)
{
this.residues = residues;
this.residueMap = residueMap;
}

public void addResidue(String residue, Integer tumorCount)
{
this.residues.put(residue, tumorCount);
this.residueMap.put(residue, tumorCount);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -44,10 +45,10 @@ public class HotspotMutation
{
private String hugoSymbol;
private String residue;
private Map<String, Integer> variantAminoAcid;
private Map<String, Integer> variantAminoAcidMap;
private Integer tumorTypeCount;
private Integer tumorCount;
private Map<String, Integer> tumorTypeComposition;
private Map<String, Integer> tumorTypeCompositionMap;
private String transcriptId;
private IntegerRange aminoAcidPosition;

Expand All @@ -74,14 +75,20 @@ public void setResidue(String residue)
}

@ApiModelProperty(value = "Variant Amino Acid", required = true)
public Map<String, Integer> getVariantAminoAcid()
public Object getVariantAminoAcid()
{
return variantAminoAcid;
return getVariantAminoAcidMap();
}

public void setVariantAminoAcid(Map<String, Integer> variantAminoAcid)
@JsonIgnore
public Map<String, Integer> getVariantAminoAcidMap()
{
this.variantAminoAcid = variantAminoAcid;
return variantAminoAcidMap;
}

public void setVariantAminoAcidMap(Map<String, Integer> variantAminoAcidMap)
{
this.variantAminoAcidMap = variantAminoAcidMap;
}

@ApiModelProperty(value = "Number of Tumors", required = true)
Expand All @@ -96,14 +103,20 @@ public void setTumorCount(Integer tumorCount)
}

@ApiModelProperty(value = "Tumor Type Composition", required = true)
public Map<String, Integer> getTumorTypeComposition()
public Object getTumorTypeComposition()
{
return getTumorTypeCompositionMap();
}

@JsonIgnore
public Map<String, Integer> getTumorTypeCompositionMap()
{
return tumorTypeComposition;
return tumorTypeCompositionMap;
}

public void setTumorTypeComposition(Map<String, Integer> tumorTypeComposition)
public void setTumorTypeCompositionMap(Map<String, Integer> tumorTypeCompositionMap)
{
this.tumorTypeComposition = tumorTypeComposition;
this.tumorTypeCompositionMap = tumorTypeCompositionMap;
}

@ApiModelProperty(value = "Number of Distinct Tumor Types", required = false)
Expand Down Expand Up @@ -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());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -41,11 +42,11 @@ public class TumorTypeComposition
@Trim
@Convert(conversionClass = CompositionMapConversion.class)
@Parsed(field = "Tumor_Type_Composition")
private Map<String, Integer> tumorTypeComposition;
private Map<String, Integer> tumorTypeCompositionMap;

public TumorTypeComposition()
{
this.tumorTypeComposition = new LinkedHashMap<>();
this.tumorTypeCompositionMap = new LinkedHashMap<>();
}

public String getHugoSymbol()
Expand All @@ -68,9 +69,9 @@ public void setResidue(String residue)
this.residue = residue;
}

public void setTumorTypeComposition(Map<String, Integer> tumorTypeComposition)
public void setTumorTypeCompositionMap(Map<String, Integer> tumorTypeCompositionMap)
{
this.tumorTypeComposition = tumorTypeComposition;
this.tumorTypeCompositionMap = tumorTypeCompositionMap;
}

public String getReferenceAminoAcid()
Expand Down Expand Up @@ -103,35 +104,41 @@ public void setAminoAcidPosition(IntegerRange aminoAcidPosition)
this.aminoAcidPosition = aminoAcidPosition;
}

public Map<String, Integer> getTumorTypeComposition()
public Object getTumorTypeComposition()
{
return tumorTypeComposition;
return getTumorTypeCompositionMap();
}

@JsonIgnore
public Map<String, Integer> 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;
}
Expand All @@ -141,6 +148,6 @@ public Integer tumorCount()

public Integer tumorTypeCount()
{
return getTumorTypeComposition().keySet().size();
return getTumorTypeCompositionMap().keySet().size();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ private Map<String, List<Cluster>> cacheByGeneAndResidue(Iterable<Cluster> 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();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -248,7 +248,7 @@ public void generateTumorTypeComposition(Iterable<Mutation> mutations)
composition.tumorCount());
}

mutation.setTumorTypeComposition(composition.getTumorTypeComposition());
mutation.setTumorTypeComposition(composition.getTumorTypeCompositionMap());
mutation.setTumorTypeCount(composition.tumorTypeCount());
mutation.setTumorCount(composition.tumorCount());
}
Expand Down Expand Up @@ -403,7 +403,7 @@ private Map<String, Cluster> constructClusterCache(Iterable<Mutation> mutations)
cluster = new Cluster();

cluster.setClusterId(key);
cluster.setPdbChains(mutation.getPdbChains());
cluster.setPdbChainMap(mutation.getPdbChains());
cluster.setpValue(mutation.getpValue());
cluster.setHugoSymbol(mutation.getHugoSymbol());

Expand Down

0 comments on commit c6b65a8

Please sign in to comment.