Package chemaxon.marvin.calculations
Class ChargePlugin
java.lang.Object
chemaxon.marvin.plugin.CalculatorPlugin
chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
chemaxon.marvin.calculations.ChargePlugin
- All Implemented Interfaces:
 TaggedCalculator,chemaxon.license.Licensable
Plugin class for partial charge calculation. Sigma, pi and total charge values can be calculated by this plugin.
 For formal charge calculation use the following methods: 
MoleculeGraph.getFormalCharge(), MolAtom.getCharge().
 References:
- J.Gasteiger and M.Marsili: Tetrahedron Vol. 36. , pp. 3219-3288 (1980)
 - M.Marsili and J.Gasteiger: International Symposium on Aromaticity, Dubrovnik, Yugoslavia , Sept (1979), Croat.Chim.Acta. (1979)
 - Steven L. Dixon and Peter C. Jurs: J.Comp.Chem., Vol.13. No.4, 492-504 (1992)
 - W.J.Mortier, K.V.Genechten and J.Gasteiger: J.Am.Chem.Soc., Vol. 107,829-835 (1985)
 
API usage example:
 // create plugin
 ChargePlugin plugin = new ChargePlugin();
 try (MolImporter mi = new MolImporter(new ByteArrayInputStream("Clc1cc(Cl)c(Cl)cc1".getBytes()))) {
    // read target molecule
    Molecule mol = mi.read();
    // 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.
- 
Nested Class Summary
Nested classes/interfaces inherited from class chemaxon.marvin.plugin.CalculatorPlugin
CalculatorPlugin.HydrogenData - 
Field Summary
Fields inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
ionizerFields inherited from class chemaxon.marvin.plugin.CalculatorPlugin
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 Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptiondoublegetAromaticRingCharge(int index) Returns the total partial charge of the smallest aromatic ring containing the specified atom.doublegetAromaticRingCharge(int index, int chgtype) Returns the partial charge of the smallest aromatic ring containing the specified atom.doublegetAromaticSystemCharge(int index) Returns the total partial charge of the aromatic system containing the specified atom.doublegetAromaticSystemCharge(int index, int chgtype) Returns the partial charge of the aromatic system containing the specified atom.Returns the calculation error information message ifrun()returned false (calculation error): hydrogen valence error.intReturns the formal charge of the molecule.intgetFormalCharge(int index) Returns the formal charge of a specified atom.doublegetPiCharge(int index) Returns the pi charge of a specified atom.Returns the product identifier of the plugin as given byLicenseManager.Returns the result item for the specified type and index.doublegetResultantImplicitHCharge(int index) Returns the implicit H charge around a central atomgetResultAsString(Object type, int index, Object result) Returns the specified result in String format.intgetResultCount(Object type) Returns the number of result items for the given result type.intgetResultDomain(Object type) Returns the calculation domainCalculatorPlugin.ATOMorCalculatorPlugin.MOLECULE.Returns the result molecule for display.Object[]Returns the result types (possible types: "sigma", "pi", "total").doublegetSigmaCharge(int index) Returns the sigma charge of a specified atom.doublegetTotalCharge(int index) Returns the total charge of a specified atom.getTypeString(Object type) Returns a string representation of the given type.booleanReturnstrueif the plugin handles multifragment molecules,falseotherwise.booleanReturnstrueif the plugin is licensed.booleanrun()Runs the charge calculation.protected voidsetInputMolecule(Molecule mol) Sets the input molecule.setMolecule(Molecule mol, boolean st, boolean om) Sets the input molecule after an optional standardization and/or modification.voidsetParameters(Properties params) Sets the input parameters for the plugin.voidsetTakeResonantStructures(boolean resonance) Sets calculation with resonant structures.Methods inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
checkMolecule, createModifiedInputMolecule, getIonizerErrorMessage, getpH, setChemicalTermsArgument, setpH, standardizeMethods 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, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsRGB, getResultsAsString, getResultsAsString, getResultSource, getWarningMessage, isInputMoleculeAromatized, isMsCalc, isMultiThreadedRunEnabled, isNegligibleResult, isOK, isRgrouped, loadClass, loadPluginClass, loadPluginClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setChemicalTermsParameters, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroupsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface chemaxon.calculator.TaggedCalculator
tags 
- 
Constructor Details
- 
ChargePlugin
public ChargePlugin()Constructor. Creates the charge calculator object. 
 - 
 - 
Method Details
- 
isLicensed
public boolean isLicensed()Returnstrueif the plugin is licensed. The license checking is based on the product name, returned bygetProductName().- Specified by:
 isLicensedin interfacechemaxon.license.Licensable- Overrides:
 isLicensedin classMajorMicrospeciesAccessorPlugin- Returns:
 trueif the plugin is licensed
 - 
getProductName
Returns the product identifier of the plugin as given byLicenseManager.- Specified by:
 getProductNamein classCalculatorPlugin- Returns:
 - The identifier 
LicenseManager.CHARGE_PLUGIN_GROUP 
 - 
setParameters
Sets the input parameters for the plugin. Charge parameters and value ranges:- type: sigma,pi,total, formalcharge, "atomicformalcharge", aromaticsystem, aromaticsystemsigma,aromaticsystempi, aromaticring, aromaticringsigma, aromaticringpi
 - precision: 0-8 or inf (number of displayed fractional digits, inf for unrounded value)
 - implh: true or false - true if implicit H data should be shown
 - resonance: true or false - true if calculate with resonant structures (default: false)
 - pH: major microspecies on given pH is taken as input molecule if omitted then the input molecule is taken as it is
 
- Overrides:
 setParametersin classMajorMicrospeciesAccessorPlugin- Parameters:
 params- is the parameter table- Throws:
 PluginException- on error
 - 
setTakeResonantStructures
public void setTakeResonantStructures(boolean resonance) Sets calculation with resonant structures. Default:false.- Parameters:
 resonance- istrueif charge should be calculated with resonant structures- Since:
 - Marvin 4.1
 
 - 
setInputMolecule
Sets the input molecule.- Specified by:
 setInputMoleculein classCalculatorPlugin- Parameters:
 mol- is the input molecule- Throws:
 PluginException- on error
 - 
setMolecule
Description copied from class:CalculatorPluginSets the input molecule after an optional standardization and/or modification. Standardization includes plugin specific standardization (e.g. dehydrogenize, aromatize) and sgroup expansion, modification usually means taking a microspecies form, or the major tautomeric form of the input molecule (usually optional). The input molecule is left unchanged (it is cloned before standardization/modification if required).- Overrides:
 setMoleculein classCalculatorPlugin- Parameters:
 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 indexing- Returns:
 - the molecule to be used for atom indexing
 - Throws:
 PluginException- on error- See Also:
 
 - 
handlesMultiFragmentMolecules
public boolean handlesMultiFragmentMolecules()Description copied from class:CalculatorPluginReturnstrueif the plugin handles multifragment molecules,falseotherwise. In the latter case the plugin takes the fragment with more atoms if a multifragment molecule is given as input. The default implementation returnsfalse.- Overrides:
 handlesMultiFragmentMoleculesin classCalculatorPlugin- Returns:
 - true if the plugin handles multifragment molecules, false otherwise
 
 - 
run
Runs the charge calculation.- Specified by:
 runin 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:
 getErrorMessagein classMajorMicrospeciesAccessorPlugin- Returns:
 - the calculation error information message
 
 - 
getFormalCharge
public int getFormalCharge()Returns the formal charge of the molecule.- Returns:
 - the formal charge of the molecule
 - Since:
 - Marvin 5.2
 - See Also:
 
 - 
getFormalCharge
public int getFormalCharge(int index) Returns the formal charge of a specified atom.- Parameters:
 index- is the atom index- Returns:
 - the formal charge of a specified atom
 - Since:
 - Marvin 5.2
 - See Also:
 
 - 
getTotalCharge
public double getTotalCharge(int index) Returns the total charge of a specified atom. Total charge is the sum of partial charges on the atom.- Parameters:
 index- is the atom index- Returns:
 - the total charge of a specified atom, 
Double.NaNfor implicit H-s - Since:
 - Marvin 3.4.1
 - See Also:
 
 - 
getSigmaCharge
public double getSigmaCharge(int index) Returns the sigma charge of a specified atom.- Parameters:
 index- is the atom index- Returns:
 - the sigma charge of a specified atom,
         
Double.NaNfor implicit H-s - Since:
 - Marvin 3.4.1
 
 - 
getPiCharge
public double getPiCharge(int index) Returns the pi charge of a specified atom.- Parameters:
 index- is the atom index- Returns:
 - the pi charge of a specified atom,
         
Double.NaNfor implicit H-s - Since:
 - Marvin 3.4.1
 
 - 
getResultantImplicitHCharge
public double getResultantImplicitHCharge(int index) Returns the implicit H charge around a central atom- Parameters:
 index- is the central atom index- Returns:
 - the implicit H charge around the central atom
 - Since:
 - Marvin 3.5
 
 - 
getAromaticSystemCharge
public double getAromaticSystemCharge(int index) Returns the total partial charge of the aromatic system containing the specified atom.- Parameters:
 index- is the atom index- Returns:
 - the total partial charge of the aromatic system containing the specified atom
 - Since:
 - Marvin 3.5
 
 - 
getAromaticSystemCharge
public double getAromaticSystemCharge(int index, int chgtype) Returns the partial charge of the aromatic system containing the specified atom.- Parameters:
 index- is the atom indexchgtype- is the charge type: 0 - total, 1 - sigma, 2 - pi- Returns:
 - the total partial charge of the aromatic system containing the specified atom
 - Since:
 - Marvin 4.1
 
 - 
getAromaticRingCharge
public double getAromaticRingCharge(int index) Returns the total partial charge of the smallest aromatic ring containing the specified atom.- Parameters:
 index- is the atom index- Returns:
 - the total partial charge of the smallest aromatic ring containing the specified atom
 - Since:
 - Marvin 3.5
 
 - 
getAromaticRingCharge
public double getAromaticRingCharge(int index, int chgtype) Returns the partial charge of the smallest aromatic ring containing the specified atom.- Parameters:
 index- is the atom indexchgtype- is the charge type: 0 - total, 1 - sigma, 2 - pi- Returns:
 - the total partial charge of the smallest aromatic ring containing the specified atom
 - Since:
 - Marvin 4.1
 
 - 
getResultTypes
Returns the result types (possible types: "sigma", "pi", "total").- Overrides:
 getResultTypesin classCalculatorPlugin- Returns:
 - the result types
 
 - 
getResultDomain
Returns the calculation domainCalculatorPlugin.ATOMorCalculatorPlugin.MOLECULE.- Overrides:
 getResultDomainin classCalculatorPlugin- Parameters:
 type- is the result type- Returns:
 CalculatorPlugin.ATOM- See Also:
 
 - 
getResultCount
Returns the number of result items for the given result type. Charge returns the atom count.- Overrides:
 getResultCountin classCalculatorPlugin- Parameters:
 type- is the result type- Returns:
 - the number of result items
 - See Also:
 
 - 
getTypeString
Returns a string representation of the given type.- Overrides:
 getTypeStringin classCalculatorPlugin- Parameters:
 type- is the type object- Returns:
 - the type string
 
 - 
getResult
Returns the result item for the specified type and index. Charge returns the required charge value as a Double object.- Overrides:
 getResultin classCalculatorPlugin- Parameters:
 type- is the result type ("total", "pi", "sigma", "implh", ...)index- is the atom index- 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. Charge returns the rounded charge value in string format: the value is rounded using the 'precision' input parameter that determines the number of fractional digits displayed.- Overrides:
 getResultAsStringin 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
 - 
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:
 getResultMoleculein classCalculatorPlugin- Returns:
 - the result molecule
 - Throws:
 PluginException- on error- Since:
 - Marvin 4.0
 
 
 -