code: private List<Glyph> getInformation(Entity e) {
  		List<Glyph> list = new ArrayList<Glyph>();
  
  		// Add the molecule type before states if this is a nucleic acid or gene
  		if (e instanceof NucleicAcid || e instanceof Gene) {
  			Glyph g = factory.createGlyph();
  			g.setClazz(GlyphClazz.UNIT_OF_INFORMATION.getClazz());
  			Label label = factory.createLabel();
  			String s;
  			if(e instanceof Dna)
  				s = "mt:DNA";
  			else if(e instanceof DnaRegion)
  				s = "ct:DNA";
  			else if(e instanceof Rna)
  				s = "mt:RNA";
  			else if(e instanceof RnaRegion)
  				s = "ct:RNA";
  			else if(e instanceof Gene)
  				s = "ct:gene";
  			else
  				s = "mt:NuclAc";
  
  			label.setText(s);
  			g.setLabel(label);
  			list.add(g);
  		}
  
  		// Extract state variables
  		if(e instanceof PhysicalEntity) {
  			PhysicalEntity pe = (PhysicalEntity) e;
  			extractFeatures(pe.getFeature(), true, list);
  			extractFeatures(pe.getNotFeature(), false, list);
  		}
  
  		return list;
  	}
docs: /*
  Adds molecule type, and iterates over features of the entity and creates corresponding state
  variables. Ignores binding features and covalent-binding features.
  
  @param e entity or gene to collect features
  @return list of state variables