void mutateSelectedAtom() {
		if (!(selectedComponent instanceof Atom))
			return;
		final Atom at = (Atom) selectedComponent;
		if (at.isAminoAcid()) {
			EventQueue.invokeLater(new Runnable() {
				public void run() {
					if (acidPopupMenu == null)
						acidPopupMenu = new AminoAcidPopupMenu();
					acidPopupMenu.setAtom(at);
					acidPopupMenu.show(AtomisticView.this, (int) at.getRx(), (int) at.getRy());
				}
			});
		} else if (at.isNucleotide() && at.getID() != Element.ID_SP) {
			EventQueue.invokeLater(new Runnable() {
				public void run() {
					if (nucleotidePopupMenu == null)
						nucleotidePopupMenu = new NucleotidePopupMenu();
					nucleotidePopupMenu.setAtom(at);
					nucleotidePopupMenu.show(AtomisticView.this, (int) at.getRx(), (int) at.getRy());
				}
			});
		} else if (at.getID() != Element.ID_SP && at.getID() != Element.ID_MO) {
			EventQueue.invokeLater(new Runnable() {
				public void run() {
					if (atomMutationPopupMenu == null)
						atomMutationPopupMenu = new AtomMutationPopupMenu();
					atomMutationPopupMenu.setAtom(at);
					atomMutationPopupMenu.show(AtomisticView.this, (int) at.getRx(), (int) at.getRy());
				}
			});
		}
	}