@PublicAPI public class PFGenerator extends MDGenerator
PFGenerator
class generates 2-dimensional pharmacophore
fingerprints for molecular graphs.
Basic concepts
The pharmacophore fingerprint is based on and created from atom centre
based pharmacophoric point types that are identified and assigned by the
PMapper
class.
All possible point pairs are recorded in the fingerprint and are represented
in a histogram. Bins of such histogram are associated with topological
distances (that is, length of shortest path) between pharmacophore point
pairs. (See PharmacophoreFingerprint
class for an elaborate
description.)
Typical usage
For the sake of optimal memory usage one instance of this class can generate
fingerprints for a series of molecular graphs by the consequtive call to
the generate()
method.
In most cases the generator is not intended to be used directly. When molecules
are taken from files or databases the corresponding MolecularDescriptor
s
can be generated by the appropriate MDReader
object.
Example of the direct use of the class within an application:
PMapper m = new PMapper( "pharmacophore_config.xml" ); PFGenerator gen = new PFGenerator( m ); gen.setUsePMAP( false ); // do not use existing PMAP tag in molecules PharmacophoreFingerprint pfp = new PharmacophoreFingerprint(); pfp.setParameters(new PFParameters()); String[] newTags = null; Molecule mol = getFirstMoleculeFromSomewhere(); while ( mol != null ) { gen.generate( mol, p ); doSomethingWith( p ); mol = getNextMoleculeFromSomewhere(); }
PharmacophoreFingerprint
,
PMapper
createStatistics, density, freqCount, maxNonEmptyId, maxNonEmptyPercent, minNonEmptyId, minNonEmptyPercent, molCount, sumNonEmptyPercent
Constructor and Description |
---|
PFGenerator(PMapper pmapper)
Creates a new instance of PFGenerator which can be used to
generate fingerprints for an arbitrary number of molecules.
|
Modifier and Type | Method and Description |
---|---|
protected int |
calcFreqCount(MolecularDescriptor d)
Calculate and store in
freqCount[] absolute frequency
counts per cells. |
java.lang.String[] |
generate(Molecule m,
MolecularDescriptor d)
Generates the pharmacophore fingerprint of the given molecule.
|
java.lang.String |
getPMap(Molecule m,
PSymbols pSym)
Gets pharmacophore map of the input molecule.
|
java.lang.String |
getPMAPTagName()
Gets the name of the SDfile tag (Molecule property) which stores
the pharmacophore map data.
|
void |
setPMAPTagName(java.lang.String tagName)
Sets the name of the SDfile tag (Molecule property) which stores
the pharmacophore map data.
|
void |
setUsePMAP(boolean use)
Omit or use pharmacophore map data optionally available in molecular
structure.
|
getAverageNonZeroRatio, getBrightestMolId, getDarkestMolId, getDensityCounts, getFrequencyCounts, getMaximumBitRatio, getMinimumBitRatio, getMoleculeCount, setCreateStatistics, updateStatistics
public PFGenerator(PMapper pmapper)
pmapper
- assign pharmacophore type labels to atomspublic void setUsePMAP(boolean use)
use
- indicates whether or not existing pmap data should be usedpublic void setPMAPTagName(java.lang.String tagName)
tagName
- name of the SDfile tag (Molecule property)public java.lang.String getPMAPTagName()
public java.lang.String[] generate(Molecule m, MolecularDescriptor d) throws MDGeneratorException
generate
in class MDGenerator
m
- molecule for which the fingerprint is createdd
- the 2d pharmacophore fingerprint generatedMDGeneratorException
- when perception or mapping cannot be completed for any reasonpublic java.lang.String getPMap(Molecule m, PSymbols pSym) throws MDGeneratorException
m
- a moleculepSym
- pharmacophore type symbolsMDGeneratorException
- when perception or mapping cannot be completed for any reasonprotected int calcFreqCount(MolecularDescriptor d)
freqCount[]
absolute frequency
counts per cells. Also gets number of non-zero cells in the descriptor.calcFreqCount
in class MDGenerator
d
- descriptor in which non-zero cells should be counted