Class MurckoFragmenter

java.lang.Object
org.openscience.cdk.fragment.MurckoFragmenter
All Implemented Interfaces:
IFragmenter

public class MurckoFragmenter extends Object implements IFragmenter
An implementation of the Murcko fragmenation method [Bemis, G.W. and Murcko, M.A. . Journal of Medicinal Chemistry. 1996. 39]. As an implementation of IFragmenter this class will return the Murcko frameworks (i.e., ring systems + linkers) along with the ring systems ia getFragments. The class also provides methods to extract the ring systems and frameworks separately. For all these methods, the user can retrieve the substructures as canonical SMILES strings or as IAtomContainer objects. Note that in contrast to the original paper which implies that a single molecule has a single framework, this class returns multiple frameworks consisting of all combinations of ring systems and linkers. The "true" Murcko framework is simply the largest framework.
Author:
Rajarshi Guha
See Also:
Source code:
main
Belongs to CDK module:
fragment
Keywords:
fragment, framework
  • Constructor Details

    • MurckoFragmenter

      public MurckoFragmenter()
      Instantiate Murcko fragmenter. Considers fragments with 5 or more atoms and generates multiple frameworks if available.
    • MurckoFragmenter

      public MurckoFragmenter(boolean singleFrameworkOnly, int minimumFragmentSize)
      Instantiate Murcko fragmenter.
      Parameters:
      singleFrameworkOnly - if true, only the true Murcko framework is generated.
      minimumFragmentSize - the smallest size of fragment to consider
    • MurckoFragmenter

      public MurckoFragmenter(boolean singleFrameworkOnly, int minimumFragmentSize, MoleculeHashGenerator generator)
      Instantiate Murcko fragmenter.
      Parameters:
      singleFrameworkOnly - if true, only the true Murcko framework is generated.
      minimumFragmentSize - the smallest size of fragment to consider
      generator - An instance of a MoleculeHashGenerator to be used to check for duplicate fragments
  • Method Details

    • setComputeRingFragments

      public void setComputeRingFragments(boolean val)
      Sets whether to calculate ring fragments (true by default).
      Parameters:
      val - true/false
    • generateFragments

      public void generateFragments(IAtomContainer atomContainer) throws CDKException
      Perform the fragmentation procedure.
      Specified by:
      generateFragments in interface IFragmenter
      Parameters:
      atomContainer - The input molecule
      Throws:
      CDKException
    • scaffold

      public static IAtomContainer scaffold(IAtomContainer mol)
      Computes the Murcko Scaffold for the provided molecule in linear time. Note the return value contains the same atoms/bonds as in the input and an additional clone and valence adjustments may be required.
      Parameters:
      mol - the molecule
      Returns:
      the atoms and bonds in the scaffold
    • getFragments

      public String[] getFragments()
      This returns the frameworks and ring systems from a Murcko fragmentation. To get frameworks, ring systems and side chains seperately, use the respective functions
      Specified by:
      getFragments in interface IFragmenter
      Returns:
      a String[] of the fragments.
      See Also:
    • getFragmentsAsContainers

      public IAtomContainer[] getFragmentsAsContainers()
      Get all frameworks and ring systems as IAtomContainer objects.
      Specified by:
      getFragmentsAsContainers in interface IFragmenter
      Returns:
      An array of structures representing frameworks and ring systems
    • getRingSystems

      public String[] getRingSystems()
      Get the ring system fragments as SMILES strings.
      Returns:
      a String[] of the fragments.
    • getRingSystemsAsContainers

      public IAtomContainer[] getRingSystemsAsContainers()
      Get rings systems as IAtomContainer objects.
      Returns:
      an array of ring systems.
    • getFrameworks

      public String[] getFrameworks()
      Get frameworks as SMILES strings.
      Returns:
      an array of SMILES strings
    • getFrameworksAsContainers

      public IAtomContainer[] getFrameworksAsContainers()
      Get frameworks as IAtomContainer as objects.
      Returns:
      an array of frameworks.