Package chemaxon.marvin.calculations
Class HBDAPlugin
java.lang.Object
chemaxon.marvin.plugin.CalculatorPlugin
chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
chemaxon.marvin.calculations.HBDAPlugin
- All Implemented Interfaces:
TaggedCalculator
,chemaxon.license.Licensable
Plugin class for H bond acceptor/donor calculation.
API usage example:
// create plugin HBDAPlugin plugin = new HBDAPlugin(); // set plugin parameters plugin.setDoublePrecision(2); plugin.setpHLower(2.0); plugin.setpHUpper(12.0); plugin.setpHStep(2.0); // optional: take major microspecies at pH=7.4 // skip this if you want to calculate HBDA for the input molecule as it is plugin.setpH(7.4); // read target molecule MolImporter mi = new MolImporter("target.mol"); Molecule mol = mi.read(); mi.close(); // set target molecule plugin.setMolecule(mol); // run the calculation plugin.run(); // get results // average acceptor/donor counts by microspecies distributions at given pH-s double[] pHs = plugin.getpHs(); double[] msacc = plugin.getMsAcceptorCounts(); double[] msdon = plugin.getMsDonorCounts(); System.out.println("pH\tmsacc\tmsdon"); for (int i = 0; i < pHs.length; ++i) { System.out.println("" + plugin.format(pHs[i]) + "\t" + plugin.format(msacc[i]) + "\t" + plugin.format(msdon[i])); } // molecular data // with multiplicity int molecularAcceptorCount = plugin.getAcceptorCount(); int molecularDonorCount = plugin.getDonorCount(); // without multiplicity int molecularAcceptorAtomCount = plugin.getAcceptorAtomCount(); int molecularDonorAtomCount = plugin.getDonorAtomCount(); System.out.println(); System.out.println("Acceptor count with multiplicity: " + molecularAcceptorCount); System.out.println("Donor count with multiplicity: " + molecularDonorCount); System.out.println("Acceptor count without multiplicity: " + molecularAcceptorAtomCount); System.out.println("Donor count without multiplicity: " + molecularDonorAtomCount); // atomic data System.out.println(); System.out.println("Atom\tAcceptor count\tDonor count"); int count = mol.getAtomCount(); for (int i = 0; i < count; ++i) { // atomic acceptor/donor count with multiplicity int atomicAcceptorCount = plugin.getAcceptorCount(i); int atomicDonorCount = plugin.getDonorCount(i); if (atomicAcceptorCount != -1) { // -1 means H atom System.out.println("" + (i + 1) + "\t" + atomicAcceptorCount + "\t" + atomicDonorCount); } }
For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.
-
Nested Class Summary
Nested classes/interfaces inherited from class chemaxon.marvin.plugin.CalculatorPlugin
CalculatorPlugin.HydrogenData
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Acceptor sign displayed in GUI.static final String
Donor sign displayed in GUI.static final double
Fields inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
ionizer
Fields inherited from class chemaxon.marvin.plugin.CalculatorPlugin
ATOM, BLUE, CALCRGB_OFF, COVALENT_HYDRATION_ERROR_REMARK, CRITICAL_ERROR_MSG, explicitHydrogens, INCORRECT_AROMATIC_NITROGEN_REMARK, INSTABLE_TAUTOMERIC_FORM_REMARK, KEEP_HYDROGENS, keepHydrogens, licenseEnvironment, MOLECULE, MOLECULES, NAN, PLUGIN_CLASS_KEY, PLUGIN_DIR, RED, TRUE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
checkMolecule
(Molecule mol) Checks the input molecule.int
Returns the overall acceptor atom count (without multiplicity) in the molecule.int
Deprecated, for removal: This API element is subject to removal in a future version.int
getAcceptorCount
(int index) Deprecated, for removal: This API element is subject to removal in a future version.UsegetAcceptorSiteCount()
instead!int
Returns the overall acceptor count (with multiplicity) in the molecule.int
getAcceptorSiteCount
(int index) Returns the atomic acceptor count corresponding to the specified atom index.int
Returns the overall donor atom count (without multiplicity) in the molecule.int
Deprecated, for removal: This API element is subject to removal in a future version.UsegetDonorSiteCount()
instead!int
getDonorCount
(int index) Deprecated, for removal: This API element is subject to removal in a future version.UsegetDonorSiteCount(int)
instead!int
Returns the overall donor count (with multiplicity) in the molecule.int
getDonorSiteCount
(int index) Returns the atomic donor count corresponding to the specified atom index.Returns the calculation error information message ifrun()
returned false (calculation error): hydrogen valence error.double[]
Returns the average acceptor counts over the microspecies distribution for different pH-s.double[]
Returns the average donor counts over the microspecies distribution for different pH-s.double[]
getpHs()
Returns the pH array.Returns the product identifier of the plugin as given byLicenseManager
.Returns the result item for the specified type and index.int
getResultAsRGB
(Object type, int index, Object result) Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue).getResultAsString
(Object type, int index, Object result) Returns the specified result in String format.int
getResultCount
(Object type) Returns the number of result items for the given result type.int
getResultDomain
(Object type) Returns the calculation domainCalculatorPlugin.ATOM
orCalculatorPlugin.MOLECULE
.Returns the result molecule for display.long
getResultsAsRGB
(Object type, int index, Object result) Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue).getResultsAsString
(Object type, int index, Object result) Returns the specified result in GUI-specific String format:A
for acceptor,D
for donor.Object[]
Returns the result types.getTypeString
(Object type) Returns a string representation of the given type.Returns the calculation warning information message if no H-bond donor/acceptor atoms found, returns the empty string otherwise.boolean
Returnstrue
if the plugin is licensed.boolean
isMsCalc()
Returnstrue
if microspecies calculation.boolean
isNegligibleResult
(Object type, int index, Object result) Returns whether the result can be ignored.boolean
run()
Runs the charge calculation.void
setExcludeHalogens
(boolean e) Sets if halogens should be excluded from hydrogen bond acceptors.void
setExcludeSulfur
(boolean e) Sets if sulfur atom should be excluded from hydrogen bond acceptors.protected void
setGUIMode
(boolean guimode) Deprecated, for removal: This API element is subject to removal in a future version.No longer used.protected void
setInputMolecule
(Molecule mol) Sets the input molecule.void
setMsCalc
(boolean mscalc) Sets microspecies calculation.void
setParameters
(Properties params) Sets the input parameters for the plugin.void
setpHLower
(double lower) Sets pH lower limit for the calculation of microspecies distributions.void
setpHStep
(double step) Sets pH step for the calculation of microspecies distributions.void
setpHUpper
(double upper) Sets pH upper limit for the calculation of microspecies distributions.tags()
Returns the set of tags reported by this calculator.Methods inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
createModifiedInputMolecule, getIonizerErrorMessage, getpH, setChemicalTermsArgument, setpH, standardize
Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
addHeavyAtomLimitChecker, addInputChecker, arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, create, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getAtomIndexMapping, getCalcMolecule, getDisplayMolecule, getDocument, getDoublePrecision, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getOriginalMolecule, getPluginResource, getQueryMoleculeErrorMessage, getRemark, getResult, getResult, getResult, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsString, getResultSource, handlesMultiFragmentMolecules, isInputMoleculeAromatized, isMultiThreadedRunEnabled, isOK, isRgrouped, loadClass, loadPluginClass, loadPluginClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setChemicalTermsParameters, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroups
-
Field Details
-
EPSILON
public static final double EPSILON- See Also:
-
ACCEPTOR_SIGN
Acceptor sign displayed in GUI.- See Also:
-
DONOR_SIGN
Donor sign displayed in GUI.- See Also:
-
-
Constructor Details
-
HBDAPlugin
public HBDAPlugin()Constructor. Creates the calculator object.
-
-
Method Details
-
isLicensed
public boolean isLicensed()Returnstrue
if the plugin is licensed. The license checking is based on the product name, returned bygetProductName()
.- Specified by:
isLicensed
in interfacechemaxon.license.Licensable
- Overrides:
isLicensed
in classMajorMicrospeciesAccessorPlugin
- Returns:
true
if the plugin is licensed
-
getProductName
Returns the product identifier of the plugin as given byLicenseManager
.- Specified by:
getProductName
in classCalculatorPlugin
- Returns:
- The identifier
LicenseManager.HBDA_PLUGIN
-
setParameters
Sets the input parameters for the plugin. Charge parameters and value ranges:- type:
- acc: atomic acceptors
- don: atomic donors
- accsitecount: molecular acceptor count with multiplicity
- donsitecount: molecular donor count with multiplicity
- acceptorcount: molecular acceptor atom count without multiplicity
- donorcount: molecular donor atom count without multiplicity
- msacc: average acceptor count over microspecies by pH
- msdon: average donor count over microspecies by pH
- excludesulfur: exclude sulfur atoms from acceptors
- precision: 0-8 or inf (number of displayed fractional digits, inf for unrounded value)
- lower: pH lower limit (default: 0.0)
- upper: pH upper limit (default: 14.0)
- count: pH step count between lower and upper limits (default: 0.5)
- Overrides:
setParameters
in classMajorMicrospeciesAccessorPlugin
- Parameters:
params
- is the parameter table- Throws:
PluginException
- on error
- type:
-
setpHLower
public void setpHLower(double lower) Sets pH lower limit for the calculation of microspecies distributions. Also activates the calculation of microspecies distributions. The default value is0.0
.- Parameters:
lower
- is the pH lower limit- Since:
- Marvin 3.5.1
-
setpHUpper
public void setpHUpper(double upper) Sets pH upper limit for the calculation of microspecies distributions. Also activates the calculation of microspecies distributions. The default value is14.0
.- Parameters:
upper
- is the pH upper limit- Since:
- Marvin 3.5.1
-
setpHStep
public void setpHStep(double step) Sets pH step for the calculation of microspecies distributions. Also activates the calculation of microspecies distributions. The default value is0.5
.- Parameters:
step
- is the pH step- Since:
- Marvin 3.5.1
-
setMsCalc
public void setMsCalc(boolean mscalc) Sets microspecies calculation.- Parameters:
mscalc
- istrue
if microspecies calculation required- Since:
- Marvin 3.5.1
- See Also:
-
isMsCalc
public boolean isMsCalc()Returnstrue
if microspecies calculation.- Overrides:
isMsCalc
in classCalculatorPlugin
- Returns:
true
if microspecies calculation
-
checkMolecule
Checks the input molecule. Throws exception if the molecule molecule contains R-groups.- Overrides:
checkMolecule
in classMajorMicrospeciesAccessorPlugin
- Parameters:
mol
- is the input molecule- Throws:
PluginException
- with error message for the user if the molecule is refused
-
setInputMolecule
Sets the input molecule.- Specified by:
setInputMolecule
in classCalculatorPlugin
- Parameters:
mol
- is the input molecule- Throws:
PluginException
- on error
-
setExcludeSulfur
public void setExcludeSulfur(boolean e) Sets if sulfur atom should be excluded from hydrogen bond acceptors. Default:true
- Parameters:
e
- iftrue
then sulfur atom is not considered to be hydrogen bond acceptor.- Since:
- Marvin 5.3
-
setExcludeHalogens
public void setExcludeHalogens(boolean e) Sets if halogens should be excluded from hydrogen bond acceptors. Default:true
- Parameters:
e
- iftrue
then halogens are not considered to be hydrogen bond acceptor.- Since:
- Marvin 5.3.2
-
run
Runs the charge calculation.- Specified by:
run
in classCalculatorPlugin
- Returns:
- true if the calculation was successful, false on calculation error
- Throws:
PluginException
- on error- See Also:
-
getErrorMessage
Returns the calculation error information message ifrun()
returned false (calculation error): hydrogen valence error.- Overrides:
getErrorMessage
in classMajorMicrospeciesAccessorPlugin
- Returns:
- the calculation error information message
-
getWarningMessage
Returns the calculation warning information message if no H-bond donor/acceptor atoms found, returns the empty string otherwise.- Overrides:
getWarningMessage
in classCalculatorPlugin
- Returns:
- the calculation warning information message
-
getpHs
public double[] getpHs()Returns the pH array.- Returns:
- the pH array
-
getMsAcceptorCounts
public double[] getMsAcceptorCounts()Returns the average acceptor counts over the microspecies distribution for different pH-s. The pH array is returned bygetpHs()
and determined by the "lower", "upper" and "step" plugin parameters.- Returns:
- the average acceptor counts over the microspecies distribution for pH-s returned by
getpHs()
-
getMsDonorCounts
public double[] getMsDonorCounts()Returns the average donor counts over the microspecies distribution for different pH-s. The pH array is returned bygetpHs()
and determined by the "lower", "upper" and "step" plugin parameters.- Returns:
- the average donor counts over the microspecies distribution for pH-s returned by
getpHs()
-
getAcceptorCount
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public int getAcceptorCount(int index) Deprecated, for removal: This API element is subject to removal in a future version.UsegetAcceptorSiteCount()
instead! -
getAcceptorSiteCount
public int getAcceptorSiteCount(int index) Returns the atomic acceptor count corresponding to the specified atom index.- Parameters:
index
- is the atom index- Returns:
- the atomic acceptor count,
-1
for H atoms
-
getDonorCount
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public int getDonorCount(int index) Deprecated, for removal: This API element is subject to removal in a future version.UsegetDonorSiteCount(int)
instead! -
getDonorSiteCount
public int getDonorSiteCount(int index) Returns the atomic donor count corresponding to the specified atom index.- Parameters:
index
- is the atom index- Returns:
- the atomic donor count,
-1
for H atoms
-
getAcceptorCount
Deprecated, for removal: This API element is subject to removal in a future version.UsegetAcceptorSiteCount()
instead. -
getAcceptorSiteCount
public int getAcceptorSiteCount()Returns the overall acceptor count (with multiplicity) in the molecule.- Returns:
- the overall acceptor count (with multiplicity) in the molecule
-
getDonorCount
Deprecated, for removal: This API element is subject to removal in a future version.UsegetDonorSiteCount()
instead! -
getDonorSiteCount
public int getDonorSiteCount()Returns the overall donor count (with multiplicity) in the molecule.- Returns:
- the overall donor count (with multiplicity) in the molecule
-
getAcceptorAtomCount
public int getAcceptorAtomCount()Returns the overall acceptor atom count (without multiplicity) in the molecule.- Returns:
- the overall acceptor atom count (without multiplicity) in the molecule
-
getDonorAtomCount
public int getDonorAtomCount()Returns the overall donor atom count (without multiplicity) in the molecule.- Returns:
- the overall donor atom count (without multiplicity) in the molecule
-
getResultTypes
Returns the result types. The possible types are described insetParameters(Properties params)
.- Overrides:
getResultTypes
in classCalculatorPlugin
- Returns:
- the result types
-
setGUIMode
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) protected void setGUIMode(boolean guimode) Deprecated, for removal: This API element is subject to removal in a future version.No longer used.Sets GUI mode.- Parameters:
guimode
- is true if GUI mode
-
getResultDomain
Returns the calculation domainCalculatorPlugin.ATOM
orCalculatorPlugin.MOLECULE
. HBDA returnsCalculatorPlugin.ATOM
for types "acc" and "don",CalculatorPlugin.MOLECULE
for types "accsitecount", "donsitecount", "acceptorcount", "donorcount", and returnsCalculatorPlugin.MOLECULE
for type "msacc" and "msdon".- Overrides:
getResultDomain
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
- the domain as described above
- See Also:
-
getResultCount
Returns the number of result items for the given result type. Returns the atom count for types "acc" and "don",1
otherwise.- Overrides:
getResultCount
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
- the number of result items
- See Also:
-
getResult
Returns the result item for the specified type and index. HBDA returns the(pH, acceptor/donor count)
arrays for types "msacceptor" and "msdonor" as adouble[2][]
with the 0-th element being thepH
array and the 1-st element being theacceptor/donor count
array. For types "acc" and "don" HBDA returns theacceptor/donor count
corresponding to the specified atom index. For types "accsitecount" and "donsitecount" HBDA returns the sum of the atomic values. cc * @see #getResultTypes()- Overrides:
getResult
in classCalculatorPlugin
- Parameters:
type
- is the result type ("acc", "don", "msacc", "msdon", "accsitecount", "donsitecount", "acceptorcount", "donorcount")index
- is the atom index for types "acc", "don", N/A for "msacc", "msdon", "accsitecount", "donsitecount", "acceptorcount", "donorcount"- Returns:
- the result item for the specified type and index
- Throws:
PluginException
- if the result cannot be returned- See Also:
-
getResultAsString
Returns the specified result in String format.- Overrides:
getResultAsString
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result item- Returns:
- the specified result in String format
- Throws:
PluginException
- if an invalid result item is given
-
getResultAsRGB
Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue). Returns "red" for acceptor "blue" for donor.- Overrides:
getResultAsRGB
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result item- Returns:
- the specified result in color as int
- Throws:
PluginException
- if an invalid result item is given
-
getResultsAsRGB
Returns the specified result color(s) as int format (alpha<<24 + red<<16 + green<<8 + blue). Returns "red" for acceptor "blue" for donor.- Overrides:
getResultsAsRGB
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result item- Returns:
- the specified result in color as int
- Throws:
PluginException
- if an invalid result item is given
-
getResultsAsString
Returns the specified result in GUI-specific String format:A
for acceptor,D
for donor.- Overrides:
getResultsAsString
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result item- Returns:
- the specified result in String format
- Throws:
PluginException
- if an invalid result item is given
-
getTypeString
Returns a string representation of the given type.- Overrides:
getTypeString
in classCalculatorPlugin
- Parameters:
type
- is the type object- Returns:
- the type string
-
isNegligibleResult
Returns whether the result can be ignored. Returnstrue
for microspecies acceptor/donor count belowEPSILON
. Returnsfalse
for all other results.- Overrides:
isNegligibleResult
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result object- Returns:
- true for microspecies acceptor/donor count below
EPSILON
- Throws:
PluginException
-
getResultMolecule
Returns the result molecule for display. Atomic results are stored in atom extra labels (MolAtom.getExtraLabel()
). Molecular results are stored in molecule properties with keys being the result types (MPropHandler.convertToString(MPropertyContainer, String)
).- Overrides:
getResultMolecule
in classCalculatorPlugin
- Returns:
- the result molecule
- Throws:
PluginException
- on error- Since:
- Marvin 4.0
-
tags
Description copied from interface:TaggedCalculator
Returns the set of tags reported by this calculator. The same tags should be returned unless the calculator is modified using a mutator method, e.g. if some settings are changed.New tags can be introduced and reported in the future by existing calculators, so do not depend on the exact set of reported tags, only check for the presence of certain tags.
- Returns:
- the tags
-
getAcceptorSiteCount()
instead.