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 MoleculeGraphclass. 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-2022 Chemaxon. 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);
                 } 
            } 
        } 
    }