Package org.openscience.cdk.fragment
Class MurckoFragmenter
java.lang.Object
org.openscience.cdk.fragment.MurckoFragmenter
- All Implemented Interfaces:
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 Summary
ConstructorsConstructorDescriptionInstantiate Murcko fragmenter.MurckoFragmenter
(boolean singleFrameworkOnly, int minimumFragmentSize) Instantiate Murcko fragmenter.MurckoFragmenter
(boolean singleFrameworkOnly, int minimumFragmentSize, MoleculeHashGenerator generator) Instantiate Murcko fragmenter. -
Method Summary
Modifier and TypeMethodDescriptionvoid
generateFragments
(IAtomContainer atomContainer) Perform the fragmentation procedure.String[]
This returns the frameworks and ring systems from a Murcko fragmentation.Get all frameworks and ring systems asIAtomContainer
objects.String[]
Get frameworks as SMILES strings.Get frameworks asIAtomContainer
as objects.String[]
Get the ring system fragments as SMILES strings.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 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
- 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 Details
-
setComputeRingFragments
public void setComputeRingFragments(boolean val) Sets whether to calculate ring fragments (true by default).- Parameters:
val
- true/false
-
generateFragments
Perform the fragmentation procedure.- Specified by:
generateFragments
in interfaceIFragmenter
- Parameters:
atomContainer
- The input molecule- Throws:
CDKException
-
scaffold
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
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:
-
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
Get the ring system fragments as SMILES strings.- Returns:
- a String[] of the fragments.
-
getRingSystemsAsContainers
Get rings systems asIAtomContainer
objects.- Returns:
- an array of ring systems.
-
getFrameworks
Get frameworks as SMILES strings.- Returns:
- an array of SMILES strings
-
getFrameworksAsContainers
Get frameworks asIAtomContainer
as objects.- Returns:
- an array of frameworks.
-