Class RingSetManipulator
- java.lang.Object
-
- org.openscience.cdk.tools.manipulator.RingSetManipulator
-
-
Constructor Summary
Constructors Constructor Description RingSetManipulator()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static List<IAtomContainer>
getAllAtomContainers(IRingSet set)
Returns all the AtomContainer's in a RingSet.static IAtomContainer
getAllInOneContainer(IRingSet ringSet)
Puts all rings of a ringSet in a single atomContainerstatic int
getAtomCount(IRingSet set)
Return the total number of atoms over all the rings in the colllection.static int
getBondCount(IRingSet set)
Return the total number of bonds over all the rings in the colllection.static IRing
getHeaviestRing(IRingSet ringSet, IBond bond)
We define the heaviest ring as the one with the highest number of double bonds.static IRingSet
getLargestRingSet(List<IRingSet> ringSystems)
Returns the largest (number of atoms) ring set in a moleculestatic IRing
getMostComplexRing(IRingSet ringSet)
Returns the ring with the highest numbers of other rings attached to it.static boolean
isSameRing(IRingSet ringSet, IAtom atom1, IAtom atom2)
Checks ifatom1
andatom2
share membership in the same ring or ring system.static void
markAromaticRings(IRingSet ringset)
Iterates over the rings in the ring set, and marks the ring aromatic if all atoms and all bonds are aromatic.static boolean
ringAlreadyInSet(IRing newRing, IRingSet ringSet)
Checks - and returns 'true' - if a certain ring is already stored in the ringset.static void
sort(IRingSet ringSet)
Sorts the rings in the set by size.
-
-
-
Method Detail
-
getAtomCount
public static int getAtomCount(IRingSet set)
Return the total number of atoms over all the rings in the colllection.- Parameters:
set
- The collection of rings- Returns:
- The total number of atoms
-
getAllInOneContainer
public static IAtomContainer getAllInOneContainer(IRingSet ringSet)
Puts all rings of a ringSet in a single atomContainer- Parameters:
ringSet
- The ringSet to use- Returns:
- The produced atomContainer
-
getLargestRingSet
public static IRingSet getLargestRingSet(List<IRingSet> ringSystems)
Returns the largest (number of atoms) ring set in a molecule- Parameters:
ringSystems
- RingSystems of a molecule- Returns:
- The largestRingSet
-
getBondCount
public static int getBondCount(IRingSet set)
Return the total number of bonds over all the rings in the colllection.- Parameters:
set
- The collection of rings- Returns:
- The total number of bonds
-
getAllAtomContainers
public static List<IAtomContainer> getAllAtomContainers(IRingSet set)
Returns all the AtomContainer's in a RingSet.- Parameters:
set
- The collection of rings- Returns:
- A list of IAtomContainer objects corresponding to individual rings
-
sort
public static void sort(IRingSet ringSet)
Sorts the rings in the set by size. The smallest ring comes first.- Parameters:
ringSet
- The collection of rings
-
getHeaviestRing
public static IRing getHeaviestRing(IRingSet ringSet, IBond bond)
We define the heaviest ring as the one with the highest number of double bonds. Needed for example for the placement of in-ring double bonds.- Parameters:
ringSet
- The collection of ringsbond
- A bond which must be contained by the heaviest ring- Returns:
- The ring with the higest number of double bonds connected to a given bond
-
getMostComplexRing
public static IRing getMostComplexRing(IRingSet ringSet)
Returns the ring with the highest numbers of other rings attached to it. If an equally complex ring is found the last one is selected allow prioritization by size withsort(IRingSet)
.- Parameters:
ringSet
- The collection of rings- Returns:
- the ring with the highest numbers of other rings attached to it.
-
isSameRing
public static boolean isSameRing(IRingSet ringSet, IAtom atom1, IAtom atom2)
Checks ifatom1
andatom2
share membership in the same ring or ring system. Membership in the same ring is checked if the RingSet contains the SSSR of a molecule; membership in the same ring or same ring system is checked if the RingSet contains all rings of a molecule.
Important: This method only returns meaningful results if
atom1
andatom2
are members of the same molecule for which the RingSet was calculated!- Parameters:
ringSet
- The collection of ringsatom1
- The first atomatom2
- The second atom- Returns:
- boolean true if
atom1
andatom2
share membership of at least one ring or ring system, false otherwise
-
ringAlreadyInSet
public static boolean ringAlreadyInSet(IRing newRing, IRingSet ringSet)
Checks - and returns 'true' - if a certain ring is already stored in the ringset. This is not a test for equality of Ring objects, but compares all Bond objects of the ring.- Parameters:
newRing
- The ring to be tested if it is already storedringSet
- The collection of rings- Returns:
- true if it is already stored
-
markAromaticRings
public static void markAromaticRings(IRingSet ringset)
Iterates over the rings in the ring set, and marks the ring aromatic if all atoms and all bonds are aromatic. This method assumes that aromaticity perception has been done before hand.- Parameters:
ringset
- The collection of rings
-
-