From 24e9d06d245b661cd89f6839496f5a033a505275 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 2 Jan 2019 15:52:03 +0100 Subject: [PATCH] adding modification residues is class dependent (there is no possibil;ity to add invalid residue type) --- .../structure/CellDesignerAntisenseRna.java | 18 +++++++++-- .../structure/CellDesignerGene.java | 22 +++++++++++-- .../structure/CellDesignerProtein.java | 18 ++++++++--- .../structure/CellDesignerRna.java | 20 +++++++++--- .../structure/SpeciesStateTest.java | 4 +-- .../model/sbgnml/SbgnmlXmlParser.java | 2 +- .../model/sbgnml/SbgnmlXmlParserTest2.java | 2 +- .../element/species/SpeciesConverterTest.java | 2 +- .../model/sbml/SbmlExporterTest.java | 31 +++++++++++++++++++ .../model/map/species/AntisenseRna.java | 23 +++++++++++--- .../mapviewer/model/map/species/Gene.java | 22 ++++++++++++- .../mapviewer/model/map/species/Protein.java | 14 +++++++-- .../lcsb/mapviewer/model/map/species/Rna.java | 23 +++++++++++--- .../field/AbstractSiteModification.java | 4 +++ .../species/field/ModificationResidue.java | 4 +++ .../model/map/species/field/Residue.java | 4 +++ .../species/AntisenseRnaComparatorTest.java | 2 +- .../model/map/species/AntisenseRnaTest.java | 2 +- .../model/map/species/GeneComparatorTest.java | 12 +++---- .../mapviewer/model/map/species/GeneTest.java | 2 +- .../map/species/ProteinComparatorTest.java | 2 +- .../model/map/species/RnaComparatorTest.java | 2 +- .../mapviewer/model/map/species/RnaTest.java | 2 +- .../wikipathway/XML/ModelContructor.java | 4 +-- .../persist/dao/map/CommentDaoTest.java | 4 +-- .../persist/dao/map/LayoutDaoTest.java | 2 +- .../persist/dao/map/ModelDaoTest.java | 2 +- .../dao/map/layout/alias/AliasDaoTest2.java | 6 ++-- .../map/layout/alias/AntisenseRnaTest.java | 2 +- .../persist/dao/map/layout/alias/RnaTest.java | 2 +- .../elements/ElementRestImplTest.java | 6 ++-- 31 files changed, 210 insertions(+), 55 deletions(-) diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java index 9ad77efd72..1e2809aa35 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java @@ -5,10 +5,15 @@ import java.util.List; import org.apache.log4j.Logger; +import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue; import lcsb.mapviewer.model.map.species.AntisenseRna; import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.model.map.species.field.CodingRegion; +import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.ModificationSite; +import lcsb.mapviewer.model.map.species.field.ProteinBindingDomain; /** * Class representing CellDesigner {@link AntisenseRna}. @@ -140,9 +145,18 @@ public class CellDesignerAntisenseRna extends CellDesignerSpecies<AntisenseRna> } @Override - public void updateModelElementAfterLayoutAdded(Species element) { + public void updateModelElementAfterLayoutAdded(AntisenseRna antisenseRna) { for (CellDesignerModificationResidue region : regions) { - ((AntisenseRna) element).addRegion(region.createModificationResidue(element)); + ModificationResidue mr = region.createModificationResidue(antisenseRna); + if (mr instanceof CodingRegion) { + antisenseRna.addCodingRegion((CodingRegion) mr); + } else if (mr instanceof ModificationSite) { + antisenseRna.addModificationSite((ModificationSite) mr); + } else if (mr instanceof ProteinBindingDomain) { + antisenseRna.addProteinBindingDomain((ProteinBindingDomain) mr); + } else { + throw new InvalidArgumentException("Cannot add modification residue to element: " + mr.getClass()); + } } } diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java index 247887c598..cd8e8ee223 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java @@ -3,10 +3,16 @@ package lcsb.mapviewer.converter.model.celldesigner.structure; import java.util.ArrayList; import java.util.List; +import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue; import lcsb.mapviewer.model.map.species.Gene; import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.model.map.species.field.CodingRegion; +import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.ModificationSite; +import lcsb.mapviewer.model.map.species.field.RegulatoryRegion; +import lcsb.mapviewer.model.map.species.field.TranscriptionSite; /** * Class representing CellDesigner {@link Gene}. @@ -113,10 +119,20 @@ public class CellDesignerGene extends CellDesignerSpecies<Gene> { } @Override - public void updateModelElementAfterLayoutAdded(Species element) { + public void updateModelElementAfterLayoutAdded(Gene gene) { for (CellDesignerModificationResidue region : modificationResidues) { - ((Gene) element).addModificationResidue(region.createModificationResidue(element)); + ModificationResidue mr = region.createModificationResidue(gene); + if (mr instanceof CodingRegion) { + gene.addCodingRegion((CodingRegion) mr); + } else if (mr instanceof ModificationSite) { + gene.addModificationSite((ModificationSite) mr); + } else if (mr instanceof RegulatoryRegion) { + gene.addRegulatoryRegion((RegulatoryRegion) mr); + } else if (mr instanceof TranscriptionSite) { + gene.addTranscriptionSite((TranscriptionSite) mr); + } else { + throw new InvalidArgumentException("Cannot add modification residue to element: " + mr.getClass()); + } } } - } diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java index 9fa15ca0df..d82a2060b3 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java @@ -5,10 +5,13 @@ import java.util.List; import org.apache.log4j.Logger; +import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue; import lcsb.mapviewer.model.map.species.Protein; -import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.model.map.species.field.BindingRegion; +import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.Residue; /** * Class representing CellDesigner {@link Protein} object. @@ -150,9 +153,16 @@ public class CellDesignerProtein<T extends Protein> extends CellDesignerSpecies< } @Override - public void updateModelElementAfterLayoutAdded(Species element) { - for (CellDesignerModificationResidue mr : modificationResidues) { - ((Protein) element).addModificationResidue(mr.createModificationResidue(element)); + public void updateModelElementAfterLayoutAdded(Protein element) { + for (CellDesignerModificationResidue region : modificationResidues) { + ModificationResidue mr = region.createModificationResidue(element); + if (mr instanceof Residue) { + element.addResidue((Residue) mr); + } else if (mr instanceof BindingRegion) { + element.addBindingRegion((BindingRegion) mr); + } else { + throw new InvalidArgumentException("Cannot add modification residue to element: " + mr.getClass()); + } } } diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java index 64e121ad9a..1e2406c374 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java @@ -5,10 +5,14 @@ import java.util.List; import org.apache.log4j.Logger; +import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue; import lcsb.mapviewer.model.map.species.Rna; -import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.model.map.species.field.CodingRegion; +import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.ModificationSite; +import lcsb.mapviewer.model.map.species.field.ProteinBindingDomain; /** * Class representing CellDesigner {@link Rna}. @@ -139,10 +143,18 @@ public class CellDesignerRna extends CellDesignerSpecies<Rna> { } @Override - public void updateModelElementAfterLayoutAdded(Species element) { + public void updateModelElementAfterLayoutAdded(Rna rna) { for (CellDesignerModificationResidue region : regions) { - Rna rna = (Rna) element; - rna.addRegion(region.createModificationResidue(rna)); + ModificationResidue mr = region.createModificationResidue(rna); + if (mr instanceof CodingRegion) { + rna.addCodingRegion((CodingRegion) mr); + } else if (mr instanceof ModificationSite) { + rna.addModificationSite((ModificationSite) mr); + } else if (mr instanceof ProteinBindingDomain) { + rna.addProteinBindingDomain((ProteinBindingDomain) mr); + } else { + throw new InvalidArgumentException("Cannot add modification residue to element: " + mr.getClass()); + } } } diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/SpeciesStateTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/SpeciesStateTest.java index 5e24aa5ddb..1c6e9ca880 100644 --- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/SpeciesStateTest.java +++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/SpeciesStateTest.java @@ -56,7 +56,7 @@ public class SpeciesStateTest { rna.setHeight(10); CodingRegion mr = new CodingRegion(); mr.setPosition(new Point2D.Double(10, 40)); - rna.addRegion(mr); + rna.addCodingRegion(mr); SpeciesState state = new SpeciesState(rna); assertEquals(1, state.getModifications().size()); } @@ -68,7 +68,7 @@ public class SpeciesStateTest { gene.setHeight(10); ModificationSite mr = new ModificationSite(); mr.setPosition(new Point2D.Double(10, 40)); - gene.addModificationResidue(mr); + gene.addModificationSite(mr); SpeciesState state = new SpeciesState(gene); assertEquals(1, state.getModifications().size()); } diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java index 7c6c5e53d5..3be28e7f95 100644 --- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java +++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java @@ -831,7 +831,7 @@ public class SbgnmlXmlParser { mr.setPosition(new Point2D.Double(x, y)); - protein.addModificationResidue(mr); + protein.addResidue(mr); } /** diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java index fd00fea41c..e14f56980f 100644 --- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java +++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java @@ -33,7 +33,7 @@ public class SbgnmlXmlParserTest2 { Residue mr = new Residue(); Point2D position = new Point2D.Double(100, 20); mr.setPosition(position); - protein.addModificationResidue(mr); + protein.addResidue(mr); parser.adjustModificationCoordinates(protein); assertTrue(mr.getPosition().distance(position) > Configuration.EPSILON); diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java index 9b1ec5616f..d44d12eefa 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java @@ -197,7 +197,7 @@ public class SpeciesConverterTest { bindingRegion.setPosition(new Point2D.Double(10, 10)); bindingRegion.setWidth(100.0); bindingRegion.setHeight(10.0); - protein.addModificationResidue(bindingRegion); + protein.addBindingRegion(bindingRegion); ProteinConverter converter = Mockito.spy(new ProteinConverter(colorExtractor)); converter.drawModification(bindingRegion, graphics, false); diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java index 1ae127b723..cffe83e934 100644 --- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java +++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java @@ -50,7 +50,9 @@ import lcsb.mapviewer.model.map.species.IonChannelProtein; import lcsb.mapviewer.model.map.species.ReceptorProtein; import lcsb.mapviewer.model.map.species.Species; import lcsb.mapviewer.model.map.species.TruncatedProtein; +import lcsb.mapviewer.model.map.species.field.ModificationState; import lcsb.mapviewer.model.map.species.field.PositionToCompartment; +import lcsb.mapviewer.model.map.species.field.Residue; public class SbmlExporterTest { Logger logger = Logger.getLogger(SbmlExporterTest.class); @@ -606,4 +608,33 @@ public class SbmlExporterTest { speciesExtension.getListOfSpeciesFeatures().size() > 0); } + @Test + public void testExportResidue() throws Exception { + Model model = createEmptyModel(); + GenericProtein element = new GenericProtein("id"); + element.setName("test name"); + element.setX(10); + element.setWidth(10); + element.setY(10); + element.setHeight(10); + Residue mr = new Residue("x1"); + mr.setName("217U"); + mr.setState(ModificationState.PHOSPHORYLATED); + element.addResidue(mr); + mr = new Residue("Y"); + mr.setName("218"); + mr.setState(ModificationState.PHOSPHORYLATED); + element.addResidue(mr); + mr = new Residue("Z"); + mr.setName("219"); + mr.setState(ModificationState.UBIQUITINATED); + element.addResidue(mr); + model.addElement(element); + Model deserializedModel = getModelAfterSerializing(model); + + GenericProtein protein = deserializedModel.getElementByElementId("id"); + assertEquals("Residues weren't exported/imported properly", 3, protein.getModificationResidues().size()); + + } + } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRna.java b/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRna.java index bf985706d3..416802d7db 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRna.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRna.java @@ -13,7 +13,10 @@ import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.map.species.field.CodingRegion; import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.ModificationSite; +import lcsb.mapviewer.model.map.species.field.ProteinBindingDomain; /** * Entity representing antisense rna element on the map. @@ -38,7 +41,7 @@ public class AntisenseRna extends Species { @OneToMany(mappedBy = "species") @LazyCollection(LazyCollectionOption.FALSE) private List<ModificationResidue> regions = new ArrayList<>(); - + /** * Empty constructor required by hibernate. */ @@ -54,7 +57,7 @@ public class AntisenseRna extends Species { public AntisenseRna(AntisenseRna original) { super(original); for (ModificationResidue region : original.getRegions()) { - addRegion(region.copy()); + addModificationResidue(region.copy()); } } @@ -74,11 +77,23 @@ public class AntisenseRna extends Species { * @param antisenseRnaRegion * region to be added */ - public void addRegion(ModificationResidue antisenseRnaRegion) { + private void addModificationResidue(ModificationResidue antisenseRnaRegion) { regions.add(antisenseRnaRegion); antisenseRnaRegion.setSpecies(this); } - + + public void addCodingRegion(CodingRegion codingRegion) { + this.addModificationResidue(codingRegion); + } + + public void addProteinBindingDomain(ProteinBindingDomain codingRegion) { + this.addModificationResidue(codingRegion); + } + + public void addModificationSite(ModificationSite codingRegion) { + this.addModificationResidue(codingRegion); + } + @Override public AntisenseRna copy() { if (this.getClass() == AntisenseRna.class) { diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java index 183c684ef1..9c87b44c78 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java @@ -13,7 +13,11 @@ import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.map.species.field.CodingRegion; import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.ModificationSite; +import lcsb.mapviewer.model.map.species.field.RegulatoryRegion; +import lcsb.mapviewer.model.map.species.field.TranscriptionSite; /** * Entity representing gene element on the map. @@ -73,12 +77,28 @@ public class Gene extends Species { * @param modificationResidue * {@link ModificationResidue} to be added */ - public void addModificationResidue(ModificationResidue modificationResidue) { + private void addModificationResidue(ModificationResidue modificationResidue) { modificationResidues.add(modificationResidue); modificationResidue.setSpecies(this); } + public void addCodingRegion(CodingRegion codingRegion) { + this.addModificationResidue(codingRegion); + } + + public void addModificationSite(ModificationSite modificationSite) { + this.addModificationResidue(modificationSite); + } + + public void addRegulatoryRegion(RegulatoryRegion regulatoryRegion) { + this.addModificationResidue(regulatoryRegion); + } + + public void addTranscriptionSite(TranscriptionSite transcriptionSite) { + this.addModificationResidue(transcriptionSite); + } + @Override public Gene copy() { if (this.getClass() == Gene.class) { diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Protein.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Protein.java index 829ca43483..9a52c46031 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/species/Protein.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Protein.java @@ -12,7 +12,9 @@ import org.hibernate.annotations.CascadeType; import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; +import lcsb.mapviewer.model.map.species.field.BindingRegion; import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.Residue; /** * Entity representing protein element on the map. @@ -41,7 +43,7 @@ public abstract class Protein extends Species { @OneToMany(mappedBy = "species", orphanRemoval = true) @LazyCollection(LazyCollectionOption.FALSE) private List<ModificationResidue> modificationResidues = new ArrayList<>(); - + /** * Empty constructor required by hibernate. */ @@ -78,11 +80,19 @@ public abstract class Protein extends Species { * @param modificationResidue * modification to add */ - public void addModificationResidue(ModificationResidue modificationResidue) { + private void addModificationResidue(ModificationResidue modificationResidue) { modificationResidues.add(modificationResidue); modificationResidue.setSpecies(this); } + public void addBindingRegion(BindingRegion bindingRegion) { + this.addModificationResidue(bindingRegion); + } + + public void addResidue(Residue residue) { + this.addModificationResidue(residue); + } + /** * @return the modificationResidues * @see #modificationResidues diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Rna.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Rna.java index b9d6f9233f..cbaedd90b4 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/species/Rna.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Rna.java @@ -13,7 +13,10 @@ import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.map.species.field.CodingRegion; import lcsb.mapviewer.model.map.species.field.ModificationResidue; +import lcsb.mapviewer.model.map.species.field.ModificationSite; +import lcsb.mapviewer.model.map.species.field.ProteinBindingDomain; /** * Entity representing rna element on the map. @@ -53,7 +56,7 @@ public class Rna extends Species { public Rna(Rna original) { super(original); for (ModificationResidue region : original.getRegions()) { - addRegion(region.copy()); + addModificationResidue(region.copy()); } } @@ -74,9 +77,21 @@ public class Rna extends Species { * @param rnaRegion * object to be added */ - public void addRegion(ModificationResidue rnaRegion) { - regions.add(rnaRegion); - rnaRegion.setSpecies(this); + private void addModificationResidue(ModificationResidue antisenseRnaRegion) { + regions.add(antisenseRnaRegion); + antisenseRnaRegion.setSpecies(this); + } + + public void addCodingRegion(CodingRegion codingRegion) { + this.addModificationResidue(codingRegion); + } + + public void addProteinBindingDomain(ProteinBindingDomain codingRegion) { + this.addModificationResidue(codingRegion); + } + + public void addModificationSite(ModificationSite codingRegion) { + this.addModificationResidue(codingRegion); } @Override diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/AbstractSiteModification.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/AbstractSiteModification.java index e1b7030a96..86ef4c8d19 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/AbstractSiteModification.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/AbstractSiteModification.java @@ -31,6 +31,10 @@ public abstract class AbstractSiteModification extends ModificationResidue { this.state = mr.getState(); } + public AbstractSiteModification(String modificationId) { + super(modificationId); + } + public ModificationState getState() { return state; } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java index 6d76f71c98..4225d31fb3 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java @@ -92,6 +92,10 @@ public abstract class ModificationResidue implements Serializable { this.position = mr.position; } + public ModificationResidue(String modificationId) { + this.idModificationResidue = modificationId; + } + /** * @return the idModificationResidue * @see #id diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/Residue.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/Residue.java index d93cc8956d..c20e0606fb 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/Residue.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/Residue.java @@ -29,6 +29,10 @@ public class Residue extends AbstractSiteModification { super(residue); } + public Residue(String modificationId) { + super(modificationId); + } + /** * Creates copy of the object. * diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparatorTest.java index 3df395f239..858bc750ba 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparatorTest.java @@ -79,7 +79,7 @@ public class AntisenseRnaComparatorTest { AntisenseRna result = new AntisenseRna(); CodingRegion region1 = new CodingRegion(); - result.addRegion(region1); + result.addCodingRegion(region1); region1.setIdModificationResidue("a"); region1.setName("name"); region1.setPosition(new Point2D.Double(0, 1)); diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaTest.java index f52284cd4f..102da4683c 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/species/AntisenseRnaTest.java @@ -41,7 +41,7 @@ public class AntisenseRnaTest { public void testConstructor1() { try { AntisenseRna original = new AntisenseRna(); - original.addRegion(new CodingRegion()); + original.addCodingRegion(new CodingRegion()); AntisenseRna aRna = new AntisenseRna(original); assertNotNull(aRna); } catch (Exception e) { diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/GeneComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/GeneComparatorTest.java index e255b76e32..7b7d6d4869 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/species/GeneComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/species/GeneComparatorTest.java @@ -82,13 +82,13 @@ public class GeneComparatorTest { Gene result = new Gene(); result.setHypothetical(true); - AbstractSiteModification residue = new ModificationSite(); - result.addModificationResidue(residue); + ModificationSite modificationSite = new ModificationSite(); + result.addModificationSite(modificationSite); - residue.setIdModificationResidue("a"); - residue.setName("name"); - residue.setPosition(new Point2D.Double(10, 20)); - residue.setState(ModificationState.ACETYLATED); + modificationSite.setIdModificationResidue("a"); + modificationSite.setName("name"); + modificationSite.setPosition(new Point2D.Double(10, 20)); + modificationSite.setState(ModificationState.ACETYLATED); return result; } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/GeneTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/GeneTest.java index 5dd200337e..f79e6affe7 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/species/GeneTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/species/GeneTest.java @@ -41,7 +41,7 @@ public class GeneTest { public void testConstructor1() { try { Gene original = new Gene(); - original.addModificationResidue(new ModificationSite()); + original.addModificationSite(new ModificationSite()); Gene gene = new Gene(original); assertNotNull(gene); } catch (Exception e) { diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java index e07e6d0e81..e0cdc967ea 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java @@ -126,7 +126,7 @@ public class ProteinComparatorTest { result.setHypothetical(true); Residue residue = new Residue(); - result.addModificationResidue(residue); + result.addResidue(residue); residue.setIdModificationResidue("a"); residue.setName("name"); diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/RnaComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/RnaComparatorTest.java index 819c28ea1d..f99156d913 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/species/RnaComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/species/RnaComparatorTest.java @@ -81,7 +81,7 @@ public class RnaComparatorTest { result.setHypothetical(true); CodingRegion region1 = new CodingRegion(); - result.addRegion(region1); + result.addCodingRegion(region1); region1.setIdModificationResidue("a"); region1.setPosition(new Point2D.Double(0, 10)); region1.setWidth(2.0); diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java index 948f46dcb1..f36d79d001 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java @@ -54,7 +54,7 @@ public class RnaTest { public void testConstructor() { try { Rna rna = new Rna("d"); - rna.addRegion(new CodingRegion()); + rna.addCodingRegion(new CodingRegion()); Rna rna2 = new Rna(rna); assertEquals(rna.getRegions().size(), rna2.getRegions().size()); } catch (Exception e) { diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java index f340ba5f5b..83d5009859 100644 --- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java +++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java @@ -390,10 +390,10 @@ public class ModelContructor { if (species instanceof Protein) { mr = new Residue(); - ((Protein) species).addModificationResidue(mr); + ((Protein) species).addResidue((Residue) mr); } else if (species instanceof Gene) { mr = new ModificationSite(); - ((Gene) species).addModificationResidue(mr); + ((Gene) species).addModificationSite((ModificationSite) mr); } else { logger.warn( state.getWarningPrefix() + "state for " + species.getClass().getSimpleName() + " is not supported."); diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java index e00f0b9d3a..f44acde754 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java @@ -145,9 +145,9 @@ public class CommentDaoTest extends PersistTestFunctions { alias = createSpeciesAlias(264.8333333333335, 517.75, 86.0, 46.0, "pr1"); model.addElement(alias); - ModificationResidue mr = new Residue(); + Residue mr = new Residue(); mr.setName("mr"); - alias.addModificationResidue(mr); + alias.addResidue(mr); alias.addMiriamData(new MiriamData(MiriamRelationType.BQ_BIOL_IS_DESCRIBED_BY, MiriamType.CHEBI, "c")); return model; diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java index 406af68352..d896472061 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java @@ -195,7 +195,7 @@ public class LayoutDaoTest extends PersistTestFunctions { Residue mr = new Residue(); mr.setName("mr"); - protein.addModificationResidue(mr); + protein.addResidue(mr); protein.addMiriamData(new MiriamData(MiriamRelationType.BQ_BIOL_IS_DESCRIBED_BY, MiriamType.CHEBI, "c")); return model; diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java index 719167ffff..400af2be98 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java @@ -424,7 +424,7 @@ public class ModelDaoTest extends PersistTestFunctions { Residue mr = new Residue(); mr.setName("mr"); mr.setPosition(new Point2D.Double(10, 20)); - alias.addModificationResidue(mr); + alias.addResidue(mr); alias.addMiriamData(new MiriamData(MiriamRelationType.BQ_BIOL_IS_DESCRIBED_BY, MiriamType.CHEBI, "c")); return model; diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java index abab8f1ff1..08cfd58ce8 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java @@ -108,7 +108,7 @@ public class AliasDaoTest2 extends PersistTestFunctions { mr.setPosition(new Point2D.Double(10, 20)); mr.setName("name"); mr.setState(ModificationState.GLYCOSYLATED); - protein.addModificationResidue(mr); + protein.addResidue(mr); elementDao.add(protein); @@ -143,7 +143,7 @@ public class AliasDaoTest2 extends PersistTestFunctions { ModificationSite mr = new ModificationSite(); mr.setName("name"); mr.setState(ModificationState.DONT_CARE); - sp.addRegion(mr); + sp.addModificationSite(mr); elementDao.add(sp); elementDao.evict(sp); @@ -177,7 +177,7 @@ public class AliasDaoTest2 extends PersistTestFunctions { AntisenseRna sp = new AntisenseRna(testIdAlias); ModificationSite mr = new ModificationSite(); mr.setName("name"); - sp.addRegion(mr); + sp.addModificationSite(mr); elementDao.add(sp); elementDao.evict(sp); diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java index 44bb7dcec7..1b67cca4e9 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java @@ -75,7 +75,7 @@ public class AntisenseRnaTest extends PersistTestFunctions { Model model = new ModelFullIndexed(null); AntisenseRna alias = new AntisenseRna("As"); - alias.addRegion(new CodingRegion()); + alias.addCodingRegion(new CodingRegion()); alias.setX(1); alias.setY(2); alias.setWidth(10); diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java index 4eea1e67a9..d0392f51a0 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java @@ -74,7 +74,7 @@ public class RnaTest extends PersistTestFunctions { Model model = new ModelFullIndexed(null); Rna alias = new Rna("As"); - alias.addRegion(new CodingRegion()); + alias.addCodingRegion(new CodingRegion()); alias.setX(1); alias.setY(2); alias.setWidth(10); diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java index 61b7458f8e..c9701d3a83 100644 --- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java +++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java @@ -117,7 +117,7 @@ public class ElementRestImplTest extends RestTestFunctions { Residue mr = new Residue(); mr.setState(ModificationState.ACETYLATED); mr.setName("S250"); - protein.addModificationResidue(mr); + protein.addResidue(mr); protein.setStructuralState(state); Map<String, Object> result = _elementsRestImpl.getOthersForElement(protein); assertNotNull(result.get("modifications")); @@ -139,7 +139,7 @@ public class ElementRestImplTest extends RestTestFunctions { ModificationSite mr = new ModificationSite(); mr.setState(ModificationState.ACETYLATED); mr.setName("S250"); - rna.addRegion(mr); + rna.addModificationSite(mr); rna.setState(state); Map<String, Object> result = _elementsRestImpl.getOthersForElement(rna); assertNotNull(result.get("modifications")); @@ -160,7 +160,7 @@ public class ElementRestImplTest extends RestTestFunctions { AntisenseRna antisenseRna = new AntisenseRna("s1"); ModificationSite mr = new ModificationSite(); mr.setName("S250"); - antisenseRna.addRegion(mr); + antisenseRna.addModificationSite(mr); antisenseRna.setState(state); Map<String, Object> result = _elementsRestImpl.getOthersForElement(antisenseRna); assertNotNull(result.get("modifications")); -- GitLab