diff --git a/pom.xml b/pom.xml index fd13e2b1..311bc8c3 100644 --- a/pom.xml +++ b/pom.xml @@ -1,280 +1,283 @@ - - - 4.0.0 - - org.reactome.maven - reactome-parent - 1.0.5-SNAPSHOT - - org.reactome.server.graph - graph-core - jar - 3.0.0-SNAPSHOT - Graph Core - + + 4.0.0 + + org.reactome.maven + reactome-parent + 1.0.5 + + + org.reactome.server.graph + graph-core + + jar + 2.0.15.CT + Graph Core Next Generation + + The Reactome Graph Project aims to model the Reactome knowledgebase into a interconnected graph. For more information visit the reactome github repository. - https://github.com/reactome/graph-core - - The European Bioinformatics Institute - https://www.ebi.ac.uk/ - - - - gviteri - Guilherme Viteri - gviteri@ebi.ac.uk - http://www.ebi.ac.uk/ - - - fkorn - Florian Korninger - - - - - false - - - - - org.springframework.boot - spring-boot-starter-data-neo4j - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.reflections - reflections - - - - org.springframework - spring-aspects - - - org.aspectj - aspectjrt - - - org.apache.commons - commons-lang3 - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.reactome.base - reactome-base - test - - - org.jodd - jodd-bean - - - com.fasterxml.jackson.core - jackson-annotations - compile - - - com.fasterxml.jackson.core - jackson-databind - test - - - com.voodoodyne.jackson.jsog - jackson-jsog - 1.1.2 - test - - - - ${project.artifactId} - - - src/main/resources - true - - - - - src/test/resources - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven.surefire.version} - - + + https://github.com/reactome/graph-core + + + The European Bioinformatics Institute + https://www.ebi.ac.uk/ + + + + + gviteri + Guilherme Viteri + gviteri@ebi.ac.uk + http://www.ebi.ac.uk/ + + + fkorn + Florian Korninger + + + + + + + false + + + + + + org.springframework.boot + spring-boot-starter-data-neo4j + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.reflections + reflections + + + + + org.springframework + spring-aspects + + + org.aspectj + aspectjrt + + + + org.apache.commons + commons-lang3 + + + + org.junit.jupiter + junit-jupiter-api + test + + + + org.junit.jupiter + junit-jupiter-engine + test + + + + org.reactome.base + reactome-base + 2.2.4-SNAPSHOT + test + + + + org.jodd + jodd-bean + + + com.fasterxml.jackson.core + jackson-annotations + compile + + + com.fasterxml.jackson.core + jackson-databind + test + + + + + ${project.artifactId} + + + + src/main/resources + false + + + + + + src/test/resources + true + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven.surefire.version} + + --illegal-access=permit - - - - org.apache.maven.plugins - maven-failsafe-plugin - ${maven.failsafe.version} - - + + + + org.apache.maven.plugins + maven-failsafe-plugin + ${maven.failsafe.version} + + --illegal-access=permit - - - - - - org.apache.maven.plugins - maven-resources-plugin - ${maven.resources.version} - - \ - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven.compiler.version} - - ${java.version} - ${java.version} - false - - - - org.apache.maven.plugins - maven-jar-plugin - ${maven.jar.version} - - - default-jar - - jar - - - - org/reactome/server/graph/Main.class - **/logback.xml - - - - - - + + + org.apache.maven.plugins + maven-resources-plugin + ${maven.resources.version} + + + \ + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven.compiler.version} + + ${java.version} + ${java.version} + false + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.version} + + + default-jar + + jar + + + + org/reactome/server/graph/Main.class + **/logback.xml + + + + + + + - - org.codehaus.mojo - aspectj-maven-plugin - ${maven.aspectj.version} - - ${java.version} - ${java.version} - - - - test-compile - - true - - - compile - - test-compile - - - - - - process-sources - - true - - - compile - test-compile - - - - - - org.aspectj - aspectjrt - ${aspectj.version} - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - org.apache.maven.plugins - maven-source-plugin - ${maven.source.version} - - - org.apache.maven.plugins - maven-source-plugin - ${maven.source.version} - - - attach-sources - - jar - - - - - - - - - - nexus-ebi-repo - The EBI internal repository - https://www.ebi.ac.uk/Tools/maven/repos/content/groups/ebi-repo/ - - true - - - false - - - - - nexus-ebi-snapshot-repo - The EBI internal snapshot repository - https://www.ebi.ac.uk/Tools/maven/repos/content/groups/ebi-snapshots/ - - false - - - true - - - - - biopax - BioPax Repository - http://www.biopax.org/m2repo/releases/ - - + + org.codehaus.mojo + aspectj-maven-plugin + ${maven.aspectj.version} + + ${java.version} + ${java.version} + + + + test-compile + + true + + + compile + test-compile + + + + + process-sources + + true + + + compile + test-compile + + + + + + org.aspectj + aspectjrt + ${aspectj.version} + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + + org.apache.maven.plugins + maven-source-plugin + ${maven.source.version} + + + + + + + + nexus-ebi-repo + The EBI internal repository + https://www.ebi.ac.uk/Tools/maven/repos/content/groups/ebi-repo/ + + true + + + false + + + + + nexus-ebi-snapshot-repo + The EBI internal snapshot repository + https://www.ebi.ac.uk/Tools/maven/repos/content/groups/ebi-snapshots/ + + false + + + true + + + + diff --git a/src/main/java/org/reactome/server/graph/domain/model/Complex.java b/src/main/java/org/reactome/server/graph/domain/model/Complex.java index a52b3713..81c59894 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/Complex.java +++ b/src/main/java/org/reactome/server/graph/domain/model/Complex.java @@ -43,6 +43,9 @@ public class Complex extends PhysicalEntity implements CompositionAggregator { @Relationship(type = "relatedSpecies") private List relatedSpecies; + + @Relationship(type = "componentCellType") + private List componentCellType; @Override public Stream>> defineCompositionRelations() { @@ -56,6 +59,14 @@ public Complex(Long dbId) { super(dbId); } + public List getComponentCellType() { + return componentCellType; + } + + public void setComponentCellType(List componentCellType) { + this.componentCellType = componentCellType; + } + public Boolean getIsChimeric() { return isChimeric; } diff --git a/src/main/java/org/reactome/server/graph/domain/model/DatabaseObject.java b/src/main/java/org/reactome/server/graph/domain/model/DatabaseObject.java index 45caff8b..e4c89082 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/DatabaseObject.java +++ b/src/main/java/org/reactome/server/graph/domain/model/DatabaseObject.java @@ -1,23 +1,28 @@ package org.reactome.server.graph.domain.model; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import java.io.Serializable; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.SortedSet; +import java.util.TreeSet; + import org.reactome.server.graph.domain.annotations.ReactomeProperty; import org.reactome.server.graph.domain.annotations.ReactomeSchemaIgnore; import org.reactome.server.graph.domain.annotations.ReactomeTransient; +import org.reactome.server.graph.domain.relationship.ModifiedList; import org.reactome.server.graph.domain.result.DatabaseObjectLike; import org.springframework.data.neo4j.core.schema.Id; import org.springframework.data.neo4j.core.schema.Node; import org.springframework.data.neo4j.core.schema.Relationship; import org.springframework.lang.NonNull; -import java.io.Serializable; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; /** * DatabaseObject contains the minimum fields used to define an instance of an Reactome entry @@ -61,13 +66,21 @@ public abstract class DatabaseObject implements Serializable, Comparable modifiedList; + + @Relationship(type = "stableIdentifier") + private StableIdentifier stableIdentifier; public DatabaseObject() { } public DatabaseObject(Long dbId) { this.dbId = dbId; - } + } // @ReactomeSchemaIgnore // public Long getId() { @@ -78,6 +91,40 @@ public DatabaseObject(Long dbId) { // this.id = id; // } + public StableIdentifier getStableIdentifier() { + return stableIdentifier; + } + + public void setStableIdentifier(StableIdentifier stableIdentifier) { + this.stableIdentifier = stableIdentifier; + } + + public List getModifiedList() { + if (this.modifiedList == null || this.modifiedList.isEmpty()) { + return null; + } + + List rtn = new ArrayList<>(); + for (ModifiedList modified : this.modifiedList) { + rtn.add(modified.getInstanceEdit()); + } + return rtn; + } + + public void setModifiedList(List modifiedList) { + if (modifiedList == null || modifiedList.isEmpty()) { + return; + } + this.modifiedList = new TreeSet<>(); + int order = 0; + for (InstanceEdit instanceEdit : modifiedList) { + ModifiedList aux = new ModifiedList(); + aux.setInstanceEdit(instanceEdit); + aux.setOrder(order++); + this.modifiedList.add(aux); + } + } + public Long getDbId() { return dbId; } diff --git a/src/main/java/org/reactome/server/graph/domain/model/Deleted.java b/src/main/java/org/reactome/server/graph/domain/model/Deleted.java index dd4cadc5..afa66cea 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/Deleted.java +++ b/src/main/java/org/reactome/server/graph/domain/model/Deleted.java @@ -26,6 +26,9 @@ public class Deleted extends MetaDatabaseObject{ @Deprecated @ReactomeProperty(originName = "deletedInstanceDB_ID") private List deletedInstanceDbId; + + @ReactomeProperty(originName = "replacementInstanceDB_IDs") + private List replacementInstanceDbIds; public Deleted() { } @@ -34,6 +37,14 @@ public String getCuratorComment() { return curatorComment; } + public List getReplacementInstanceDbIds() { + return replacementInstanceDbIds; + } + + public void setReplacementInstanceDbIds(List replacementInstanceDbIds) { + this.replacementInstanceDbIds = replacementInstanceDbIds; + } + public void setCuratorComment(String curatorComment) { this.curatorComment = curatorComment; } diff --git a/src/main/java/org/reactome/server/graph/domain/model/Event.java b/src/main/java/org/reactome/server/graph/domain/model/Event.java index 466c158f..042fcd07 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/Event.java +++ b/src/main/java/org/reactome/server/graph/domain/model/Event.java @@ -4,13 +4,25 @@ import org.reactome.server.graph.domain.annotations.*; import org.reactome.server.graph.domain.relationship.EventOf; import org.reactome.server.graph.domain.relationship.Has; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import org.reactome.server.graph.domain.annotations.ReactomeProperty; +import org.reactome.server.graph.domain.annotations.ReactomeSchemaIgnore; +import org.reactome.server.graph.domain.annotations.ReactomeTransient; import org.reactome.server.graph.domain.relationship.HasCompartment; +import org.reactome.server.graph.domain.relationship.StructureModified; import org.springframework.data.neo4j.core.schema.Node; import org.springframework.data.neo4j.core.schema.Relationship; import java.util.List; import java.util.Set; import java.util.SortedSet; +import com.fasterxml.jackson.annotation.JsonIgnore; @SuppressWarnings({"unused"}) @@ -40,6 +52,8 @@ public abstract class Event extends DatabaseObject implements Trackable, Deletab private String releaseStatus; @ReactomeProperty(addedField = true) private String speciesName; + @ReactomeProperty(originName = "_doRelease") + private Boolean doRelease; @Relationship(type = "authored", direction = Relationship.Direction.INCOMING) private List authored; @@ -115,8 +129,13 @@ public abstract class Event extends DatabaseObject implements Trackable, Deletab @Relationship(type = "internalReviewed", direction = Relationship.Direction.INCOMING) private List internalReviewed; + // For some reason, we have to define a relationship to keep the order + // for newly added InstanceEdit in this attribute. Not sure why. + // Use SortedSet to make sure the order is correct. Most likely + // the sorting is conducted when the list, which is generated by the framework(?), is + // converted into a SortedSet. @Relationship(type = "structureModified", direction = Relationship.Direction.INCOMING) - private List structureModified; + private SortedSet structureModified; @ReactomeTransient @Relationship(type = "replacementInstances", direction = Relationship.Direction.INCOMING) @@ -404,11 +423,26 @@ public void setInternalReviewed(List internalReviewed) { } public List getStructureModified() { - return structureModified; + if (structureModified == null || structureModified.isEmpty()) + return null; + return this.structureModified.stream().map(s -> s.getInstanceEdit()).collect(Collectors.toList()); } public void setStructureModified(List structureModified) { - this.structureModified = structureModified; + if (structureModified != null && structureModified.size() > 0) { + int order = 0; + this.structureModified = new TreeSet<>(); + for (InstanceEdit ie : structureModified) { + StructureModified sm = new StructureModified(); + sm.setId(ie.getDbId()); + sm.setInstanceEdit(ie); + sm.setOrder(order); + order ++; + this.structureModified.add(sm); + } + } + else + this.structureModified = null; } @Override @@ -436,4 +470,13 @@ public Integer getMaxDepth() { public void setMaxDepth(Integer maxDepth) { this.maxDepth = maxDepth; } + + + public Boolean getDoRelease() { + return doRelease; + } + + public void setDoRelease(Boolean doRelease) { + this.doRelease = doRelease; + } } diff --git a/src/main/java/org/reactome/server/graph/domain/model/GO_BiologicalProcess.java b/src/main/java/org/reactome/server/graph/domain/model/GO_BiologicalProcess.java index 4e794a73..10a715d4 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/GO_BiologicalProcess.java +++ b/src/main/java/org/reactome/server/graph/domain/model/GO_BiologicalProcess.java @@ -4,7 +4,7 @@ @SuppressWarnings("unused") @Node -public class GO_BiologicalProcess extends GO_Term{ +public class GO_BiologicalProcess extends GO_Term { public GO_BiologicalProcess() {} diff --git a/src/main/java/org/reactome/server/graph/domain/model/GO_CellularComponent.java b/src/main/java/org/reactome/server/graph/domain/model/GO_CellularComponent.java index 74d69eb6..e947ccbd 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/GO_CellularComponent.java +++ b/src/main/java/org/reactome/server/graph/domain/model/GO_CellularComponent.java @@ -43,13 +43,6 @@ public void setHasPart(List hasPart) { this.hasPart = hasPart; } - public List getInstanceOf() { - return instanceOf; - } - - public void setInstanceOf(List instanceOf) { - this.instanceOf = instanceOf; - } public List getSurroundedBy() { return surroundedBy; diff --git a/src/main/java/org/reactome/server/graph/domain/model/GO_Term.java b/src/main/java/org/reactome/server/graph/domain/model/GO_Term.java index 1635ae26..4f777221 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/GO_Term.java +++ b/src/main/java/org/reactome/server/graph/domain/model/GO_Term.java @@ -12,73 +12,14 @@ */ @SuppressWarnings("unused") @Node -public abstract class GO_Term extends DatabaseObject{ - - @ReactomeProperty - private String accession; - // will be filled together with url - private String databaseName; - @ReactomeProperty - private String definition; - @ReactomeProperty - private String name; - @ReactomeProperty(addedField = true) - private String url; - @Relationship(type = "referenceDatabase") - private ReferenceDatabase referenceDatabase; +public abstract class GO_Term extends ExternalOntology { public GO_Term() {} - + public GO_Term(Long dbId) { - super(dbId); - } - - public String getAccession() { - return accession; + super(); + setDbId(dbId); } - public void setAccession(String accession) { - this.accession = accession; - } - - public String getDatabaseName() { - return databaseName; - } - - public void setDatabaseName(String databaseName) { - this.databaseName = databaseName; - } - - public String getDefinition() { - return definition; - } - - public void setDefinition(String definition) { - this.definition = definition; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public ReferenceDatabase getReferenceDatabase() { - return referenceDatabase; - } - - public void setReferenceDatabase(ReferenceDatabase referenceDatabase) { - this.referenceDatabase = referenceDatabase; - } } diff --git a/src/main/java/org/reactome/server/graph/domain/model/LiteratureReference.java b/src/main/java/org/reactome/server/graph/domain/model/LiteratureReference.java index c7e2e9d8..37cfabec 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/LiteratureReference.java +++ b/src/main/java/org/reactome/server/graph/domain/model/LiteratureReference.java @@ -2,6 +2,7 @@ import org.reactome.server.graph.domain.annotations.ReactomeProperty; import org.springframework.data.neo4j.core.schema.Node; +import org.springframework.data.neo4j.core.schema.Relationship; @SuppressWarnings("unused") @Node @@ -19,9 +20,20 @@ public class LiteratureReference extends Publication { private Integer volume; @ReactomeProperty private Integer year; + + @Relationship(type = "retractionStatus") + private RetractionStatus retractionStatus; public LiteratureReference() {} + public RetractionStatus getRetractionStatus() { + return retractionStatus; + } + + public void setRetractionStatus(RetractionStatus retractionStatus) { + this.retractionStatus = retractionStatus; + } + public LiteratureReference(Long dbId) { super(dbId); } diff --git a/src/main/java/org/reactome/server/graph/domain/model/NegativePrecedingEvent.java b/src/main/java/org/reactome/server/graph/domain/model/NegativePrecedingEvent.java index 477bcaaa..d3964781 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/NegativePrecedingEvent.java +++ b/src/main/java/org/reactome/server/graph/domain/model/NegativePrecedingEvent.java @@ -12,7 +12,7 @@ public class NegativePrecedingEvent extends DatabaseObject { @ReactomeProperty private String comment; - @Relationship(type = "negativePrecedingEvent", direction = Relationship.Direction.INCOMING) + @Relationship(type = "precedingEvent") private List precedingEvent; @Relationship(type = "reason") diff --git a/src/main/java/org/reactome/server/graph/domain/model/Pathway.java b/src/main/java/org/reactome/server/graph/domain/model/Pathway.java index 0c5368bc..8218c3d1 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/Pathway.java +++ b/src/main/java/org/reactome/server/graph/domain/model/Pathway.java @@ -35,7 +35,7 @@ public class Pathway extends Event implements CompositionAggregator { private Integer diagramHeight; @ReactomeProperty - private String isCanonical; + private Boolean isCanonical; @ReactomeProperty private String lastUpdatedDate; @@ -49,6 +49,9 @@ public class Pathway extends Event implements CompositionAggregator { @Relationship(type = "normalPathway") private Pathway normalPathway; + + @Relationship(type = "cell") + private Cell cell; @Relationship(type = "normalPathway", direction = Relationship.Direction.INCOMING) private List diseasePathways; @@ -64,6 +67,14 @@ public Pathway() { public Pathway(Long dbId) { super(dbId); } + + public Cell getCell() { + return cell; + } + + public void setCell(Cell cell) { + this.cell = cell; + } public String getDoi() { return doi; @@ -109,11 +120,11 @@ public void setDiagramHeight(Integer diagramHeight) { this.diagramHeight = diagramHeight; } - public String getIsCanonical() { + public Boolean getIsCanonical() { return isCanonical; } - public void setIsCanonical(String isCanonical) { + public void setIsCanonical(Boolean isCanonical) { this.isCanonical = isCanonical; } diff --git a/src/main/java/org/reactome/server/graph/domain/model/PathwayDiagram.java b/src/main/java/org/reactome/server/graph/domain/model/PathwayDiagram.java new file mode 100644 index 00000000..a630fc82 --- /dev/null +++ b/src/main/java/org/reactome/server/graph/domain/model/PathwayDiagram.java @@ -0,0 +1,68 @@ +package org.reactome.server.graph.domain.model; + +import java.util.List; + +import org.reactome.server.graph.domain.annotations.ReactomeProperty; +import org.springframework.data.neo4j.core.schema.Node; +import org.springframework.data.neo4j.core.schema.Relationship; + +@Node +public class PathwayDiagram extends DatabaseObject { + + @Relationship(type = "representedPathway") + private List representedPathway; + @Relationship(type = "renderedInstance") + private List renderedInstance; + + @ReactomeProperty(addedField = true) + private String jsonFile; // JSON representation of the pathway diagram + @ReactomeProperty + private int width; // Width of the diagram + @ReactomeProperty + private int height; // Height of the diagram + + public int getWidth() { + return width; + } + + public void setWidth(int width) { + this.width = width; + } + + public int getHeight() { + return height; + } + + public void setHeight(int height) { + this.height = height; + } + + public PathwayDiagram() { + super(); + } + + public String getJsonFile() { + return jsonFile; + } + + public void setJsonFile(String jsonFile) { + this.jsonFile = jsonFile; + } + + public List getRepresentedPathway() { + return representedPathway; + } + + public void setRepresentedPathway(List representedPathway) { + this.representedPathway = representedPathway; + } + + public List getRenderedInstance() { + return renderedInstance; + } + + public void setRenderedInstance(List renderedInstance) { + this.renderedInstance = renderedInstance; + } + +} diff --git a/src/main/java/org/reactome/server/graph/domain/model/PhysicalEntityCellType.java b/src/main/java/org/reactome/server/graph/domain/model/PhysicalEntityCellType.java new file mode 100644 index 00000000..b9a57587 --- /dev/null +++ b/src/main/java/org/reactome/server/graph/domain/model/PhysicalEntityCellType.java @@ -0,0 +1,33 @@ +package org.reactome.server.graph.domain.model; + +import org.springframework.data.neo4j.core.schema.Node; +import org.springframework.data.neo4j.core.schema.Relationship; + +@Node +public class PhysicalEntityCellType extends DatabaseObject { + + @Relationship(type = "physicalEntity") + private PhysicalEntity physicalEntity; + + @Relationship(type = "cell") + private Cell cell; + + public PhysicalEntityCellType() {} + + public PhysicalEntity getPhysicalEntity() { + return physicalEntity; + } + + public Cell getCell() { + return cell; + } + + public void setCell(Cell cell) { + this.cell = cell; + } + + public void setPhysicalEntity(PhysicalEntity physicalEntity) { + this.physicalEntity = physicalEntity; + } + +} diff --git a/src/main/java/org/reactome/server/graph/domain/model/ReactionLikeEvent.java b/src/main/java/org/reactome/server/graph/domain/model/ReactionLikeEvent.java index fcf71efa..11cb8bee 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/ReactionLikeEvent.java +++ b/src/main/java/org/reactome/server/graph/domain/model/ReactionLikeEvent.java @@ -69,6 +69,9 @@ public abstract class ReactionLikeEvent extends Event implements CompositionAggr @Relationship(type = "reactionType") private List reactionType; + + @Relationship(type = "participantCellType") + private List participantCellType; @Override public Stream>> defineCompositionRelations() { @@ -86,6 +89,14 @@ public Boolean getIsChimeric() { return isChimeric; } + public List getParticipantCellType() { + return participantCellType; + } + + public void setParticipantCellType(List participantCellType) { + this.participantCellType = participantCellType; + } + public void setIsChimeric(Boolean isChimeric) { this.isChimeric = isChimeric; } diff --git a/src/main/java/org/reactome/server/graph/domain/model/RegulationReference.java b/src/main/java/org/reactome/server/graph/domain/model/RegulationReference.java index d83ebef7..3ec81925 100644 --- a/src/main/java/org/reactome/server/graph/domain/model/RegulationReference.java +++ b/src/main/java/org/reactome/server/graph/domain/model/RegulationReference.java @@ -3,6 +3,11 @@ import org.springframework.data.neo4j.core.schema.Node; import org.springframework.data.neo4j.core.schema.Relationship; +//NB by GW: I am not sure why the original code needs to use regulatedBy, intead of regulation. To make +// it compatible with the original code and also be matched with the data model, I will keep both sets +// of getter and setter. +//NB by GW again: I have to comment out the regulatedBy getter and setter, otherwise, it will cause +//an error during committing due to an extra regulatedBy property that is not relationship. @Node public class RegulationReference extends ControlReference { @@ -12,11 +17,21 @@ public class RegulationReference extends ControlReference { public RegulationReference() { } - public Regulation getRegulatedBy() { +// public Regulation getRegulatedBy() { +// return regulation; +// } +// +// public void setRegulatedBy(Regulation regulation) { +// this.regulation = regulation; +// } + + public Regulation getRegulation() { return regulation; } - public void setRegulatedBy(Regulation regulation) { + public void setRegulation(Regulation regulation) { this.regulation = regulation; } + + } diff --git a/src/main/java/org/reactome/server/graph/domain/model/RetractionStatus.java b/src/main/java/org/reactome/server/graph/domain/model/RetractionStatus.java new file mode 100644 index 00000000..a7db0759 --- /dev/null +++ b/src/main/java/org/reactome/server/graph/domain/model/RetractionStatus.java @@ -0,0 +1,12 @@ +package org.reactome.server.graph.domain.model; + +import org.springframework.data.neo4j.core.schema.Node; + +@Node +public class RetractionStatus extends ControlledVocabulary { + + public RetractionStatus() { + + } + +} diff --git a/src/main/java/org/reactome/server/graph/domain/model/StableIdentifier.java b/src/main/java/org/reactome/server/graph/domain/model/StableIdentifier.java new file mode 100644 index 00000000..bc31998f --- /dev/null +++ b/src/main/java/org/reactome/server/graph/domain/model/StableIdentifier.java @@ -0,0 +1,68 @@ +package org.reactome.server.graph.domain.model; + +import org.reactome.server.graph.domain.annotations.ReactomeProperty; +import org.springframework.data.neo4j.core.schema.Node; + +@Node +public class StableIdentifier extends DatabaseObject { + + @ReactomeProperty + private String identifier; + @ReactomeProperty + private String identifierVersion; + @ReactomeProperty + private String oldIdentifier; + @ReactomeProperty + private String oldIdentifierVersion; + @ReactomeProperty + private Boolean released; + + + public StableIdentifier() {} + + public StableIdentifier(Long dbId) { + super(dbId); + } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + public String getIdentifierVersion() { + return identifierVersion; + } + + public void setIdentifierVersion(String identifierVersion) { + this.identifierVersion = identifierVersion; + } + + public String getOldIdentifier() { + return oldIdentifier; + } + + public void setOldIdentifier(String oldIdentifier) { + this.oldIdentifier = oldIdentifier; + } + + public String getOldIdentifierVersion() { + return oldIdentifierVersion; + } + + public void setOldIdentifierVersion(String oldIdentifierVersion) { + this.oldIdentifierVersion = oldIdentifierVersion; + } + + public Boolean getReleased() { + return released; + } + + public void setReleased(Boolean released) { + this.released = released; + } + + +} diff --git a/src/main/java/org/reactome/server/graph/domain/relationship/ModifiedList.java b/src/main/java/org/reactome/server/graph/domain/relationship/ModifiedList.java new file mode 100644 index 00000000..a1839177 --- /dev/null +++ b/src/main/java/org/reactome/server/graph/domain/relationship/ModifiedList.java @@ -0,0 +1,61 @@ +package org.reactome.server.graph.domain.relationship; + +import java.util.Objects; + +import org.reactome.server.graph.domain.model.InstanceEdit; +import org.springframework.data.neo4j.core.schema.GeneratedValue; +import org.springframework.data.neo4j.core.schema.Id; +import org.springframework.data.neo4j.core.schema.RelationshipProperties; +import org.springframework.data.neo4j.core.schema.TargetNode; + +@RelationshipProperties +public class ModifiedList implements Comparable { + @Id @GeneratedValue private Long id; + @TargetNode private InstanceEdit instanceEdit; + + private int order; + + public ModifiedList() {} + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public InstanceEdit getInstanceEdit() { + return instanceEdit; + } + + public void setInstanceEdit(InstanceEdit instanceEdit) { + this.instanceEdit = instanceEdit; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + return Objects.equals(instanceEdit, ((ModifiedList) o).instanceEdit); + } + + @Override + public int hashCode() { + return Objects.hash(instanceEdit); + } + + @Override + public int compareTo(ModifiedList o) { + return this.order - o.order; + } + +} diff --git a/src/main/java/org/reactome/server/graph/domain/relationship/StructureModified.java b/src/main/java/org/reactome/server/graph/domain/relationship/StructureModified.java new file mode 100644 index 00000000..e9411649 --- /dev/null +++ b/src/main/java/org/reactome/server/graph/domain/relationship/StructureModified.java @@ -0,0 +1,8 @@ +package org.reactome.server.graph.domain.relationship; + +import org.springframework.data.neo4j.core.schema.RelationshipProperties; + +@RelationshipProperties +public class StructureModified extends ModifiedList { + public StructureModified() {} +} diff --git a/src/main/java/org/reactome/server/graph/utils/ReactomeGraphCore.java b/src/main/java/org/reactome/server/graph/utils/ReactomeGraphCore.java index d540ea73..8ff07d40 100644 --- a/src/main/java/org/reactome/server/graph/utils/ReactomeGraphCore.java +++ b/src/main/java/org/reactome/server/graph/utils/ReactomeGraphCore.java @@ -56,4 +56,8 @@ public static void setLazyLoading(Boolean enabled){ if (context == null) throw new RuntimeException("ReactomeGraphCore has to be initialised!"); context.getBean(LazyFetchAspect.class).setEnableAOP(enabled); } + + public static void setContext(ApplicationContext ctx) { + context = ctx; + } }