luna.mol.charge_model module

class ChargeModel[source]

Bases: object

Implementation of a charge model.

get_charge()[source]
class OpenEyeModel[source]

Bases: luna.mol.charge_model.ChargeModel

Implementation of OpenEye charge model.

get_charge(atm_obj)[source]

Get the formal charge for atom atom_obj.

Currently, only formal charges for the elements Hydrogen, Carbon, Nitrogen, Oxygen, Phosphorus, Sulfur, Chlorine, Fluorine, Bromine, Iodine, Magnesium, Calcium, Zinc, Lithium, Sodium, Potassium, and Boron can be recovered.

Parameters

atm_obj (AtomWrapper) – The target atom.

Examples

>>> from luna.mol.charge_model import OpenEyeModel
>>> from luna.wrappers.base import MolWrapper
>>> cm = OpenEyeModel()
>>> mol_obj = MolWrapper.from_smiles("[NH3+]CC([O-])=O")
>>> for atm_obj in mol_obj.get_atoms():
>>>     formal_charge = cm.get_charge(atm_obj)
>>>     print("Charge for atom #%d (%s): %d" % (atm_obj.get_idx(),
...                                             atm_obj.get_symbol(),
...                                             formal_charge))
Charge for atom #0 (N): 1.
Charge for atom #1 (C): 0.
Charge for atom #2 (C): 0.
Charge for atom #3 (O): -1.
Charge for atom #4 (O): 0.