polymerist.mdtools.openfftools.partialcharge.rescharge ====================================================== .. py:module:: polymerist.mdtools.openfftools.partialcharge.rescharge .. autoapi-nested-parse:: Tools for handling library charges, both for computing from and applying to Molecules Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/polymerist/mdtools/openfftools/partialcharge/rescharge/calculation/index /autoapi/polymerist/mdtools/openfftools/partialcharge/rescharge/interface/index /autoapi/polymerist/mdtools/openfftools/partialcharge/rescharge/rctypes/index /autoapi/polymerist/mdtools/openfftools/partialcharge/rescharge/redistribution/index Classes ------- .. autoapisummary:: polymerist.mdtools.openfftools.partialcharge.rescharge.LibraryCharger polymerist.mdtools.openfftools.partialcharge.rescharge.ChargesByResidue polymerist.mdtools.openfftools.partialcharge.rescharge.ChargedResidue polymerist.mdtools.openfftools.partialcharge.rescharge.ChargeRedistributionStrategy polymerist.mdtools.openfftools.partialcharge.rescharge.UniformDistributionStrategy Functions --------- .. autoapisummary:: polymerist.mdtools.openfftools.partialcharge.rescharge.find_repr_residues polymerist.mdtools.openfftools.partialcharge.rescharge.compute_residue_charges polymerist.mdtools.openfftools.partialcharge.rescharge.apply_residue_charges Package Contents ---------------- .. py:function:: find_repr_residues(offmol: openff.toolkit.topology.molecule.Molecule) -> dict[str, int] Determine names and smallest residue numbers of all unique residues in charged molecule Used as representatives for generating labelled SMARTS strings .. py:function:: compute_residue_charges(cmol: openff.toolkit.topology.molecule.Molecule, monomer_group: polymerist.polymers.monomers.repr.MonomerGroup, cds: Optional[polymerist.mdtools.openfftools.partialcharge.rescharge.redistribution.ChargeRedistributionStrategy] = UniformDistributionStrategy(desired_net_charge=0.0)) -> polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargesByResidue Takes a charged molecule and a collection of monomer-spec SMARTS and generates monomer-averages library charges for each repeating residue Can optionally specify a strategy for redistributing any excess charge (by default, will ensure charges are neutral) Returns a ChargesByRresidue object containing a dict of mapped residue charges keyed by residue name .. py:function:: apply_residue_charges(offmol: openff.toolkit.topology.molecule.Molecule, chgs_by_res: polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargesByResidue) -> None Takes an OpenFF Molecule and a residue-wise map of averaged partial charges and applies the mapped charges to the Molecule .. py:class:: LibraryCharger Bases: :py:obj:`polymerist.mdtools.openfftools.partialcharge.molchargers.MolCharger` Charger class for applying library charges onto residue-mapped Molecules .. py:attribute:: charges_by_residue :type: polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargesByResidue .. py:class:: ChargesByResidue Class for storing substructure charge maps by residue .. py:attribute:: charges :type: dict[str, ChargeMap] .. py:class:: ChargedResidue Dataclass for more conveniently storing averaged charges for a residue group .. py:attribute:: charges :type: ChargeMap .. py:attribute:: residue_name :type: str .. py:attribute:: SMARTS :type: str .. py:attribute:: mol_fragment :type: rdkit.Chem.rdchem.Mol .. py:class:: ChargeRedistributionStrategy Bases: :py:obj:`abc.ABC` Interface for defining how any excess charge should be distributed within residues to ensure a given overall net charge .. py:attribute:: desired_net_charge :type: float :value: 0.0 .. py:method:: redistributed_charges(base_charges: polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargeMap, fragment: rdkit.Chem.Mol) -> polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargeMap Take a map of base charges and a structural fragment for a residue and a desired net charge (typically neutral, i.e. 0) and return a new charge map with the excess/deficit charge distributed in such a way as to make the residue have the desired net charge .. py:class:: UniformDistributionStrategy Bases: :py:obj:`ChargeRedistributionStrategy` Simplest possible strategy, distribute any excess charge in a residue according to a uniform distribution (spread evenly)