Package org.openscience.cdk.fragment
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 ofIFragmenterthis 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 asIAtomContainerobjects. 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:
ExhaustiveFragmenter- Source code:
- main
- Belongs to CDK module:
- fragment
- Keywords:
- fragment, framework
-
-
Constructor Summary
Constructors Constructor Description MurckoFragmenter()Instantiate Murcko fragmenter.MurckoFragmenter(boolean singleFrameworkOnly, int minimumFragmentSize)Instantiate Murcko fragmenter.MurckoFragmenter(boolean singleFrameworkOnly, int minimumFragmentSize, MoleculeHashGenerator generator)Instantiate Murcko fragmenter.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidgenerateFragments(IAtomContainer atomContainer)Perform the fragmentation procedure.String[]getFragments()This returns the frameworks and ring systems from a Murcko fragmentation.IAtomContainer[]getFragmentsAsContainers()Get all frameworks and ring systems asIAtomContainerobjects.String[]getFrameworks()Get frameworks as SMILES strings.IAtomContainer[]getFrameworksAsContainers()Get frameworks asIAtomContaineras objects.String[]getRingSystems()Get the ring system fragments as SMILES strings.IAtomContainer[]getRingSystemsAsContainers()Get rings systems asIAtomContainerobjects.static IAtomContainerscaffold(IAtomContainer mol)Computes the Murcko Scaffold for the provided molecule in linear time.voidsetComputeRingFragments(boolean val)Sets whether to calculate ring fragments (true by default).
-
-
-
Constructor Detail
-
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- iftrue, 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- iftrue, only the true Murcko framework is generated.minimumFragmentSize- the smallest size of fragment to considergenerator- An instance of aMoleculeHashGeneratorto be used to check for duplicate fragments
-
-
Method Detail
-
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:
generateFragmentsin interfaceIFragmenter- 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:
getFragmentsin interfaceIFragmenter- Returns:
- a String[] of the fragments.
- See Also:
getRingSystems(),getRingSystemsAsContainers(),getFrameworks(),getFrameworksAsContainers()
-
getFragmentsAsContainers
public IAtomContainer[] getFragmentsAsContainers()
Get all frameworks and ring systems asIAtomContainerobjects.- Specified by:
getFragmentsAsContainersin interfaceIFragmenter- 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 asIAtomContainerobjects.- 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 asIAtomContaineras objects.- Returns:
- an array of frameworks.
-
-