@PublicAPI public class ChargePlugin extends MajorMicrospeciesAccessorPlugin
MoleculeGraph.getFormalCharge()
, MolAtom.getCharge()
.
References:
API usage example:
// create plugin ChargePlugin plugin = new ChargePlugin(); // read target molecule MolImporter mi = new MolImporter(new ByteArrayInputStream("Clc1cc(Cl)c(Cl)cc1".getBytes())); Molecule mol = mi.read(); mi.close(); // set target molecule plugin.setMolecule(mol); // run the calculation plugin.run(); // get charge values for each atom int count = mol.getAtomCount(); for (int i=0; i < count; ++i) { double charge = plugin.getTotalCharge(i); if (!Double.isNaN(charge)) { System.out.println("total charge for atom "+(i+1)+": "+charge); } }
For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.
CalculatorPlugin.HydrogenData
ionizer
ATOM, BLUE, CALCRGB_OFF, COVALENT_HYDRATION_ERROR_REMARK, CRITICAL_ERROR_MSG, EPSILON, explicitHydrogens, INCORRECT_AROMATIC_NITROGEN_REMARK, INSTABLE_TAUTOMERIC_FORM_REMARK, KEEP_HYDROGENS, keepHydrogens, licenseEnvironment, MOLECULE, MOLECULES, NAN, PLUGIN_CLASS_KEY, PLUGIN_DIR, RED, TRUE
Constructor and Description |
---|
ChargePlugin()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double |
getAromaticRingCharge(int index)
Returns the total partial charge of the smallest aromatic ring
containing the specified atom.
|
double |
getAromaticRingCharge(int index,
int chgtype)
Returns the partial charge of the smallest aromatic ring
containing the specified atom.
|
double |
getAromaticSystemCharge(int index)
Returns the total partial charge of the aromatic system
containing the specified atom.
|
double |
getAromaticSystemCharge(int index,
int chgtype)
Returns the partial charge of the aromatic system
containing the specified atom.
|
java.lang.String |
getErrorMessage()
Returns the calculation error information message if
run()
returned false (calculation error): hydrogen valence error. |
int |
getFormalCharge()
Returns the formal charge of the molecule.
|
int |
getFormalCharge(int index)
Returns the formal charge of a specified atom.
|
double |
getPiCharge(int index)
Returns the pi charge of a specified atom.
|
java.lang.String |
getProductName()
Returns the product identifier of the plugin as given by
LicenseManager . |
java.lang.Object |
getResult(java.lang.Object type,
int index)
Returns the result item for the specified type and index.
|
double |
getResultantImplicitHCharge(int index)
Returns the implicit H charge around a central atom
|
java.lang.String |
getResultAsString(java.lang.Object type,
int index,
java.lang.Object result)
Returns the specified result in String format.
|
int |
getResultCount(java.lang.Object type)
Returns the number of result items for the given result type.
|
int |
getResultDomain(java.lang.Object type)
Returns the calculation domain
CalculatorPlugin.ATOM or
CalculatorPlugin.MOLECULE . |
Molecule |
getResultMolecule()
Returns the result molecule for display.
|
java.lang.Object[] |
getResultTypes()
Returns the result types (possible types: "sigma", "pi", "total").
|
double |
getSigmaCharge(int index)
Returns the sigma charge of a specified atom.
|
double |
getTotalCharge(int index)
Returns the total charge of a specified atom.
|
java.lang.String |
getTypeString(java.lang.Object type)
Returns a string representation of the given type.
|
boolean |
handlesMultiFragmentMolecules()
Returns
true if the plugin handles multifragment molecules,
false otherwise. |
boolean |
isLicensed()
Returns
true if the plugin is licensed. |
boolean |
run()
Runs the charge calculation.
|
protected void |
setInputMolecule(Molecule mol)
Sets the input molecule.
|
Molecule |
setMolecule(Molecule mol,
boolean st,
boolean om)
Sets the input molecule after an optional standardization and/or modification.
|
void |
setParameters(java.util.Properties params)
Sets the input parameters for the plugin.
|
void |
setTakeResonantStructures(boolean resonance)
Sets calculation with resonant structures.
|
checkMolecule, createModifiedInputMolecule, getIonizerErrorMessage, getpH, setpH, standardize
arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getCalcMolecule, getDisplayMolecule, getDocument, getDoublePrecision, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getOriginalMolecule, getPluginResource, getQueryMoleculeErrorMessage, getRemark, getResult, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsRGB, getResultsAsString, getResultsAsString, getResultSource, getWarningMessage, isInputMoleculeAromatized, isMsCalc, isMultiThreadedRunEnabled, isNegligibleResult, isOK, isRgrouped, loadClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroups, standardizeNeutralGroups
public ChargePlugin()
public boolean isLicensed()
true
if the plugin is licensed. The license checking
is based on the product name, returned by getProductName()
.isLicensed
in interface chemaxon.license.Licensable
isLicensed
in class MajorMicrospeciesAccessorPlugin
true
if the plugin is licensedpublic java.lang.String getProductName()
LicenseManager
.getProductName
in class CalculatorPlugin
LicenseManager.CHARGE_PLUGIN_GROUP
public void setParameters(java.util.Properties params) throws PluginException
setParameters
in class MajorMicrospeciesAccessorPlugin
params
- is the parameter tablePluginException
- on errorpublic void setTakeResonantStructures(boolean resonance)
false
.resonance
- is true
if charge should be calculated with
resonant structuresprotected void setInputMolecule(Molecule mol) throws PluginException
setInputMolecule
in class CalculatorPlugin
mol
- is the input moleculePluginException
- on errorpublic Molecule setMolecule(Molecule mol, boolean st, boolean om) throws PluginException
CalculatorPlugin
setMolecule
in class CalculatorPlugin
mol
- is the input moleculest
- is true if standardization is requiredom
- is true if original input molecule is to be used for atom indexing
false if modified molecule is to be used for atom indexingPluginException
- on errorCalculatorPlugin.setInputMolecule(Molecule)
,
CalculatorPlugin.createStandardizedMolecule(Molecule)
,
CalculatorPlugin.createModifiedInputMolecule(Molecule)
public boolean handlesMultiFragmentMolecules()
CalculatorPlugin
true
if the plugin handles multifragment molecules,
false
otherwise. In the latter case the plugin takes the
fragment with more atoms if a multifragment molecule is given as input.
The default implementation returns false
.handlesMultiFragmentMolecules
in class CalculatorPlugin
public boolean run() throws PluginException
run
in class CalculatorPlugin
PluginException
- on errorCalculatorPlugin.getErrorMessage()
public java.lang.String getErrorMessage()
run()
returned false (calculation error): hydrogen valence error.getErrorMessage
in class MajorMicrospeciesAccessorPlugin
public int getFormalCharge()
MoleculeGraph.getFormalCharge()
public int getFormalCharge(int index)
index
- is the atom indexMolAtom.getCharge()
public double getTotalCharge(int index)
index
- is the atom indexDouble.NaN
for implicit H-sMolAtom.getCharge()
,
MoleculeGraph.getFormalCharge()
public double getSigmaCharge(int index)
index
- is the atom indexDouble.NaN
for implicit H-spublic double getPiCharge(int index)
index
- is the atom indexDouble.NaN
for implicit H-spublic double getResultantImplicitHCharge(int index)
index
- is the central atom indexpublic double getAromaticSystemCharge(int index)
index
- is the atom indexpublic double getAromaticSystemCharge(int index, int chgtype)
index
- is the atom indexchgtype
- is the charge type: 0 - total, 1 - sigma, 2 - pipublic double getAromaticRingCharge(int index)
index
- is the atom indexpublic double getAromaticRingCharge(int index, int chgtype)
index
- is the atom indexchgtype
- is the charge type: 0 - total, 1 - sigma, 2 - pipublic java.lang.Object[] getResultTypes()
getResultTypes
in class CalculatorPlugin
public int getResultDomain(java.lang.Object type)
CalculatorPlugin.ATOM
or
CalculatorPlugin.MOLECULE
.getResultDomain
in class CalculatorPlugin
type
- is the result typeCalculatorPlugin.ATOM
getResultTypes()
public int getResultCount(java.lang.Object type)
getResultCount
in class CalculatorPlugin
type
- is the result typegetResultTypes()
public java.lang.String getTypeString(java.lang.Object type)
getTypeString
in class CalculatorPlugin
type
- is the type objectpublic java.lang.Object getResult(java.lang.Object type, int index) throws PluginException
getResult
in class CalculatorPlugin
type
- is the result type ("total", "pi", "sigma", "implh", ...)index
- is the atom indexPluginException
- if the result cannot be returnedgetResultTypes()
public java.lang.String getResultAsString(java.lang.Object type, int index, java.lang.Object result) throws PluginException
getResultAsString
in class CalculatorPlugin
type
- is the result typeindex
- is the result indexresult
- is the result itemPluginException
- if an invalid result item is givenpublic Molecule getResultMolecule() throws PluginException
MolAtom.getExtraLabel()
).
Molecular results are stored in molecule properties
with keys being the result types
(Molecule.getProperty(String)
).getResultMolecule
in class CalculatorPlugin
PluginException
- on error