public void createDNAPanel() {

		if (dnaPanel != null)
			return;

		dnaPanel = new JPanel(new BorderLayout(0, 0));
		dnaPanel.setOpaque(false);
		if (dnaScroller == null) {
			dnaScroller = new DNAScrollerWithRNA();
			dnaScroller.setTranscriptionDT(20);
		}
		dnaScroller.setOpaque(false);
		dnaScroller.setHighlightColor(Color.green);
		dnaScroller.setTranslationDT(100);
		dnaScroller.setStartTranslationEffectDt(10);
		dnaScroller.setStartTranscriptionEffectDt(10);
		dnaScroller.addRNATranscriptionListener(this);
		dnaScroller.addRNATranslationListener(this);
		dnaScroller.setStartTranscriptionWithEffect(true);
		dnaScroller.setStartTranslationWithEffect(true);
		dnaScroller.setGotoTranslationAfterTranscription(true);
		dnaScroller.reset();
		CustomBevelBorder border = new CustomBevelBorder(CustomBevelBorder.LOWERED);
		border.hideSide(BorderLayout.NORTH);
		dnaPanel.setBorder(border);
		dnaPanel.add(dnaScroller, BorderLayout.CENTER);

		Dimension buttonDimension = new Dimension(20, 20);

		dnaButtonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
		dnaPanel.add(dnaButtonPanel, BorderLayout.SOUTH);

		JButton button = new JButton(animationIcon);
		button.setPreferredSize(buttonDimension);
		button.setToolTipText("Customize protein synthesis animations");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (proSynProp == null)
					proSynProp = new ProteinSynthesisModelProperties(AtomContainer.this);
				proSynProp.createDialog(AtomContainer.this).setVisible(true);
			}
		});
		dnaButtonPanel.add(button);

		button = new JButton(inputDNAIcon);
		button.setToolTipText("Type, copy or paste the DNA code on the sense strand (the 5'-3' strand)");
		button.setPreferredSize(buttonDimension);
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				inputDNAString();
				view.removeAllObjects();
			}
		});
		dnaButtonPanel.add(button);

		final Action reset = view.getActionMap().get("Reload");
		button = new JButton((Icon) reset.getValue(Action.SMALL_ICON));
		button.setPreferredSize(buttonDimension);
		button.setToolTipText("Reset");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				enableTranslationActions(true);
				dnaPlayButton.setEnabled(true);
				dnaScroller.reset();
				reset.actionPerformed(e);
			}
		});
		dnaButtonPanel.add(button);

		final Action stop = view.getActionMap().get("Stop");
		dnaStopButton = new JButton((Icon) stop.getValue(Action.SMALL_ICON));
		dnaStopButton.setPreferredSize(buttonDimension);
		dnaStopButton.setToolTipText("Pause");
		dnaStopButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dnaPlayButton.setEnabled(true);
				dnaStepButton.setEnabled(true);
				dnaScroller.suspendSimulation();
				stop.actionPerformed(e);
			}
		});
		dnaButtonPanel.add(dnaStopButton);

		dnaStepButton = new JButton(new ImageIcon(ModelerUtilities.class.getResource("images/StepForward.gif")));
		dnaStepButton.setPreferredSize(buttonDimension);
		dnaStepButton.setToolTipText("Step by step");
		dnaStepButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dnaScroller.doOneStep();
			}
		});
		dnaButtonPanel.add(dnaStepButton);

		final Action play = view.getActionMap().get("Play");
		dnaPlayButton = new JButton((Icon) play.getValue(Action.SMALL_ICON));
		dnaPlayButton.setToolTipText("Run");
		dnaPlayButton.setPreferredSize(buttonDimension);
		dnaPlayButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dnaScroller.setGotoTranslationAfterTranscription(true);
				dnaPlayButton.setEnabled(false);
				dnaStepButton.setEnabled(false);
				if (!dnaScroller.isTranscriptionEnded()) {
					dnaScroller.resumeSimulation();
				}
				else {
					if (!dnaScroller.isTranslationEnded()) {
						dnaScroller.resumeSimulation();
					}
					if (model.getJob().isStopped() || model.getJob().isTurnedOff()) {
						Action play = view.getActionMap().get("Play");
						if (play != null)
							play.actionPerformed(e);
					}
				}
			}
		});
		dnaButtonPanel.add(dnaPlayButton);

	}