polymerist.mdtools.openfftools.partialcharge.rescharge

Tools for handling library charges, both for computing from and applying to Molecules

Submodules

Classes

LibraryCharger

Charger class for applying library charges onto residue-mapped Molecules

ChargesByResidue

Class for storing substructure charge maps by residue

ChargedResidue

Dataclass for more conveniently storing averaged charges for a residue group

ChargeRedistributionStrategy

Interface for defining how any excess charge should be distributed within residues to ensure a given overall net charge

UniformDistributionStrategy

Simplest possible strategy, distribute any excess charge in a residue according to a uniform distribution (spread evenly)

Functions

find_repr_residues(→ dict[str, int])

Determine names and smallest residue numbers of all unique residues in charged molecule

compute_residue_charges(...)

Takes a charged molecule and a collection of monomer-spec SMARTS and generates monomer-averages library charges for each repeating residue

apply_residue_charges(→ None)

Takes an OpenFF Molecule and a residue-wise map of averaged partial charges and applies the mapped charges to the Molecule

Package Contents

polymerist.mdtools.openfftools.partialcharge.rescharge.find_repr_residues(offmol: openff.toolkit.topology.molecule.Molecule) dict[str, int][source]

Determine names and smallest residue numbers of all unique residues in charged molecule Used as representatives for generating labelled SMARTS strings

polymerist.mdtools.openfftools.partialcharge.rescharge.compute_residue_charges(cmol: openff.toolkit.topology.molecule.Molecule, monomer_group: polymerist.polymers.monomers.repr.MonomerGroup, cds: polymerist.mdtools.openfftools.partialcharge.rescharge.redistribution.ChargeRedistributionStrategy | None = UniformDistributionStrategy(desired_net_charge=0.0)) polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargesByResidue[source]

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

polymerist.mdtools.openfftools.partialcharge.rescharge.apply_residue_charges(offmol: openff.toolkit.topology.molecule.Molecule, chgs_by_res: polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargesByResidue) None[source]

Takes an OpenFF Molecule and a residue-wise map of averaged partial charges and applies the mapped charges to the Molecule

class polymerist.mdtools.openfftools.partialcharge.rescharge.LibraryCharger[source]

Bases: polymerist.mdtools.openfftools.partialcharge.molchargers.MolCharger

Charger class for applying library charges onto residue-mapped Molecules

charges_by_residue: polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargesByResidue
class polymerist.mdtools.openfftools.partialcharge.rescharge.ChargesByResidue[source]

Class for storing substructure charge maps by residue

charges: dict[str, ChargeMap]
class polymerist.mdtools.openfftools.partialcharge.rescharge.ChargedResidue[source]

Dataclass for more conveniently storing averaged charges for a residue group

charges: ChargeMap
residue_name: str
SMARTS: str
mol_fragment: rdkit.Chem.rdchem.Mol
class polymerist.mdtools.openfftools.partialcharge.rescharge.ChargeRedistributionStrategy[source]

Bases: abc.ABC

Interface for defining how any excess charge should be distributed within residues to ensure a given overall net charge

desired_net_charge: float = 0.0
redistributed_charges(base_charges: polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargeMap, fragment: rdkit.Chem.Mol) polymerist.mdtools.openfftools.partialcharge.rescharge.rctypes.ChargeMap[source]

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

class polymerist.mdtools.openfftools.partialcharge.rescharge.UniformDistributionStrategy[source]

Bases: ChargeRedistributionStrategy

Simplest possible strategy, distribute any excess charge in a residue according to a uniform distribution (spread evenly)