diff --git a/commons/src/main/java/lcsb/mapviewer/common/geometry/ColorParser.java b/commons/src/main/java/lcsb/mapviewer/common/geometry/ColorParser.java
index f78e460818ca7672354874b712036e714d35a789..76ee7ad30585e439b7b417e264c22dd5411e30db 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/geometry/ColorParser.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/geometry/ColorParser.java
@@ -14,61 +14,64 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException;
  */
 public class ColorParser {
 
-	/**
-	 * Base of the hex representation.
-	 */
-	private static final int HEX_BASE										 = 16;
+  /**
+   * Base of the hex representation.
+   */
+  private static final int HEX_BASE = 16;
 
-	/**
-	 * Length of the string describing color in rgb: "#RRGGBB".
-	 */
-	private static final int COLOR_STRING_LENGTH				 = 7;
+  /**
+   * Length of the string describing color in RGB: "#RRGGBB".
+   */
+  private static final int COLOR_STRING_LENGTH = 7;
 
-	/**
-	 * Where starts description of red color in stirng representing color.
-	 */
-	private static final int COLOR_SUBSTRING_START_RED	 = 1;
+  /**
+   * Where starts description of red color in string representing color.
+   */
+  private static final int COLOR_SUBSTRING_START_RED = 1;
 
-	/**
-	 * Where starts description of green color in stirng representing color.
-	 */
-	private static final int COLOR_SUBSTRING_START_GREEN = 3;
+  /**
+   * Where starts description of green color in string representing color.
+   */
+  private static final int COLOR_SUBSTRING_START_GREEN = 3;
 
-	/**
-	 * Where starts description of blue color in stirng representing color.
-	 */
-	private static final int COLOR_SUBSTRING_START_BLUE	 = 5;
+  /**
+   * Where starts description of blue color in string representing color.
+   */
+  private static final int COLOR_SUBSTRING_START_BLUE = 5;
 
-	/**
-	 * Extracts {@link Color} from input {@link String}.
-	 * 
-	 * @param string
-	 *          text to process
-	 * @return {@link Color} obtained from input text
-	 */
-	public Color parse(String string) {
-		if (string.charAt(0) != '#') {
-			string = "#" + string;
-		}
-		if (string.length() != COLOR_STRING_LENGTH) {
-			throw new InvalidArgumentException("Invalid color value: " + string + ". Correct format: #xxxxxx (where x is a hex value)");
-		} else {
-			return new Color(Integer.valueOf(string.substring(COLOR_SUBSTRING_START_RED, COLOR_SUBSTRING_START_GREEN), HEX_BASE), //
-					Integer.valueOf(string.substring(COLOR_SUBSTRING_START_GREEN, COLOR_SUBSTRING_START_BLUE), HEX_BASE), //
-					Integer.valueOf(string.substring(COLOR_SUBSTRING_START_BLUE, COLOR_STRING_LENGTH), HEX_BASE));
-		}
-	}
+  /**
+   * Extracts {@link Color} from input {@link String}.
+   * 
+   * @param string
+   *          text to process
+   * @return {@link Color} obtained from input text
+   */
+  public Color parse(String string) {
+    if (string.charAt(0) != '#') {
+      string = "#" + string;
+    }
+    if (string.length() != COLOR_STRING_LENGTH) {
+      throw new InvalidArgumentException(
+          "Invalid color value: " + string + ". Correct format: #xxxxxx (where x is a hex value)");
+    } else {
+      return new Color(
+          Integer.valueOf(string.substring(COLOR_SUBSTRING_START_RED, COLOR_SUBSTRING_START_GREEN), HEX_BASE), //
+          Integer.valueOf(string.substring(COLOR_SUBSTRING_START_GREEN, COLOR_SUBSTRING_START_BLUE), HEX_BASE), //
+          Integer.valueOf(string.substring(COLOR_SUBSTRING_START_BLUE, COLOR_STRING_LENGTH), HEX_BASE));
+    }
+  }
 
-	/**
-	 * Converts color into list of atributes.
-	 * 
-	 * @param color color to convert
-	 * @return map with list of color attributes
-	 */
-	public Map<String, Object> colorToMap(Color color) {
-		Map<String, Object> result = new HashMap<>();
-		result.put("alpha", color.getAlpha());
-		result.put("rgb", color.getRGB());
-		return result;
-	}
+  /**
+   * Converts color into list of attributes.
+   * 
+   * @param color
+   *          color to convert
+   * @return map with list of color attributes
+   */
+  public Map<String, Object> colorToMap(Color color) {
+    Map<String, Object> result = new HashMap<>();
+    result.put("alpha", color.getAlpha());
+    result.put("rgb", color.getRGB());
+    return result;
+  }
 }
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java
index 7ba024698222814d39d7087dff1a3e87b1ce3257..e9926b9ed964c70c306b33fe2b0caf118b08006f 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java
@@ -15,8 +15,10 @@ import lcsb.mapviewer.common.XmlParser;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
 import lcsb.mapviewer.converter.annotation.XmlAnnotationParser;
+import lcsb.mapviewer.converter.model.sbml.species.ElementColorEnum;
 import lcsb.mapviewer.model.map.BioEntity;
 import lcsb.mapviewer.model.map.MiriamData;
+import lcsb.mapviewer.model.map.species.Element;
 
 public class SbmlBioEntityParser extends XmlParser {
   Logger logger = Logger.getLogger(SbmlBioEntityParser.class);
@@ -55,6 +57,11 @@ public class SbmlBioEntityParser extends XmlParser {
     }
     String notes = extractNotes(sbmlElement);
     result.setNotes(notes);
+
+    if (result instanceof Element) {
+      Element element = (Element) result;
+      element.setColor(ElementColorEnum.getColorByClass(element.getClass()));
+    }
   }
 
   private String extractNotes(AbstractNamedSBase sbmlElement) throws InvalidInputDataExecption {
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/ElementColorEnum.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/ElementColorEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..7dd12ee39863320c33205c6cd54d4d63e8ae3f43
--- /dev/null
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/ElementColorEnum.java
@@ -0,0 +1,81 @@
+package lcsb.mapviewer.converter.model.sbml.species;
+
+import java.awt.Color;
+
+import lcsb.mapviewer.common.geometry.ColorParser;
+import lcsb.mapviewer.model.map.compartment.OvalCompartment;
+import lcsb.mapviewer.model.map.compartment.SquareCompartment;
+import lcsb.mapviewer.model.map.species.AntisenseRna;
+import lcsb.mapviewer.model.map.species.Complex;
+import lcsb.mapviewer.model.map.species.Degraded;
+import lcsb.mapviewer.model.map.species.Drug;
+import lcsb.mapviewer.model.map.species.Element;
+import lcsb.mapviewer.model.map.species.Gene;
+import lcsb.mapviewer.model.map.species.GenericProtein;
+import lcsb.mapviewer.model.map.species.Ion;
+import lcsb.mapviewer.model.map.species.IonChannelProtein;
+import lcsb.mapviewer.model.map.species.Phenotype;
+import lcsb.mapviewer.model.map.species.ReceptorProtein;
+import lcsb.mapviewer.model.map.species.Rna;
+import lcsb.mapviewer.model.map.species.SimpleMolecule;
+import lcsb.mapviewer.model.map.species.TruncatedProtein;
+import lcsb.mapviewer.model.map.species.Unknown;
+
+public enum ElementColorEnum {
+  ANTISENSE_RNA(AntisenseRna.class, "#ff6666"), //
+  COMPLEX(Complex.class, "#f7f7f7"), //
+  DEGRADED(Degraded.class, "#ffcccc"), //
+  DRUG(Drug.class, "#ff00ff"), //
+  ELEMENT(Element.class, "#000000"), //
+  GENE(Gene.class, "#ffff66"), //
+  GENERIC_PROTEIN(GenericProtein.class, "ccffcc"), //
+  TRUNCATED_PROTEIN(TruncatedProtein.class, "#ffcccc"), //
+  ION(Ion.class, "#9999ff"), //
+  ION_CHANNEL(IonChannelProtein.class, "#ccffff"), //
+  OVAL_COMPARTMENT(OvalCompartment.class, "#cccc00"), //
+  PHENOTYPE(Phenotype.class, "#cc99ff"), //
+  RECEPTOR(ReceptorProtein.class, "#ffffcc"), //
+  RNA(Rna.class, "#66ff66"), //
+  SIMPLE_MOLECULE(SimpleMolecule.class, "#ccff66"), //
+  SQUARE_COMPARTMENT(SquareCompartment.class, "#cccc00"), //
+  UNKNOWN(Unknown.class, "#cccccc"), //
+  ;
+
+  private Class<? extends Element> clazz;
+  private Color color;
+
+  ColorParser colorParser = new ColorParser();
+
+  private ElementColorEnum(Class<? extends Element> clazz, String color) {
+    this.clazz = clazz;
+    if (color != null) {
+      this.color = colorParser.parse(color);
+    }
+  }
+
+  public static Color getColorByClass(Class<? extends Element> clazz) {
+    Color result = null;
+    for (ElementColorEnum type : ElementColorEnum.values()) {
+      if (type.getClazz().equals(clazz)) {
+        result = type.getColor();
+      }
+    }
+    if (result == null) {
+      for (ElementColorEnum type : ElementColorEnum.values()) {
+        if (type.getClazz().isAssignableFrom(clazz)) {
+          result = type.getColor();
+        }
+      }
+    }
+    return result;
+  }
+
+  public Class<? extends Element> getClazz() {
+    return clazz;
+  }
+
+  public Color getColor() {
+    return color;
+  }
+
+}
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java
index 2a049eecec810853e37d1db9f6255c4989176cbc..3951251a80a176ac2e88f7b4dbf2abae7fe3f82b 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java
@@ -1,5 +1,6 @@
 package lcsb.mapviewer.converter.model.sbml.species;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import java.io.FileNotFoundException;
@@ -7,6 +8,7 @@ import java.io.FileNotFoundException;
 import org.apache.log4j.Logger;
 import org.junit.Test;
 
+import lcsb.mapviewer.common.geometry.ColorParser;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
 import lcsb.mapviewer.converter.model.sbml.SbmlParser;
@@ -30,11 +32,14 @@ public class SbmlSpeciesParserTest {
   Logger logger = Logger.getLogger(SbmlSpeciesParserTest.class);
   SbmlParser parser = new SbmlParser();
 
+  ColorParser colorParser = new ColorParser();
+
   @Test
   public void testParseAntisenseRna() throws FileNotFoundException, InvalidInputDataExecption {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/antisense_rna.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof AntisenseRna);
+    assertEquals(ElementColorEnum.ANTISENSE_RNA.getColor(), element.getColor());
   }
 
   @Test
@@ -42,6 +47,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/complex.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Complex);
+    assertEquals(ElementColorEnum.COMPLEX.getColor(), element.getColor());
   }
 
   @Test
@@ -49,6 +55,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/degraded.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Degraded);
+    assertEquals(ElementColorEnum.DEGRADED.getColor(), element.getColor());
   }
 
   @Test
@@ -56,6 +63,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/drug.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Drug);
+    assertEquals(ElementColorEnum.DRUG.getColor(), element.getColor());
   }
 
   @Test
@@ -63,6 +71,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/gene.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Gene);
+    assertEquals(ElementColorEnum.GENE.getColor(), element.getColor());
   }
 
   @Test
@@ -70,6 +79,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/generic_protein.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof GenericProtein);
+    assertEquals(ElementColorEnum.GENERIC_PROTEIN.getColor(), element.getColor());
   }
 
   @Test
@@ -77,6 +87,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/ion_channel.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof IonChannelProtein);
+    assertEquals(ElementColorEnum.ION_CHANNEL.getColor(), element.getColor());
   }
 
   @Test
@@ -84,6 +95,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/ion.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Ion);
+    assertEquals(ElementColorEnum.ION.getColor(), element.getColor());
   }
 
   @Test
@@ -91,6 +103,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/phenotype.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Phenotype);
+    assertEquals(ElementColorEnum.PHENOTYPE.getColor(), element.getColor());
   }
 
   @Test
@@ -98,6 +111,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/receptor.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof ReceptorProtein);
+    assertEquals(ElementColorEnum.RECEPTOR.getColor(), element.getColor());
   }
 
   @Test
@@ -105,6 +119,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/rna.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Rna);
+    assertEquals(ElementColorEnum.RNA.getColor(), element.getColor());
   }
 
   @Test
@@ -112,6 +127,7 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/small_molecule.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof SimpleMolecule);
+    assertEquals(ElementColorEnum.SIMPLE_MOLECULE.getColor(), element.getColor());
   }
 
   @Test
@@ -126,6 +142,6 @@ public class SbmlSpeciesParserTest {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/small/unknown_species.xml"));
     Element element = model.getElementByElementId("s1");
     assertTrue(element instanceof Unknown);
+    assertEquals(ElementColorEnum.UNKNOWN.getColor(), element.getColor());
   }
-
 }