Class Stereochemistry


  • @PublicAPI
    public class Stereochemistry
    extends Object
    Central class for accessing functions analyzing the topology of a molecule.
    Since:
    Marvin 5.6
    • Constructor Detail

      • Stereochemistry

        public Stereochemistry()
    • Method Detail

      • getMolecule

        public MoleculeGraph getMolecule()
        Retrieves the input molecule
        Returns:
        the molecule to calculate with
      • setMolecule

        public void setMolecule​(MoleculeGraph mol)
        Specifies a molecule to calculate with.
        Parameters:
        mol - the molecule to calculate with
      • asymmetricAtomCount

        public int asymmetricAtomCount()
        Calculates the number of atoms having four different ligands.
        Returns:
        number of asymmetric atoms
      • asymmetricAtoms

        public int[] asymmetricAtoms()
        Retrieves the indexes of atom having four different ligands.
        Returns:
        indexes of asymmetric atoms
        Since:
        Marvin 5.3
      • chiralCenterCount

        public int chiralCenterCount()
        Calculates the number of chiral centers.
        Returns:
        number of chiral center atoms
      • chiralCenters

        public int[] chiralCenters()
        Determines the chiral center atoms.
        Returns:
        indexes of chiral center atoms
        Since:
        Marvin 5.3
      • graphInvariant

        public int[] graphInvariant()
      • isAsymmetricAtom

        public boolean isAsymmetricAtom​(int a)
        Determines if an atom is asymmetric or not. Asymmetric atoms have four different ligands.
        Parameters:
        a - index of the atom
        Returns:
        true if the atom is asymmetric.
      • isChiral

        public boolean isChiral()
        Determines if the molecule contains an atom with R or S stereo configuration.
        Returns:
        true if the molecule is chiral.
      • isChiralCenter

        public boolean isChiralCenter​(int a)
        Determines if an atom can be a tetrahedral stereogenic center.
        Parameters:
        a - index of the atom
        Returns:
        true if the atom is stereogenic.
      • stereo

        public String stereo​(int a)
        Calculates absolute stereo configuration of the given atom. Returns "R" or "S" correspondingly, if the atom is stereo, otherwise it returns an empty string,
        Parameters:
        a - index of the atom
        Returns:
        the absolute stereo configuration of the atom
      • stereo

        public String stereo​(int a1,
                             int a2)
        Calculates absolute stereo configuration of the given double bond. Returns "E" or "Z" correspondingly, if the bond is a stereo double bond, otherwise it returns an empty string. Double bonds in small rings are not considered stereo bonds.
        Parameters:
        a1 - index of the atom at one end of the double bond
        a2 - index of the atom at the other end of the double bond
        Returns:
        the absolute stereo configuration of the atom
      • stereoDoubleBondCount

        public int stereoDoubleBondCount()
        Calculates the number of stereo double bonds.
        Returns:
        number of stereo double bonds atoms
      • getEnantiomer

        public static <T extends MoleculeGraph> T getEnantiomer​(T m)
        Get the enantiomer pair of the given molecule
        Parameters:
        m - molecule
        Returns:
        the enantiomer pair of the original structure
      • getPossibleAtomCenteredStereoAtoms

        public static int[] getPossibleAtomCenteredStereoAtoms​(MoleculeGraph m)
        Returns the indexes of atom-centered stereoactive atoms. These stereo types are: tetrahedral stereo, axal stereo and cis-trans stereo in cases like CC1CCC(C)CC1.
        Parameters:
        m - the molecule
        Returns:
        the array of indexes or an empty array if no such atom found.
        Since:
        Marvin 5.12
      • getPossibleAtomCenteredStereoAtomsWithNoParity

        public static int[] getPossibleAtomCenteredStereoAtomsWithNoParity​(MoleculeGraph m)
        Returns the indexes of atoms that have the possibility to have tetrahedral stereo and have no exact parity set on them.
        Parameters:
        m - the molecule
        Returns:
        the array of indexes or an empty array if no such atom found.
        Since:
        Marvin 5.12