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 ofIFragmenter
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 asIAtomContainer
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:
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 void
generateFragments(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 asIAtomContainer
objects.String[]
getFrameworks()
Get frameworks as SMILES strings.IAtomContainer[]
getFrameworksAsContainers()
Get frameworks asIAtomContainer
as objects.String[]
getRingSystems()
Get the ring system fragments as SMILES strings.IAtomContainer[]
getRingSystemsAsContainers()
Get rings systems asIAtomContainer
objects.static IAtomContainer
scaffold(IAtomContainer mol)
Computes the Murcko Scaffold for the provided molecule in linear time.void
setComputeRingFragments(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 aMoleculeHashGenerator
to 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:
generateFragments
in 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:
getFragments
in interfaceIFragmenter
- Returns:
- a String[] of the fragments.
- See Also:
getRingSystems()
,getRingSystemsAsContainers()
,getFrameworks()
,getFrameworksAsContainers()
-
getFragmentsAsContainers
public IAtomContainer[] getFragmentsAsContainers()
Get all frameworks and ring systems asIAtomContainer
objects.- Specified by:
getFragmentsAsContainers
in 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 asIAtomContainer
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 asIAtomContainer
as objects.- Returns:
- an array of frameworks.
-
-