From 344e1391b0fce903f789028880c67b77e1cf64cf Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 10 Sep 2018 16:37:57 +0200
Subject: [PATCH] reactome unit tests fixed

---
 .../reactome/model/ReactomeComplex.java       |  205 ++-
 .../reactome/model/ReactomeEvent.java         |    6 +-
 .../model/ReactomePhysicalEntity.java         |  958 ++++++-------
 .../reactome/model/ReactomeSpecies.java       |    9 +
 .../reactome/xml/ReactomeNodeParser.java      |    2 +-
 .../xml/columnParser/ColumnParser.java        | 1248 +++++++++--------
 .../PhysicalEntityColumnParser.java           |    2 +-
 .../xml/columnParser/SpeciesColumnParser.java |   33 +-
 .../reactome/ReactomeTestFunctions.java       |    2 +-
 .../reactome/utils/ReactomeQueryUtilTest.java |    1 +
 .../utils/comparators/NodeComparatorTest.java |    1 +
 .../xml/ReactomeBlackBoxEventParserTest.java  |  132 +-
 .../xml/ReactomeComplexParserTest.java        |  132 +-
 .../xml/ReactomeDefinedSetParserTest.java     |  100 +-
 ...ReactomeGenomeEncodedEntityParserTest.java |   86 +-
 ...eactomeReferenceGeneProductParserTest.java |  108 +-
 .../ReactomeReferenceIsoformParserTest.java   |    2 +-
 .../src/test/resources/test-dataSource.xml    |   38 +
 .../src/test/resources/test-db.properties     |    3 +
 reactome/testFiles/reactome/definedSet.xml    |   11 +-
 .../reactome/genomeEncodedEntity.xml          |   20 +-
 .../reactome/referenceGeneProduct.xml         |    4 +-
 .../testFiles/reactome/referenceIsoform.xml   |    4 +-
 23 files changed, 1597 insertions(+), 1510 deletions(-)
 create mode 100644 reactome/src/test/resources/test-dataSource.xml
 create mode 100644 reactome/src/test/resources/test-db.properties

diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeComplex.java b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeComplex.java
index 66486e2c6c..606b6f2c06 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeComplex.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeComplex.java
@@ -4,123 +4,122 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * Object representing Reactome <a href=
- * "http://www.reactome.org/cgi-bin/classbrowser?DB=gk_current&CLASS=Complex"
- * >Complex</a> object.
+ * Object representing Reactome
+ * <a href= "https://reactome.org/content/schema/Complex" >Complex</a> object.
  * 
  * @author Piotr Gawron
  * 
  */
 public class ReactomeComplex extends ReactomePhysicalEntity {
-	/**
-	 * List of PhysicalEntity param in reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomePhysicalEntity>		hasComponents			= new ArrayList<ReactomePhysicalEntity>();
-	/**
-	 * Species param in reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private ReactomeSpecies									species;
-	/**
-	 * Boolean param in reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private Boolean													isChimeric;
-	/**
-	 * List of EntityCompartment params in reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeEntityCompartment>	includedLocations	= new ArrayList<ReactomeEntityCompartment>();
+  /**
+   * List of PhysicalEntity parameter in Reactome model. More information can be
+   * found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomePhysicalEntity> hasComponents = new ArrayList<ReactomePhysicalEntity>();
+  /**
+   * Species parameter in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private ReactomeSpecies species;
+  /**
+   * Boolean parameter in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private Boolean isChimeric;
+  /**
+   * List of EntityCompartment params in reactome model. More information can be
+   * found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeCompartment> includedLocations = new ArrayList<>();
 
-	/**
-	 * Adds component to {@link #hasComponents}.
-	 * 
-	 * @param component
-	 *          component to add
-	 */
-	public void addHasComponent(ReactomePhysicalEntity component) {
-		hasComponents.add(component);
-	}
+  /**
+   * Adds component to {@link #hasComponents}.
+   * 
+   * @param component
+   *          component to add
+   */
+  public void addHasComponent(ReactomePhysicalEntity component) {
+    hasComponents.add(component);
+  }
 
-	/**
-	 * Adds EntityCompartment to {@link #includedLocations}.
-	 * 
-	 * @param includedLocation
-	 *          compartment to add
-	 */
-	public void addIncludedLocation(ReactomeEntityCompartment includedLocation) {
-		this.includedLocations.add(includedLocation);
-	}
+  /**
+   * Adds EntityCompartment to {@link #includedLocations}.
+   * 
+   * @param includedLocation
+   *          compartment to add
+   */
+  public void addIncludedLocation(ReactomeEntityCompartment includedLocation) {
+    this.includedLocations.add(includedLocation);
+  }
 
-	/**
-	 * @return the hasComponents
-	 * @see #hasComponents
-	 */
-	public List<ReactomePhysicalEntity> getHasComponents() {
-		return hasComponents;
-	}
+  /**
+   * @return the hasComponents
+   * @see #hasComponents
+   */
+  public List<ReactomePhysicalEntity> getHasComponents() {
+    return hasComponents;
+  }
 
-	/**
-	 * @param hasComponents
-	 *          the hasComponents to set
-	 * @see #hasComponents
-	 */
-	public void setHasComponents(List<ReactomePhysicalEntity> hasComponents) {
-		this.hasComponents = hasComponents;
-	}
+  /**
+   * @param hasComponents
+   *          the hasComponents to set
+   * @see #hasComponents
+   */
+  public void setHasComponents(List<ReactomePhysicalEntity> hasComponents) {
+    this.hasComponents = hasComponents;
+  }
 
-	/**
-	 * @return the species
-	 * @see #species
-	 */
-	public ReactomeSpecies getSpecies() {
-		return species;
-	}
+  /**
+   * @return the species
+   * @see #species
+   */
+  public ReactomeSpecies getSpecies() {
+    return species;
+  }
 
-	/**
-	 * @param species
-	 *          the species to set
-	 * @see #species
-	 */
-	public void setSpecies(ReactomeSpecies species) {
-		this.species = species;
-	}
+  /**
+   * @param species
+   *          the species to set
+   * @see #species
+   */
+  public void setSpecies(ReactomeSpecies species) {
+    this.species = species;
+  }
 
-	/**
-	 * @return the isChimeric
-	 * @see #isChimeric
-	 */
-	public Boolean getIsChimeric() {
-		return isChimeric;
-	}
+  /**
+   * @return the isChimeric
+   * @see #isChimeric
+   */
+  public Boolean getIsChimeric() {
+    return isChimeric;
+  }
 
-	/**
-	 * @param isChimeric
-	 *          the isChimeric to set
-	 * @see #isChimeric
-	 */
-	public void setIsChimeric(Boolean isChimeric) {
-		this.isChimeric = isChimeric;
-	}
+  /**
+   * @param isChimeric
+   *          the isChimeric to set
+   * @see #isChimeric
+   */
+  public void setIsChimeric(Boolean isChimeric) {
+    this.isChimeric = isChimeric;
+  }
 
-	/**
-	 * @return the includedLocations
-	 * @see #includedLocations
-	 */
-	public List<ReactomeEntityCompartment> getIncludedLocations() {
-		return includedLocations;
-	}
+  /**
+   * @return the includedLocations
+   * @see #includedLocations
+   */
+  public List<ReactomeCompartment> getIncludedLocations() {
+    return includedLocations;
+  }
 
-	/**
-	 * @param includedLocations
-	 *          the includedLocations to set
-	 * @see #includedLocations
-	 */
-	public void setIncludedLocations(List<ReactomeEntityCompartment> includedLocations) {
-		this.includedLocations = includedLocations;
-	}
+  /**
+   * @param includedLocations
+   *          the includedLocations to set
+   * @see #includedLocations
+   */
+  public void setIncludedLocations(List<ReactomeCompartment> includedLocations) {
+    this.includedLocations = includedLocations;
+  }
 
 }
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeEvent.java b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeEvent.java
index 76b09729ac..aaa984c824 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeEvent.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeEvent.java
@@ -26,7 +26,7 @@ public class ReactomeEvent extends ReactomeDatabaseObject {
 	 * found <a
 	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
 	 */
-	private List<ReactomeEntityCompartment>	compartments				 = new ArrayList<ReactomeEntityCompartment>();
+	private List<ReactomeCompartment>	compartments				 = new ArrayList<ReactomeCompartment>();
 
 	/**
 	 * List of DatabaseIdentifier params in reactome model. More information can
@@ -315,7 +315,7 @@ public class ReactomeEvent extends ReactomeDatabaseObject {
 	 * @return the compartments
 	 * @see #compartments
 	 */
-	public List<ReactomeEntityCompartment> getCompartments() {
+	public List<ReactomeCompartment> getCompartments() {
 		return compartments;
 	}
 
@@ -324,7 +324,7 @@ public class ReactomeEvent extends ReactomeDatabaseObject {
 	 *          the compartments to set
 	 * @see #compartments
 	 */
-	public void setCompartments(List<ReactomeEntityCompartment> compartments) {
+	public void setCompartments(List<ReactomeCompartment> compartments) {
 		this.compartments = compartments;
 	}
 
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomePhysicalEntity.java b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomePhysicalEntity.java
index fc093d2bac..9638284291 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomePhysicalEntity.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomePhysicalEntity.java
@@ -3,6 +3,8 @@ package lcsb.mapviewer.reactome.model;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.log4j.Logger;
+
 /**
  * Object representing Reactome <a href=
  * "http://www.reactome.org/cgi-bin/classbrowser?DB=gk_current&CLASS=PhysicalEntity"
@@ -13,483 +15,481 @@ import java.util.List;
  */
 public class ReactomePhysicalEntity extends ReactomeDatabaseObject {
 
-	/**
-	 * List of EntityCompartment params in reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeEntityCompartment>		compartments					= new ArrayList<ReactomeEntityCompartment>();
-	/**
-	 * List of PhysicalEntity param in reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomePhysicalEntity>			inferredTos						= new ArrayList<ReactomePhysicalEntity>();
-	/**
-	 * List of PhysicalEntity param in reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomePhysicalEntity>			inferredFroms					= new ArrayList<ReactomePhysicalEntity>();
-	/**
-	 * InstanceEdit param in the reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private ReactomeInstanceEdit							authored;
-	/**
-	 * List of InstanceEdit params in the reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeInstanceEdit>				reviseds							= new ArrayList<ReactomeInstanceEdit>();
-	/**
-	 * List of InstanceEdit params in the reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeInstanceEdit>				revieweds							= new ArrayList<ReactomeInstanceEdit>();
-	/**
-	 * List of Figure params in reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeFigure>							figures								= new ArrayList<ReactomeFigure>();
-	/**
-	 * List of names in reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<String>											names									= new ArrayList<String>();
-	/**
-	 * List of Summation params in reactome model. More information can be found
-	 * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeSummation>						summations						= new ArrayList<ReactomeSummation>();
-	/**
-	 * List of DatabaseIdentifier params in reactome model. More information can
-	 * be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeDatabaseIdentifier>	crossReferences				= new ArrayList<ReactomeDatabaseIdentifier>();
-	/**
-	 * List of Publication params in reactome model. More information can be found
-	 * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomePublication>					literatureReferences	= new ArrayList<ReactomePublication>();
-	/**
-	 * GO_CellularComponent param in reactome model. More information can be found
-	 * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private ReactomeGoCellularComponent				goCellularComponent;
-	/**
-	 * List of InstanceEdit params in reactome model. More information can be
-	 * found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeInstanceEdit>				edited								= new ArrayList<ReactomeInstanceEdit>();
-	/**
-	 * List of Disease params in reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private List<ReactomeDisease>							diseases							= new ArrayList<ReactomeDisease>();
-	/**
-	 * Definition param in reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private String														definition;
-	
-	/**
-	 * Definition param in reactome model. More information can be found <a
-	 * href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
-	 */
-	private String														systematicName;
-
-	/**
-	 * Adds compartment to {@link #compartments} list.
-	 * 
-	 * @param compartment
-	 *          object to add
-	 */
-	public void addCompartment(ReactomeEntityCompartment compartment) {
-		compartments.add(compartment);
-	}
-
-	/**
-	 * Adds PhysicalEntity to {@link #inferredTos} list.
-	 * 
-	 * @param inferredTo
-	 *          object to add
-	 */
-	public void addInferredTo(ReactomePhysicalEntity inferredTo) {
-		inferredTos.add(inferredTo);
-	}
-
-	/**
-	 * Adds PhysicalEntity to {@link #inferredFroms} list.
-	 * 
-	 * @param inferredFrom
-	 *          inferredFroms to add
-	 */
-	public void addInferredFrom(ReactomePhysicalEntity inferredFrom) {
-		inferredFroms.add(inferredFrom);
-	}
-
-	/**
-	 * Adds name to the {@link #names} list.
-	 * 
-	 * @param name
-	 *          object to add
-	 */
-	public void addName(String name) {
-		names.add(name);
-	}
-
-	/**
-	 * Adds sumamtion to {@link #summations} list.
-	 * 
-	 * @param summation
-	 *          object to add
-	 */
-	public void addSummation(ReactomeSummation summation) {
-		summations.add(summation);
-	}
-
-	/**
-	 * Adds reference to {@link #crossReferences} list.
-	 * 
-	 * @param crossReference
-	 *          object to add
-	 */
-	public void addCrossReference(ReactomeDatabaseIdentifier crossReference) {
-		crossReferences.add(crossReference);
-	}
-
-	/**
-	 * Adds reference to {@link #literatureReferences} list.
-	 * 
-	 * @param literatureReference
-	 *          object to add
-	 */
-	public void addLiteratureReference(ReactomePublication literatureReference) {
-		this.literatureReferences.add(literatureReference);
-	}
-
-	/**
-	 * Adds element to {@link #edited} list.
-	 * 
-	 * @param edited
-	 *          object to add
-	 */
-	public void addEdited(ReactomeInstanceEdit edited) {
-		this.edited.add(edited);
-	}
-
-	/**
-	 * Adds element to {@link #reviseds} list.
-	 * 
-	 * @param revised
-	 *          object to add
-	 */
-	public void addRevised(ReactomeInstanceEdit revised) {
-		this.reviseds.add(revised);
-	}
-
-	/**
-	 * Adds figure to {@link #figures} list.
-	 * 
-	 * @param figure
-	 *          object to add
-	 */
-	public void addFigure(ReactomeFigure figure) {
-		this.figures.add(figure);
-	}
-
-	/**
-	 * Adds disease to {@link #diseases} list.
-	 * 
-	 * @param disease
-	 *          object to add
-	 */
-	public void addDisease(ReactomeDisease disease) {
-		this.diseases.add(disease);
-	}
-
-	/**
-	 * Adds element to {@link #revieweds} list.
-	 * 
-	 * @param reviewed
-	 *          object to add
-	 */
-	public void addReviewed(ReactomeInstanceEdit reviewed) {
-		this.revieweds.add(reviewed);
-	}
-
-	/**
-	 * @return the compartments
-	 * @see #compartments
-	 */
-	public List<ReactomeEntityCompartment> getCompartments() {
-		return compartments;
-	}
-
-	/**
-	 * @param compartments
-	 *          the compartments to set
-	 * @see #compartments
-	 */
-	public void setCompartments(List<ReactomeEntityCompartment> compartments) {
-		this.compartments = compartments;
-	}
-
-	/**
-	 * @return the inferredTos
-	 * @see #inferredTos
-	 */
-	public List<ReactomePhysicalEntity> getInferredTos() {
-		return inferredTos;
-	}
-
-	/**
-	 * @param inferredTos
-	 *          the inferredTos to set
-	 * @see #inferredTos
-	 */
-	public void setInferredTos(List<ReactomePhysicalEntity> inferredTos) {
-		this.inferredTos = inferredTos;
-	}
-
-	/**
-	 * @return the inferredFroms
-	 * @see #inferredFroms
-	 */
-	public List<ReactomePhysicalEntity> getInferredFroms() {
-		return inferredFroms;
-	}
-
-	/**
-	 * @param inferredFroms
-	 *          the inferredFroms to set
-	 * @see #inferredFroms
-	 */
-	public void setInferredFroms(List<ReactomePhysicalEntity> inferredFroms) {
-		this.inferredFroms = inferredFroms;
-	}
-
-	/**
-	 * @return the authored
-	 * @see #authored
-	 */
-	public ReactomeInstanceEdit getAuthored() {
-		return authored;
-	}
-
-	/**
-	 * @param authored
-	 *          the authored to set
-	 * @see #authored
-	 */
-	public void setAuthored(ReactomeInstanceEdit authored) {
-		this.authored = authored;
-	}
-
-	/**
-	 * @return the reviseds
-	 * @see #reviseds
-	 */
-	public List<ReactomeInstanceEdit> getReviseds() {
-		return reviseds;
-	}
-
-	/**
-	 * @param reviseds
-	 *          the reviseds to set
-	 * @see #reviseds
-	 */
-	public void setReviseds(List<ReactomeInstanceEdit> reviseds) {
-		this.reviseds = reviseds;
-	}
-
-	/**
-	 * @return the revieweds
-	 * @see #revieweds
-	 */
-	public List<ReactomeInstanceEdit> getRevieweds() {
-		return revieweds;
-	}
-
-	/**
-	 * @param revieweds
-	 *          the revieweds to set
-	 * @see #revieweds
-	 */
-	public void setRevieweds(List<ReactomeInstanceEdit> revieweds) {
-		this.revieweds = revieweds;
-	}
-
-	/**
-	 * @return the figures
-	 * @see #figures
-	 */
-	public List<ReactomeFigure> getFigures() {
-		return figures;
-	}
-
-	/**
-	 * @param figures
-	 *          the figures to set
-	 * @see #figures
-	 */
-	public void setFigures(List<ReactomeFigure> figures) {
-		this.figures = figures;
-	}
-
-	/**
-	 * @return the names
-	 * @see #names
-	 */
-	public List<String> getNames() {
-		return names;
-	}
-
-	/**
-	 * @param names
-	 *          the names to set
-	 * @see #names
-	 */
-	public void setNames(List<String> names) {
-		this.names = names;
-	}
-
-	/**
-	 * @return the summations
-	 * @see #summations
-	 */
-	public List<ReactomeSummation> getSummations() {
-		return summations;
-	}
-
-	/**
-	 * @param summations
-	 *          the summations to set
-	 * @see #summations
-	 */
-	public void setSummations(List<ReactomeSummation> summations) {
-		this.summations = summations;
-	}
-
-	/**
-	 * @return the crossReferences
-	 * @see #crossReferences
-	 */
-	public List<ReactomeDatabaseIdentifier> getCrossReferences() {
-		return crossReferences;
-	}
-
-	/**
-	 * @param crossReferences
-	 *          the crossReferences to set
-	 * @see #crossReferences
-	 */
-	public void setCrossReferences(List<ReactomeDatabaseIdentifier> crossReferences) {
-		this.crossReferences = crossReferences;
-	}
-
-	/**
-	 * @return the literatureReferences
-	 * @see #literatureReferences
-	 */
-	public List<ReactomePublication> getLiteratureReferences() {
-		return literatureReferences;
-	}
-
-	/**
-	 * @param literatureReferences
-	 *          the literatureReferences to set
-	 * @see #literatureReferences
-	 */
-	public void setLiteratureReferences(List<ReactomePublication> literatureReferences) {
-		this.literatureReferences = literatureReferences;
-	}
-
-	/**
-	 * @return the goCellularComponent
-	 * @see #goCellularComponent
-	 */
-	public ReactomeGoCellularComponent getGoCellularComponent() {
-		return goCellularComponent;
-	}
-
-	/**
-	 * @param goCellularComponent
-	 *          the goCellularComponent to set
-	 * @see #goCellularComponent
-	 */
-	public void setGoCellularComponent(ReactomeGoCellularComponent goCellularComponent) {
-		this.goCellularComponent = goCellularComponent;
-	}
-
-	/**
-	 * @return the edited
-	 * @see #edited
-	 */
-	public List<ReactomeInstanceEdit> getEdited() {
-		return edited;
-	}
-
-	/**
-	 * @param edited
-	 *          the edited to set
-	 * @see #edited
-	 */
-	public void setEdited(List<ReactomeInstanceEdit> edited) {
-		this.edited = edited;
-	}
-
-	/**
-	 * @return the diseases
-	 * @see #diseases
-	 */
-	public List<ReactomeDisease> getDiseases() {
-		return diseases;
-	}
-
-	/**
-	 * @param diseases
-	 *          the diseases to set
-	 * @see #diseases
-	 */
-	public void setDiseases(List<ReactomeDisease> diseases) {
-		this.diseases = diseases;
-	}
-
-	/**
-	 * @return the definition
-	 * @see #definition
-	 */
-	public String getDefinition() {
-		return definition;
-	}
-
-	/**
-	 * @param definition
-	 *          the definition to set
-	 * @see #definition
-	 */
-	public void setDefinition(String definition) {
-		this.definition = definition;
-	}
-
-	/**
-	 * @return the systematicName
-	 * @see #systematicName
-	 */
-	public String getSystematicName() {
-		return systematicName;
-	}
-
-	/**
-	 * @param systematicName the systematicName to set
-	 * @see #systematicName
-	 */
-	public void setSystematicName(String systematicName) {
-		this.systematicName = systematicName;
-	}
+  /**
+   * List of EntityCompartment params in reactome model. More information can be
+   * found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeCompartment> compartments = new ArrayList<>();
+  /**
+   * List of PhysicalEntity param in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomePhysicalEntity> inferredTos = new ArrayList<>();
+  /**
+   * List of PhysicalEntity param in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomePhysicalEntity> inferredFroms = new ArrayList<>();
+  /**
+   * InstanceEdit param in the reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private ReactomeInstanceEdit authored;
+  /**
+   * List of InstanceEdit params in the reactome model. More information can be
+   * found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeInstanceEdit> reviseds = new ArrayList<ReactomeInstanceEdit>();
+  /**
+   * List of InstanceEdit params in the reactome model. More information can be
+   * found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeInstanceEdit> revieweds = new ArrayList<ReactomeInstanceEdit>();
+  /**
+   * List of Figure params in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeFigure> figures = new ArrayList<ReactomeFigure>();
+  /**
+   * List of names in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<String> names = new ArrayList<String>();
+  /**
+   * List of Summation params in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeSummation> summations = new ArrayList<ReactomeSummation>();
+  /**
+   * List of DatabaseIdentifier params in reactome model. More information can be
+   * found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeDatabaseIdentifier> crossReferences = new ArrayList<ReactomeDatabaseIdentifier>();
+  /**
+   * List of Publication params in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomePublication> literatureReferences = new ArrayList<ReactomePublication>();
+  /**
+   * GO_CellularComponent param in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private ReactomeGoCellularComponent goCellularComponent;
+  /**
+   * List of InstanceEdit params in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeInstanceEdit> edited = new ArrayList<ReactomeInstanceEdit>();
+  /**
+   * List of Disease params in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private List<ReactomeDisease> diseases = new ArrayList<ReactomeDisease>();
+  /**
+   * Definition param in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private String definition;
+
+  /**
+   * Definition param in reactome model. More information can be found
+   * <a href="http://wiki.reactome.org/index.php/Glossary_Data_Model">here</a>.
+   */
+  private String systematicName;
+
+  /**
+   * Adds compartment to {@link #compartments} list.
+   * 
+   * @param compartment
+   *          object to add
+   */
+  public void addCompartment(ReactomeCompartment compartment) {
+    compartments.add(compartment);
+  }
+
+  /**
+   * Adds PhysicalEntity to {@link #inferredTos} list.
+   * 
+   * @param inferredTo
+   *          object to add
+   */
+  public void addInferredTo(ReactomePhysicalEntity inferredTo) {
+    inferredTos.add(inferredTo);
+  }
+
+  /**
+   * Adds PhysicalEntity to {@link #inferredFroms} list.
+   * 
+   * @param inferredFrom
+   *          inferredFroms to add
+   */
+  public void addInferredFrom(ReactomePhysicalEntity inferredFrom) {
+    inferredFroms.add(inferredFrom);
+  }
+
+  /**
+   * Adds name to the {@link #names} list.
+   * 
+   * @param name
+   *          object to add
+   */
+  public void addName(String name) {
+    names.add(name);
+  }
+
+  /**
+   * Adds sumamtion to {@link #summations} list.
+   * 
+   * @param summation
+   *          object to add
+   */
+  public void addSummation(ReactomeSummation summation) {
+    summations.add(summation);
+  }
+
+  /**
+   * Adds reference to {@link #crossReferences} list.
+   * 
+   * @param crossReference
+   *          object to add
+   */
+  public void addCrossReference(ReactomeDatabaseIdentifier crossReference) {
+    crossReferences.add(crossReference);
+  }
+
+  /**
+   * Adds reference to {@link #literatureReferences} list.
+   * 
+   * @param literatureReference
+   *          object to add
+   */
+  public void addLiteratureReference(ReactomePublication literatureReference) {
+    this.literatureReferences.add(literatureReference);
+  }
+
+  /**
+   * Adds element to {@link #edited} list.
+   * 
+   * @param edited
+   *          object to add
+   */
+  public void addEdited(ReactomeInstanceEdit edited) {
+    this.edited.add(edited);
+  }
+
+  /**
+   * Adds element to {@link #reviseds} list.
+   * 
+   * @param revised
+   *          object to add
+   */
+  public void addRevised(ReactomeInstanceEdit revised) {
+    this.reviseds.add(revised);
+  }
+
+  /**
+   * Adds figure to {@link #figures} list.
+   * 
+   * @param figure
+   *          object to add
+   */
+  public void addFigure(ReactomeFigure figure) {
+    this.figures.add(figure);
+  }
+
+  /**
+   * Adds disease to {@link #diseases} list.
+   * 
+   * @param disease
+   *          object to add
+   */
+  public void addDisease(ReactomeDisease disease) {
+    this.diseases.add(disease);
+  }
+
+  /**
+   * Adds element to {@link #revieweds} list.
+   * 
+   * @param reviewed
+   *          object to add
+   */
+  public void addReviewed(ReactomeInstanceEdit reviewed) {
+    this.revieweds.add(reviewed);
+  }
+
+  /**
+   * @return the compartments
+   * @see #compartments
+   */
+  public List<ReactomeCompartment> getCompartments() {
+    return compartments;
+  }
+
+  /**
+   * @param compartments
+   *          the compartments to set
+   * @see #compartments
+   */
+  public void setCompartments(List<ReactomeCompartment> compartments) {
+    this.compartments = compartments;
+  }
+
+  /**
+   * @return the inferredTos
+   * @see #inferredTos
+   */
+  public List<ReactomePhysicalEntity> getInferredTos() {
+    return inferredTos;
+  }
+
+  /**
+   * @param inferredTos
+   *          the inferredTos to set
+   * @see #inferredTos
+   */
+  public void setInferredTos(List<ReactomePhysicalEntity> inferredTos) {
+    this.inferredTos = inferredTos;
+  }
+
+  /**
+   * @return the inferredFroms
+   * @see #inferredFroms
+   */
+  public List<ReactomePhysicalEntity> getInferredFroms() {
+    return inferredFroms;
+  }
+
+  /**
+   * @param inferredFroms
+   *          the inferredFroms to set
+   * @see #inferredFroms
+   */
+  public void setInferredFroms(List<ReactomePhysicalEntity> inferredFroms) {
+    this.inferredFroms = inferredFroms;
+  }
+
+  /**
+   * @return the authored
+   * @see #authored
+   */
+  public ReactomeInstanceEdit getAuthored() {
+    return authored;
+  }
+
+  /**
+   * @param authored
+   *          the authored to set
+   * @see #authored
+   */
+  public void setAuthored(ReactomeInstanceEdit authored) {
+    this.authored = authored;
+  }
+
+  /**
+   * @return the reviseds
+   * @see #reviseds
+   */
+  public List<ReactomeInstanceEdit> getReviseds() {
+    return reviseds;
+  }
+
+  /**
+   * @param reviseds
+   *          the reviseds to set
+   * @see #reviseds
+   */
+  public void setReviseds(List<ReactomeInstanceEdit> reviseds) {
+    this.reviseds = reviseds;
+  }
+
+  /**
+   * @return the revieweds
+   * @see #revieweds
+   */
+  public List<ReactomeInstanceEdit> getRevieweds() {
+    return revieweds;
+  }
+
+  /**
+   * @param revieweds
+   *          the revieweds to set
+   * @see #revieweds
+   */
+  public void setRevieweds(List<ReactomeInstanceEdit> revieweds) {
+    this.revieweds = revieweds;
+  }
+
+  /**
+   * @return the figures
+   * @see #figures
+   */
+  public List<ReactomeFigure> getFigures() {
+    return figures;
+  }
+
+  /**
+   * @param figures
+   *          the figures to set
+   * @see #figures
+   */
+  public void setFigures(List<ReactomeFigure> figures) {
+    this.figures = figures;
+  }
+
+  /**
+   * @return the names
+   * @see #names
+   */
+  public List<String> getNames() {
+    return names;
+  }
+
+  /**
+   * @param names
+   *          the names to set
+   * @see #names
+   */
+  public void setNames(List<String> names) {
+    this.names = names;
+  }
+
+  /**
+   * @return the summations
+   * @see #summations
+   */
+  public List<ReactomeSummation> getSummations() {
+    return summations;
+  }
+
+  /**
+   * @param summations
+   *          the summations to set
+   * @see #summations
+   */
+  public void setSummations(List<ReactomeSummation> summations) {
+    this.summations = summations;
+  }
+
+  /**
+   * @return the crossReferences
+   * @see #crossReferences
+   */
+  public List<ReactomeDatabaseIdentifier> getCrossReferences() {
+    return crossReferences;
+  }
+
+  /**
+   * @param crossReferences
+   *          the crossReferences to set
+   * @see #crossReferences
+   */
+  public void setCrossReferences(List<ReactomeDatabaseIdentifier> crossReferences) {
+    this.crossReferences = crossReferences;
+  }
+
+  /**
+   * @return the literatureReferences
+   * @see #literatureReferences
+   */
+  public List<ReactomePublication> getLiteratureReferences() {
+    return literatureReferences;
+  }
+
+  /**
+   * @param literatureReferences
+   *          the literatureReferences to set
+   * @see #literatureReferences
+   */
+  public void setLiteratureReferences(List<ReactomePublication> literatureReferences) {
+    this.literatureReferences = literatureReferences;
+  }
+
+  /**
+   * @return the goCellularComponent
+   * @see #goCellularComponent
+   */
+  public ReactomeGoCellularComponent getGoCellularComponent() {
+    return goCellularComponent;
+  }
+
+  /**
+   * @param goCellularComponent
+   *          the goCellularComponent to set
+   * @see #goCellularComponent
+   */
+  public void setGoCellularComponent(ReactomeGoCellularComponent goCellularComponent) {
+    this.goCellularComponent = goCellularComponent;
+  }
+
+  /**
+   * @return the edited
+   * @see #edited
+   */
+  public List<ReactomeInstanceEdit> getEdited() {
+    return edited;
+  }
+
+  /**
+   * @param edited
+   *          the edited to set
+   * @see #edited
+   */
+  public void setEdited(List<ReactomeInstanceEdit> edited) {
+    this.edited = edited;
+  }
+
+  /**
+   * @return the diseases
+   * @see #diseases
+   */
+  public List<ReactomeDisease> getDiseases() {
+    return diseases;
+  }
+
+  /**
+   * @param diseases
+   *          the diseases to set
+   * @see #diseases
+   */
+  public void setDiseases(List<ReactomeDisease> diseases) {
+    this.diseases = diseases;
+  }
+
+  /**
+   * @return the definition
+   * @see #definition
+   */
+  public String getDefinition() {
+    return definition;
+  }
+
+  /**
+   * @param definition
+   *          the definition to set
+   * @see #definition
+   */
+  public void setDefinition(String definition) {
+    this.definition = definition;
+  }
+
+  /**
+   * @return the systematicName
+   * @see #systematicName
+   */
+  public String getSystematicName() {
+    return systematicName;
+  }
+
+  /**
+   * @param systematicName
+   *          the systematicName to set
+   * @see #systematicName
+   */
+  public void setSystematicName(String systematicName) {
+    this.systematicName = systematicName;
+  }
 }
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeSpecies.java b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeSpecies.java
index 48c6bfcea8..1007227e09 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeSpecies.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/model/ReactomeSpecies.java
@@ -9,5 +9,14 @@ package lcsb.mapviewer.reactome.model;
  * 
  */
 public class ReactomeSpecies extends ReactomeTaxon {
+  private String abbreviation;
 
+  public String getAbbreviation() {
+    return abbreviation;
+  }
+
+  public void setAbbreviation(String abbreviation) {
+    this.abbreviation = abbreviation;
+  }
+  
 }
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java
index ac2ea99f18..285c40d91d 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java
@@ -123,7 +123,7 @@ public abstract class ReactomeNodeParser<T extends ReactomeDatabaseObject> {
 	 * 
 	 * @param node
 	 *          xml node
-	 * @return {@link ReactomeDatabaseObject} obtaine from xml
+	 * @return {@link ReactomeDatabaseObject} obtained from xml
 	 */
 	public T parseSimplifiedObject(Node node) {
 		T result = getNewInstance();
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/ColumnParser.java b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/ColumnParser.java
index 40e015afd0..94bd6d3070 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/ColumnParser.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/ColumnParser.java
@@ -2,10 +2,13 @@ package lcsb.mapviewer.reactome.xml.columnParser;
 
 import java.text.SimpleDateFormat;
 
+import org.w3c.dom.Node;
+
 import lcsb.mapviewer.reactome.model.ReactomeAbstractModifiedResidue;
 import lcsb.mapviewer.reactome.model.ReactomeAffiliation;
 import lcsb.mapviewer.reactome.model.ReactomeCandidateSet;
 import lcsb.mapviewer.reactome.model.ReactomeCatalystActivity;
+import lcsb.mapviewer.reactome.model.ReactomeCompartment;
 import lcsb.mapviewer.reactome.model.ReactomeDatabaseIdentifier;
 import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject;
 import lcsb.mapviewer.reactome.model.ReactomeDisease;
@@ -43,6 +46,7 @@ import lcsb.mapviewer.reactome.xml.ReactomeAbstractModifiedResidueParser;
 import lcsb.mapviewer.reactome.xml.ReactomeAffiliationParser;
 import lcsb.mapviewer.reactome.xml.ReactomeCandidateSetParser;
 import lcsb.mapviewer.reactome.xml.ReactomeCatalystActivityParser;
+import lcsb.mapviewer.reactome.xml.ReactomeCompartmentParser;
 import lcsb.mapviewer.reactome.xml.ReactomeDatabaseIdentifierParser;
 import lcsb.mapviewer.reactome.xml.ReactomeDatabaseObjectParser;
 import lcsb.mapviewer.reactome.xml.ReactomeDiseaseParser;
@@ -78,8 +82,6 @@ import lcsb.mapviewer.reactome.xml.ReactomeStableIdentifierParser;
 import lcsb.mapviewer.reactome.xml.ReactomeSummationParser;
 import lcsb.mapviewer.reactome.xml.ReactomeTaxonParser;
 
-import org.w3c.dom.Node;
-
 /**
  * Abstract class interface for parsing columns in the reactome objects from the
  * xml obtained by restfull API.
@@ -90,612 +92,640 @@ import org.w3c.dom.Node;
  *          reactome class to be parsed
  */
 public abstract class ColumnParser<T extends ReactomeDatabaseObject> {
-	/**
-	 * Standard timestamp parser for reactome data.
-	 */
-	static final SimpleDateFormat									TIME_STAMP_PARSER	= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-	/**
-	 * Standard date parser for reactome data.
-	 */
-	static final SimpleDateFormat									DATE_PARSER				= new SimpleDateFormat("yyyy-MM-dd");
-
-	/**
-	 * Parser of the columns of parent object (of T class) in the inheritance
-	 * tree.
-	 */
-	private ColumnParser<ReactomeDatabaseObject>	parentParser			= null;
-
-	/**
-	 * Default constructor that creates parent column parser.
-	 * 
-	 * @param parentClass
-	 *          parent class (for T class) in inheritance tree
-	 */
-	protected ColumnParser(Class<?> parentClass) {
-		if (parentClass != null) {
-			parentParser = ColumnParserFactory.getColumnParser(parentClass);
-		}
-	}
-
-	/**
-	 * Updates data in object from xml node.
-	 * 
-	 * @param object
-	 *          object to be updated
-	 * @param node
-	 *          xml node from hich data are taken
-	 */
-	public abstract void updateColumnFromNode(T object, Node node);
-
-	/**
-	 * @return the parentParser
-	 */
-	ColumnParser<ReactomeDatabaseObject> getParentParser() {
-		return parentParser;
-	}
-
-	/**
-	 * @param parentParser
-	 *          the parentParser to set
-	 */
-	void setParentParser(ColumnParser<ReactomeDatabaseObject> parentParser) {
-		this.parentParser = parentParser;
-	}
-
-	/**
-	 * Standard reactome DatabaseIdentifier parser.
-	 */
-	private ReactomeDatabaseIdentifierParser						diParser				= null;
-	/**
-	 * Standard reactome DatabaseIdentifier parser.
-	 */
-	private ReactomeAffiliationParser										aParser					= null;
-	/**
-	 * Standard reactome EntityCompartment parser.
-	 */
-	private ReactomeEntityCompartmentParser							ecParser				= null;
-	/**
-	 * Standard reactome EvidenceType parser.
-	 */
-	private ReactomeEvidenceTypeParser									etParser				= null;
-	/**
-	 * Standard reactome Event parser.
-	 */
-	private ReactomeEventParser													eParser					= null;
-	/**
-	 * Standard reactome Summation parser.
-	 */
-	private ReactomeSummationParser											suParser				= null;
-	/**
-	 * Standard reactome Species parser.
-	 */
-	private ReactomeSpeciesParser												sParser					= null;
-	/**
-	 * Standard reactome ReferenceEntity parser.
-	 */
-	private ReactomeReferenceEntityParser								reParser				= null;
-	/**
-	 * Standard reactome PhysicalEntity parser.
-	 */
-	private ReactomePhysicalEntityParser								peParser				= null;
-	/**
-	 * Standard reactome CatalystActivity parser.
-	 */
-	private ReactomeCatalystActivityParser							caParser				= null;
-	/**
-	 * Standard reactome InstanceEdit parser.
-	 */
-	private ReactomeInstanceEditParser									ieParser				= null;
-	/**
-	 * Standard reactome StableIdentifier parser.
-	 */
-	private ReactomeStableIdentifierParser							siParser				= null;
-	/**
-	 * Standard reactome GoMolecularFunction parser.
-	 */
-	private ReactomeGoMolecularFunctionParser						gmfParser				= null;
-	/**
-	 * Standard reactome GoBiologicalProcess parser.
-	 */
-	private ReactomeGoBiologicalProcessParser						gbpParser				= null;
-	/**
-	 * Standard reactome Taxon parser.
-	 */
-	private ReactomeTaxonParser													tParser					= null;
-	/**
-	 * Standard reactome Person parser.
-	 */
-	private ReactomePersonParser												personParser		= null;
-	/**
-	 * Standard reactome ReferenceMolecule parser.
-	 */
-	private ReactomeReferenceMoleculeParser							rmParser				= null;
-	/**
-	 * Standard reactome ReferenceDatabase parser.
-	 */
-	private ReactomeReferenceDatabaseParser							rdParser				= null;
-	/**
-	 * Standard reactome Publication parser.
-	 */
-	private ReactomePublicationParser										pubParser				= null;
-	/**
-	 * Standard reactome AbstractModifiedResidue parser.
-	 */
-	private ReactomeAbstractModifiedResidueParser				amrParser				= null;
-	/**
-	 * Standard reactome ReferenceDNASequence parser.
-	 */
-	private ReactomeReferenceDNASequenceParser					rdsParser				= null;
-	/**
-	 * Standard reactome ReferenceRNASequence parser.
-	 */
-	private ReactomeReferenceRNASequenceParser					rrsParser				= null;
-	/**
-	 * Standard reactome Reaction parser.
-	 */
-	private ReactomeReactionParser											rParser					= null;
-	/**
-	 * Standard reactome Figure parser.
-	 */
-	private ReactomeFigureParser												fParser					= null;
-	/**
-	 * Standard reactome CandidateSet parser.
-	 */
-	private ReactomeCandidateSetParser									csParser				= null;
-	/**
-	 * Standard reactome GoCellularComponent parser.
-	 */
-	private ReactomeGoCellularComponentParser						gccParser				= null;
-	/**
-	 * Standard reactome ReferenceGeneProduct parser.
-	 */
-	private ReactomeReferenceGeneProductParser					rgpParser				= null;
-	/**
-	 * Standard reactome Disease parser.
-	 */
-	private ReactomeDiseaseParser												dParser					= null;
-	/**
-	 * Standard reactome EntityFunctionalStatus parser.
-	 */
-	private ReactomeEntityFunctionalStatusParser				efsParser				= null;
-	/**
-	 * Standard reactome ReactionlikeEvent parser.
-	 */
-	private ReactomeReactionlikeEventParser							rleParser				= null;
-	/**
-	 * Standard reactome DatabaseObject parser.
-	 */
-	private ReactomeDatabaseObjectParser								doParser				= null;
-	/**
-	 * Standard reactome ReferenceSequence parser.
-	 */
-	private ReactomeReferenceSequenceParser							rsParser				= null;
-	/**
-	 * Standard reactome PsiMod parser.
-	 */
-	private ReactomePsiModParser												pmParser				= null;
-	/**
-	 * Standard reactome InterChainCrosslinkedResidue parser.
-	 */
-	private ReactomeInterChainCrosslinkedResidueParser	interCcrParser	= null;
-	/**
-	 * Standard reactome IntraChainCrosslinkedResidue parser.
-	 */
-	private ReactomeIntraChainCrosslinkedResidueParser	intraCcrParser	= null;
-	/**
-	 * Standard reactome FunctionalStatus parser.
-	 */
-	private ReactomeFunctionalStatusParser							fsParser				= null;
-	/**
-	 * Standard reactome Pathway parser.
-	 */
-	private ReactomePathwayParser												pParser					= null;
-
-	/**
-	 * 
-	 * @return instance of ReactomeEntityCompartmentParser
-	 */
-	protected ReactomeEntityCompartmentParser getEcParser() {
-		if (ecParser == null) {
-			ecParser = (ReactomeEntityCompartmentParser) ReactomeParserFactory.getParserForClass(ReactomeEntityCompartment.class);
-		}
-		return ecParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeEvidenceTypeParser
-	 */
-	protected ReactomeEvidenceTypeParser getEtParser() {
-		if (etParser == null) {
-			etParser = (ReactomeEvidenceTypeParser) ReactomeParserFactory.getParserForClass(ReactomeEvidenceType.class);
-		}
-		return etParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeEventParser
-	 */
-	protected ReactomeEventParser geteParser() {
-		if (eParser == null) {
-			eParser = (ReactomeEventParser) ReactomeParserFactory.getParserForClass(ReactomeEvent.class);
-		}
-		return eParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeSpeciesParser
-	 */
-	protected ReactomeSpeciesParser getsParser() {
-		if (sParser == null) {
-			sParser = (ReactomeSpeciesParser) ReactomeParserFactory.getParserForClass(ReactomeSpecies.class);
-		}
-		return sParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeSummationParser
-	 */
-	protected ReactomeSummationParser getSuParser() {
-		if (suParser == null) {
-			suParser = (ReactomeSummationParser) ReactomeParserFactory.getParserForClass(ReactomeSummation.class);
-		}
-		return suParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReferenceEntityParser
-	 */
-	protected ReactomeReferenceEntityParser getReParser() {
-		if (reParser == null) {
-			reParser = (ReactomeReferenceEntityParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceEntity.class);
-		}
-		return reParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomePhysicalEntityParser
-	 */
-	protected ReactomePhysicalEntityParser getPeParser() {
-		if (peParser == null) {
-			peParser = (ReactomePhysicalEntityParser) ReactomeParserFactory.getParserForClass(ReactomePhysicalEntity.class);
-		}
-		return peParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeCatalystActivityParser
-	 */
-	protected ReactomeCatalystActivityParser getCaParser() {
-		if (caParser == null) {
-			caParser = (ReactomeCatalystActivityParser) ReactomeParserFactory.getParserForClass(ReactomeCatalystActivity.class);
-		}
-		return caParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeInstanceEditParser
-	 */
-	protected ReactomeInstanceEditParser getIeParser() {
-		if (ieParser == null) {
-			ieParser = (ReactomeInstanceEditParser) ReactomeParserFactory.getParserForClass(ReactomeInstanceEdit.class);
-		}
-		return ieParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeStableIdentifierParser
-	 */
-	protected ReactomeStableIdentifierParser getSiParser() {
-		if (siParser == null) {
-			siParser = (ReactomeStableIdentifierParser) ReactomeParserFactory.getParserForClass(ReactomeStableIdentifier.class);
-		}
-		return siParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeGoMolecularFunctionParser
-	 */
-	protected ReactomeGoMolecularFunctionParser getGmfParser() {
-		if (gmfParser == null) {
-			gmfParser = (ReactomeGoMolecularFunctionParser) ReactomeParserFactory.getParserForClass(ReactomeGoMolecularFunction.class);
-		}
-		return gmfParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeDatabaseIdentifierParser
-	 */
-	protected ReactomeDatabaseIdentifierParser getDiParser() {
-		if (diParser == null) {
-			diParser = (ReactomeDatabaseIdentifierParser) ReactomeParserFactory.getParserForClass(ReactomeDatabaseIdentifier.class);
-		}
-		return diParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of {@link ReactomeAffiliationParser}
-	 */
-	protected ReactomeAffiliationParser getAParser() {
-		if (aParser == null) {
-			aParser = (ReactomeAffiliationParser) ReactomeParserFactory.getParserForClass(ReactomeAffiliation.class);
-		}
-		return aParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeTaxonParser
-	 */
-	protected ReactomeTaxonParser gettParser() {
-		if (tParser == null) {
-			tParser = (ReactomeTaxonParser) ReactomeParserFactory.getParserForClass(ReactomeTaxon.class);
-		}
-		return tParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomePersonParser
-	 */
-	protected ReactomePersonParser getPersonParser() {
-		if (personParser == null) {
-			personParser = (ReactomePersonParser) ReactomeParserFactory.getParserForClass(ReactomePerson.class);
-		}
-		return personParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReferenceMoleculeParser
-	 */
-	protected ReactomeReferenceMoleculeParser getRmParser() {
-		if (rmParser == null) {
-			rmParser = (ReactomeReferenceMoleculeParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceMolecule.class);
-		}
-		return rmParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomePublicationParser
-	 */
-	protected ReactomePublicationParser getPubParser() {
-		if (pubParser == null) {
-			pubParser = (ReactomePublicationParser) ReactomeParserFactory.getParserForClass(ReactomePublication.class);
-		}
-		return pubParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReferenceDatabaseParser
-	 */
-	protected ReactomeReferenceDatabaseParser getRdParser() {
-		if (rdParser == null) {
-			rdParser = (ReactomeReferenceDatabaseParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceDatabase.class);
-		}
-		return rdParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeAbstractModifiedResidueParser
-	 */
-	protected ReactomeAbstractModifiedResidueParser getAmrParser() {
-		if (amrParser == null) {
-			amrParser = (ReactomeAbstractModifiedResidueParser) ReactomeParserFactory.getParserForClass(ReactomeAbstractModifiedResidue.class);
-		}
-		return amrParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReferenceDNASequenceParser
-	 */
-	protected ReactomeReferenceDNASequenceParser getRdsParser() {
-		if (rdsParser == null) {
-			rdsParser = (ReactomeReferenceDNASequenceParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceDNASequence.class);
-		}
-		return rdsParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReferenceRNASequenceParser
-	 */
-	protected ReactomeReferenceRNASequenceParser getRrsParser() {
-		if (rrsParser == null) {
-			rrsParser = (ReactomeReferenceRNASequenceParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceRNASequence.class);
-		}
-		return rrsParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReactionParser
-	 */
-	protected ReactomeReactionParser getrParser() {
-		if (rParser == null) {
-			rParser = (ReactomeReactionParser) ReactomeParserFactory.getParserForClass(ReactomeReaction.class);
-		}
-		return rParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeFigureParser
-	 */
-	protected ReactomeFigureParser getfParser() {
-		if (fParser == null) {
-			fParser = (ReactomeFigureParser) ReactomeParserFactory.getParserForClass(ReactomeFigure.class);
-		}
-		return fParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeGoBiologicalProcessParser
-	 */
-	protected ReactomeGoBiologicalProcessParser getGbpParser() {
-		if (gbpParser == null) {
-			gbpParser = (ReactomeGoBiologicalProcessParser) ReactomeParserFactory.getParserForClass(ReactomeGoBiologicalProcess.class);
-		}
-		return gbpParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeCandidateSetParser
-	 */
-	protected ReactomeCandidateSetParser getCsParser() {
-		if (csParser == null) {
-			csParser = (ReactomeCandidateSetParser) ReactomeParserFactory.getParserForClass(ReactomeCandidateSet.class);
-		}
-		return csParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeGoCellularComponentParser
-	 */
-	protected ReactomeGoCellularComponentParser getGccParser() {
-		if (gccParser == null) {
-			gccParser = (ReactomeGoCellularComponentParser) ReactomeParserFactory.getParserForClass(ReactomeGoCellularComponent.class);
-		}
-		return gccParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReferenceGeneProductParser
-	 */
-	protected ReactomeReferenceGeneProductParser getRgpParser() {
-		if (rgpParser == null) {
-			rgpParser = (ReactomeReferenceGeneProductParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceGeneProduct.class);
-		}
-		return rgpParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeDiseaseParser
-	 */
-	protected ReactomeDiseaseParser getdParser() {
-		if (dParser == null) {
-			dParser = (ReactomeDiseaseParser) ReactomeParserFactory.getParserForClass(ReactomeDisease.class);
-		}
-		return dParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeEntityFunctionalStatusParser
-	 */
-	protected ReactomeEntityFunctionalStatusParser getEfsParser() {
-		if (efsParser == null) {
-			efsParser = (ReactomeEntityFunctionalStatusParser) ReactomeParserFactory.getParserForClass(ReactomeEntityFunctionalStatus.class);
-		}
-		return efsParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReactionlikeEventParser
-	 */
-	protected ReactomeReactionlikeEventParser getRleParser() {
-		if (rleParser == null) {
-			rleParser = (ReactomeReactionlikeEventParser) ReactomeParserFactory.getParserForClass(ReactomeReactionlikeEvent.class);
-		}
-		return rleParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeDatabaseObjectParser
-	 */
-	protected ReactomeDatabaseObjectParser getDoParser() {
-		if (doParser == null) {
-			doParser = (ReactomeDatabaseObjectParser) ReactomeParserFactory.getParserForClass(ReactomeDatabaseObject.class);
-		}
-		return doParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeReferenceSequenceParser
-	 */
-	protected ReactomeReferenceSequenceParser getRsParser() {
-		if (rsParser == null) {
-			rsParser = (ReactomeReferenceSequenceParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceSequence.class);
-		}
-		return rsParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomePsiModParser
-	 */
-	protected ReactomePsiModParser getPmParser() {
-		if (pmParser == null) {
-			pmParser = (ReactomePsiModParser) ReactomeParserFactory.getParserForClass(ReactomePsiMod.class);
-		}
-		return pmParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeInterChainCrosslinkedResidueParser
-	 */
-	protected ReactomeInterChainCrosslinkedResidueParser getInterCcrParser() {
-		if (interCcrParser == null) {
-			interCcrParser = (ReactomeInterChainCrosslinkedResidueParser) ReactomeParserFactory.getParserForClass(ReactomeInterChainCrosslinkedResidue.class);
-		}
-		return interCcrParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeIntraChainCrosslinkedResidueParser
-	 */
-	protected ReactomeIntraChainCrosslinkedResidueParser getIntraCcrParser() {
-		if (intraCcrParser == null) {
-			intraCcrParser = (ReactomeIntraChainCrosslinkedResidueParser) ReactomeParserFactory.getParserForClass(ReactomeIntraChainCrosslinkedResidue.class);
-		}
-		return intraCcrParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomeFunctionalStatusParser
-	 */
-	protected ReactomeFunctionalStatusParser getFsParser() {
-		if (fsParser == null) {
-			fsParser = (ReactomeFunctionalStatusParser) ReactomeParserFactory.getParserForClass(ReactomeFunctionalStatus.class);
-		}
-		return fsParser;
-	}
-
-	/**
-	 * 
-	 * @return instance of ReactomePathwayParser
-	 */
-	protected ReactomePathwayParser getpParser() {
-		if (pParser == null) {
-			pParser = (ReactomePathwayParser) ReactomeParserFactory.getParserForClass(ReactomePathway.class);
-		}
-		return pParser;
-	}
+  /**
+   * Standard timestamp parser for reactome data.
+   */
+  static final SimpleDateFormat TIME_STAMP_PARSER = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+  /**
+   * Standard date parser for reactome data.
+   */
+  static final SimpleDateFormat DATE_PARSER = new SimpleDateFormat("yyyy-MM-dd");
+
+  /**
+   * Parser of the columns of parent object (of T class) in the inheritance tree.
+   */
+  private ColumnParser<ReactomeDatabaseObject> parentParser = null;
+
+  /**
+   * Default constructor that creates parent column parser.
+   * 
+   * @param parentClass
+   *          parent class (for T class) in inheritance tree
+   */
+  protected ColumnParser(Class<?> parentClass) {
+    if (parentClass != null) {
+      parentParser = ColumnParserFactory.getColumnParser(parentClass);
+    }
+  }
+
+  /**
+   * Updates data in object from xml node.
+   * 
+   * @param object
+   *          object to be updated
+   * @param node
+   *          xml node from hich data are taken
+   */
+  public abstract void updateColumnFromNode(T object, Node node);
+
+  /**
+   * @return the parentParser
+   */
+  ColumnParser<ReactomeDatabaseObject> getParentParser() {
+    return parentParser;
+  }
+
+  /**
+   * @param parentParser
+   *          the parentParser to set
+   */
+  void setParentParser(ColumnParser<ReactomeDatabaseObject> parentParser) {
+    this.parentParser = parentParser;
+  }
+
+  /**
+   * Standard reactome DatabaseIdentifier parser.
+   */
+  private ReactomeDatabaseIdentifierParser diParser = null;
+  /**
+   * Standard reactome DatabaseIdentifier parser.
+   */
+  private ReactomeAffiliationParser aParser = null;
+  /**
+   * Standard reactome EntityCompartment parser.
+   */
+  private ReactomeEntityCompartmentParser ecParser = null;
+
+  private ReactomeCompartmentParser compartmentParser = null;
+  /**
+   * Standard reactome EvidenceType parser.
+   */
+  private ReactomeEvidenceTypeParser etParser = null;
+  /**
+   * Standard reactome Event parser.
+   */
+  private ReactomeEventParser eParser = null;
+  /**
+   * Standard reactome Summation parser.
+   */
+  private ReactomeSummationParser suParser = null;
+  /**
+   * Standard reactome Species parser.
+   */
+  private ReactomeSpeciesParser sParser = null;
+  /**
+   * Standard reactome ReferenceEntity parser.
+   */
+  private ReactomeReferenceEntityParser reParser = null;
+  /**
+   * Standard reactome PhysicalEntity parser.
+   */
+  private ReactomePhysicalEntityParser peParser = null;
+  /**
+   * Standard reactome CatalystActivity parser.
+   */
+  private ReactomeCatalystActivityParser caParser = null;
+  /**
+   * Standard reactome InstanceEdit parser.
+   */
+  private ReactomeInstanceEditParser ieParser = null;
+  /**
+   * Standard reactome StableIdentifier parser.
+   */
+  private ReactomeStableIdentifierParser siParser = null;
+  /**
+   * Standard reactome GoMolecularFunction parser.
+   */
+  private ReactomeGoMolecularFunctionParser gmfParser = null;
+  /**
+   * Standard reactome GoBiologicalProcess parser.
+   */
+  private ReactomeGoBiologicalProcessParser gbpParser = null;
+  /**
+   * Standard reactome Taxon parser.
+   */
+  private ReactomeTaxonParser tParser = null;
+  /**
+   * Standard reactome Person parser.
+   */
+  private ReactomePersonParser personParser = null;
+  /**
+   * Standard reactome ReferenceMolecule parser.
+   */
+  private ReactomeReferenceMoleculeParser rmParser = null;
+  /**
+   * Standard reactome ReferenceDatabase parser.
+   */
+  private ReactomeReferenceDatabaseParser rdParser = null;
+  /**
+   * Standard reactome Publication parser.
+   */
+  private ReactomePublicationParser pubParser = null;
+  /**
+   * Standard reactome AbstractModifiedResidue parser.
+   */
+  private ReactomeAbstractModifiedResidueParser amrParser = null;
+  /**
+   * Standard reactome ReferenceDNASequence parser.
+   */
+  private ReactomeReferenceDNASequenceParser rdsParser = null;
+  /**
+   * Standard reactome ReferenceRNASequence parser.
+   */
+  private ReactomeReferenceRNASequenceParser rrsParser = null;
+  /**
+   * Standard reactome Reaction parser.
+   */
+  private ReactomeReactionParser rParser = null;
+  /**
+   * Standard reactome Figure parser.
+   */
+  private ReactomeFigureParser fParser = null;
+  /**
+   * Standard reactome CandidateSet parser.
+   */
+  private ReactomeCandidateSetParser csParser = null;
+  /**
+   * Standard reactome GoCellularComponent parser.
+   */
+  private ReactomeGoCellularComponentParser gccParser = null;
+  /**
+   * Standard reactome ReferenceGeneProduct parser.
+   */
+  private ReactomeReferenceGeneProductParser rgpParser = null;
+  /**
+   * Standard reactome Disease parser.
+   */
+  private ReactomeDiseaseParser dParser = null;
+  /**
+   * Standard reactome EntityFunctionalStatus parser.
+   */
+  private ReactomeEntityFunctionalStatusParser efsParser = null;
+  /**
+   * Standard reactome ReactionlikeEvent parser.
+   */
+  private ReactomeReactionlikeEventParser rleParser = null;
+  /**
+   * Standard reactome DatabaseObject parser.
+   */
+  private ReactomeDatabaseObjectParser doParser = null;
+  /**
+   * Standard reactome ReferenceSequence parser.
+   */
+  private ReactomeReferenceSequenceParser rsParser = null;
+  /**
+   * Standard reactome PsiMod parser.
+   */
+  private ReactomePsiModParser pmParser = null;
+  /**
+   * Standard reactome InterChainCrosslinkedResidue parser.
+   */
+  private ReactomeInterChainCrosslinkedResidueParser interCcrParser = null;
+  /**
+   * Standard reactome IntraChainCrosslinkedResidue parser.
+   */
+  private ReactomeIntraChainCrosslinkedResidueParser intraCcrParser = null;
+  /**
+   * Standard reactome FunctionalStatus parser.
+   */
+  private ReactomeFunctionalStatusParser fsParser = null;
+  /**
+   * Standard reactome Pathway parser.
+   */
+  private ReactomePathwayParser pParser = null;
+
+  /**
+   * 
+   * @return instance of ReactomeEntityCompartmentParser
+   */
+  protected ReactomeEntityCompartmentParser getEcParser() {
+    if (ecParser == null) {
+      ecParser = (ReactomeEntityCompartmentParser) ReactomeParserFactory
+          .getParserForClass(ReactomeEntityCompartment.class);
+    }
+    return ecParser;
+  }
+
+  protected ReactomeCompartmentParser getCompartmentParser() {
+    if (compartmentParser == null) {
+      compartmentParser = (ReactomeCompartmentParser) ReactomeParserFactory
+          .getParserForClass(ReactomeCompartment.class);
+    }
+    return compartmentParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeEvidenceTypeParser
+   */
+  protected ReactomeEvidenceTypeParser getEtParser() {
+    if (etParser == null) {
+      etParser = (ReactomeEvidenceTypeParser) ReactomeParserFactory.getParserForClass(ReactomeEvidenceType.class);
+    }
+    return etParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeEventParser
+   */
+  protected ReactomeEventParser geteParser() {
+    if (eParser == null) {
+      eParser = (ReactomeEventParser) ReactomeParserFactory.getParserForClass(ReactomeEvent.class);
+    }
+    return eParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeSpeciesParser
+   */
+  protected ReactomeSpeciesParser getsParser() {
+    if (sParser == null) {
+      sParser = (ReactomeSpeciesParser) ReactomeParserFactory.getParserForClass(ReactomeSpecies.class);
+    }
+    return sParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeSummationParser
+   */
+  protected ReactomeSummationParser getSuParser() {
+    if (suParser == null) {
+      suParser = (ReactomeSummationParser) ReactomeParserFactory.getParserForClass(ReactomeSummation.class);
+    }
+    return suParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReferenceEntityParser
+   */
+  protected ReactomeReferenceEntityParser getReParser() {
+    if (reParser == null) {
+      reParser = (ReactomeReferenceEntityParser) ReactomeParserFactory.getParserForClass(ReactomeReferenceEntity.class);
+    }
+    return reParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomePhysicalEntityParser
+   */
+  protected ReactomePhysicalEntityParser getPeParser() {
+    if (peParser == null) {
+      peParser = (ReactomePhysicalEntityParser) ReactomeParserFactory.getParserForClass(ReactomePhysicalEntity.class);
+    }
+    return peParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeCatalystActivityParser
+   */
+  protected ReactomeCatalystActivityParser getCaParser() {
+    if (caParser == null) {
+      caParser = (ReactomeCatalystActivityParser) ReactomeParserFactory
+          .getParserForClass(ReactomeCatalystActivity.class);
+    }
+    return caParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeInstanceEditParser
+   */
+  protected ReactomeInstanceEditParser getIeParser() {
+    if (ieParser == null) {
+      ieParser = (ReactomeInstanceEditParser) ReactomeParserFactory.getParserForClass(ReactomeInstanceEdit.class);
+    }
+    return ieParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeStableIdentifierParser
+   */
+  protected ReactomeStableIdentifierParser getSiParser() {
+    if (siParser == null) {
+      siParser = (ReactomeStableIdentifierParser) ReactomeParserFactory
+          .getParserForClass(ReactomeStableIdentifier.class);
+    }
+    return siParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeGoMolecularFunctionParser
+   */
+  protected ReactomeGoMolecularFunctionParser getGmfParser() {
+    if (gmfParser == null) {
+      gmfParser = (ReactomeGoMolecularFunctionParser) ReactomeParserFactory
+          .getParserForClass(ReactomeGoMolecularFunction.class);
+    }
+    return gmfParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeDatabaseIdentifierParser
+   */
+  protected ReactomeDatabaseIdentifierParser getDiParser() {
+    if (diParser == null) {
+      diParser = (ReactomeDatabaseIdentifierParser) ReactomeParserFactory
+          .getParserForClass(ReactomeDatabaseIdentifier.class);
+    }
+    return diParser;
+  }
+
+  /**
+   * 
+   * @return instance of {@link ReactomeAffiliationParser}
+   */
+  protected ReactomeAffiliationParser getAParser() {
+    if (aParser == null) {
+      aParser = (ReactomeAffiliationParser) ReactomeParserFactory.getParserForClass(ReactomeAffiliation.class);
+    }
+    return aParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeTaxonParser
+   */
+  protected ReactomeTaxonParser gettParser() {
+    if (tParser == null) {
+      tParser = (ReactomeTaxonParser) ReactomeParserFactory.getParserForClass(ReactomeTaxon.class);
+    }
+    return tParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomePersonParser
+   */
+  protected ReactomePersonParser getPersonParser() {
+    if (personParser == null) {
+      personParser = (ReactomePersonParser) ReactomeParserFactory.getParserForClass(ReactomePerson.class);
+    }
+    return personParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReferenceMoleculeParser
+   */
+  protected ReactomeReferenceMoleculeParser getRmParser() {
+    if (rmParser == null) {
+      rmParser = (ReactomeReferenceMoleculeParser) ReactomeParserFactory
+          .getParserForClass(ReactomeReferenceMolecule.class);
+    }
+    return rmParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomePublicationParser
+   */
+  protected ReactomePublicationParser getPubParser() {
+    if (pubParser == null) {
+      pubParser = (ReactomePublicationParser) ReactomeParserFactory.getParserForClass(ReactomePublication.class);
+    }
+    return pubParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReferenceDatabaseParser
+   */
+  protected ReactomeReferenceDatabaseParser getRdParser() {
+    if (rdParser == null) {
+      rdParser = (ReactomeReferenceDatabaseParser) ReactomeParserFactory
+          .getParserForClass(ReactomeReferenceDatabase.class);
+    }
+    return rdParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeAbstractModifiedResidueParser
+   */
+  protected ReactomeAbstractModifiedResidueParser getAmrParser() {
+    if (amrParser == null) {
+      amrParser = (ReactomeAbstractModifiedResidueParser) ReactomeParserFactory
+          .getParserForClass(ReactomeAbstractModifiedResidue.class);
+    }
+    return amrParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReferenceDNASequenceParser
+   */
+  protected ReactomeReferenceDNASequenceParser getRdsParser() {
+    if (rdsParser == null) {
+      rdsParser = (ReactomeReferenceDNASequenceParser) ReactomeParserFactory
+          .getParserForClass(ReactomeReferenceDNASequence.class);
+    }
+    return rdsParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReferenceRNASequenceParser
+   */
+  protected ReactomeReferenceRNASequenceParser getRrsParser() {
+    if (rrsParser == null) {
+      rrsParser = (ReactomeReferenceRNASequenceParser) ReactomeParserFactory
+          .getParserForClass(ReactomeReferenceRNASequence.class);
+    }
+    return rrsParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReactionParser
+   */
+  protected ReactomeReactionParser getrParser() {
+    if (rParser == null) {
+      rParser = (ReactomeReactionParser) ReactomeParserFactory.getParserForClass(ReactomeReaction.class);
+    }
+    return rParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeFigureParser
+   */
+  protected ReactomeFigureParser getfParser() {
+    if (fParser == null) {
+      fParser = (ReactomeFigureParser) ReactomeParserFactory.getParserForClass(ReactomeFigure.class);
+    }
+    return fParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeGoBiologicalProcessParser
+   */
+  protected ReactomeGoBiologicalProcessParser getGbpParser() {
+    if (gbpParser == null) {
+      gbpParser = (ReactomeGoBiologicalProcessParser) ReactomeParserFactory
+          .getParserForClass(ReactomeGoBiologicalProcess.class);
+    }
+    return gbpParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeCandidateSetParser
+   */
+  protected ReactomeCandidateSetParser getCsParser() {
+    if (csParser == null) {
+      csParser = (ReactomeCandidateSetParser) ReactomeParserFactory.getParserForClass(ReactomeCandidateSet.class);
+    }
+    return csParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeGoCellularComponentParser
+   */
+  protected ReactomeGoCellularComponentParser getGccParser() {
+    if (gccParser == null) {
+      gccParser = (ReactomeGoCellularComponentParser) ReactomeParserFactory
+          .getParserForClass(ReactomeGoCellularComponent.class);
+    }
+    return gccParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReferenceGeneProductParser
+   */
+  protected ReactomeReferenceGeneProductParser getRgpParser() {
+    if (rgpParser == null) {
+      rgpParser = (ReactomeReferenceGeneProductParser) ReactomeParserFactory
+          .getParserForClass(ReactomeReferenceGeneProduct.class);
+    }
+    return rgpParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeDiseaseParser
+   */
+  protected ReactomeDiseaseParser getdParser() {
+    if (dParser == null) {
+      dParser = (ReactomeDiseaseParser) ReactomeParserFactory.getParserForClass(ReactomeDisease.class);
+    }
+    return dParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeEntityFunctionalStatusParser
+   */
+  protected ReactomeEntityFunctionalStatusParser getEfsParser() {
+    if (efsParser == null) {
+      efsParser = (ReactomeEntityFunctionalStatusParser) ReactomeParserFactory
+          .getParserForClass(ReactomeEntityFunctionalStatus.class);
+    }
+    return efsParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReactionlikeEventParser
+   */
+  protected ReactomeReactionlikeEventParser getRleParser() {
+    if (rleParser == null) {
+      rleParser = (ReactomeReactionlikeEventParser) ReactomeParserFactory
+          .getParserForClass(ReactomeReactionlikeEvent.class);
+    }
+    return rleParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeDatabaseObjectParser
+   */
+  protected ReactomeDatabaseObjectParser getDoParser() {
+    if (doParser == null) {
+      doParser = (ReactomeDatabaseObjectParser) ReactomeParserFactory.getParserForClass(ReactomeDatabaseObject.class);
+    }
+    return doParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeReferenceSequenceParser
+   */
+  protected ReactomeReferenceSequenceParser getRsParser() {
+    if (rsParser == null) {
+      rsParser = (ReactomeReferenceSequenceParser) ReactomeParserFactory
+          .getParserForClass(ReactomeReferenceSequence.class);
+    }
+    return rsParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomePsiModParser
+   */
+  protected ReactomePsiModParser getPmParser() {
+    if (pmParser == null) {
+      pmParser = (ReactomePsiModParser) ReactomeParserFactory.getParserForClass(ReactomePsiMod.class);
+    }
+    return pmParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeInterChainCrosslinkedResidueParser
+   */
+  protected ReactomeInterChainCrosslinkedResidueParser getInterCcrParser() {
+    if (interCcrParser == null) {
+      interCcrParser = (ReactomeInterChainCrosslinkedResidueParser) ReactomeParserFactory
+          .getParserForClass(ReactomeInterChainCrosslinkedResidue.class);
+    }
+    return interCcrParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeIntraChainCrosslinkedResidueParser
+   */
+  protected ReactomeIntraChainCrosslinkedResidueParser getIntraCcrParser() {
+    if (intraCcrParser == null) {
+      intraCcrParser = (ReactomeIntraChainCrosslinkedResidueParser) ReactomeParserFactory
+          .getParserForClass(ReactomeIntraChainCrosslinkedResidue.class);
+    }
+    return intraCcrParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomeFunctionalStatusParser
+   */
+  protected ReactomeFunctionalStatusParser getFsParser() {
+    if (fsParser == null) {
+      fsParser = (ReactomeFunctionalStatusParser) ReactomeParserFactory
+          .getParserForClass(ReactomeFunctionalStatus.class);
+    }
+    return fsParser;
+  }
+
+  /**
+   * 
+   * @return instance of ReactomePathwayParser
+   */
+  protected ReactomePathwayParser getpParser() {
+    if (pParser == null) {
+      pParser = (ReactomePathwayParser) ReactomeParserFactory.getParserForClass(ReactomePathway.class);
+    }
+    return pParser;
+  }
 
 }
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/PhysicalEntityColumnParser.java b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/PhysicalEntityColumnParser.java
index ef1e6a065d..3db54e1e70 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/PhysicalEntityColumnParser.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/PhysicalEntityColumnParser.java
@@ -24,7 +24,7 @@ public class PhysicalEntityColumnParser extends ColumnParser<ReactomePhysicalEnt
 	@Override
 	public void updateColumnFromNode(ReactomePhysicalEntity object, Node node) {
 		if (node.getNodeName().equalsIgnoreCase("compartment")) {
-			object.addCompartment(getEcParser().parseSimplifiedObject(node));
+			object.addCompartment(getCompartmentParser().parseSimplifiedObject(node));
 		} else if (node.getNodeName().equalsIgnoreCase("inferredTo")) {
 			object.addInferredTo(getPeParser().parseSimplifiedObject(node));
 		} else if (node.getNodeName().equalsIgnoreCase("inferredFrom")) {
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/SpeciesColumnParser.java b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/SpeciesColumnParser.java
index 2bbd4fec81..a2218cd15e 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/SpeciesColumnParser.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/SpeciesColumnParser.java
@@ -1,28 +1,31 @@
 package lcsb.mapviewer.reactome.xml.columnParser;
 
-import lcsb.mapviewer.reactome.model.ReactomeSpecies;
-
 import org.w3c.dom.Node;
 
+import lcsb.mapviewer.reactome.model.ReactomeSpecies;
+
 /**
- * Parser for properties of Reactome <a href=
- * "http://www.reactome.org/cgi-bin/classbrowser?DB=gk_current&CLASS=Species"
- * >Species</a> object.
+ * Parser for properties of Reactome
+ * <a href= "https://reactome.org/content/schema/Species" >Species</a> object.
  * 
  * @author Piotr Gawron
  * 
  */
 public class SpeciesColumnParser extends ColumnParser<ReactomeSpecies> {
-	/**
-	 * Default constructor. Defines parser for super class of Species.
-	 */
-	protected SpeciesColumnParser() {
-		super(TaxonColumnParser.class);
-	}
+  /**
+   * Default constructor. Defines parser for super class of Species.
+   */
+  protected SpeciesColumnParser() {
+    super(TaxonColumnParser.class);
+  }
 
-	@Override
-	public void updateColumnFromNode(ReactomeSpecies object, Node node) {
-		getParentParser().updateColumnFromNode(object, node);
-	}
+  @Override
+  public void updateColumnFromNode(ReactomeSpecies object, Node node) {
+    if (node.getNodeName().equalsIgnoreCase("abbreviation")) {
+      object.setAbbreviation(node.getTextContent());
+    } else {
+      getParentParser().updateColumnFromNode(object, node);
+    }
+  }
 
 }
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java b/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java
index 8ac8e12415..7696b1a875 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java
@@ -55,7 +55,7 @@ import org.xml.sax.SAXException;
 		"/applicationContext-reactome.xml", //
 		"/applicationContext-persist.xml", //
 		"/test-applicationContext.xml", //
-		"/dataSource.xml", //
+		"/test-dataSource.xml", //
 })
 @RunWith(SpringJUnit4ClassRunner.class)
 public abstract class ReactomeTestFunctions {
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java
index 16a106f1fb..0bc125fb11 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java
@@ -29,6 +29,7 @@ import lcsb.mapviewer.reactome.xml.ReactomeDefinedSetParser;
 import lcsb.mapviewer.reactome.xml.ReactomeReactionParser;
 import lcsb.mapviewer.reactome.xml.ReactomeSimpleEntityParser;
 
+@Ignore("Reactome comparator is not maintained")
 public class ReactomeQueryUtilTest extends ReactomeTestFunctions {
 
 	Model									model;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java
index 6d5798314e..62a477e92d 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java
@@ -24,6 +24,7 @@ import lcsb.mapviewer.reactome.xml.ReactomeDefinedSetParser;
 import lcsb.mapviewer.reactome.xml.ReactomeReactionParser;
 import lcsb.mapviewer.reactome.xml.ReactomeSimpleEntityParser;
 
+@Ignore("Reactome comparator is not maintained")
 public class NodeComparatorTest extends ReactomeTestFunctions {
 
 	Model													 model;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java
index 7302ad9740..9c0639089e 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java
@@ -15,80 +15,80 @@ import lcsb.mapviewer.reactome.model.ReactomeBlackBoxEvent;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeBlackBoxEventParserTest extends ReactomeTestFunctions {
-	Logger											logger = Logger.getLogger(ReactomeBlackBoxEventParserTest.class);
+  Logger logger = Logger.getLogger(ReactomeBlackBoxEventParserTest.class);
 
-	@Autowired
-	ReactomeBlackBoxEventParser	parser;
+  @Autowired
+  ReactomeBlackBoxEventParser parser;
 
-	@Before
-	public void setUp() throws Exception {
-	}
+  @Before
+  public void setUp() throws Exception {
+  }
 
-	@After
-	public void tearDown() throws Exception {
-	}
+  @After
+  public void tearDown() throws Exception {
+  }
 
-	@Test
-	public void testParseObject() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/blackBoxEvent.xml");
-			ReactomeBlackBoxEvent res = parser.parseObject(document.getChildNodes().item(0));
-			assertNotNull(res);
-			assertEquals((Integer) 139947, res.getCreated().getDbId());
-			assertEquals((Integer) 139952, res.getDbId());
-			assertEquals((Integer) 141163, res.getModified().get(1).getDbId());
-			assertEquals((Integer) 202124, res.getEntityOnOtherCells().get(0).getDbId());
-			assertEquals((Integer) 358238, res.getStableIdentifier().getDbId());
-			assertEquals((Integer) 876, res.getCompartments().get(1).getDbId());
-			assertEquals((Integer) 3508822, res.getEdited().get(0).getDbId());
-			assertEquals(false, res.getIsInDisease());
-			assertEquals(false, res.getIsInferred());
-			assertEquals(true, res.getDoRelease());
-			assertEquals((Integer) 1267836, res.getLiteratureReferences().get(2).getDbId());
+  @Test
+  public void testParseObject() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/blackBoxEvent.xml");
+      ReactomeBlackBoxEvent res = parser.parseObject(document.getChildNodes().item(0));
+      assertNotNull(res);
+      assertEquals((Integer) 139947, res.getCreated().getDbId());
+      assertEquals((Integer) 139952, res.getDbId());
+      assertEquals((Integer) 141163, res.getModified().get(1).getDbId());
+      assertEquals((Integer) 202124, res.getEntityOnOtherCells().get(0).getDbId());
+      assertEquals((Integer) 358238, res.getStableIdentifier().getDbId());
+      assertEquals((Integer) 876, res.getCompartments().get(1).getDbId());
+      assertEquals((Integer) 3508822, res.getEdited().get(0).getDbId());
+      assertEquals(false, res.getIsInDisease());
+      assertEquals(false, res.getIsInferred());
+      assertEquals(true, res.getDoRelease());
+      assertEquals((Integer) 1267836, res.getLiteratureReferences().get(2).getDbId());
 
-			assertEquals((Integer) 450358, res.getOrthologousEvents().get(0).getDbId());
-			assertEquals((Integer) 141156, res.getPrecedingEvents().get(0).getDbId());
-			assertEquals((Integer) 2594924, res.getReviewed().get(0).getDbId());
-			assertEquals((Integer) 48887, res.getSpecies().getDbId());
-			assertEquals((Integer) 178769, res.getSummations().get(0).getDbId());
-			assertEquals((Integer) 139951, res.getCatalystActivities().get(0).getDbId());
-			assertEquals((Integer) 2671813, res.getInputs().get(0).getDbId());
-			assertEquals((Integer) 2562550, res.getOutputs().get(1).getDbId());
-			assertEquals("Caspase-8 processing ", res.getDisplayName());
-			assertEquals("Caspase-8 processing ", res.getNames().get(0));
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+      assertEquals((Integer) 450358, res.getOrthologousEvents().get(0).getDbId());
+      assertEquals((Integer) 141156, res.getPrecedingEvents().get(0).getDbId());
+      assertEquals((Integer) 2594924, res.getReviewed().get(0).getDbId());
+      assertEquals((Integer) 48887, res.getSpecies().getDbId());
+      assertEquals((Integer) 178769, res.getSummations().get(0).getDbId());
+      assertEquals((Integer) 139951, res.getCatalystActivities().get(0).getDbId());
+      assertEquals((Integer) 2671813, res.getInputs().get(0).getDbId());
+      assertEquals((Integer) 2562550, res.getOutputs().get(1).getDbId());
+      assertEquals("Caspase-8 processing ", res.getDisplayName());
+      assertEquals("Caspase-8 processing ", res.getNames().get(0));
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
-	@Test
-	public void testUpdateObjectFromDb() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/blackBoxEvent.xml");
-			ReactomeBlackBoxEvent res = parser.parseObject(document.getChildNodes().item(0));
+  @Test
+  public void testUpdateObjectFromDb() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/blackBoxEvent.xml");
+      ReactomeBlackBoxEvent res = parser.parseObject(document.getChildNodes().item(0));
 
-			rc.updateOnlyIdFields(res);
+      rc.updateOnlyIdFields(res);
 
-			assertEquals(ReactomeStatus.FULL, res.getModified().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getEdited().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getLiteratureReferences().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getOrthologousEvents().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getPrecedingEvents().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getReviewed().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getSummations().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getInputs().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getOutputs().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getCatalystActivities().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getStableIdentifier().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getModified().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getEdited().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getLiteratureReferences().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getOrthologousEvents().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getPrecedingEvents().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getReviewed().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getSummations().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getInputs().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getOutputs().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getCatalystActivities().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getStableIdentifier().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
 
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
 }
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java
index c63fb52fed..7b585e6843 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java
@@ -3,9 +3,6 @@ package lcsb.mapviewer.reactome.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
-import lcsb.mapviewer.reactome.ReactomeTestFunctions;
-import lcsb.mapviewer.reactome.model.ReactomeComplex;
-import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 import org.apache.log4j.Logger;
 import org.junit.After;
@@ -14,68 +11,77 @@ import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
-public class ReactomeComplexParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeComplexParserTest.class);
+import lcsb.mapviewer.reactome.ReactomeTestFunctions;
+import lcsb.mapviewer.reactome.model.ReactomeComplex;
+import lcsb.mapviewer.reactome.model.ReactomeStatus;
+
+public class ReactomeComplexParserTest extends ReactomeTestFunctions {
+  Logger logger = Logger.getLogger(ReactomeComplexParserTest.class);
+
+  @Autowired
+  ReactomeComplexParser parser;
+
+  @Before
+  public void setUp() throws Exception {
+  }
+
+  @After
+  public void tearDown() throws Exception {
+  }
+
+  @Test
+  public void testParseObject() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/complex.xml");
+      ReactomeComplex res = parser.parseObject(document.getChildNodes().item(0));
+      assertNotNull(res);
+
+      assertEquals((Integer) 139947, res.getCreated().getDbId());
+      assertEquals((Integer) 3896793, res.getDbId());
+      assertEquals(
+          "((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin-1 dimer (name copied from entity in Homo sapiens) [cytosol]",
+          res.getDisplayName());
+      assertEquals((Integer) 70101, res.getCompartments().get(0).getDbId());
+      assertEquals((Integer) 453350, res.getInferredFroms().get(1).getDbId());
+      assertEquals(
+          "((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin-1 dimer (name copied from entity in Homo sapiens)",
+          res.getNames().get(0));
+      assertEquals((Integer) 143353, res.getSummations().get(0).getDbId());
+      assertEquals((Integer) 29418, res.getHasComponents().get(2).getDbId());
+      assertEquals((Integer) 48895, res.getSpecies().getDbId());
+      assertEquals((Integer) 48895, res.getSpecies().getDbId());
+      assertEquals((Integer) 70101, res.getIncludedLocations().get(0).getDbId());
+      assertEquals((Integer) 1470028, res.getGoCellularComponent().getDbId());
+      assertEquals((Integer) 450856, res.getReviseds().get(0).getDbId());
+      assertEquals((Integer) 1527321, res.getRevieweds().get(0).getDbId());
+
+      assertEquals(true, res.getIsChimeric());
 
-	@Autowired
-	ReactomeComplexParser parser ;
-	@Before
-	public void setUp() throws Exception {
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
-	@After
-	public void tearDown() throws Exception {
-	}
+  @Test
+  public void testUpdateObjectFromDb() {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/complex.xml");
+      ReactomeComplex res = parser.parseObject(document.getChildNodes().item(0));
 
-	@Test
-	public void testParseObject() {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/complex.xml");
-			ReactomeComplex res = parser.parseObject(document.getChildNodes().item(0));
-			assertNotNull(res);
-			
-			assertEquals((Integer)139947,res.getCreated().getDbId());
-			assertEquals((Integer)3896793,res.getDbId());
-			assertEquals("((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin-1 dimer (name copied from entity in Homo sapiens) [cytosol]",res.getDisplayName());
-			assertEquals((Integer)70101,res.getCompartments().get(0).getDbId());
-			assertEquals((Integer)453350,res.getInferredFroms().get(1).getDbId());
-			assertEquals("((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin-1 dimer (name copied from entity in Homo sapiens)",res.getNames().get(0));
-			assertEquals((Integer)143353,res.getSummations().get(0).getDbId());
-			assertEquals((Integer)29418,res.getHasComponents().get(2).getDbId());
-			assertEquals((Integer)48895,res.getSpecies().getDbId());
-			assertEquals((Integer)48895,res.getSpecies().getDbId());
-			assertEquals((Integer)70101,res.getIncludedLocations().get(0).getDbId());
-			assertEquals((Integer)1470028,res.getGoCellularComponent().getDbId());
-			assertEquals((Integer)450856,res.getReviseds().get(0).getDbId());
-			assertEquals((Integer)1527321,res.getRevieweds().get(0).getDbId());
-			
-			
-			assertEquals(true,res.getIsChimeric());
+      rc.updateOnlyIdFields(res);
+      assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getInferredFroms().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getSummations().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getHasComponents().get(2).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getIncludedLocations().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getGoCellularComponent().getStatus());
 
-		} catch (Exception e) {
-			e.printStackTrace();
-			fail("Unknown exception");
-		}
-	}
-	@Test
-	public void testUpdateObjectFromDb() {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/complex.xml");
-			ReactomeComplex res = parser.parseObject(document.getChildNodes().item(0));
-			
-			rc.updateOnlyIdFields(res);
-			assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getInferredFroms().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getSummations().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getHasComponents().get(2).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getIncludedLocations().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getGoCellularComponent().getStatus());
-			
-		} catch (Exception e) {
-			e.printStackTrace();
-			fail("Unknown exception");
-		}
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      fail("Unknown exception");
+    }
+  }
 }
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java
index 08ea34aa2b..8a46281582 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java
@@ -15,64 +15,64 @@ import lcsb.mapviewer.reactome.model.ReactomeDefinedSet;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeDefinedSetParserTest extends ReactomeTestFunctions {
-	Logger									 logger	= Logger.getLogger(ReactomeDefinedSetParserTest.class);
+  Logger logger = Logger.getLogger(ReactomeDefinedSetParserTest.class);
 
-	@Autowired
-	ReactomeDefinedSetParser parser;
+  @Autowired
+  ReactomeDefinedSetParser parser;
 
-	@Before
-	public void setUp() throws Exception {
-	}
+  @Before
+  public void setUp() throws Exception {
+  }
 
-	@After
-	public void tearDown() throws Exception {
-	}
+  @After
+  public void tearDown() throws Exception {
+  }
 
-	@Test
-	public void testParseObject() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/definedSet.xml");
-			ReactomeDefinedSet res = parser.parseObject(document.getChildNodes().item(0));
-			assertNotNull(res);
-			assertEquals((Integer) 453352, res.getCreated().getDbId());
-			assertEquals((Integer) 453350, res.getDbId());
-			assertEquals((Integer) 453376, res.getModified().get(0).getDbId());
-			assertEquals((Integer) 1107637, res.getStableIdentifier().getDbId());
-			assertEquals((Integer) 70101, res.getCompartments().get(0).getDbId());
-			assertEquals((Integer) 9178869, res.getInferredTos().get(0).getDbId());
-			assertEquals((Integer) 453360, res.getHasMembers().get(0).getDbId());
-			assertEquals((Integer) 48887, res.getSpecies().get(0).getDbId());
-			assertEquals((Integer) 445353, res.getAuthored().getDbId());
+  @Test
+  public void testParseObject() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/definedSet.xml");
+      ReactomeDefinedSet res = parser.parseObject(document.getChildNodes().item(0));
+      assertNotNull(res);
+      assertEquals((Integer) 453352, res.getCreated().getDbId());
+      assertEquals((Integer) 453350, res.getDbId());
+      assertEquals((Integer) 453376, res.getModified().get(0).getDbId());
+      assertEquals((Integer) 1107637, res.getStableIdentifier().getDbId());
+      assertEquals((Integer) 70101, res.getCompartments().get(0).getDbId());
+      assertEquals((Integer) 1227679, res.getInferredTos().get(0).getDbId());
+      assertEquals((Integer) 453360, res.getHasMembers().get(0).getDbId());
+      assertEquals((Integer) 48887, res.getSpecies().get(0).getDbId());
+      assertEquals((Integer) 445353, res.getAuthored().getDbId());
 
-			assertEquals("((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin dimer", res.getNames().get(0));
-			assertEquals("((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin dimer [cytosol]", res.getDisplayName());
+      assertEquals("((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin dimer", res.getNames().get(0));
+      assertEquals("((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin dimer [cytosol]", res.getDisplayName());
 
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
-	@Test
-	public void testUpdateObjectFromDb() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/definedSet.xml");
-			ReactomeDefinedSet res = parser.parseObject(document.getChildNodes().item(0));
+  @Test
+  public void testUpdateObjectFromDb() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/definedSet.xml");
+      ReactomeDefinedSet res = parser.parseObject(document.getChildNodes().item(0));
 
-			rc.updateOnlyIdFields(res);
-			assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getStableIdentifier().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getInferredTos().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getModified().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getHasMembers().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getSpecies().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getAuthored().getStatus());
+      rc.updateOnlyIdFields(res);
+      assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getStableIdentifier().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getInferredTos().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getModified().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getHasMembers().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getSpecies().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getAuthored().getStatus());
 
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
 }
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java
index 5207b1d290..9a4bf5a13b 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java
@@ -15,55 +15,55 @@ import lcsb.mapviewer.reactome.model.ReactomeGenomeEncodedEntity;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeGenomeEncodedEntityParserTest extends ReactomeTestFunctions {
-	Logger														logger = Logger.getLogger(ReactomeGenomeEncodedEntityParserTest.class);
+  Logger logger = Logger.getLogger(ReactomeGenomeEncodedEntityParserTest.class);
 
-	@Autowired
-	ReactomeGenomeEncodedEntityParser	parser = new ReactomeGenomeEncodedEntityParser();
+  @Autowired
+  ReactomeGenomeEncodedEntityParser parser = new ReactomeGenomeEncodedEntityParser();
 
-	@Before
-	public void setUp() throws Exception {
-	}
+  @Before
+  public void setUp() throws Exception {
+  }
 
-	@After
-	public void tearDown() throws Exception {
-	}
+  @After
+  public void tearDown() throws Exception {
+  }
 
-	@Test
-	public void testParseObject() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/genomeEncodedEntity.xml");
-			ReactomeGenomeEncodedEntity res = parser.parseObject(document.getChildNodes().item(0));
-			assertNotNull(res);
-			assertEquals((Integer) 500674, res.getDbId());
-			assertEquals((Integer) 500675, res.getCreated().getDbId());
-			assertEquals((Integer) 500696, res.getModified().get(0).getDbId());
-			assertEquals((Integer) 1106207, res.getStableIdentifier().getDbId());
-			assertEquals((Integer) 876, res.getCompartments().get(0).getDbId());
-			assertEquals((Integer) 48887, res.getSpecies().getDbId());
-			assertEquals("unidentified caspase acting on ZO-2", res.getNames().get(0));
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+  @Test
+  public void testParseObject() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/genomeEncodedEntity.xml");
+      ReactomeGenomeEncodedEntity res = parser.parseObject(document.getChildNodes().item(0));
+      assertNotNull(res);
+      assertEquals((Integer) 500674, res.getDbId());
+      assertEquals((Integer) 500675, res.getCreated().getDbId());
+      assertEquals((Integer) 160533, res.getModified().get(0).getDbId());
+      assertEquals((Integer) 1104055, res.getStableIdentifier().getDbId());
+      assertEquals((Integer) 876, res.getCompartments().get(0).getDbId());
+      assertEquals((Integer) 48887, res.getSpecies().getDbId());
+      assertEquals("unidentified caspase acting on ZO-2", res.getNames().get(0));
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
-	@Test
-	public void testUpdateObjectFromDb() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/genomeEncodedEntity.xml");
-			ReactomeGenomeEncodedEntity res = parser.parseObject(document.getChildNodes().item(0));
+  @Test
+  public void testUpdateObjectFromDb() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/genomeEncodedEntity.xml");
+      ReactomeGenomeEncodedEntity res = parser.parseObject(document.getChildNodes().item(0));
 
-			rc.updateOnlyIdFields(res);
-			assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getModified().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getStableIdentifier().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
+      rc.updateOnlyIdFields(res);
+      assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getModified().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getStableIdentifier().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getCompartments().get(0).getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
 
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
 }
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java
index 826e059e5d..26ac073f06 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java
@@ -14,67 +14,69 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeReferenceGeneProductParserTest extends ReactomeTestFunctions {
-	Logger															logger	= Logger.getLogger(ReactomeReferenceGeneProductParserTest.class);
+  Logger logger = Logger.getLogger(ReactomeReferenceGeneProductParserTest.class);
 
-	@Autowired
-	ReactomeReferenceGeneProductParser	parser	= new ReactomeReferenceGeneProductParser();
+  @Autowired
+  ReactomeReferenceGeneProductParser parser = new ReactomeReferenceGeneProductParser();
 
-	@Before
-	public void setUp() throws Exception {
-	}
+  @Before
+  public void setUp() throws Exception {
+  }
 
-	@After
-	public void tearDown() throws Exception {
-	}
+  @After
+  public void tearDown() throws Exception {
+  }
 
-	@Test
-	public void testParseObject() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/referenceGeneProduct.xml");
-			ReactomeReferenceGeneProduct res = parser.parseObject(document.getChildNodes().item(0));
-			assertNotNull(res);
-			assertEquals((Integer) 4546409, res.getCreated().getDbId());
-			assertEquals((Integer) 4556528, res.getDbId());
-			assertEquals("Ensembl:DDB0184541", res.getDisplayName());
-			assertEquals("DDB0184541", res.getIdentifier());
-			assertEquals("ENSG00000148672", res.getOtherIdentifier().get(0));
-			assertEquals("A7319A840F57FBB2", res.getChecksum());
-			assertEquals(
-					"CATALYTIC ACTIVITY L-glutamate + H(2)O + NAD(P)(+) = 2-oxoglutarate + NH(3) + NAD(P)H.ENZYME REGULATION Subject to allosteric regulation. Activated by ADP. Inhibited by GTP and ATP. ADP can occupy the NADH binding site and activate the enzyme.SUBUNIT Homohexamer.PTM Stoichiometry shows that ADP-ribosylation occurs in one subunit per catalytically active homohexamer.DISEASE Familial hyperinsulinemic hypoglycemia 6 (HHF6) [MIM:606762]: Familial hyperinsulinemic hypoglycemia [MIM:256450], also referred to as congenital hyperinsulinism, nesidioblastosis, or persistent hyperinsulinemic hypoglycemia of infancy (PPHI), is the most common cause of persistent hypoglycemia in infancy and is due to defective negative feedback regulation of insulin secretion by low glucose levels. In HHF6 elevated oxidation rate of glutamate to alpha-ketoglutarate stimulates insulin secretion in the pancreatic beta cells, while they impair detoxification of ammonium in the liver. Note=The disease is caused by mutations affecting the gene represented in this entry.SIMILARITY Belongs to the Glu/Leu/Phe/Val dehydrogenases family.",
-					res.getComments().get(0));
-			assertEquals("recommendedName: Glutamate dehydrogenase 1, mitochondrial shortName:GDH 1 ecNumber1.4.1.3/ecNumber ", res.getDescriptions().get(0));
-			assertEquals("GLUD1", res.getGeneNames().get(0));
-			assertEquals("3D-structure", res.getKeywords().get(0));
-			assertEquals("Q5TBU3", res.getSecondaryIdentifiers().get(0));
-			assertEquals("false", res.getIsSequenceChanged());
-			assertEquals((Integer) 558, res.getSequenceLength());
+  @Test
+  public void testParseObject() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/referenceGeneProduct.xml");
+      ReactomeReferenceGeneProduct res = parser.parseObject(document.getChildNodes().item(0));
+      assertNotNull(res);
+      assertEquals((Integer) 4546409, res.getCreated().getDbId());
+      assertEquals((Integer) 4556528, res.getDbId());
+      assertEquals("Ensembl:DDB0184541", res.getDisplayName());
+      assertEquals("DDB0184541", res.getIdentifier());
+      assertEquals("ENSG00000148672", res.getOtherIdentifier().get(0));
+      assertEquals("A7319A840F57FBB2", res.getChecksum());
+      assertEquals(
+          "CATALYTIC ACTIVITY L-glutamate + H(2)O + NAD(P)(+) = 2-oxoglutarate + NH(3) + NAD(P)H.ENZYME REGULATION Subject to allosteric regulation. Activated by ADP. Inhibited by GTP and ATP. ADP can occupy the NADH binding site and activate the enzyme.SUBUNIT Homohexamer.PTM Stoichiometry shows that ADP-ribosylation occurs in one subunit per catalytically active homohexamer.DISEASE Familial hyperinsulinemic hypoglycemia 6 (HHF6) [MIM:606762]: Familial hyperinsulinemic hypoglycemia [MIM:256450], also referred to as congenital hyperinsulinism, nesidioblastosis, or persistent hyperinsulinemic hypoglycemia of infancy (PPHI), is the most common cause of persistent hypoglycemia in infancy and is due to defective negative feedback regulation of insulin secretion by low glucose levels. In HHF6 elevated oxidation rate of glutamate to alpha-ketoglutarate stimulates insulin secretion in the pancreatic beta cells, while they impair detoxification of ammonium in the liver. Note=The disease is caused by mutations affecting the gene represented in this entry.SIMILARITY Belongs to the Glu/Leu/Phe/Val dehydrogenases family.",
+          res.getComments().get(0));
+      assertEquals(
+          "recommendedName: Glutamate dehydrogenase 1, mitochondrial shortName:GDH 1 ecNumber1.4.1.3/ecNumber ",
+          res.getDescriptions().get(0));
+      assertEquals("GLUD1", res.getGeneNames().get(0));
+      assertEquals("3D-structure", res.getKeywords().get(0));
+      assertEquals("Q5TBU3", res.getSecondaryIdentifiers().get(0));
+      assertEquals("false", res.getIsSequenceChanged());
+      assertEquals((Integer) 558, res.getSequenceLength());
 
-			assertEquals((Integer) 2, res.getReferenceDatabase().getDbId());
-			assertEquals((Integer) 48895, res.getSpecies().getDbId());
-			assertEquals((Integer) 10030875, res.getReferenceGenes().get(0).getDbId());
+      assertEquals((Integer) 2, res.getReferenceDatabase().getDbId());
+      assertEquals((Integer) 48895, res.getSpecies().getDbId());
+      assertEquals((Integer) 11351910, res.getReferenceGenes().get(0).getDbId());
 
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
-	@Test
-	public void testUpdateObjectFromDb() throws Exception {
-		try {
-			Document document = getXmlDocumentFromFile("testFiles/reactome/referenceGeneProduct.xml");
-			ReactomeReferenceGeneProduct res = parser.parseObject(document.getChildNodes().item(0));
+  @Test
+  public void testUpdateObjectFromDb() throws Exception {
+    try {
+      Document document = getXmlDocumentFromFile("testFiles/reactome/referenceGeneProduct.xml");
+      ReactomeReferenceGeneProduct res = parser.parseObject(document.getChildNodes().item(0));
 
-			rc.updateOnlyIdFields(res);
-			assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getReferenceDatabase().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
-			assertEquals(ReactomeStatus.FULL, res.getReferenceGenes().get(0).getStatus());
+      rc.updateOnlyIdFields(res);
+      assertEquals(ReactomeStatus.FULL, res.getCreated().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getReferenceDatabase().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getSpecies().getStatus());
+      assertEquals(ReactomeStatus.FULL, res.getReferenceGenes().get(0).getStatus());
 
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
 }
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java
index 2f3fba1e98..08a30caf7c 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java
@@ -39,7 +39,7 @@ public class ReactomeReferenceIsoformParserTest extends ReactomeTestFunctions {
 			assertEquals((Integer) 2, res.getReferenceDatabase().getDbId());
 			assertEquals("false", res.getIsSequenceChanged());
 			assertEquals((Integer) 48887, res.getSpecies().getDbId());
-			assertEquals((Integer) 10030875, res.getReferenceGenes().get(0).getDbId());
+			assertEquals((Integer) 11351910, res.getReferenceGenes().get(0).getDbId());
 			assertEquals((Integer) 192971, res.getReferenceTranscripts().get(0).getDbId());
 			assertEquals((Integer) 402286, res.getIsoformParents().get(0).getDbId());
 			assertEquals("UniProt:P02545-1 LMNA", res.getDisplayName());
diff --git a/reactome/src/test/resources/test-dataSource.xml b/reactome/src/test/resources/test-dataSource.xml
new file mode 100644
index 0000000000..85af9016f8
--- /dev/null
+++ b/reactome/src/test/resources/test-dataSource.xml
@@ -0,0 +1,38 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+		http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
+		http://www.springframework.org/schema/tx 
+		http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
+		http://www.springframework.org/schema/context 
+		http://www.springframework.org/schema/context/spring-context-4.0.xsd">
+
+	<context:property-placeholder	location="classpath:test-db.properties" />
+
+
+	<!-- Data Source Declaration -->
+	<bean id="DataSource"
+		class="com.mchange.v2.c3p0.ComboPooledDataSource"
+		destroy-method="close">
+		<property name="driverClass" value="org.postgresql.Driver" />
+		<property name="jdbcUrl" value="${database.uri}" />
+		<property name="user" value="${database.username}" />
+		<property name="password" value="${database.password}" />
+		<property name="maxPoolSize" value="90" />
+		<property name="maxStatements" value="5" />
+		<property name="minPoolSize" value="5" />
+	</bean>
+
+    <bean id="DbInit" class="lcsb.mapviewer.persist.CustomDatabasePopulator">
+        <property name="dataSource"><ref bean="DataSource"/></property>
+    </bean>
+    
+	<bean id="startupScripts" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
+        <property name="dataSource"><ref bean="DataSource"/></property>
+        <property name="databasePopulator"><ref bean="DbInit"/></property>
+        <property name="enabled" value="true"/>
+    </bean>
+
+</beans>
diff --git a/reactome/src/test/resources/test-db.properties b/reactome/src/test/resources/test-db.properties
new file mode 100644
index 0000000000..8e0d1e79f3
--- /dev/null
+++ b/reactome/src/test/resources/test-db.properties
@@ -0,0 +1,3 @@
+database.uri=jdbc:postgresql://localhost:5432/map_viewer-test
+database.username=map_viewer
+database.password=123qweasdzxc
\ No newline at end of file
diff --git a/reactome/testFiles/reactome/definedSet.xml b/reactome/testFiles/reactome/definedSet.xml
index 10a7f419c2..20c1ceed29 100644
--- a/reactome/testFiles/reactome/definedSet.xml
+++ b/reactome/testFiles/reactome/definedSet.xml
@@ -24,14 +24,9 @@
 		<schemaClass>EntityCompartment</schemaClass>
 	</compartment>
 	<inferredTo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="definedSet">
-		<dbId>9178869</dbId>
-		<displayName>((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin dimer [cytosol]</displayName>
-		<schemaClass>DefinedSet</schemaClass>
-	</inferredTo>
-	<inferredTo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="definedSet">
-		<dbId>4142959</dbId>
-		<displayName>((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin dimer [cytosol]</displayName>
-		<schemaClass>DefinedSet</schemaClass>
+		<dbId>1227679</dbId>
+		<displayName>((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin-1 [cytosol]</displayName>
+		<schemaClass>EntityWithAccessionedSequence</schemaClass>
 	</inferredTo>
 	<name>((1,6)-alpha-glucosyl)poly((1,4)-alpha-glucosyl)glycogenin dimer</name>
 	<hasMember xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="complex">
diff --git a/reactome/testFiles/reactome/genomeEncodedEntity.xml b/reactome/testFiles/reactome/genomeEncodedEntity.xml
index 276ac167a1..cf98f2f7fd 100644
--- a/reactome/testFiles/reactome/genomeEncodedEntity.xml
+++ b/reactome/testFiles/reactome/genomeEncodedEntity.xml
@@ -7,17 +7,17 @@
 	</created>
 	<dbId>500674</dbId>
 	<displayName>unidentified caspase acting on ZO-2 [plasma membrane]</displayName>
-	<modified>
-		<dbId>500696</dbId>
-		<displayName>Matthews, L, 2010-02-04</displayName>
-		<schemaClass>InstanceEdit</schemaClass>
-	</modified>
+	<modified>
+		<dbId>160533</dbId>
+		<displayName>Schmidt, EE, 2005-03-23 05:24:35</displayName>
+		<schemaClass>InstanceEdit</schemaClass>
+	</modified>
 	<schemaClass>GenomeEncodedEntity</schemaClass>
-	<stableIdentifier>
-		<dbId>1106207</dbId>
-		<displayName>REACT_22003.1</displayName>
-		<schemaClass>StableIdentifier</schemaClass>
-	</stableIdentifier>
+	<stableIdentifier>
+		<dbId>1104055</dbId>
+		<displayName>REACT_83785.9</displayName>
+		<schemaClass>StableIdentifier</schemaClass>
+	</stableIdentifier>
 	<compartment>
 		<dbId>876</dbId>
 		<displayName>plasma membrane</displayName>
diff --git a/reactome/testFiles/reactome/referenceGeneProduct.xml b/reactome/testFiles/reactome/referenceGeneProduct.xml
index e60c7b6e11..49b32f7720 100644
--- a/reactome/testFiles/reactome/referenceGeneProduct.xml
+++ b/reactome/testFiles/reactome/referenceGeneProduct.xml
@@ -20,8 +20,8 @@
 		<schemaClass>Species</schemaClass>
 	</species>
 	<referenceGene>
-		<dbId>10030875</dbId>
-		<displayName>ENSEMBL:DDB_G0292748</displayName>
+		<dbId>11351910</dbId>
+		<displayName>BioGPS Gene:1 A1BG</displayName>
 		<schemaClass>ReferenceDNASequence</schemaClass>
 	</referenceGene>
 		
diff --git a/reactome/testFiles/reactome/referenceIsoform.xml b/reactome/testFiles/reactome/referenceIsoform.xml
index f5286c171f..d45358ff87 100644
--- a/reactome/testFiles/reactome/referenceIsoform.xml
+++ b/reactome/testFiles/reactome/referenceIsoform.xml
@@ -382,8 +382,8 @@
 		<schemaClass>Species</schemaClass>
 	</species>
 	<referenceGene>
-		<dbId>10030875</dbId>
-		<displayName>ENSEMBL:ENSG00000160789</displayName>
+		<dbId>11351910</dbId>
+		<displayName>BioGPS Gene:1 A1BG</displayName>
 		<schemaClass>ReferenceDNASequence</schemaClass>
 	</referenceGene>
 	<referenceTranscript>
-- 
GitLab