Chirality

Atoms with four different substituents can have point chirality. Chirality of molecules having no actual point chirality, but axial or planar chirality is not yet supported. The following criteria need to be fulfilled for a tetrahedral stereogenic center:

  • Conditions for tetrahedral parity need to be met.

  • In case of 2 dimensional molecules the stereo center must have a wedged bond.

The possible values of a tetrahedral stereogenic center are:

0

or atoms which are not stereogenic center.

R

For atoms which have chirality R.

S

For atoms which have chirality S.

R|S

For atoms which can have chirality but it is not specified.

Setting chirality information

The chirality type can be modified through the parity change of the stereo center described in the Parity information in 0D and Parity information in 2 or 3D sections or with the setChirality (int i, int c) function of the MoleculeGraph class.

Example
boolean success = molecule.setChirality(2, StereoConstants. CHIRALITY_R);

Getting chirality information

Chirality information can be calculated using the getChirality(int i) function of MoleculeGraph class in any spatial dimension.

Example
int c = molecule.getChirality(2)
Working example to get the parity and chirality of the atoms
/*
* Copyright (c) 1998-2014 ChemAxon Ltd. All Rights Reserved.
*/
 
import java.io.IOException;
 
import chemaxon.struc.Molecule;
import chemaxon.formats.MolImporter;
import chemaxon.struc.StereoConstants;
 
public class ParityExample {
 
/**
* Example to get the parity and chirality of the atoms.
* @param args command line arguments
* @throws java.io.IOException
*
* @version 5.1 04/24/2008
* @since Marvin 5.1
* @author Andras Volford
*/
 
public static void main(String[] args) throws IOException {
if (args.length < 1) {
System.err.println("Usage: java ParityExample filename");
System.exit(0);
}
 
// create importer for the file argument
String s = (String) args[0];
MolImporter molimp = new MolImporter(s);
 
// store the imported molecules in m
Molecule m = new Molecule();
 
// counter for molecules
int n = 0;
 
while (molimp.read(m)) { // read molecules from the file
++n; // increment counter
System.out.println("mol " + n);
 
// print parity information followed by the chirality
for (int i = 0; i < m.getAtomCount(); i++) {
int c = m.getChirality(i);
System.out.println(
i + " Parity " + m.getParity(i) +
" Chirality " +
((c == StereoConstants.CHIRALITY_R) ? "R" :
(c == StereoConstants.CHIRALITY_S) ? "S" :
("" + c)) + " " + c);
}
}
}
}